This input runs a zero-dimension ignition delay calculation using the MMA Soot mechanism and the new soot process.
reactingFlow/ignitionDelayMMASootProcess.yaml
---
test:
# a unique test name for this integration tests
name: ignitionDelayMMASootProcessTchem
# create a default assert that compares the log file
assert: !testingResources::asserts::TextFileAssert
expected: "inputs/reactingFlow/ignitionDelayMMASootProcess.Temperature.txt"
actual: "ignitionDelayTemperature.csv"
# metadata for the simulation
environment:
title: _ignitionDelayMMASootProcessTchem
tagDirectory: false
arguments:
petsclimiter_type: none
# set up the time stepper responsible for marching in time
timestepper:
arguments:
ts_type: euler
ts_max_time: 0.005
ts_dt: 1E-5
# 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::TChem # the tchem eos uses tChem to parse the mechanisms and determine what species are needed to be tracked
mechFile: ../mechanisms/MMAReduced.soot.yml
- !ablate::finiteVolume::ExtraVariable
name: "Progress"
components: [ "NDD" ]
# 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::CompressibleFlowSolver
id: reactingFlowODE
options: { }
eos: *eos
additionalProcesses:
# without advection/diffusion the Chemistry process is the only one needed
- !ablate::finiteVolume::processes::Chemistry
eos: *eos
# use ablate::finiteVolume::processes::Soot
- !ablate::finiteVolume::processes::Soot
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 ]