diffusion_stencil_gen_procedures Submodule

Contains module procedures associated with the diffusion stencil value generator class


Uses


Module Subroutines

module subroutine initDiffusionStencilGen(this, partitionObj, procRank, innerJ, outerJ, linInterp, xPeriodic, diffCoeffDerivRule, xHaloWidth, doNotInterpolateD)

Diffusion stencil value generator initialization routine

Arguments

Type IntentOptional Attributes Name
class(DiffusionStencilValGenerator), intent(inout) :: this
type(Partition), intent(in) :: partitionObj

Partition object used to determine local number of rows

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

Current processor rank

real(kind=rk), intent(in), dimension(:) :: innerJ

Inner/column jacobian/hodge star (should conform to x-grid)

real(kind=rk), intent(in), dimension(:) :: outerJ

Outer/row inverse jacobian/hodge star (should conform to x-grid)

real(kind=rk), intent(in), dimension(:) :: linInterp

Linear interpolation coefficients to right cell faces (should be size(xGrid)+1)

logical, intent(in), optional :: xPeriodic

Used to determine if outer processors should have their stencils trimmed. Defaults to .false.

type(CalculationRule), intent(in), optional :: diffCoeffDerivRule

Rule for deriving the optional diffusion coefficient

integer(kind=ik), intent(in), optional :: xHaloWidth

Halo width in the x direction. Defaults to 1 and must always be >0

logical, intent(in), optional :: doNotInterpolateD

Assume the diffusion coefficient is already calcuated at cell boundaries. Defaults to False.

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

Calculate diffusion stencil values in place

Arguments

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