multiplicative_generator_core_procedures Submodule

Contains module procedures associated with the multiplicative generator core class



Module Subroutines

module subroutine initCore(this, gridObj, partitionObj, procRank, rowCoords, fluidCol, fixedVVals, vValsDependOnX)

Multiplicative generator core initialization routine

Arguments

Type IntentOptional Attributes Name
class(MultiplicativeGeneratorCore), intent(inout) :: this
type(Grid), intent(in) :: gridObj

Grid object used to determine local number of rows

type(Partition), intent(in) :: partitionObj

Partition object used to determine local number of rows

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

Current processor rank

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

Global row coordinate values

logical, intent(in), optional :: fluidCol

True if column variable is fluid. Defaults to false.

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

Fixed velocity stencil values when the row variable is fluid and the column variable is kinetic

logical, intent(in), optional :: vValsDependOnX

True if v stencil has spatial dependence. Defaults to false.

module subroutine calcCoreVals(this, res, xVals, hVals, vVals)

Calculate multiplicative core values. All passed stencil values should be indexed starting at the first evolved point. If there are any gaps in the row values those must also be included for indexing to work.

Arguments

Type IntentOptional Attributes Name
class(MultiplicativeGeneratorCore), intent(inout) :: this
type(RealArray), intent(inout), allocatable, dimension(:) :: res
type(RealArray), intent(in), dimension(:) :: xVals

x stencil values

type(RealArray), intent(in), optional, dimension(:) :: hVals

h stencil values

type(RealArray), intent(in), optional, dimension(:) :: vVals

v stencil values