mod_radiation Module

Radiation coupling driver.

This module owns MPI/data plumbing for radiation so model developers do not need to touch MPI. Physics kernels live under src/radiation/models/ and operate on mesh, radiation_context_t, radiation_state_t, and radiation_source_t only.



Subroutines

public subroutine radiation_finalize(context)

Arguments

Type IntentOptional Attributes Name
type(radiation_context_t), intent(inout) :: context

public subroutine radiation_initialize(mesh, rad, params, context)

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
type(radiation_mpi_t), intent(in) :: rad
type(case_params_t), intent(in) :: params
type(radiation_context_t), intent(inout) :: context

public subroutine radiation_update_source(mesh, bc, flow, rad, context, params, energy, species_Y, step, time, dt)

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
type(bc_set_t), intent(in) :: bc
type(flow_mpi_t), intent(inout) :: flow
type(radiation_mpi_t), intent(in) :: rad
type(radiation_context_t), intent(inout) :: context
type(case_params_t), intent(in) :: params
type(energy_fields_t), intent(inout) :: energy
real(kind=rk), intent(in), optional :: species_Y(:,:)
integer, intent(in) :: step
real(kind=rk), intent(in) :: time
real(kind=rk), intent(in) :: dt

private subroutine compute_gather_debug(flow, context, state, debug_T_diff, debug_Y_diff)

Arguments

Type IntentOptional Attributes Name
type(flow_mpi_t), intent(in) :: flow
type(radiation_context_t), intent(in) :: context
type(radiation_state_t), intent(in) :: state
real(kind=rk), intent(out) :: debug_T_diff
real(kind=rk), intent(out) :: debug_Y_diff

private subroutine local_wavenumber_bounds(n_wavenumbers, nprocs, rank, first, last, nlocal)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_wavenumbers
integer, intent(in) :: nprocs
integer, intent(in) :: rank
integer, intent(out) :: first
integer, intent(out) :: last
integer, intent(out) :: nlocal

private subroutine prepare_radiation_state(mesh, flow, context, params, energy, species_Y, step, time, dt, state, debug_T_diff, debug_Y_diff)

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
type(flow_mpi_t), intent(inout) :: flow
type(radiation_context_t), intent(in) :: context
type(case_params_t), intent(in) :: params
type(energy_fields_t), intent(in) :: energy
real(kind=rk), intent(in), optional :: species_Y(:,:)
integer, intent(in) :: step
real(kind=rk), intent(in) :: time
real(kind=rk), intent(in) :: dt
type(radiation_state_t), intent(inout) :: state
real(kind=rk), intent(out) :: debug_T_diff
real(kind=rk), intent(out) :: debug_Y_diff

private subroutine write_radiation_diagnostics(mesh, rad, context, state, source, step, time, dt, gather_time, compute_time, reduce_time, debug_T_diff, debug_Y_diff)

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
type(radiation_mpi_t), intent(in) :: rad
type(radiation_context_t), intent(inout) :: context
type(radiation_state_t), intent(in) :: state
type(radiation_source_t), intent(in) :: source
integer, intent(in) :: step
real(kind=rk), intent(in) :: time
real(kind=rk), intent(in) :: dt
real(kind=rk), intent(in) :: gather_time
real(kind=rk), intent(in) :: compute_time
real(kind=rk), intent(in) :: reduce_time
real(kind=rk), intent(in) :: debug_T_diff
real(kind=rk), intent(in) :: debug_Y_diff

private subroutine write_radiation_setup(mesh, rad, params, context)

Arguments

Type IntentOptional Attributes Name
type(mesh_t), intent(in) :: mesh
type(radiation_mpi_t), intent(in) :: rad
type(case_params_t), intent(in) :: params
type(radiation_context_t), intent(inout) :: context