Example setup for incompressible flow that uses a finite volume solver and checks for simulation restart using output at a specified interval
feFlow/incompressibleFlowRestart.yaml
---
tests:
# This input file is used for more than one test
- !IntegrationRestartTest
# specify the basic test parameters for restart test
testParameters:
# a unique test name for this integration tests
name: incompressibleFlowRestart
asserts:
- "inputs/feFlow/incompressibleFlowRestart.txt"
- !testingResources::asserts::TextFileAssert
expected: "inputs/feFlow/incompressibleFlowRestartProbe.csv"
actual: "incompressibleFlowRestartProbe.csv"
# upon restart, override some of the input parameters
restartOverrides:
timestepper::arguments::ts_max_steps: "30"
- !IntegrationRestartTest
# specify the basic test parameters for restart test
testParameters:
# a unique test name for this integration tests
name: incompressibleFlowRestart2Ranks
ranks: 2
asserts:
- "inputs/feFlow/incompressibleFlowRestart.txt"
- !testingResources::asserts::TextFileAssert
expected: "inputs/feFlow/incompressibleFlowRestartProbe.csv"
actual: "incompressibleFlowRestartProbe.csv"
# upon restart, override some of the input parameters
restartOverrides:
timestepper::arguments::ts_max_steps: "30"
environment:
title: incompessibleFlow
tagDirectory: true
arguments:
dm_plex_separate_marker: ""
timestepper:
name: theMainTimeStepper
io:
interval: 5
arguments:
ts_dt: .1
ts_max_steps: 15
ksp_type: fgmres
ksp_gmres_restart: 10
ksp_rtol: 1.0e-9
ksp_atol: 1.0e-14
ksp_error_if_not_converged: ""
pc_type: fieldsplit
pc_fieldsplit_0_fields: 0,2
pc_fieldsplit_1_fields: 1
pc_fieldsplit_type: schur
pc_fieldsplit_schur_factorization_type: "full"
fieldsplit_0_pc_type: lu
fieldsplit_pressure_ksp_rtol: 1E-10
fieldsplit_pressure_pc_type: jacobi
domain: !ablate::domain::BoxMesh
name: simpleBoxField
faces: [ 2, 2 ]
lower: [ 0, 0 ]
upper: [ 1, 1 ]
options:
dm_distribute: ""
dm_refine: 2
fields:
- !ablate::finiteElement::LowMachFlowFields
initialization:
- &velocityField
fieldName: "velocity"
field: "t + x^2 + y^2, t + 2*x^2 - 2*x*y"
timeDerivative: "1.0, 1.0"
- &pressureField
fieldName: "pressure"
field: "x + y - 1"
timeDerivative: "0.0"
- &temperatureField
fieldName: "temperature"
field: "t + x + y"
timeDerivative: "1.0"
exactSolution:
- *velocityField
- *pressureField
- *temperatureField
solver: !ablate::finiteElement::IncompressibleFlowSolver
id: theFlowField
options: {}
parameters:
strouhal: 1.0
reynolds: 1.0
peclet: 1.0
mu: 1.0
k: 1.0
cp: 1.0
boundaryConditions:
- !ablate::finiteElement::boundaryConditions::Essential
boundaryName: "wall velocity"
labelIds: [3, 1, 2, 4]
boundaryValue: *velocityField
- !ablate::finiteElement::boundaryConditions::Essential
boundaryName: "wall temp"
labelIds: [3, 1, 2, 4]
boundaryValue: *temperatureField
monitors:
- !ablate::monitors::FieldErrorMonitor
- !ablate::monitors::Probes
probes:
- name: incompressibleFlowRestartProbe
location: [ .25, .25 ]
bufferSize: 10
variables: [ temperature ]