Troubleshooting

Common problems

Every failure below stops the run and writes output/status.yaml with a code and a message. Code 400 means the input is the user’s to fix; 500 means the module itself failed. A successful run ends with code 200. The Calculation Engine reads that file, so the message it carries is the same one printed to the terminal.

  1. No Equation of State file found. The module looks for one of three files in the input folder, and none of the names is optional:

    Error: No Equation of State file found. Provide input/eos.csv or input/eos.h5
    in the MUSES format, or input/eos_validated.csv with three columns
    [energy density, pressure, baryon number density].
    

    The file name is fixed by the MUSES cyberinfrastructure convention and is unrelated to --eos_name, which is only a label recorded in the configuration.

  2. Wrong number of columns. A table already in the QLIMR internal format must have exactly three columns, in the order energy density, pressure, baryon number density:

    Error: eos_validated.csv must have exactly 3 columns
    (energy density, pressure, baryon number density); found 2.
    

    The third column is required even when the baryon mass is not requested, because the exported profiles \(n(R)\) and \(\mu(R)\) are built from it. Earlier versions of QLIMR accepted a two-column table; those files need the baryon number density added before they can be used.

  3. Equation of state not monotonically increasing. Both the energy density and the pressure must increase strictly from one row to the next. The message names the column, the offending row, and the two values, so the table can be corrected directly:

    Error: The provided EoS is not monotonically increasing in energy density:
    row 61 has 0.219723 MeV/fm^3 after 0.382678 MeV/fm^3 on the row before it.
    

    A table that is not monotonic does not describe a stable star, and the interpolation of the equation of state would not be invertible.

  4. Input parameter outside its allowed range. Each input is bounded in the OpenAPI specification, and a value outside those bounds is rejected before anything is solved:

    Error: Invalid config.yaml file against OpenAPI QLIMR specs file:
    Request body validation error
    

    The bounds are \(R_{\textrm{start}} \in [0.0004, 0.04]\), single_epsilon \(\in [0, 10000]\), initial_epsilon \(\in [50, 10000]\), final_epsilon \(\geq 0\), wb11_c \(\geq 0\), the two \(A_{22}\) trial seeds \(\geq 0\), and both resolutions \(\in [0, 1]\). The only required input is --eos_name.

  5. Invalid value for a switch. All the compute_*, *_solutions, eps_sequence, stable_branch and zero_stopping_condition flags take a boolean. Anything else is refused rather than silently treated as false:

    ValueError: expected a boolean (true/false/1/0), got 'yes'
    
  6. Output columns are all ``nan``. This is not an error. Every observable switch defaults to false, so a run with only --eos_name computes the mass and the radius and leaves the remaining columns of observables.csv as nan. Add --compute_all 1, or the individual --compute_* flags for the quantities wanted. Likewise, the radial-solution files are written only when --asymptotic_solutions, --interior_solutions or --exterior_solutions is set.

  7. A self-bound (quark) equation of state stops above its surface. For quark matter the energy density is finite at the surface while the pressure vanishes there, so the table must run down to \(p \approx 0\) and be used with --zero_stopping_condition 0, which takes the table’s own lowest row as the surface. With the default of 1 a zero-density row is prepended and a layer the table does not contain is invented. A warning is printed when a table’s lowest row still carries appreciable pressure:

    Warning: the equation of state stops at p = 89.02 MeV/fm^3 with
    e = 682.4 MeV/fm^3, so its lowest row is not the stellar surface:
    p/(e + p) = 0.115 there, where a surface has p = 0.
             With zero_stopping_condition off the star will stop at that row,
             missing the layer below it, so its mass and radius will be too small.
             With it on, a zero-density row is prepended instead and the missing
             layer is replaced by one that is not in the table.
             For a quark star, extend the table down to p = 0; the energy density
             stays finite there.
    
  8. Input parameter flags: When running the module with the qlimr.py wrapper, the user must specify the input parameters. If the flags are not written correctly, the execution will display all available flag options that can be included. For example, if an input flag is typed incorrectly, the following result will occur:

    python3 qlimr.py
    usage: qlimr.py [-h] [--api_file_path API_FILE_PATH]
                    [--config_file_path CONFIG_FILE_PATH] --eos_name EOS_NAME
                    [--R_start R_START] [--single_epsilon SINGLE_EPSILON]
                    [--initial_epsilon INITIAL_EPSILON]
                    [--final_epsilon FINAL_EPSILON] [--wb11_c WB11_C]
                    [--A22_int_trial_H A22_INT_TRIAL_H]
                    [--A22_int_trial_P A22_INT_TRIAL_P]
                    [--resolution_in_NS_R RESOLUTION_IN_NS_R]
                    [--resolution_in_NS_M RESOLUTION_IN_NS_M]
                    [--compute_inertia COMPUTE_INERTIA]
                    [--compute_love COMPUTE_LOVE]
                    [--compute_quadrupole COMPUTE_QUADRUPOLE]
                    [--compute_mass_and_radius_correction COMPUTE_MASS_AND_RADIUS_CORRECTION]
                    [--compute_baryon_mass COMPUTE_BARYON_MASS]
                    [--compute_baryon_mass_correction COMPUTE_BARYON_MASS_CORRECTION]
                    [--compute_all COMPUTE_ALL]
                    [--asymptotic_solutions ASYMPTOTIC_SOLUTIONS]
                    [--interior_solutions INTERIOR_SOLUTIONS]
                    [--exterior_solutions EXTERIOR_SOLUTIONS]
                    [--eps_sequence EPS_SEQUENCE] [--stable_branch STABLE_BRANCH]
                    [--zero_stopping_condition ZERO_STOPPING_CONDITION]
                    [--output_format OUTPUT_FORMAT]
    qlimr.py: error: the following arguments are required: --eos_name
    

Who to contact for this module

For any questions or issues, please contact the lead module developer Carlos Conde-Ocazionez at carlosc7@illinois.edu