
Houses abstract object responsible for handling rates and cross-sections, as well as characterization of various transitions
Getter for ingoingStates
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for outgoingStates
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for rate values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for rateMomentum values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for rateEnergy
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Get cross-section values from column col
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this | |||
| integer(kind=ik), | intent(in) | :: | col |
Check whether rates in this transition include an electron density factor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for csDim
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Getter for rate array length
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Setter for both ingoing and outgoing states
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| integer(kind=ik), | intent(in), | dimension(:) | :: | inStates |
Ingoing state IDs |
|
| integer(kind=ik), | intent(in), | dimension(:) | :: | outStates |
Outgoing state IDs |
Setter for rate values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:) | :: | rate |
Setter for rateMomentum values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:) | :: | rate |
Setter for rateEnergy
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:) | :: | rate |
Set cross-section values in column col
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:) | :: | crossSection | ||
| integer(kind=ik), | intent(in) | :: | col |
Setter for crossSection
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:,:) | :: | crossSection |
Setter for rateContainsElDensity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| logical, | intent(in) | :: | includeDens |
Default update routine - does nothing
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| type(VariableContainer), | intent(in) | :: | varCont |
Variable container used in update |
||
| class(ModelSurrogate), | intent(in), | optional | :: | hostModel |
Optional host model reference for callbacks during update |
|
| class(ModelboundData), | intent(in), | optional | :: | hostData |
Optional host data reference for callbacks during update |
|
| integer(kind=ik), | intent(in), | optional | :: | updatePriority |
Priority for this update call |
Setter for csDim
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(inout) | :: | this | |||
| integer(kind=ik), | intent(in) | :: | csDim |
Returns array representing energy cost of this transition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Transition), | intent(in) | :: | this |
Represents a process in which an ingoing set of particles(states) is transformed into an outgoing set and to which quantities representing particle/momentum/energy exchange rates can be meaningfully assigned. Optionally, a Transition can have a cross-section object of rank 2 to accommodate anisotropic differential cross-sections.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
| integer(kind=ik), | private, | allocatable, dimension(:) | :: | ingoingStates |
Array of IDs associated with the ingoing states |
||
| integer(kind=ik), | private, | allocatable, dimension(:) | :: | outgoingStates |
Array of IDs associated with the outgoing states |
||
| real(kind=rk), | private, | allocatable, dimension(:) | :: | rate |
Spatial array associated with the (particle) Transition rate |
||
| real(kind=rk), | private, | allocatable, dimension(:) | :: | rateMomentum |
Spatial array associated with the momentum exchange rate |
||
| real(kind=rk), | private, | allocatable, dimension(:) | :: | rateEnergy |
Spatial array associated with the energy rate |
||
| real(kind=rk), | private, | allocatable, dimension(:,:) | :: | crossSection |
Differential cross-section associated with the process - optional |
||
| logical, | private | :: | rateContainsElDensity | = | .false. |
Set to true if rate calculations already include one electron density factor from taking the rate moment |
|
| integer, | private | :: | csDim | = | -1 |
Cross-section dimensionality - used to properly expose cs data |
| 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 :: update => noUpdate | |
| procedure(returnEnergy), public, deferred :: getTransitionEnergy |