single example of a periodic domain with an inviscid vortex.
compressibleFlow/compressibleFlowVortex.yaml
---
# metadata used only for integration testing
testingIgnore: true
#test:
# # a unique test name for this integration tests
# name: compressibleFlowVortex
# # the number of ranks to run with mpi
# ranks: 1
# # create a list of asserts to compare
# asserts:
# # create a default assert that compares the log file
# - "inputs/compressibleFlow/compressibleFlowVortex/compressibleFlowVortex.txt"
# - !testingResources::asserts::TextFileAssert
# expected: "inputs/compressibleFlow/compressibleFlowVortex/domain.xmf"
# actual: "domain.xmf"
# metadata for the simulation
environment:
title: _compressibleFlowVortex
tagDirectory: false
arguments: { }
# set up the time stepper responsible for marching in time
timestepper:
name: theMainTimeStepper
# io controls how often the results are saved to a file for visualization and restart
io: # by default the ablate::io::Hdf5Serializer serializer is used
interval: 0
# time stepper specific input arguments. By default, the time stepper will use TSADAPTBASIC
arguments:
ts_type: rk
ts_adapt_type: physics # overwrite and set the time step based upon the CFL constraint
ts_max_steps: 25
ts_adapt_safety: 1.0
# sets a single box domain with periodic boundary conditions
domain: !ablate::domain::BoxMesh
name: simpleBoxField
faces: [ 6, 6 ]
lower: [ 0, 0 ]
upper: [ 1, 1 ]
boundary: [ "PERIODIC", "PERIODIC" ]
simplex: false
# pass in these options to petsc when setting up the domain. Using an option list here prevents command line arguments from being seen.
options:
dm_refine: 1
modifiers:
# if using mpi, this modifier distributes cells
- !ablate::domain::modifiers::DistributeWithGhostCells
# 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, ...)
- !ablate::finiteVolume::CompressibleFlowFields
eos: !ablate::eos::PerfectGas &eos
parameters:
gamma: 1.4
Rgas: 287.0
conservedFieldOptions:
# use a leastsquares interpolant for cell based calculations with the default petsc limiter
petscfv_type: leastsquares
# specify the extra pressure field for output
- !ablate::domain::FieldDescription
name: pressure
type: FV
location: aux # the pressure field is computed as part of decode and NOT integrated in time directly
# set the initial conditions of the flow field
initialization:
- fieldName: "euler" #for euler all components are in a single field
field: >-
1.*Power(1 - 1.7681728880157166*exp(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2)))*(Power(-0.5 + x,2) + Power(-0.5 + y,2)),2.5000000000000004),
1.*(0.5*(Power(0. + 1028.869904770776*exp(0.5*(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2))))*(-0.5 + x),2) + Power(103.80884355390921 - 102.88699047707759*exp(0.5*(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2))))* (-0.5 + y),2)) + 213815.00000000003*Power(1 - 1.7681728880157166*exp(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2)))* (Power(-0.5 + x,2) + Power(-0.5 + y,2)),1.))* Power(1 - 1.7681728880157166*exp(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2)))* (Power(-0.5 + x,2) + Power(-0.5 + y,2)),2.5000000000000004),
1.*Power(1 - 1.7681728880157166*exp(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2)))*(Power(-0.5 + x,2) + Power(-0.5 + y,2)),2.5000000000000004)*(103.80884355390921 - 102.88699047707759*exp(0.5*(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2))))*(-0.5 + y)),
1.*(0. + 1028.869904770776*exp(0.5*(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2))))*(-0.5 + x))*Power(1 - 1.7681728880157166*exp(1 - 100.*(Power(-0.5 + x,2) + Power(-0.5 + y,2)))*(Power(-0.5 + x,2) + Power(-0.5 + y,2)),2.5000000000000004)
timeDerivative: "0.0, 0.0, 0.0, 0.0"
# this problem uses a single solver (!ablate::finiteVolume::CompressibleFlowSolver)
solver: !ablate::finiteVolume::CompressibleFlowSolver
id: vortexFlowField
# a flux calculator must be specified to so solver for advection
fluxCalculator: !ablate::finiteVolume::fluxCalculator::Ausm
# the cfl is used to compute the physics time step
parameters:
cfl: 0.5
# there is no transport properties resulting in inviscid flow
monitors:
# output time step information for each time step
- !ablate::monitors::TimeStepMonitor
# share the existing eos with the compressible flow solver
eos: *eos