Solver options

Spatial discretization

FreeFlame and BurnerFlame accept :finitedifference and :conservative. The constructor default is :finitedifference. Set discretization=:conservative to use finite-volume species and total-enthalpy balances. Ionized flames also accept both options; their initial conservative solve first uses a frozen finite-difference stage.

Grid refinement and solve controls

solve! adaptively refines a grid by default. Common controls are:

  • ratio, slope, and curve: refinement thresholds.
  • prune: remove points whose indicators fall below the threshold; 0 disables pruning.
  • maxpoints and maxtime_steps: bounds for the solve.
  • initialtimestep, timestepgrowthfactor, and timestepgrowthstrategy: pseudo-time stepping controls.
  • timestepcallback and timestepregrid: observe or recover from stalled time stepping.
  • jacobianmode=:auto or :finitedifference: use the analytic or numerical Jacobian path where available.
  • auto=true: for FreeFlame, use a staged solve and domain expansion; counterflow solvers use their own recovery sequence.

Refinement settings and supported controls vary by flame family. Consult the corresponding constructor and solve! docstrings in the API reference.

Cantera-compatible solve switch

cantera_compatible=true selects the following settings without changing other solve keywords. The resolved settings from the latest call are available through solver_options(flame).

The resolved Newton preset for every listed kind is:

NewtonPolicyOptions fieldValue
cantera_compatibletrue
damping_trials, damping_factor, damping_acceptance7, sqrt(2), :step_or_reduction
step_bounds, norm_denominator, flow_weight, steady_convergence:cantera, :cantera, :velocity, :weighted_step
premixed_steady_maxiters, counterflow_steady_maxiters, premixed_counterflow_steady_maxiters0 (uncapped)
premixed_transient_maxiters, premixed_policy_transient_maxiters, counterflow_transient_maxiters0 (uncapped)
jacobian_age, jacobian_reevaluations20, 4
Flame kindJacobian modeStaged ladder selectedExisting auto defaultSolve path
FreeFlame:autoYesfalsePremixed staged ladder (uniform 12/24/48-point starts, locked-temperature retry, refinement; free-flame domain expansion when needed)
BurnerFlame (energy-on):autoYesfalsePremixed staged ladder without domain expansion
BurnerFlame (fixed-T profile):autoNofalseCantera auto=False refinement loop with compatible Newton/Jacobian settings
CounterflowDiffusionFlame:autoNotrueExisting counterflow recovery sequence
CounterflowPremixedFlame, CounterflowTwinPremixedFlame, ImpingingJet:autoNotrueExisting premixed-counterflow recovery sequence

For every listed kind, cantera_compatible=false retains the current Jacobian, Newton, and solve-path defaults.

Transport

settransport!(flame, :mixtureaveraged) selects mixture-averaged diffusion. :multicomponent requires MultiTransportData exported from the same mechanism. Set soret=true to include thermal diffusion; this also requires matching multicomponent data. For mixture-averaged transport, fluxgradientbasis=:mole or :mass chooses the gradient basis.

Counterflow diffusion flames can enable optically thin radiation with set_radiation!. Radiation and transport options apply only to flame families that expose them.