tem_variable_type Derived Type

type, public :: tem_variable_type

Description of user defined variables.


Inherits

type~~tem_variable_type~~InheritsGraph type~tem_variable_type tem_variable_type c_ptr c_ptr type~tem_variable_type->c_ptr solver_specifics type~tem_reduction_transient_config_type tem_reduction_transient_config_type type~tem_variable_type->type~tem_reduction_transient_config_type redTransConfig type~tem_spacetime_fun_type tem_spacetime_fun_type type~tem_variable_type->type~tem_spacetime_fun_type st_fun flu_State flu_State type~tem_spacetime_fun_type->flu_State conf tem_precice_coupling_type tem_precice_coupling_type type~tem_spacetime_fun_type->tem_precice_coupling_type precice_coupling type~tem_acoustic_pulse_type tem_acoustic_pulse_type type~tem_spacetime_fun_type->type~tem_acoustic_pulse_type acoustic_pulse type~tem_aps_coupling_type tem_aps_coupling_type type~tem_spacetime_fun_type->type~tem_aps_coupling_type aps_coupling type~tem_cylindricalwave_type tem_cylindricalWave_type type~tem_spacetime_fun_type->type~tem_cylindricalwave_type cylindricalWave type~tem_miescatter_field_type~2 tem_miescatter_field_type type~tem_spacetime_fun_type->type~tem_miescatter_field_type~2 mie_fun type~tem_polygon_material_type tem_polygon_material_type type~tem_spacetime_fun_type->type~tem_polygon_material_type polygon_material type~tem_shape_type tem_shape_type type~tem_spacetime_fun_type->type~tem_shape_type geom type~tem_spatial_type tem_spatial_type type~tem_spacetime_fun_type->type~tem_spatial_type spatial type~tem_subtree_type tem_subTree_type type~tem_spacetime_fun_type->type~tem_subtree_type subTree type~tem_temporal_type tem_temporal_type type~tem_spacetime_fun_type->type~tem_temporal_type temporal

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