tem_spacetime_var_module Module

This module provides variable definitions for space time functions.


Uses

Used by

  • module~~tem_spacetime_var_module~~UsedByGraph module~tem_spacetime_var_module tem_spacetime_var_module module~tem_varmap_module tem_varMap_module module~tem_varmap_module->module~tem_spacetime_var_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_operation_var_module tem_operation_var_module module~tem_derived_module->module~tem_operation_var_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_spacetime_var_module module~tem_general_module tem_general_module program~tem_varsys_test->module~tem_general_module module~tem_operation_var_module->module~tem_varmap_module module~tem_depend_module tem_depend_module module~tem_depend_module->module~tem_varmap_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_derived_module program~tem_varsys_stfunvar_test->module~tem_general_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_derived_module program~tem_logical_opertor_test->module~tem_general_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_derived_module program~tem_variable_combine_test->module~tem_general_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_derived_module program~tem_variable_extract_test->module~tem_general_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_derived_module program~tem_variable_evaltype_test->module~tem_general_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_derived_module program~tem_varsys_opvar_test->module~tem_general_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_varmap_module module~hvs_output_module hvs_output_module module~tem_tracking_module->module~hvs_output_module module~tem_simcontrol_module tem_simControl_module module~tem_tracking_module->module~tem_simcontrol_module module~hvs_output_module->module~tem_varmap_module module~tem_restart_module tem_restart_module module~hvs_output_module->module~tem_restart_module module~tem_restart_module->module~tem_varmap_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_varmap_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_varmap_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module module~tem_general_module->module~tem_restart_module module~tem_general_module->module~tem_abortcriteria_module module~tem_general_module->module~tem_simcontrol_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_depend_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_module module~tem_simcontrol_module->module~tem_convergence_module module~tem_simcontrol_module->module~tem_abortcriteria_module program~tem_face_test~2 tem_face_test program~tem_face_test~2->module~tem_general_module program~tem_face_test tem_face_test program~tem_face_test->module~tem_general_module program~tem_sparta_test tem_sparta_test program~tem_sparta_test->module~tem_general_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_general_module program~tem_face_test~3 tem_face_test program~tem_face_test~3->module~tem_general_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_general_module program~tem_varsys_statevar_test tem_varSys_stateVar_test program~tem_varsys_statevar_test->module~tem_general_module module~tem_utestenv_module tem_utestEnv_module module~tem_utestenv_module->module~tem_general_module program~bin_search_test bin_search_test program~bin_search_test->module~tem_general_module

Contents


Interfaces

public interface tem_varSys_append_stfun

  • private subroutine tem_varSys_append_stFunVar(stFunVar, varSys, st_funList, solverData_evalElem)

    subroutine to add the variables from the input lua script to the varsys

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_variable_type), intent(in) :: stFunVar

    variables defined in the lua file

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

    global variable system to which stFunVar to be appended

    type(tem_st_fun_linkedList_type), intent(inout) :: st_funList

    contains spacetime functions of all variables

    type(tem_varSys_solverData_evalElem_type), intent(in), optional :: solverData_evalElem

    A setter routine that allows the caller to define routine for the construction of an element representation.

  • private subroutine tem_varSys_append_stFun_raw(varSys, stFun, varname, nComp, evaltype, st_funList, solverData_evalElem)

    subroutine to add the variables from the input lua script to the varsys

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_varSys_type), intent(inout) :: varSys

    global variable system to which stFunVar to be appended

    type(tem_spacetime_fun_type), intent(in), pointer:: stFun(:)

    variables defined in the lua file

    character(len=*), intent(in) :: varname
    integer, intent(in), optional :: nComp
    character(len=*), intent(in), optional :: evaltype
    type(tem_st_fun_linkedList_type), intent(inout), optional :: st_funList

    contains spacetime functions of all variables

    type(tem_varSys_solverData_evalElem_type), intent(in), optional :: solverData_evalElem

    A setter routine that allows the caller to define routine for the construction of an element representation.


Subroutines

public recursive subroutine evaluate_FOAG_spacetime_scalarByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine directly evaluate spacetime function for given coordinate points on 1st st_fun assuming global shape.

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_add_spacetime_scalarByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine add multiple spacetime function for given coordinate points. Spacetime function are evaluated only on the coordinate which belong to st_fun shape.

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_first_spacetime_scalarByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine returns first spacetime function on overlapping regions fo given coordinate points. Spacetime function are evaluated only on the coordinate which belong to st_fun shape.

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_FOAG_spacetime_vectorByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine directly evaluate spacetime function for given coordinate points on 1st st_fun assuming global shape for vectorial variable

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_add_spacetime_vectorByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine add multiple spacetime function for given coordinate points. Spacetime function are evaluated only on the coordinate which belong to st_fun shape for vectorial variable.

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_first_spacetime_vectorByCoordinate(fun, varSys, point, time, tree, nPnts, res)

This subroutine returns first spacetime function on overlapping regions fo given coordinate points for vectorial variable. Spacetime function are evaluated only on the coordinate which belong to st_fun shape.

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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine evaluate_FOAG_spacetime_scalarByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This subroutine directly evaluate spacetime function for given element position in global TreeID list on 1st st_fun assuming global shape.

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine evaluate_add_spacetime_scalarByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Call the spacetime function for scalar variable, which are stored in method_data which intern points to tem_st_fun_listelem_type. this spacetime function can be used as a analytical solution for reference. note: ndofs is not used by this routine. so, to evaluate spacetime function for ndofs in an element, use tem_varsys_proc_point interface.

