fixed_ecs_transition_class Module

Houses fixed transition energy and fixed cross-section transition object


Used by


Interfaces

interface

  • private pure module function getEnergy(this) result(energyCost)

    Returns array representing energy cost of this transition

    Arguments

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

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

interface

  • private pure module subroutine initFixedECSTransition(this, locNumX, inStates, outStates, energy, crossSection, distVarIndex, refVSpace, fixedWIndex, momentumMoment, l1Index)

    Initialization routine for FixedECSTransition object

    Arguments

    Type IntentOptional Attributes Name
    class(FixedECSTransition), 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

    real(kind=rk), intent(in) :: energy

    Transition energy

    real(kind=rk), intent(in), dimension(:,:) :: crossSection

    Cross-section harmonics

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

    Distribution function variable index

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

    Target for the reference pointer

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

    Index of the inelastic weight array corresponding to this transition

    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

interface

  • private module subroutine updateRates(this, varCont, hostModel, hostData, updatePriority)

    Update transition and moment exchange rate (if applicable)

    Arguments

    Type IntentOptional Attributes Name
    class(FixedECSTransition), 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 determine emitting cells for discrete cross-section

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

    Priority for this update call - unused

interface

  • private elemental module subroutine finalizeFixedECSTransition(this)

    Deallocate pointer component

    Arguments

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

Derived Types

type, public, extends(Transition) ::  FixedECSTransition

Transition object with a fixed transition energy and cross-section, which takes moments of a distribution function to calculate rates

Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

real(kind=rk), private :: transitionEnergy
type(VSpace), private, pointer :: vSpaceRef

Reference to velocity space object used in moment-taking

logical, private :: takeMomentumMoment

True if the momentum rate should be allocated and updated by taking the first moment of the l = 1 harmonic

integer(kind=ik), private :: l1HarmonicInd

Index of the l=1 m = 0 harmonic on the harmonic grid

integer(kind=ik), private :: distFunVarIndex

Variable index of the distribution function to be used in moment-taking

integer(kind=ik), private :: locNumX

Size of local rate vectors

integer(kind=ik), private :: fixedWIndex

Index of the inelastic weigth array corresponding to this transition

Finalizations Procedures

final :: finalizeFixedECSTransition

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject
procedure, public :: makeDefined => makeDefinedObject
procedure, public :: makeUndefined => makeUndefinedObject
procedure, public :: getIngoingStates
procedure, public :: getOutgoingStates
procedure, public :: setStates
procedure, public :: setRate
procedure, public :: getRate
procedure, public :: setRateMomentum
procedure, public :: getRateMomentum
procedure, public :: setRateEnergy
procedure, public :: getRateEnergy
procedure, public :: setCrossSection
procedure, public :: setCrossSectionCol
procedure, public :: getCrossSectionCol
procedure, public :: includesElDensity
procedure, public :: setIncludeElectronDensity
procedure, public :: setCSDim
procedure, public :: getCSDim
procedure, public :: getRateSize
procedure, public :: init => initFixedECSTransition
procedure, public :: update => updateRates
procedure, public :: getTransitionEnergy => getEnergy