Skip to content

Runtime parameters

This document lists all of the runtime parameters in Quokka that are set using the AMReX ParmParse object. Users can set these via the input file or by using command-line arguments.

General

These parameters are read in the AMRSimulation<problem_t>::readParameters() function in src/simulation.hpp or src/main.cpp.

Parameter Name Type Default Description
max_timesteps Integer INT_MAX The maximum number of time steps for the simulation.
cfl Float 0.3 Sets the CFL number for the simulation.
amr_interpolation_method Integer 1 Selects the method used to interpolate from coarse to fine AMR levels. 0: piecewise constant, 1: linear. Except for debugging, this should not be changed.
stop_time Float 1.0 The simulation time at which to stop evolving the simulation.
ascent_interval Integer -1 (Disabled) The number of coarse timesteps between Ascent outputs.
plotfile_interval Integer -1 (Disabled) The number of coarse timesteps between plotfile outputs.
plottime_interval Float -1.0 (Disabled) The time interval (in simulated time) between plotfile outputs.
skip_initial_plotfile Boolean (0/1) 0 (False) Skip writing the initial plotfile at t=0.
projection_interval Integer -1 (Disabled) The number of coarse timesteps between 2D projection outputs.
statistics_interval Integer -1 (Disabled) The number of coarse timesteps between statistics outputs.
checkpoint_interval Integer -1 (Disabled) The number of coarse timesteps between checkpoint outputs.
checkpointtime_interval Float -1.0 (Disabled) The time interval (in simulated time) between checkpoint outputs.
do_reflux Boolean (0/1) 1 (Enabled) This turns on refluxing at coarse-fine boundaries (1) or turns it off (0). Except for debugging, this should always be on when AMR is used.
do_tracers Boolean (0/1) 0 (Disabled) This turns on tracer particles. They are initialized one-per-cell and they follow the fluid velocity.
suppress_output Boolean (0/1) 0 (Disabled) If set to 1, this disables output to stdout while the simulation is running.
derived_vars String list Empty A list of the names of derived variables that should be included in the plotfile and Ascent outputs.
regrid_interval Integer 2 The number of timesteps between AMR regridding.
density_floor Float 0.0 The minimum density value allowed in the simulation. Enforced through EnforceLimits.
density_floor_expr String Empty Optional AMReX parser expression for a spatially varying density floor. Variables: x, y, z, base_density_floor. When set, this overrides the constant floor.
debug_density_floor_plot Boolean (0/1) 0 (Disabled) If set to 1, adds a derived field density_floor_dbg to plotfiles to visualize the spatially varying density floor.
temperature_floor Float 0.0 The minimum temperature value allowed in the simulation. Enforced through EnforceLimits.
max_walltime String 0 (Unlimited) The maximum walltime for the simulation in the format DD:HH:SS (days/hours/seconds). After 90% of this walltime elapses, the simulation will automatically stop and exit.
dt_cutoff Float 0.0 (Disabled) Timestep drop detector threshold. If the timestep drops below dt_cutoff * current_time, the simulation aborts with an error message. This helps detect numerical instabilities early.
constant_dt Float 0.0 (Disabled) Optional constant timestep. If set, forces the timestamp to be this value.
initial_dt Float Unlimited Optional initial timestep.
max_dt Float Unlimited Optional maximum timestep.
init_shrink Float 1.0 Factor to shrink the initial timestep by.
show_performance_hints Boolean (0/1) 1 (Enabled) If set to 1, prints performance hints.
signal_speed_abort Float -1.0 (Disabled) If value > 0 and the max signal speed exceeds this value, the simulation aborts.
particle_speed_abort Float -1.0 (Disabled) If value > 0 and the max particle speed exceeds this value, the simulation aborts.
sfh_interval Integer -1 (Disabled) Interval for updating/writing star formation history.
sfh_time_interval Float -1.0 (Disabled) Time interval for updating/writing star formation history.
particle_cfl Float 0.5 Sets the CFL number for particle advection. This is independent of the hydro CFL number.
plotfile_prefix String "plt" The prefix for plotfile output filenames.
checkpoint_prefix String "chk" The prefix for checkpoint output filenames.
do_subcycle Boolean (0/1) 1 (Enabled) This turns on subcycling at coarse-fine boundaries (1) or turns it off (0).
poisson_supercycle_interval Integer 1 The number of coarse timesteps between Poisson supercycle operations.
poisson_reltol Float 1.0e-5 Relative tolerance for the Poisson solver convergence.
poisson_abstol Float 1.0e-5 Absolute tolerance for the Poisson solver convergence (scaled by minimum RHS value).
print_cycle_timing Boolean (0/1) 0 (Disabled) If set to 1, prints per-cycle timing information.
restartfile String Empty The path to a checkpoint file from which to restart the simulation.
amr.plot_nfiles Integer -1 (Auto) Maximum number of binary files per multifab for plotfiles. Controls parallel I/O chunking.
amr.checkpoint_nfiles Integer -1 (Auto) Maximum number of binary files per multifab for checkpoints. Controls parallel I/O chunking.
quokka.bc String list Required Boundary conditions for the domain faces. Must be a list of 3 strings (e.g., periodic periodic reflecting). Overrides geometry.is_periodic.