Read more…

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine evaluate_first_spacetime_scalarByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Call the spacetime function for scalar variable, which are stored in method_data which intern points to tem_st_fun_listelem_type. this spacetime function can be used as a analytical solution for reference. note: ndofs is not used by this routine. so, to evaluate spacetime function for ndofs in an element, use tem_varsys_proc_point interface.

Read more…

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine evaluate_FOAG_spacetime_vectorByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This subroutine directly evaluate spacetime function for given element position in global TreeID list on 1st st_fun assuming global shape for vectorial variable.

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine evaluate_add_spacetime_vectorByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Call the spacetime function for vector variable, which are stored in method_data which intern points to tem_st_fun_listElem_type. This spacetime function can be used as a analytical solution for reference. NOTE: nDofs is not used by this routine. So, to evaluate spacetime function for nDofs in an element, use tem_varSys_proc_point interface.

Read more…

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine evaluate_first_spacetime_vectorByTreeID(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Call the spacetime function for vector variable, which are stored in method_data which intern points to tem_st_fun_listElem_type. This spacetime function can be used as a analytical solution for reference. NOTE: nDofs is not used by this routine. So, to evaluate spacetime function for nDofs in an element, use tem_varSys_proc_point interface.

Read more…

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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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) :: nElems

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.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine set_params_spacetime(fun, varSys, instring)

This routine process instring and store information in spacetime function.

Read more…

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.

character(len=*), intent(in) :: instring

Input string with parameter to set in method_data

public recursive subroutine get_params_spacetime(fun, varSys, instring, outstring)

This routine process instring and return string with requested info from spacetime function

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.

character(len=*), intent(in) :: instring

Input string with parameter to set in method_data

character(len=*), intent(out) :: outstring

Output string with requested parameter value from method_data

public recursive subroutine setup_indices_spacetime(fun, varSys, point, offset_bit, iLevel, tree, nPnts, idx)

This routine stores provided points in method_data of spacetime_listElem and return the indices of points or evaluated value in the growing array. If spacetime function is time-independent then pre-compute values and store in growing array of evalVal in tem_pointData_type.

Read more…

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.

real(kind=rk), intent(in) :: point(:,:)

List of space coordinate points to store as growing array in method_data

character, intent(in), optional :: offset_bit(:)

Offset bit encoded as character for every point.

Offset integer coord(3) is converted into a character with offset_bit = achar( (coord(1)+1) + (coord(2)+1)4 + (coord(3)+1)16 ) Backward transformation form character to 3 integer: coord(1) = mod(ichar(offset_bit),4) - 1 coord(2) = mod(ichar(offset_bit),16)/4 - 1 coord(3) = ichar(offset_bit)/16 - 1

If not present default is to center i.e offset_bit = achar(1+4+16)

integer, intent(in) :: iLevel

Level to which input points belong to

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

global treelm mesh info

integer, intent(in) :: nPnts

Number of points to add in method_data of this variable

integer, intent(out) :: idx(:)

Index of points in the growing array and variable val array. Size: nPoints

This must be stored in boundary or source depends on who calls this routine. This index is required to return a value using getValOfIndex.

public recursive subroutine get_valOfIndex_FOAG_scalar_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine get_valOfIndex_FOAG_vector_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine get_valOfIndex_add_scalar_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine get_valOfIndex_add_vector_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine get_valOfIndex_first_scalar_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public recursive subroutine get_valOfIndex_first_vector_spacetime(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

This routine returns value at the given index. If value is pre-computed and value at given index is returned else value is computing on the points for given index.

Read more…

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.

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

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: nVals

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: nVals

integer, intent(in) :: nVals

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

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

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

private subroutine tem_varSys_assignEvalType(evaltype, nComp, get_point, get_element, get_valOfIndex)

Returns the get_point and get_element pointer according to the requested evaluation type.

Arguments

TypeIntentOptionalAttributesName
character(len=*), intent(in) :: evaltype
integer, intent(in) :: nComp
procedure(tem_varSys_proc_point), intent(out), pointer:: get_point

The function pointer to the get_point subroutine for the given operation.

procedure(tem_varSys_proc_element), intent(out), pointer:: get_element

The function pointer to the get_element subroutine for the given operation.

procedure(tem_varSys_proc_getValOfIndex), intent(out), pointer:: get_valOfIndex

The function pointer to the get_valOfIndex subroutine for the given operation.

private subroutine tem_varSys_append_stFunVar(stFunVar, varSys, st_funList, solverData_evalElem)

subroutine to add the variables from the input lua script to the varsys

Arguments

TypeIntentOptionalAttributesName
type(tem_variable_type), intent(in) :: stFunVar

variables defined in the lua file

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

global variable system to which stFunVar to be appended

type(tem_st_fun_linkedList_type), intent(inout) :: st_funList

contains spacetime functions of all variables

type(tem_varSys_solverData_evalElem_type), intent(in), optional :: solverData_evalElem

A setter routine that allows the caller to define routine for the construction of an element representation.

private subroutine tem_varSys_append_stFun_raw(varSys, stFun, varname, nComp, evaltype, st_funList, solverData_evalElem)

subroutine to add the variables from the input lua script to the varsys

Arguments

TypeIntentOptionalAttributesName
type(tem_varSys_type), intent(inout) :: varSys

global variable system to which stFunVar to be appended

type(tem_spacetime_fun_type), intent(in), pointer:: stFun(:)

variables defined in the lua file

character(len=*), intent(in) :: varname
integer, intent(in), optional :: nComp
character(len=*), intent(in), optional :: evaltype
type(tem_st_fun_linkedList_type), intent(inout), optional :: st_funList

contains spacetime functions of all variables

type(tem_varSys_solverData_evalElem_type), intent(in), optional :: solverData_evalElem

A setter routine that allows the caller to define routine for the construction of an element representation.