
Stencil generator for v stencil of Boltzmann collision operator emission/absorption terms with variable cross-sections and energies
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 |
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) |
| procedure, public :: isDefined => isDefinedObject | |
| procedure, public :: makeDefined => makeDefinedObject | |
| procedure, public :: makeUndefined => makeUndefinedObject | |
| procedure, public :: calculate | |
| procedure, public :: init => initVarBoltzGen | |
| procedure, public :: calculateInPlace => calcVarBoltzVals |