v_diffusion_stencil_gen_procedures Submodule

Contains module procedures associated with the d(Ad/dv)/dv stencil generator class



Module Subroutines

module subroutine initVDiffValGen(this, partitionObj, vspaceObj, procRank, activeXCoords, fixedA, mbA, adfAtZero)

d(Ad/dv)/dv stencil value generator initialization routine

Arguments

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

Partition object used to determine local number of rows

type(VSpace), intent(in) :: vspaceObj

VSpace object used to get interpolation object

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

Current processor rank

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

List of active global x coords

real(kind=rk), intent(in), optional, dimension(:) :: fixedA

Fixed A values (size numV). Defaults to ones.

character(len=*), intent(in), optional :: mbA

Optional modelbound value for A (single harmonic variable). Overrides fixed values.

real(kind=rk), intent(in), optional, dimension(2) :: adfAtZero

Optional extrapolation of Adf/dv at zero in the form A1f(v1)+A2*f(v2) where all A's are fixed.

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

Calculate d(Ad/dv)/dv stencil values in place (does not depend on varCont)

Arguments

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