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