Description

This test shows the full use of the simulated two-color pyrometry code. Two color pyrometry is employed as a monitor and is attached to a boundary which serves as a viewing window. The model is based on the black body spectrum and Rayleigh scattering approximation. The model requires the soot mechanism to be specified in the eos. Using the TCP monitor requires that Orthogonal radiation is used. This is specified in the solver list. Orthogonal radiation detects radiation through the domain as the camera would, assuming the camera is relatively far from the domain.

radiation/virtualTCP.yaml

---
test:
  # a unique test name for this integration tests
  name: virtualTCP
  # create a default assert that compares the log file
  assert: "inputs/radiation/virtualTCP.txt"

environment:
  title: _tcp
  tagDirectory: truev
arguments: { }
timestepper:
  name: theMainTimeStepper
  arguments:
    ts_type: rk
    ts_max_steps: 2
  io: !ablate::io::Hdf5MultiFileSerializer
    interval: 0
  domain: !ablate::domain::BoxMeshBoundaryCells
    name: simpleBoxField
    faces: [ 5, 5, 5 ]
    lower: [ -0.25 , -0.25, -0.25 ]
    upper: [ 0.25, 0.25, 0.25 ]
    options:
      dm_refine: 0
      dm_plex_hash_location: true
    preModifiers:
      - !ablate::domain::modifiers::DistributeWithGhostCells
    postModifiers:
      - !ablate::domain::modifiers::GhostBoundaryCells
    fields:
      - !ablate::finiteVolume::CompressibleFlowFields
        eos: !ablate::eos::TChem  &eos
          mechFile: ../mechanisms/MMAReduced.soot.yml

        # use a higher order field for the conserved field transport options
        conservedFieldOptions:
          petscfv_type: leastsquares
          petsclimiter_type: vanleer
        region:
          name: domain

      # create a conserved field to track ndd
      - !ablate::finiteVolume::ExtraVariable
        name: "Progress"
        components: [ "NDD" ]
        region:
          name: domain

      # by adding a pressure field the code will compute and output pressure
      - !ablate::domain::FieldDescription
        name: pressure
        type: FV
        location: aux
        region:
          name: domain

  initialization:
    - !ablate::finiteVolume::fieldFunctions::Euler
      state:
        &initState
        eos: *eos
        temperature: 1200.0
        pressure: 101325.0
        velocity: 0.0, 0.0, 0.0
        # the mass fractions must be specified to compute rho, e, etc.
        other: !ablate::finiteVolume::fieldFunctions::MassFractions
          # the mass fraction class allows for a subset of mass fractions to be specified. The rest are assumed zero.
          eos: *eos
          values:
            - fieldName: N2
              field: 0.724672103
            - fieldName: MMETHAC_C5H8O2
              field: 0.055186656
            - fieldName: O2
              field: 0.220141239
    # the DensityMassFractions reuses the initState to set the densityMassFractions for all species
    - !ablate::finiteVolume::fieldFunctions::DensityMassFractions
      state: *initState

    # Set the number density to zero
    - fieldName: densityProgress
      field: "0.0"
solvers:
  - !ablate::finiteVolume::CompressibleFlowSolver
    id: flowField
    region:
      name: interiorCells
    eos: *eos
    monitors:
      - !ablate::monitors::RadiationFlux
        region:
          name: boundaryFaces
        radiation:
          - !ablate::radiation::OrthogonalRadiation
            id: tcp
            region:
              name: interiorCells
            properties: !ablate::eos::radiationProperties::SootSpectrumProperties
              eos: *eos
              wavelengths: [ 650.0E-9, 532.0E-9, 470.0E-9 ] # Red wavelength, Green wavelength, Blue wavelength
              bandwidths: [ 10E-9, 10E-9 , 10E-9 ]
        log: !<!ablate::monitors::logs::StdOut> ""
  - !ablate::boundarySolver::BoundarySolver
    id: boundary
    region:
      name: boundaryCells
    fieldBoundary:
      name: boundaryFaces
    processes:
      - !ablate::boundarySolver::lodi::Inlet
        eos: *eos