TermGenerator object used to generate electron Boltzmann terms with variable inelastic mappings based on associated variables in species list and CRM modelbound data. Assumes that all passed transition indices correspond to variable inlastic mapping transitions. Assumes that the cross-section values in the transitions include any nonlinear normalization dependence (e.g. recombination etc.)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
| type(VarData), | private, | allocatable, dimension(:) | :: | vData |
Individual term variable data including densities and required modelbound data |
||
| character(len=:), | private, | allocatable | :: | distributionName |
Evolved and implicit distribution name |
||
| integer(kind=ik), | private, | allocatable, dimension(:) | :: | transitionIndices |
Included transition indices |
||
| logical, | private | :: | absorptionTerms |
True if generating absorption terms. Defaults to false. |
|||
| logical, | private | :: | superelasticTerms |
True if generating superelastic terms. Defaults to false. |
|||
| integer(kind=ik), | private | :: | evolvedHarmonic |
Index of harmonic for which this generator should be generating terms |
|||
| type(EnvironmentWrapper), | private, | pointer | :: | envPointer | => | null() | |
| real(kind=rk), | private | :: | normConst |
Normalization constant for the generated terms |
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 |
Move allocation of impTerms to this%implicitTerms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(inout) | :: | this | |||
| type(MatTermContainer), | intent(inout), | allocatable, dimension(:) | :: | impTerms |
Move allocation of genTerms to this%generalTerms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(inout) | :: | this | |||
| type(TermContainer), | intent(inout), | allocatable, dimension(:) | :: | genTerms |
Set prefix for added term names
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | prefix |
Get size of this%implicitTerms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(in) | :: | this |
Get size of this%generalTerms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(in) | :: | this |
Get size of this%generalTerms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(in) | :: | this |
Move terms to modelObj
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TermGenerator), | intent(inout) | :: | this | |||
| class(Model), | intent(inout) | :: | modelObj | |||
| type(IntArray), | intent(in), | optional, | dimension(:) | :: | impTermImpGroups | |
| type(IntArray), | intent(in), | optional, | dimension(:) | :: | impTermGenGroups | |
| type(IntArray), | intent(in), | optional, | dimension(:) | :: | genTermGroups |
Constructor routine for CRM Variable Boltzmann term generator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(CRMVarBoltzTermGenerator), | intent(inout) | :: | this | |||
| type(EnvironmentWrapper), | intent(in), | target | :: | envObj |
Environment wrapper used to get species data, partition info, etc. |
|
| class(Normalization), | intent(in) | :: | normObj |
Normalization object used to calculate the normalization constant for the generated terms |
||
| type(ModelboundCRMData), | intent(in) | :: | crmData |
CRM data object used to get transition data |
||
| character(len=*), | intent(in) | :: | distributionName |
Evolved and implicit distribution name |
||
| integer(kind=ik), | intent(in), | dimension(:) | :: | includedTransitionIndices |
List of transitions to be included in calculations by this generator. |
|
| integer(kind=ik), | intent(in) | :: | evolvedHarmonic |
Index of harmonic for which this generator should be generating terms |
||
| character(len=*), | intent(in) | :: | generatorTag | |||
| logical, | intent(in), | optional | :: | absorptionTerms |
True if this is an absorption term stencil generator. Defaults to false. |
|
| logical, | intent(in), | optional | :: | superelasticTerms |
True if this is a superelastic term stencil generator. Defaults to false. |
|
| integer(kind=ik), | intent(in), | optional | :: | associatedVariableIndex |
Density index in associated variable array. Defaults to 1. |
Generates and allocates parent implicit variable Boltzmann terms
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(CRMVarBoltzTermGenerator), | intent(inout) | :: | this | |||
| class(ModelboundData), | intent(in), | optional | :: | mbData |