tem_varSys_deriveVar_test Program

Uses

This UTEST is to test variable system. load variables and access state and derive quantities from c pointer methoddata


Calls

program~~tem_varsys_derivevar_test~~CallsGraph program~tem_varsys_derivevar_test tem_varSys_deriveVar_test proc~load_env load_env program~tem_varsys_derivevar_test->proc~load_env interface~positionofval~4 positionofval program~tem_varsys_derivevar_test->interface~positionofval~4 proc~tem_varsys_append_dervar tem_varSys_append_derVar program~tem_varsys_derivevar_test->proc~tem_varsys_append_dervar proc~tem_varsys_append_statevar tem_varSys_append_stateVar program~tem_varsys_derivevar_test->proc~tem_varsys_append_statevar proc~tem_varsys_init tem_varSys_init program~tem_varsys_derivevar_test->proc~tem_varsys_init proc~fin_env fin_env program~tem_varsys_derivevar_test->proc~fin_env proc~tem_start tem_start proc~load_env->proc~tem_start proc~tem_logging_load_primary tem_logging_load_primary proc~load_env->proc~tem_logging_load_primary proc~open_config_chunk open_config_chunk proc~load_env->proc~open_config_chunk proc~tem_load_general tem_load_general proc~load_env->proc~tem_load_general proc~close_config close_config proc~load_env->proc~close_config proc~load_tem_bc_prop load_tem_BC_prop proc~load_env->proc~load_tem_bc_prop proc~load_tem load_tem proc~load_env->proc~load_tem proc~posofval_label posofval_label interface~positionofval~4->proc~posofval_label proc~tem_varsys_append_dervar->interface~positionofval~4 interface~append~21 append proc~tem_varsys_append_dervar->interface~append~21 proc~tem_varsys_append_statevar->interface~append~21 interface~init~20 init proc~tem_varsys_init->interface~init~20 mpi_finalize mpi_finalize proc~fin_env->mpi_finalize

Contents


Variables

TypeAttributesNameInitial
type(tem_varSys_type) :: varSys
procedure(tem_varSys_proc_point), pointer:: get_point=> NULL()
procedure(tem_varSys_proc_element), pointer:: get_element=> NULL()
procedure(tem_varSys_proc_setParams), pointer:: set_params=> null()
procedure(tem_varSys_proc_getParams), pointer:: get_params=> null()
procedure(tem_varSys_proc_setupIndices), pointer:: setup_indices=> null()
procedure(tem_varSys_proc_getValOfIndex), pointer:: get_valOfIndex=> null()
type(solver_type), target:: solver
integer :: addedPos
integer :: statePos
integer :: densityPos
integer :: iElem
integer :: iComp
integer :: iDof
integer :: elem_offset
integer :: comp_offset
integer :: nElems_track
integer, allocatable:: elemPos(:)
logical :: wasAdded
real(kind=rk), allocatable:: res(:)
character(len=labelLen), allocatable:: input_varname(:)

Derived Types

type :: solver_type

Components

TypeVisibilityAttributesNameInitial
integer, public :: nComps
integer, public :: nDofs
real(kind=rk), public, allocatable:: state(:)
type(treelmesh_type), public :: tree
type(tem_BC_prop_type), public :: boundary
type(tem_general_type), public :: general

Subroutines

subroutine access_state(fun, varSys, elempos, time, tree, n, nDofs, res)

access state variables

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

TreeID of the element to get the variable for.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

integer, intent(in) :: n

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

The first dimension are the n requested entries and the second dimension are the components of this variable. Third dimension are the degrees of freedom.

subroutine derive_density(fun, varSys, elempos, time, tree, n, nDofs, res)

derive density variables

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

TreeID of the element to get the variable for.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

integer, intent(in) :: n

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

The first dimension are the n requested entries and the second dimension are the components of this variable. Third dimension are the degrees of freedom.