uwc_diff_stencil_gen_procedures Submodule

Contains module procedures associated with the central/upwinding difference stencil value generator class


Uses


Module Subroutines

module subroutine initUWCDiffStencil(this, partitionObj, procRank, innerJ, outerJ, linInterp, xPeriodic, interpVarIndex, upwindingMode, staggeredGridMode)

Central/upwind differentiation stencil value generator initialization routine

Arguments

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

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

Optional interpolated variable index

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

0 - no upwinding, 1 - upwinding with stencil containing the flux jacobian, 2- upwinding with stencil not including flux jacobian. Defaults to 0.

logical, intent(in), optional :: staggeredGridMode

Removes last row if true

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

Calculate central/upwind diff stencil values in place

Arguments

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