setup_indices_spacetime Subroutine

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.

! Store spatial value for unique points depends on stFun type

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.


Calls

proc~~setup_indices_spacetime~~CallsGraph proc~setup_indices_spacetime setup_indices_spacetime proc~tem_posofid tem_PosOfId proc~setup_indices_spacetime->proc~tem_posofid interface~positionofval~4 positionofval proc~setup_indices_spacetime->interface~positionofval~4 tem_positioninsorted tem_positioninsorted proc~setup_indices_spacetime->tem_positioninsorted interface~tem_spatial_storeval tem_spatial_storeVal proc~setup_indices_spacetime->interface~tem_spatial_storeval interface~truncate~10 truncate proc~setup_indices_spacetime->interface~truncate~10 proc~tem_idofcoord tem_IdOfCoord proc~setup_indices_spacetime->proc~tem_idofcoord proc~tem_coordofreal tem_CoordOfReal proc~setup_indices_spacetime->proc~tem_coordofreal proc~tem_abort tem_abort proc~setup_indices_spacetime->proc~tem_abort interface~append~21 append proc~setup_indices_spacetime->interface~append~21 proc~tem_pathcomparison tem_PathComparison proc~tem_posofid->proc~tem_pathcomparison proc~tem_pathof tem_PathOf proc~tem_posofid->proc~tem_pathof proc~posofval_label posofval_label interface~positionofval~4->proc~posofval_label proc~tem_spatial_scalar_storeval tem_spatial_scalar_storeVal interface~tem_spatial_storeval->proc~tem_spatial_scalar_storeval proc~tem_spatial_vector_storeval tem_spatial_vector_storeVal interface~tem_spatial_storeval->proc~tem_spatial_vector_storeval proc~truncate_ga_char truncate_ga_char interface~truncate~10->proc~truncate_ga_char mpi_abort mpi_abort proc~tem_abort->mpi_abort proc~append_da_veclabel append_da_veclabel interface~append~21->proc~append_da_veclabel proc~append_da_label append_da_label interface~append~21->proc~append_da_label interface~expand~19 expand proc~append_da_veclabel->interface~expand~19 proc~append_da_label->interface~expand~19 interface~sortedposofval~4 sortedposofval proc~append_da_label->interface~sortedposofval~4 proc~tem_spatial_scalar_storeval->interface~truncate~10 interface~append~16 append proc~tem_spatial_scalar_storeval->interface~append~16 interface~tem_spatial_for tem_spatial_for proc~tem_spatial_scalar_storeval->interface~tem_spatial_for proc~posofval_label->interface~sortedposofval~4 proc~tem_spatial_vector_storeval->interface~truncate~10 proc~tem_spatial_vector_storeval->interface~append~16 proc~tem_spatial_vector_storeval->interface~tem_spatial_for

Contents


Variables

TypeVisibilityAttributesNameInitial
type(tem_st_fun_listElem_type), private, pointer:: fPtr
integer, private :: iStFun
integer, private :: iPnt
integer, private :: posInTree
integer, private :: nUniquePnts
integer, private :: iVar
character, private :: offset_bit_local
logical, private, allocatable:: storePnt(:)
logical, private, allocatable:: storeOffsetBit(:)
logical, private, allocatable:: storeVal(:)
integer, private :: elemPos
integer(kind=long_k), private :: treeID
logical, private :: addPoint
logical, private :: wasAdded
real(kind=rk), private :: uniquePnts(nPnts,3)