crm_secondary_el_source_term_generator_class Module

Houses TermGenerator object used to generate secondary electron source/sink terms for based on associated variables in species list and CRM modelbound data



Interfaces

interface

  • private module subroutine initCRMSecElTermGenerator(this, envObj, crmData, distributionName, generatorTag, includedTransitionIndices)

    Constructor routine for CRM secondary electron source/sink term generator

    Arguments

    Type IntentOptional Attributes Name
    class(CRMSecElTermGenerator), 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) :: distributionName

    Evolved distribution name

    character(len=*), intent(in) :: generatorTag
    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

interface

  • private module subroutine generateSecElSourceTerms(this, mbData)

    Generates and allocates parent implicit secondary electron source/sink terms

    Arguments

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

interface

  • private elemental module subroutine finalizeCRMSecElGenerator(this)

    Deallocate pointer component

    Arguments

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

Derived Types

type, public, extends(TermGenerator) ::  CRMSecElTermGenerator

TermGenerator object used to generate secondary electron source/sink terms based on associated variables in species list and CRM modelbound data.

Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

integer(kind=ik), private, allocatable, dimension(:) :: popChange

Population change associated with each source term reaction

type(VarData), private, allocatable, dimension(:) :: vData

Individual term variable data including densities and required modelbound data

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

Evolved distribution name

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

Implicit density names (corresponding to last inState in transitions)

type(EnvironmentWrapper), private, pointer :: envPointer => null()

Finalizations Procedures

final :: finalizeCRMSecElGenerator

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 => initCRMSecElTermGenerator
procedure, public :: generate => generateSecElSourceTerms