Hydrodynamics

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
hydro.low_level_debugging_output Boolean (0/1) 0 (Disabled) If set to 1, turns on low-level debugging output for each RK stage. Warning: this writes an enormous volume of data to disk! This should only be used for debugging.
hydro.rk_integrator_order Integer 2 (RK2-SSP) Determines the order of the RK integrator used. Can be set to 1 (Forward Euler) or 2 (RK2-SSP, also known as Heun's method). This should only be changed for debugging.
hydro.reconstruction_order Integer 3 (PPM) Determines the order of spatial reconstruction algorithm used. Can be set to 1 (piecewise constant), 2 (piecewise linear; PLM), or 3 (piecewise parabolic; PPM).
hydro.plm_limiter String "sweby" Selects the slope limiter for PLM reconstruction. Options: minmod, sweby, or mc. Only used when hydro.reconstruction_order = 2.
hydro.use_dual_energy Boolean (0/1) 1 (Enabled) If set to 1, the code evolves an auxiliary internal energy variable in order to correctly evolve high-mach flows. This should only be disabled (0) for debugging.
hydro.abort_on_fofc_failure Boolean (0/1) 1 (Enabled) If set to 1, the code aborts when first-order flux correction fails to yield a physical state (positive density and pressure). This should only be disabled (0) for debugging.
hydro.artificial_viscosity_coefficient Float 0.0 This is the linear artificial viscosity coefficient used in the artificial viscosity term added to the flux. This is the same parameter as defined in the original PPM paper.

Radiation

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
radiation.reconstruction_order Integer 3 (PPM) Determines the order of spatial reconstruction algorithm used. Can be set to 1 (piecewise constant), 2 (piecewise linear; PLM), or 3 (piecewise parabolic; PPM).
radiation.cfl Float 0.3 Sets the CFL number for the radiation advance. This is independent of the hydro CFL number.
radiation.dust_gas_interaction_coeff Float 2.5e-34 Coefficient for dust-gas interaction in radiation calculations.
radiation.print_iteration_counts Boolean (0/1) 0 (Disabled) If set to 1, prints radiation iteration counts for debugging.
radiation.iteration_tolerance Float 1e-11 Tolerance for the Newton-Raphson iteration residuals.
radiation.iteration_tolerance_rel Float -1.0 (Disabled) Tolerance for the relative change between two consecutive Newton-Raphson iterations.

MHD

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
mhd.emf_computing_scheme String "FelkerStone2017" Determines the method used to compute the EMF at edges. Can be set to FelkerStone2017, Balsara2025, or Quokka2026.
mhd.emf_averaging_scheme String "LondrilloDelZanna2004" Determines the method used to average EMF at edges. Can be set to BalsaraSpicer2004, LondrilloDelZanna2004, or Balsara2025.
mhd.emf_reconstruction_order Integer 5 (xPPM) Determines the order of spatial reconstruction algorithm used for EMF computation. Can be set to 1 (piecewise constant), 2 (piecewise linear; PLM), 3 (piecewise parabolic; PPM), or 5 (extrema-preserving xPPM).
mhd.plm_limiter String "sweby" Selects the slope limiter for PLM reconstruction in EMF calculations. Options: minmod, sweby, or mc. Only used when mhd.emf_reconstruction_order = 2.
mhd.project_initial_b_field Boolean (0/1) 0 (Disabled) If set to 1, projects the initial magnetic field to be divergence-free.
mhd.update_initial_b_energy Boolean (0/1) 1 (Enabled) If set to 1, updates the initial magnetic energy after projection.

Optically-thin radiative cooling

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
cooling.enabled Boolean (0/1) 0 (Disabled) If set to 1, turns on optically-thin radiative cooling as a Strang-split source term.
cooling.cooling_table_type String "resampled" Specifies the type of cooling table to use. The only supported option is "resampled".
cooling.read_tables_even_if_disabled Boolean (0/1) 0 (Disabled) If set to 1, reads the cooling tables even if the cooling module is disabled.
cooling.hdf5_data_file String Required if cooling.enabled=1 The path to the cooling tables in HDF5 format. We recommend using extern/cooling/CloudyData_UVB=HM2012_resampled.h5 for ISM at solar metallicity.

Chemistry

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
chemistry.enabled Boolean (0/1) 0 (Disabled) If set to 1, turns on chemistry as a Strang-split source term.
chemistry.max_density_allowed Float 1.0e300 Maximum density value for which chemistry calculations are accurate. Chemistry is not performed for cells with densities above this threshold.
chemistry.min_density_allowed Float Smallest positive Value Minimum density value for which chemistry calculations are performed. Chemistry is not performed for cells with densities below this threshold.

Dust

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
dust.enable_iter_stoptime Boolean (0/1) 0 (Disabled) If set to 1, enables iterative dust stopping time calculation.
dust.omega Float 1.0 Controls the level of frictional heating, with omega = 0 turning it off and omega = 1 depositing all dissipation into the gas.
dust.print_iteration_counts Boolean (0/1) 0 (Disabled) If set to 1, prints dust drag iteration counts for debugging.

Particles

These parameters are read in the particleParmParse() function in src/particles/particle_types.hpp and readParmParse() in src/simulation.hpp.

Parameter Name Type Default Description
particles.disable_SN_feedback Boolean (0/1) 0 If set to 1, disables SN feedback when a particle evolves from SNProgenitor to SNRemnant.
particles.sink_particle_use_uniform_kernel Boolean (0/1) 0 (Disabled) If set to 1, uses uniform accretion kernel in a (7 dx)^3 box for sink particles.
particles.SN_scheme String SN_thermal_or_thermal_momentum Scheme for SN feedback. Options: SN_thermal_only, SN_thermal_or_thermal_momentum, SN_thermal_kinetic_or_thermal_momentum, SN_pure_kinetic_or_thermal_momentum.
particles.eps_ff Float 0.01 Star formation efficiency parameter.
particles.verbose Boolean (0/1) 0 Verbosity level for particle operations. Higher values provide more detailed output.
particles.param1 Float -1.0 Placeholder parameter for particles (used in gravity_3d.cpp tests).
particles.param2 Float -1.0 Placeholder parameter for particles (used in gravity_3d.cpp tests).
particles.disable_particle_drift Boolean (0/1) 0 If set to 1, disables particle drift.
particles.stellar_velocity_limit Float 1.0e8 Maximum velocity limit for stellar particles in cm/s. The code will abort if stellar velocity exceeds this limit.
particles.reproducibility_roundoff_redundancy Integer 20 Number of bits to remove from the significand for reproducibility.
particles.use_luminosity_table Boolean (0/1) 1 (Enabled) If set to 1, uses a luminosity table for particles.
particles.rad_table String Required if particles.use_luminosity_table=1 and Physics_Traits<problem_t>::is_radiation_enabled=true Path to the radiation luminosity table.
particles.rad_table_output_spacing Integer 0 (fast_log) Output spacing for radiation table.
particles.split_particles_on_restart_refine Boolean (0/1) 1 (Enabled) Whether to split particles when restarting with refinement.

Turbulence

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp. Details about the turbulence driving implementation can be found here.

Parameter Name Type Default Description
turbulence.enabled Boolean (0/1) 0 (Disabled) If set to 1, enables turbulence driving using chfeder's turbulence driving module.
turbulence.length Float Required if turbulence.enabled=1 Length of turbulent driving box. Can have 1 value or a comma separated list for each component.
turbulence.target_vdisp Float Required if turbulence.enabled=1 Target turbulent velocity dispersion.
turbulence.ampl_factor Float Required if turbulence.enabled=1 Amplitude adjust factor for forcing field. Can have 1 value or a comma separated list for each component.
turbulence.ampl_auto_adjust Boolean (0/1) 0 (Disabled) If set to 1, enables automatic amplitude adjustment.
turbulence.k_driv Float Required if turbulence.enabled=1 Characteristic driving scale in units of \(2\pi/length\).
turbulence.k_min Float Required if turbulence.enabled=1 Minimum driving wavenumber in units of \(2\pi/length\).
turbulence.k_max Float Required if turbulence.enabled=1 Maximum driving wavenumber in units of \(2\pi/length\).
turbulence.sol_weight Float Required if turbulence.enabled=1 Solenoidal weight. Can be 0.0 (compressive driving), 1.0 (solenoidal driving) or 0.5 (natural mixture).
turbulence.spect_form Integer Required if turbulence.enabled=1 Spectral form of the driving amplitude. Can be 0 (band, rectangle, constant), 1 (paraboloid) or 2 (power law).
turbulence.power_law_exp Float Required if turbulence.enabled=1 If spect_form = 2, this sets the spectral power-law exponent (e.g., -5/3: Kolmogorov; -2: Burgers).
turbulence.angles_exp Float Required if turbulence.enabled=1 If spect_form = 2, this sets the number of modes (angles) in k-shell such that it increases as \(k^angles_exp\).
turbulence.random_seed Integer Required if turbulence.enabled=1 Random number seed for driving sequence.
turbulence.nsteps_per_t_turb Integer Required if turbulence.enabled=1 Number of turbulence driving pattern updates per turnover time.

Photoelectric Heating

These parameters are read in the QuokkaSimulation<problem_t>::readParmParse() function in src/QuokkaSimulation.hpp.

Parameter Name Type Default Description
use_sfh_based_pe_heating Boolean (0/1) 0 (Disabled) If set to 1, enables photoelectric heating based on star formation history.
sfh_to_pe_heating_table String Required if use_sfh_based_pe_heating = 1 Path to the table converting star formation history to photoelectric heating.
sf_area_kpc2 Float Required if use_sfh_based_pe_heating = 1 and const_sfr_Msun_per_year_per_kpc2 < 0 Area of the star formation region in kpc^2.
const_sfr_Msun_per_year_per_kpc2 Float -1.0 Constant star formation rate in Msun/year/kpc^2. If non-negative, overrides the simulation SFR.