Ideal gas thermal properties and reactions kinetics are modeled using the Zero-RK tool kit. The input files needs to be using the Chemkin formated files, one .inp file containing the reaction and one .dat file containing thermodynamic properties. The mech.log file provides useful information when parsing of the mechanism file is not successful. The default chemistry Integrator is CVODE with an optional integrator, SEULEX, for stiff chemistry problems. In order to try to limit the stiffness, the steplimiter option can be reduced. For 1D flames significant behavioral change can be observed with stepLimiter<1E18. The load balancing option should always be turned on for any 1D,2D or 3D simulation. Reactors with initial temperatures below thresholdTemperature will not be evaluated. When an approximate jacobian or when sparseJacobian is used set iterative option to 1. Zero-RK has an option to take advantage of sparse jacobian for the reactor evaluations. For 0D cases it has been hwn to have improved performance over dense jacobian evaluations for mechanism larger than about 100 species.
Examples of specifying zerorkEOS with different default options and possible options.
# relative path to chemkin input files
- eos: &eos !ablate::eos::zerorkEOS
reactionFile: ../mechanisms/grimech30.mech.inp
thermoFile: ../mechanisms/grimech30.thermo.dat
options:
# double options
relTolerance: 1.0E-6
absTolerance: 1.0E-10
thresholdTemperature: 0 # use 560 for reduced PMMA mechanism
stepLimiter: 1.0E200
cvode_retry_absolute_tolerance_adjustment: 0.1 # factor by which the tolerances are multiplied in case the reactor breaks
cvode_retry_relative_tolerance_adjustment: 0.1 # factor by which the tolerances are multiplied in case the reactor breaks
# integer options
loadBalance: 1 # [0 or 1 or 2] 1 is based on #of reactors 2 is based on time
verbose: 0 # [0 or 1 or 2 or 3 or 4]
gpu: 0 # [0 or 1]
itterative: 0 # [0 or 1]
useSeulex: 0 # [0 or 1] default is CVODE
max_steps: 10000 # maximum number of internal CVODE steps
errorhandle: 0 # 0 continues simulation without sources for bad cells, 1 tightens tolerance
dumpfailed: 0; # 1 dumps the failing rectors
cvode_num_retries: 5; #how many times cvode tightens the tolerance in case the reactor fails
# boolean options:
sparseJacobian: false #default is dense
timingLog: false
dumpreactor: false # failing reactor state dump into file
# Reactor types:
reactorType: ConstantVolume # [ConstantPressure or ConstantVolume]