mod_radiation_types Module

Public radiation data contract.

Radiation physics kernels should consume only these types plus the static mesh. MPI gather/reduction, flow ownership, restart, and energy coupling remain in the radiation driver. Model developers implement files under src/radiation/models/ and should not need MPI calls.



Derived Types

type, public ::  radiation_context_t

Components

Type Visibility Attributes Name Initial
logical, public :: debug = .false.
character(len=path_len), public :: diagnostics_file = ''
logical, public :: diagnostics_initialized = .false.
logical, public :: enabled = .false.
logical, public :: mesh_cached = .false.
character(len=name_len), public :: model = 'none'
integer, public :: n_scalars = 0
integer, public :: n_species = 0
integer, public :: n_wavenumbers = 0
integer, public :: ncells = 0
integer, public :: nfaces = 0
integer, public :: nlocal_wavenumbers = 0
character(len=name_len), public :: pressure_source = 'background'
integer, public :: rad_rank = -1
integer, public :: rad_size = 0
character(len=name_len), public, allocatable :: scalar_name(:)
character(len=path_len), public :: setup_file = ''
logical, public :: setup_written = .false.
integer, public, allocatable :: species_index(:)
character(len=name_len), public, allocatable :: species_name(:)
integer, public :: wn_first = 0
integer, public :: wn_last = -1
logical, public :: write_diagnostics = .true.

type, public ::  radiation_source_t

Components

Type Visibility Attributes Name Initial
real(kind=rk), public, allocatable :: qrad(:)

type, public ::  radiation_state_t

Components

Type Visibility Attributes Name Initial
real(kind=rk), public, allocatable :: Y(:,:)
real(kind=rk), public :: dt = zero
integer, public :: n_scalars = 0
integer, public :: n_species = 0
integer, public :: ncells = 0
integer, public, allocatable :: phase(:)
real(kind=rk), public, allocatable :: pressure(:)
real(kind=rk), public, allocatable :: scalars(:,:)
integer, public :: step = 0
real(kind=rk), public, allocatable :: temperature(:)
real(kind=rk), public :: time = zero

Subroutines

public subroutine allocate_radiation_source(source, ncells)

Arguments

Type IntentOptional Attributes Name
type(radiation_source_t), intent(inout) :: source
integer, intent(in) :: ncells

public subroutine allocate_radiation_state(state, ncells, n_species, n_scalars)

Arguments

Type IntentOptional Attributes Name
type(radiation_state_t), intent(inout) :: state
integer, intent(in) :: ncells
integer, intent(in) :: n_species
integer, intent(in) :: n_scalars

public subroutine free_radiation_source(source)

Arguments

Type IntentOptional Attributes Name
type(radiation_source_t), intent(inout) :: source

public subroutine free_radiation_state(state)

Arguments

Type IntentOptional Attributes Name
type(radiation_state_t), intent(inout) :: state