variable_ecs_transition_procedures Submodule

Contains module procedures associated with the variable energy and cross section transition class



Module Functions

pure module function getEnergy(this) result(energyCost)

Returns array representing energy cost of this transition

Arguments

Type IntentOptional Attributes Name
class(VariableECSTransition), intent(in) :: this

Return Value real(kind=rk), allocatable, dimension(:)


Module Subroutines

pure module subroutine initVariableECSTransition(this, locNumX, inStates, outStates, energyDeriv, energyDerivIndices, csDerivs, csDerivsReqIndices, csCols, distVarIndex, refVSpace, momentumMoment, l1Index)

Initialization routine for VariableECSTransition object

Arguments

Type IntentOptional Attributes Name
class(VariableECSTransition), intent(inout) :: this
integer(kind=ik), intent(in) :: locNumX

Local number of spatial cells

integer(kind=ik), intent(in), dimension(:) :: inStates

Pre-transition states

integer(kind=ik), intent(in), dimension(:) :: outStates

Post-transition states

class(Derivation), intent(in) :: energyDeriv

Derivation object used in rate calculation

integer(kind=ik), intent(in), dimension(:) :: energyDerivIndices

Indices for rate derivation

type(DerivationContainer), intent(in), dimension(:) :: csDerivs

Derivation objects for the various cross section data columns

type(IntArray), intent(in), dimension(:) :: csDerivsReqIndices

Required indices for the various cross section data column derivations

integer(kind=ik), intent(in), dimension(:) :: csCols

Cross section columns corresponding to each of the derivations

integer(kind=ik), intent(in) :: distVarIndex

Distribution function variable index

type(VSpace), intent(inout), target :: refVSpace

Target for the reference pointer

logical, intent(in), optional :: momentumMoment

Set to true if the momentum rate should be calculated

integer(kind=ik), intent(in), optional :: l1Index

Index of the l=1 harmonic - must be provided if calculating momentum rate

module subroutine updateCSRates(this, varCont, hostModel, hostData, updatePriority)

Update transition properties

Arguments

Type IntentOptional Attributes Name
class(VariableECSTransition), intent(inout) :: this
type(VariableContainer), intent(in) :: varCont

Variable container used in update

class(ModelSurrogate), intent(in), optional :: hostModel

Host model - unused

class(ModelboundData), intent(in), optional :: hostData

Host data - used to get emission vectors

integer(kind=ik), intent(in), optional :: updatePriority

Priority for this update call - unused

elemental module subroutine finalizeVariableECSTransition(this)

Deallocate pointer component

Arguments

Type IntentOptional Attributes Name
type(VariableECSTransition), intent(inout) :: this