Example 1D diffusion flame with a coupled boundary condition. The diffusion flame only uses the transport processes of the Navier–Stokes equations.
reactingFlow/sampleDiffusionFlame.yaml
---
test:
# a unique test name for this integration tests
name: sampleDiffusionFlameTchem
# create a default assert that compares the log file
assert: "inputs/reactingFlow/sampleDiffusionFlame.txt"
environment:
title: _1DSampleDiffusionFlameTchem
tagDirectory: false
arguments: {}
timestepper:
arguments:
ts_type: rk
ts_max_time: 1
ts_max_steps: 50
ts_dt: 1.0e-10
ts_adapt_safety: 0.75
domain: !ablate::domain::BoxMeshBoundaryCells
name: simpleBoxField
faces: [50]
lower: [ 0.0]
upper: [ 0.01]
options:
dm_plex_hash_location: true
preModifiers:
# distribute the mesh across the mpi rank with ghost cells
- !ablate::domain::modifiers::DistributeWithGhostCells
ghostCellDepth: 2
postModifiers:
- !ablate::domain::modifiers::TagLabelInterface
# tag the left boundary faces needed to remove the boundary from the interiorFlowRegion
leftRegion:
name: boundaryCellsLeft
rightRegion:
name: domain
boundaryFaceRegion:
name: boundaryFaceLeft
- !ablate::domain::modifiers::SubtractLabel
# remove the slabBurnerFace from the flowRegion
differenceRegion:
name: interiorFlowRegion
minuendRegion:
name: interiorCells
subtrahendRegions:
- name: boundaryFaceLeft
incompleteLabel: true
- !ablate::domain::modifiers::GhostBoundaryCells
# the DmViewFromOptions should output once with full mesh/dm details
fields:
- !ablate::finiteVolume::CompressibleFlowFields
eos: !ablate::eos::TChem &eos
mechFile: ../mechanisms/gri30.yml
options:
# set a minimum temperature for the chemical kinetics ode integration
thresholdTemperature: 560
conservedFieldOptions:
petscfv_type: leastsquares
region:
name: domain
- !ablate::domain::FieldDescription
name: pressure
type: FV
location: aux
region:
name: domain
initialization:
- !ablate::finiteVolume::fieldFunctions::Euler
state: &flowFieldState
eos: *eos
temperature:
"x < 0 ? 653.0 : (x > .01 ? 300.0 : (x < 0.007 ? (306714.2857*x + 653): (-833333.3333*x + 8633.33) ))"
pressure: 101325.0
velocity: "0.0"
other: !ablate::finiteVolume::fieldFunctions::MassFractions
&massFracs
eos: *eos
values:
- fieldName: O2
field: !ablate::mathFunctions::Linear
startValues: [0.0]
endValues: [1.0]
end: .01
- fieldName: H2
field: !ablate::mathFunctions::Linear
startValues: [2.6605252679403324e-08]
endValues: [0.0]
end: .01
- fieldName: CH4
field: !ablate::mathFunctions::Linear
startValues: [0.03130099022620085]
endValues: [0.0]
end: .01
- fieldName: C2H2
field: !ablate::mathFunctions::Linear
startValues: [0.019041133292868283]
endValues: [0.0]
end: .01
- fieldName: C2H4
field: !ablate::mathFunctions::Linear
startValues: [0.9085604652430157]
endValues: [0.0]
end: .01
- fieldName: C2H6
field: !ablate::mathFunctions::Linear
startValues: [0.012981434565768965]
endValues: [0.0]
end: .01
- fieldName: C3H8
field: !ablate::mathFunctions::Linear
startValues: [0.02811595000348999]
endValues: [0.0]
end: .01
- !ablate::finiteVolume::fieldFunctions::DensityMassFractions
state: *flowFieldState
solvers:
- !ablate::finiteVolume::CompressibleFlowSolver
id: flowField
region:
name: interiorFlowRegion
eos: *eos
transport: &transportModel !ablate::eos::transport::Sutherland
eos: *eos
monitors:
- !ablate::monitors::TimeStepMonitor
interval: 10
- !ablate::monitors::CurveMonitor
interval: 25
additionalProcesses:
- !ablate::finiteVolume::processes::Chemistry
eos: *eos
- !ablate::finiteVolume::processes::ConstantPressureFix
eos: *eos
pressure: 101325.0
- !ablate::boundarySolver::BoundarySolver
id: walls
region:
name: boundaryCellsRight
fieldBoundary:
name: boundaryFaces
mergeFaces: true
processes:
- !ablate::boundarySolver::lodi::Inlet
eos: *eos
- !ablate::boundarySolver::BoundarySolver
id: slab boundary
region:
name: boundaryCellsLeft
fieldBoundary:
name: boundaryFaceLeft
processes:
- !ablate::boundarySolver::physics::Sublimation
latentHeatOfFusion: 1462876.0
transportModel: *transportModel
eos: *eos
massFractions: *massFracs
diffusionFlame: true