explicit_term_abstract_procedures Submodule

Contains module procedures associated with the abstract explicit term class



Module Functions

pure module function unityFun(this, varCont, indexingData) result(res)

Default multiplicative function - returns a real vector of ones based on evolvedVarName. In general should use passed variable container and indexing data to construct a vector conforming to the evolved variable

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(in) :: this
type(VariableContainer), intent(in) :: varCont
type(ExplicitTermIndexingData), intent(in) :: indexingData

Return Value real(kind=rk), allocatable, dimension(:)

pure module function getNormalizationConst(this) result(norm)

Getter for normalizationConst

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(in) :: this

Return Value real(kind=rk)

pure module function evaluateExpTerm(this, varCont) result(res)

Evaluates the term as multConst * multFun [* operatorTerm%actOn()] depending on whether the Operator is allocated

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(in) :: this
type(VariableContainer), intent(in) :: varCont

Return Value real(kind=rk), allocatable, dimension(:)

pure module function getMultConst(this) result(multConst)

Getter for multConst

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(in) :: this

Return Value real(kind=rk), allocatable, dimension(:)

pure module function getEvolvedVarName(this) result(name)

Get name of the evolved variable of this term

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(in) :: this

Return Value character(len=:), allocatable


Module Subroutines

module subroutine simpleUpdate(this, varCont, modelData, hostModel)

Default update function - just calls update on Operator if allocated

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
type(VariableContainer), intent(in) :: varCont

Variable container used in update

class(ModelboundData), intent(in), optional :: modelData

Reference model data - unused

class(ModelSurrogate), intent(in), optional :: hostModel

Host model - unused

pure module subroutine setOperator(this, op)

Setter for termOperator

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
class(Operator), intent(in) :: op

pure module subroutine setNormalizationConst(this, norm)

Setter for normalizationConst

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
real(kind=rk), intent(in) :: norm

pure module subroutine setReqVars(this, reqVars, varCont)

Set variable names required by the multiplicative function and find their indices in variable container

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
type(StringArray), intent(in), dimension(:) :: reqVars
type(VariableContainer), intent(in) :: varCont

pure module subroutine setEvolvedAndOperatedVar(this, evolvedVarName, operatedVarName)

Set evolved and operated (if applicable) variable names

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
character(len=*), intent(in) :: evolvedVarName
character(len=*), intent(in), optional :: operatedVarName

pure module subroutine setMultConst(this, multConst)

Setter for multConst

Arguments

Type IntentOptional Attributes Name
class(ExplicitTerm), intent(inout) :: this
real(kind=rk), intent(in), dimension(:) :: multConst