This input runs a zero-dimension ignition delay calculation using the MMA Soot mechanism and the new soot process.

reactingFlow/ignitionDelayMMASootProcess_zerork.yaml

---
test:
  # a unique test name for this integration tests
  name: ignitionDelayMMASootProcessZerork
  # create a default assert that compares the log file
  assert: !testingResources::asserts::TextFileAssert
    expected: "inputs/reactingFlow/ignitionDelayMMASootProcess.Temperature.zerork.txt"
    actual: "ignitionDelayTemperature.csv"

# metadata for the simulation
environment:
  title: _ignitionDelayMMASootProcessZerork
  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::zerorkEOS # the tchem eos uses tChem to parse the mechanisms and determine what species are needed to be tracked
          reactionFile: ../mechanisms/MMAReduced.soot.inp
          thermoFile: ../mechanisms/MMAReduced.soot.dat
          options:
            reactorType: ConstantPressure #zerork deafult is constant volume

      - !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 ]