tem_variable_type Derived Type

type, public :: tem_variable_type

Description of user defined variables.


Components

Type Visibility Attributes Name Initial
character(len=LabelLen), public :: label

A name for this variable.

integer, public :: nComponents

Number of components of this variable

character(len=labelLen), public :: varType

How to treat this variable: "operation" or "st_fun"

character(len=labelLen), public :: operType

Type of Operation to perfom on this variable

type(tem_reduction_transient_config_type), public :: redTransConfig

additional info to load for reduction transient operation

character(len=LabelLen), public, allocatable :: input_varName(:)

input variables names this variable depends on

integer, public, allocatable :: input_varIndex(:)

Component index to extract from input_varName for operType = 'extract' NOTE: It is possible to extract of component index from only one variable so input_varName for operType="extract" must be single variable name

type(tem_spacetime_fun_type), public, allocatable :: st_fun(:)

space time functions

character(len=labelLen), public :: evalType

The evaluation type to use. The evaluation type defines how the variable should evaluate a get_point or get_element-request when there are more than one space time functions that could fulfill this request.

The standard evaluation type is 'add'. So every space time function is asked to fulfill the request and all results are added up to the final result returned back to the caller.

Another evaluation type is 'last' which takes the sole value of the last space time function that was able to fulfill this request. For this evaluation type the ordering of the space time functions in the variable definition is important.

procedure(tem_append_solverVar_method), public, pointer :: append_solverVar => NULL()

A method to append the read solver specific variable to the varSys

type(c_ptr), public :: solver_specifics = C_NULL_PTR

Source Code

  type tem_variable_type
    !> A name for this variable.
    character(len=LabelLen) :: label

    !> Number of components of this variable
    integer :: nComponents

    !> How to treat this variable: "operation" or "st_fun"
    character(len=labelLen) :: varType

    !> Type of Operation to perfom on this variable
    character(len=labelLen) :: operType

    !> additional info to load for reduction transient operation
    type(tem_reduction_transient_config_type) :: redTransConfig

    !> input variables names this variable depends on
    character(len=LabelLen), allocatable :: input_varName(:)

    !> Component index to extract from input_varName for operType = 'extract'
    !! NOTE: It is possible to extract of component index from only one
    !! variable so input_varName for operType="extract" must be single
    !! variable name
    integer, allocatable :: input_varIndex(:)

    !> space time functions
    type(tem_spacetime_fun_type), allocatable :: st_fun(:)

    !> The evaluation type to use. The evaluation type defines how the variable
    !! should evaluate a get_point or get_element-request when there are more
    !! than one space time functions that could fulfill this request.
    !!
    !! The standard evaluation type is 'add'. So every space time function is
    !! asked to fulfill the request and all results are added up to the final
    !! result returned back to the caller.
    !!
    !! Another evaluation type is 'last' which takes the sole value of the last
    !! space time function that was able to fulfill this request. For this
    !! evaluation type the ordering of the space time functions in the variable
    !! definition is important.
    character(len=labelLen) :: evalType

    !> A method to append the read solver specific variable to the varSys
    procedure(tem_append_solverVar_method), pointer :: append_solverVar &
      &                                                => NULL()
    type(c_ptr) :: solver_specifics = C_NULL_PTR
  end type tem_variable_type