This is a simple example and test to ensure that mixed cell types are working with simple input/output. The mesh that is used was generated in GMsh using both triangle and quads.

domain/mixedCellTypeTest2D.yaml

---
test:
  # a unique test name for this integration tests
  name: mixedCellType2D
  # run mpi with two ranks
  ranks: 1
  # compare the generated xmf file with the expected
  assert: !testingResources::asserts::TextFileAssert
    expected: "inputs/domain/mixedCellTypeTest/domain.xmf"
    actual: "domain.xmf"

# metadata for the simulation
environment:
  title: _mixedCellType2D
  tagDirectory: false
# global arguments that can be used by petsc
arguments:
  # The gmsh arguments must be global because they are used before the mesh options are parsed
  dm_plex_gmsh_use_regions: true
# set up the time stepper responsible for marching in time
timestepper:
  # time stepper specific input arguments
  arguments:
    ts_type: rk
    ts_max_time: 100000
    ts_max_steps: 50
    ts_dt: 1.0E-10
    ts_adapt_safety: 0.9
    ts_adapt_type: physicsConstrained
  # io controls how often the results are saved to a file for visualization and restart
  io:
    interval: 5 # results are saved at every 5 steps.  In real simulations this should be much larger.
  # load in the gmsh produced mesh file
  domain: !ablate::domain::MeshFile
    path: mixedCells2D.msh
    options:
      dm_plex_check_all: true
      dm_distribute: false # turn off default dm_distribute so that we can extrude label first
    # specify any modifications to be performed to the mesh/domain
    modifiers:
      - !ablate::domain::modifiers::DistributeWithGhostCells
        ghostCellDepth: 2

    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
  # 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:
        eos: *eos
        pressure: 101325.0
        temperature: 300+x*100
        velocity: "x*10, y*100"

# this problem uses a single solver (!ablate::finiteVolume::CompressibleFlowSolver)
solvers: [ ]