kinetic_stencil_templates Module

Contains kinetic stencil template generation for use in custom model construction



Interfaces

interface

  • public module subroutine initKineticStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar, mbData)

    Initialize kinetic stencil template based on existing model, environment object, and JSON file

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    class(ModelboundData), intent(in), optional :: mbData

interface

  • public module subroutine initKinDiagonalStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize diagonal stencil template based on environment object and JSON file

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initMomentStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize distribution moment stencil template based on environment object and JSON file

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initSpatialDiffStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize d/dx kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initDDVStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize d/dv kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initVelDiffusionStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize d^2/d^2v kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initIJStencilTemplate(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize Shkarofsky I/J integral kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initFixedBoltzmannStencil(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar, mbData)

    Initialize fixed mapping Boltzmann kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    class(ModelboundCRMData), intent(in) :: mbData

interface

  • public module subroutine initScalingLBCStencil(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize scaling logical boundary condition kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initFixedBoltzmannStencilDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, mbData, evolvedHarmonic, transitionIndex, fixedEnergyIndex, absorptionTerm, dbTerm)

    Initialize fixed mapping Boltzmann kinetic stencil template based on environment non-JSON inputs.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    class(ModelboundCRMData), intent(in) :: mbData
    integer(kind=ik), intent(in) :: evolvedHarmonic
    integer(kind=ik), intent(in) :: transitionIndex
    integer(kind=ik), intent(in) :: fixedEnergyIndex
    logical, intent(in) :: absorptionTerm
    logical, intent(in) :: dbTerm

interface

  • public module subroutine initKinDiagonalStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, evolvedXCells, evolvedHarmonics, evolvedVCells)

    Initialize diagonal stencil template based on environment object and JSON file

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in), dimension(:) :: evolvedXCells
    integer(kind=ik), intent(in), dimension(:) :: evolvedHarmonics
    integer(kind=ik), intent(in), dimension(:) :: evolvedVCells

interface

  • public module subroutine initMomentStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, momentHarmonic, momentOrder)

    Initialize distribution moment stencil template based on direct input data

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: momentHarmonic
    integer(kind=ik), intent(in) :: momentOrder

interface

  • public module subroutine initSpatialDiffStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, rowHarmonic, colHarmonic)

    Initialize d/dx kinetic stencil template based on direct input.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: rowHarmonic
    integer(kind=ik), intent(in) :: colHarmonic

interface

  • public module subroutine initDDVStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, rowHarmonic, colHarmonic, fixedC, fixedInterp, cfAtZero, modelboundC, modelboundInterp)

    Initialize d/dv kinetic stencil template based on direct input.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: rowHarmonic
    integer(kind=ik), intent(in) :: colHarmonic
    real(kind=rk), intent(in), optional, dimension(:) :: fixedC
    real(kind=rk), intent(in), optional, dimension(:) :: fixedInterp
    real(kind=rk), intent(in), optional, dimension(2) :: cfAtZero
    character(len=*), intent(in), optional :: modelboundC
    character(len=*), intent(in), optional :: modelboundInterp

interface

  • public module subroutine initVelDiffusionStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, rowHarmonic, colHarmonic, fixedA, adfAtZero, modelboundA)

    Initialize d^2/d^2v kinetic stencil template based on direct inputs.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: rowHarmonic
    integer(kind=ik), intent(in) :: colHarmonic
    real(kind=rk), intent(in), optional, dimension(:) :: fixedA
    real(kind=rk), intent(in), optional, dimension(2) :: adfAtZero
    character(len=*), intent(in), optional :: modelboundA

interface

  • public module subroutine initIJStencilTemplateDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, rowHarmonic, colHarmonic, integralIndex, jIntegral)

    Initialize Shkarofsky I/J integral kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: rowHarmonic
    integer(kind=ik), intent(in) :: colHarmonic
    integer(kind=ik), intent(in) :: integralIndex
    logical, intent(in) :: jIntegral

interface

  • public module subroutine initScalingLBCStencilDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, rowHarmonic, colHarmonic, decompHarmonics, derivName, derivReqVars, leftBoundary)

    Initialize scaling logical boundary condition kinetic stencil template based on direct input.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: rowHarmonic
    integer(kind=ik), intent(in) :: colHarmonic
    integer(kind=ik), intent(in), dimension(:) :: decompHarmonics
    character(len=*), intent(in) :: derivName
    type(StringArray), intent(in), dimension(:) :: derivReqVars
    logical, intent(in), optional :: leftBoundary

interface

  • public module subroutine initTermMomentStencil(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar)

    Initialize term moment kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar

interface

  • public module subroutine initTermMomentStencilDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, momentOrder, colHarmonic, termName)

    Initialize term moment kinetic stencil template based on direct input.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    integer(kind=ik), intent(in) :: momentOrder
    integer(kind=ik), intent(in) :: colHarmonic
    character(len=*), intent(in) :: termName

interface

  • public module subroutine initVariableBoltzmannStencil(stencilTemplateObj, envObj, jsonPrefix, evolvedVar, implicitVar, mbData)

    Initialize variable mapping Boltzmann kinetic stencil template based on environment object and JSON file.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: jsonPrefix

    prefix for JSON keys for this template

    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    class(ModelboundCRMData), intent(in) :: mbData

interface

  • public module subroutine initVariableBoltzmannStencilDirect(stencilTemplateObj, envObj, evolvedVar, implicitVar, mbData, evolvedHarmonic, transitionIndex, absorptionTerm, superelasticTerm)

    Initialize variable mapping Boltzmann kinetic stencil template based on environment non-JSON inputs.

    Arguments

    Type IntentOptional Attributes Name
    type(StencilTemplate), intent(inout) :: stencilTemplateObj
    type(EnvironmentWrapper), intent(inout) :: envObj
    character(len=*), intent(in) :: evolvedVar
    character(len=*), intent(in) :: implicitVar
    class(ModelboundCRMData), intent(in) :: mbData
    integer(kind=ik), intent(in) :: evolvedHarmonic
    integer(kind=ik), intent(in) :: transitionIndex
    logical, intent(in) :: absorptionTerm
    logical, intent(in) :: superelasticTerm