This input runs a zero-dimension ignition delay calculation using the MMA Soot kinetics mechanism.
reactingFlow/ignitionDelayMMASoot.yaml
---
test:
# a unique test name for this integration tests
name: ignitionDelayMMASoot
# create a default assert that compares the log file
assert: !testingResources::asserts::TextFileAssert
expected: "inputs/reactingFlow/ignitionDelayMMASoot.Temperature.txt"
actual: "ignitionDelayTemperature.csv"
# metadata for the simulation
environment:
title: _ignitionDelayMMASoot
tagDirectory: false
arguments:
petsclimiter_type: none
# set up the time stepper responsible for marching in time
timestepper:
name: theMainTimeStepper
arguments:
ts_type: euler
ts_max_time: 0.06
ts_dt: 1E-4
# setup a simple mesh with only a single point
domain: !ablate::domain::BoxMesh
name: simpleBoxField
faces: [ 1 ]
lower: [ 0 ]
upper: [ 1 ]
modifiers:
# if using a FVM ghost boundary cells must be added
- !ablate::domain::modifiers::GhostBoundaryCells
fields:
# all fields must be defined before solvers. The ablate::finiteVolume::CompressibleFlowFields is a helper
# class that creates the required fields for the compressible flow solver (rho, rhoE, rhoU, ...) and species mass fractions
- !ablate::finiteVolume::CompressibleFlowFields
eos: &eos !ablate::eos::TChemSoot # the tchem eos uses tChem to parse the mechanisms and determine what species are needed to be tracked
mechFile: ../mechanisms/MMAReduced.yml
# set the initial conditions of the flow field
initialization:
# The ablate::finiteVolume::CompressibleFlowFields is a helper class that creates the required fields for the compressible flow solver (rho, rhoE, rhoU, ...)
- !ablate::finiteVolume::fieldFunctions::Euler
state:
&initState
eos: *eos
temperature: 1200.0
pressure: 101325.0
velocity: [ 0.0 ]
# the mass fractions must be specified to compute rho, e, etc.
other: !ablate::finiteVolume::fieldFunctions::MassFractions
# the mass fraction class allows for a subset of mass fractions to be specified. The rest are assumed zero
eos: *eos
values:
- fieldName: N2
field: 0.724672103
- fieldName: MMETHAC_C5H8O2
field: 0.055186656
- fieldName: O2
field: 0.220141239
# the DensityMassFractions reuses the initState to set the densityMassFractions for all species
- !ablate::finiteVolume::fieldFunctions::DensityMassFractions
state: *initState
# Set the number density to zero
- fieldName: densityProgress
field: "0.0"
# the basic FiniteVolumeSolver is used with only a single reaction process
solver: !ablate::finiteVolume::FiniteVolumeSolver
id: reactingFlowODE
options: { }
processes:
# without advection/diffusion the Chemistry process is the only one needed
- !ablate::finiteVolume::processes::Chemistry
eos: *eos
boundaryConditions: [ ]
monitors:
# the IgnitionDelayPeakYi monitor computes and store the amount of time it took to reach peak OH
- !ablate::monitors::IgnitionDelayPeakYi
species: OH
location: [ 0.5 ]
log: !ablate::monitors::logs::FileLog
name: ignitionDelayPeakYi.txt
historyLog: !ablate::monitors::logs::CsvLog
name: ignitionDelayPeakYi.csv
# the IgnitionDelayTemperature monitor computes and store the amount of time it took to reach the specified temperature
- !ablate::monitors::IgnitionDelayTemperature
eos: *eos
location: [ 0.5 ]
thresholdTemperature: 1500
log: !ablate::monitors::logs::CsvLog
name: ignitionDelayTemperature.csv
historyLog: !ablate::monitors::logs::CsvLog
name: ignitionDelayPeakT.csv
# A monitor to output all values at each time
- !ablate::monitors::Probes
probes:
- name: DataProbe
location: [ .5 ]
bufferSize: 10
variables: [ densityYi, euler, densityProgress, temperature ]