JaggedArrayGenerator for calculating velocity component of Boltzmann collision operator emission/absorption terms with variable inelastic mappings. Expects upper/lower triangular vStencil (depending on energy sign), otherwise vStencil = [0]. Generates Wvsigma(v) for absorption term or - v*sigma(v) for emission. Assumes no halo in cross-section.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
real(kind=rk), | private, | allocatable, dimension(:) | :: | vGridCopy |
Copy of velocity grid |
||
integer(kind=ik), | private | :: | transitionIndex |
Transition index associated with this stencil generator |
|||
integer(kind=ik), | private | :: | lNum |
Harmonic index of cross-section required, valid only if emission term |
|||
type(SparseRowData), | private, | allocatable | :: | bufferW | |||
logical, | private | :: | absorptionTerm |
True if this is for an absorption term |
|||
logical, | private | :: | superelasticTerm |
True if this is for a superelastic term (negative transition cost) |
Getter for userDefined
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(in) | :: | this |
Set userDefined to .true.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Use in place version of stencil calculation to return values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(JaggedArrayGenerator), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
class(ModelboundData), | intent(in), | optional | :: | mbData | ||
class(ModelSurrogate), | intent(in), | optional | :: | hostModel |
Boltzmann emission/absorption stencil value generator initialization routine with variable cross-sections and weights
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableBoltzmannStencilGen), | intent(inout) | :: | this | |||
type(VSpace), | intent(in) | :: | vspaceObj |
VSpace object used to get grid |
||
integer(kind=ik), | intent(in) | :: | transitionIndex |
Index of transition whose cross-section is required |
||
integer(kind=ik), | intent(in), | optional | :: | lNum |
Harmonic index of cross-section required. Used only if absorption term |
|
logical, | intent(in), | optional | :: | absorptionTerm |
True if this is an absorption term stencil generator. Defaults to false. |
|
logical, | intent(in), | optional | :: | superelasticTerm |
True if this is for a superelastic term (negative transition cost). Defaults to false. |
Calculate Boltzmann emission/absorption stencil values in place (does not depend on varCont)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableBoltzmannStencilGen), | intent(inout) | :: | this | |||
type(VariableContainer), | intent(in) | :: | varCont | |||
type(RealArray), | intent(inout), | allocatable, dimension(:) | :: | res | ||
class(ModelboundData), | intent(in), | optional | :: | mbData | ||
class(ModelSurrogate), | intent(in), | optional | :: | hostModel |