crm_el_energy_term_generator_class Module

Houses TermGenerator object used to generate electron energy implicit source terms based on associated variables in species list and CRM modelbound data


Used by


Interfaces

interface

  • private module subroutine initCRMElEnergyTermGenerator(this, envObj, crmData, generatorTag, electronEnergyVarName, includedTransitionIndices)

    Constructor routine for CRM energy source/sink term generator

    Arguments

    Type IntentOptional Attributes Name
    class(CRMElEnergyTermGenerator), intent(inout) :: this
    type(EnvironmentWrapper), intent(in), target :: envObj

    Environment wrapper used to get species data, partition info, etc.

    type(ModelboundCRMData), intent(in) :: crmData

    CRM data object used to get transition data

    character(len=*), intent(in) :: generatorTag
    character(len=*), intent(in) :: electronEnergyVarName

    Name of electron energy variable (used as evolved var)

    integer(kind=ik), intent(in), optional, dimension(:) :: includedTransitionIndices

    Optional list of transitions to be included in source calculations by this generator. Defaults to all transitions that include electrons in ingoingStates

interface

  • private module subroutine generateElEnergySourceTerms(this, mbData)

    Generates and allocates parent implicit energy source terms

    Arguments

    Type IntentOptional Attributes Name
    class(CRMElEnergyTermGenerator), intent(inout) :: this
    class(ModelboundData), intent(in), optional :: mbData

interface

  • private elemental module subroutine finalizeCRMElEnergyGenerator(this)

    Deallocate pointer component

    Arguments

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

Derived Types

type, public, extends(TermGenerator) ::  CRMElEnergyTermGenerator

TermGenerator object used to generate electronj energy source and sink terms based on associated variables in species list and CRM modelbound data. Assumes rates are normalized so that the resulting source term is normalized to densNorm*eVTemperature/timeNorm.

Components

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

type(StringArray), private, allocatable, dimension(:) :: implicitVars

Implicit density names (corresponding to last inState in transitions)

character(len=:), private, allocatable :: electronEnergyVarName

Name of implicit electron energy variable

type(EnvironmentWrapper), private, pointer :: envPointer => null()
integer(kind=ik), private :: numX

Local copy of x-grid size

Finalizations Procedures

final :: finalizeCRMElEnergyGenerator

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject
procedure, public :: makeDefined => makeDefinedObject
procedure, public :: makeUndefined => makeUndefinedObject
procedure, public :: setImplicitTerms
procedure, public :: setGeneralTerms
procedure, public :: setGeneratorPrefix
procedure, public :: getNumImplicitTerms
procedure, public :: getNumGeneralTerms
procedure, public :: moveTerms
procedure, public :: init => initCRMElEnergyTermGenerator
procedure, public :: generate => generateElEnergySourceTerms