crm_dens_term_generator_class Module

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


Used by


Interfaces

interface

  • private module subroutine initCRMDensTermGenerator(this, envObj, crmData, generatorTag, evolvedSpeciesIDs, includedTransitionIndices)

    Constructor routine for CRM particle source term generator

    Arguments

    Type IntentOptional Attributes Name
    class(CRMDensTermGenerator), 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
    integer(kind=ik), intent(in), optional, dimension(:) :: evolvedSpeciesIDs

    Optional list of species IDs for which this generator will build source. Defaults to all species.

    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 generatePartSourceTerms(this, mbData)

    Generates and allocates parent implicit particle source terms

    Arguments

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

interface

  • private elemental module subroutine finalizeCRMDensGenerator(this)

    Deallocate pointer component

    Arguments

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

Derived Types

type, public, extends(TermGenerator) ::  CRMDensTermGenerator

TermGenerator object used to generate particle source 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/timeNorm.

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

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

Evolved density names

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

Implicit density names (corresponding to last inState in transitions)

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

Local copy of x-grid size

Finalizations Procedures

final :: finalizeCRMDensGenerator

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 => initCRMDensTermGenerator
procedure, public :: generate => generatePartSourceTerms