scaling_lbc_stencil_gen_procedures Submodule

Contains module procedures associated with the scaling logical boundary condition stencil generator class



Module Subroutines

module subroutine initScalingLBCGen(this, vspaceObj, isActive, fDeriv, fDerivReqIndices, colL, dx, includedDecompHarmonics)

Scaling logical boundary condition value generator initialization routine

Arguments

Type IntentOptional Attributes Name
class(ScalingLBCStencilGen), intent(inout) :: this
type(VSpace), intent(in) :: vspaceObj

VSpace object used to get grid data

logical, intent(in) :: isActive

Set to true if the process containing this has a boundary where this is to be applied

type(FScalingDerivation), intent(in) :: fDeriv

Derivation used to get scaling factors

integer(kind=ik), intent(in), dimension(:) :: fDerivReqIndices

Indices required for scaling extrapolation derivation

integer(kind=ik), intent(in) :: colL

Column l harmonic

real(kind=rk), intent(in) :: dx

Boundary cell width

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

Harmonics to be included in the decomposition for this generator (useful for right boundary on staggered grid). Defaults to all harmonics.

module subroutine calcScalingLBCVals(this, varCont, res, mbData, hostModel)

Calculate scaling logical boundary condition values in place

Arguments

Type IntentOptional Attributes Name
class(ScalingLBCStencilGen), intent(inout) :: this
type(VariableContainer), intent(in) :: varCont
type(RealArray), intent(inout), allocatable, dimension(:) :: res
class(ModelboundData), intent(in), optional :: mbData
class(ModelSurrogate), intent(in), optional :: hostModel