tem_pointData_module Module

This module contains data type and subroutines required to store levelWise points and values for variable access

\author Kannan Masilamani


Uses

  • module~~tem_pointdata_module~~UsesGraph module~tem_pointdata_module tem_pointData_module module~tem_topology_module tem_topology_module module~tem_pointdata_module->module~tem_topology_module module~tem_dyn_array_module tem_dyn_array_module module~tem_pointdata_module->module~tem_dyn_array_module module~tem_aux_module tem_aux_module module~tem_pointdata_module->module~tem_aux_module module~tem_geometry_module tem_geometry_module module~tem_pointdata_module->module~tem_geometry_module module~treelmesh_module treelmesh_module module~tem_pointdata_module->module~treelmesh_module module~env_module env_module module~tem_pointdata_module->module~env_module module~tem_logging_module tem_logging_module module~tem_pointdata_module->module~tem_logging_module module~tem_grow_array_module tem_grow_array_module module~tem_pointdata_module->module~tem_grow_array_module module~tem_topology_module->module~env_module module~tem_dyn_array_module->module~env_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~aotus_module aotus_module module~tem_aux_module->module~aotus_module module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~flu_binding flu_binding module~tem_aux_module->module~flu_binding module~aot_table_module aot_table_module module~tem_aux_module->module~aot_table_module module~tem_tools_module tem_tools_module module~tem_aux_module->module~tem_tools_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module mpi mpi module~tem_aux_module->mpi module~tem_geometry_module->module~tem_topology_module module~tem_geometry_module->module~treelmesh_module module~tem_geometry_module->module~env_module module~tem_geometry_module->module~tem_logging_module module~tem_float_module tem_float_module module~tem_geometry_module->module~tem_float_module module~tem_property_module tem_property_module module~tem_geometry_module->module~tem_property_module module~tem_subtree_type_module tem_subTree_type_module module~tem_geometry_module->module~tem_subtree_type_module module~tem_geometry_module->module~tem_tools_module module~tem_debug_module tem_debug_module module~tem_geometry_module->module~tem_debug_module module~tem_param_module tem_param_module module~tem_geometry_module->module~tem_param_module module~tem_geometry_module->mpi module~treelmesh_module->module~tem_topology_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~env_module module~treelmesh_module->module~tem_logging_module module~treelmesh_module->module~aotus_module module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~tem_tools_module module~treelmesh_module->mpi module~env_module->module~aotus_module module~env_module->module~flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~env_module->mpi module~tem_logging_module->module~env_module module~tem_logging_module->module~aotus_module module~tem_logging_module->module~aot_table_module module~tem_grow_array_module->module~env_module module~tem_global_module->module~tem_aux_module module~tem_global_module->module~env_module module~tem_global_module->module~tem_logging_module module~tem_global_module->module~aotus_module module~tem_global_module->module~aot_table_module module~tem_global_module->mpi module~tem_prophead_module tem_prophead_module module~tem_global_module->module~tem_prophead_module module~aot_out_module aot_out_module module~tem_global_module->module~aot_out_module module~tem_sparta_module->module~tem_aux_module module~tem_sparta_module->module~env_module module~tem_sparta_module->module~tem_logging_module module~tem_sparta_module->module~tem_float_module module~tem_sparta_module->mpi module~tem_float_module->module~env_module module~tem_property_module->module~env_module module~tem_property_module->mpi module~tem_property_module->module~tem_prophead_module module~tem_comm_env_module->mpi module~tem_subtree_type_module->module~tem_aux_module module~tem_subtree_type_module->module~treelmesh_module module~tem_subtree_type_module->module~env_module module~tem_subtree_type_module->module~tem_logging_module module~tem_subtree_type_module->module~tem_global_module module~tem_subtree_type_module->module~tem_property_module module~tem_subtree_type_module->mpi module~tem_tools_module->module~env_module module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->module~aotus_module module~tem_lua_requires_module->module~flu_binding module~tem_lua_requires_module->module~aot_table_module iso_c_binding iso_c_binding module~tem_lua_requires_module->iso_c_binding module~tem_debug_module->module~env_module module~tem_debug_module->module~tem_logging_module module~tem_debug_module->module~flu_binding module~tem_debug_module->module~aot_table_module module~tem_debug_module->module~tem_tools_module module~tem_param_module->module~env_module module~tem_prophead_module->module~env_module module~tem_prophead_module->module~aotus_module module~tem_prophead_module->module~aot_table_module module~tem_prophead_module->mpi module~tem_prophead_module->module~aot_out_module

Used by

  • module~~tem_pointdata_module~~UsedByGraph module~tem_pointdata_module tem_pointData_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_pointdata_module module~tem_spatial_module tem_spatial_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module module~tem_shape_module tem_shape_module module~tem_shape_module->module~tem_pointdata_module module~tem_canonicalnd_module tem_canonicalND_module module~tem_shape_module->module~tem_canonicalnd_module module~tem_canonicalnd_module->module~tem_pointdata_module module~tem_spatial_module->module~tem_pointdata_module module~tem_spatial_module->module~tem_shape_module module~tem_spatial_module->module~tem_canonicalnd_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_pointdata_module module~tem_subtree_module->module~tem_shape_module module~tem_spacetime_fun_module->module~tem_pointdata_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_subtree_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_spacetime_fun_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_spacetime_fun_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_derived_module->module~tem_spacetime_fun_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_spacetime_var_module program~tem_varsys_test->module~tem_subtree_module program~tem_varsys_test->module~tem_spacetime_fun_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_spacetime_fun_module module~hvs_output_module hvs_output_module module~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~tem_subtree_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_shape_module module~tem_tracking_module->module~tem_subtree_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_shape_module module~tem_convergence_module->module~tem_subtree_module module~tem_varmap_module tem_varMap_module module~tem_varmap_module->module~tem_spacetime_var_module module~tem_varmap_module->module~tem_spacetime_fun_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_spacetime_fun_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_subtree_module program~tem_varsys_stfunvar_test->module~tem_spacetime_fun_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_spacetime_fun_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_spacetime_fun_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module module~tem_variable_module tem_variable_module module~tem_variable_module->module~tem_spacetime_fun_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_subtree_module program~tem_varsys_opvar_test->module~tem_spacetime_fun_module

Contents


Interfaces

public interface init

Interface to initialize growing array of points

  • private subroutine init_grwPoints(me, length)

    This routine initialize growing array of points

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_grwPoints_type), intent(out) :: me

    Growing array of points in each dimension

    integer, intent(in), optional :: length

    Initial length of the container

public interface append

Interface to append a single point or array of points to growing array of points

  • private subroutine append_singlePnt2grwPoints(me, val)

    This routine append a single point to growing array of points

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_grwPoints_type), intent(inout) :: me

    Growing array of points in each dimension

    real(kind=rk), intent(in) :: val(3)

    single point to append

  • private subroutine append_vectorPnt2grwPoints(me, val)

    This routine append a array of points to growing array of points

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_grwPoints_type), intent(inout) :: me

    Growing array of points in each dimension

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

    Array of points to append

public interface truncate

Interface to truncate growing array of points

  • private subroutine truncate_grwPoints(me)

    This routine truncates growing array of points

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_grwPoints_type), intent(inout) :: me

    Growing array of points in each dimension

public interface destroy

Interface to destroy growing array of points

  • private subroutine destroy_grwPoints(me)

    This routine destroys growing array of points

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_grwPoints_type), intent(inout) :: me

    Growing array of points in each dimension

private interface append

Interface to append point, offset_bit and elemPos to pointData

  • private subroutine append_pointData(me, point, storePnt, offset_bit, storeOffsetBit, elemPos, tree, pos, wasAdded)

    Routine to append point Datas like points, offset_bit and elemPos Append point datas only if treeID of a point in max level is newly added

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_pointData_type), intent(inout) :: me

    Point data type to be filled

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

    space coordinate to append

    logical, intent(in) :: storePnt

    logical to store point into me%grwPnt

    character, intent(in) :: offset_bit

    offset bit to append

    logical, intent(in) :: storeOffsetBit

    logical to store offset bit into me%offset_bit

    integer, intent(in) :: elemPos

    Position of element which contains given point in global tree%treeID

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

    global tree

    integer, intent(out) :: pos

    return position of treeID of a point in maxLevel in me%treeID

    logical, intent(out) :: wasAdded

    If point is new and added to pointData


Derived Types

type, public :: tem_grwPoints_type

Data type contain 1D growing array of points for each dimension. In general, they are space coordinate in the treelmesh but for Ateles solver variables, they are used to store local coordinate with in a reference element.

Read more…

Components

TypeVisibilityAttributesNameInitial
type(grw_realarray_type), private :: coordX

X-coordinate points

type(grw_realarray_type), private :: coordY

Y-coordinate points

type(grw_realarray_type), private :: coordZ

Z-coordinate points

type, public :: tem_sourceElems_type

Contains source elements required for interpolation to derive solver variables

Components

TypeVisibilityAttributesNameInitial
type(grw_intarray_type), private :: first

First position of source elements in srcElemPos per point size: nPnts

type(grw_intarray_type), private :: last

last position of source elements in srcElemPos per point size: nPnts

type(grw_intarray_type), private :: elemPos

Position of source elements in levelwise list for solver variable. position in leveldesc is used so interpolation can be done level wise using ghost elements. In Musubi, the genertic get_valOfIndex routine and get_valOfIndex routine of state variables does not include halo elements for interpolation

type(grw_realarray_type), private :: weight

Interpolation weight for each source elements

type, public :: tem_pointData_type

Data type contains growing array of points, evaluated variable value on those points per level For solver variables, additional information like elemPos and local coord are stored for every point.

Components

TypeVisibilityAttributesNameInitial
integer, private :: nPnts =0

Number of points in the growing array

type(tem_grwPoints_type), private :: grwPnt

growing array of points either global space coorinate in treelmmesh or local coordinate with on a reference element

type(dyn_longarray_type), private :: treeID

Unique treeID in finest level to create unique list of grwPnt

type(grw_chararray_type), private :: offset_bit

Offset bit encodes direction of boundary for surface coupling. used to translate space coordinate in the offset direction to determine the treeID in remote domain

type(grw_intarray_type), private :: elemPos

elemPos refer to position in linearized tree. size: number of points

type(grw_intarray_type), private :: pntlevel

For solver variables, pntlevel refer to the local level of the point In case of coupling, the requested level could differ from local level, hence we stored the local level explicitly size: number of points

type(tem_sourceElems_type), private :: srcElem

Contains source elements required for interpolation to derive solver variables for every point

type, public :: tem_pointData_list_type

Data type contains pointData information for all levels.

Components

TypeVisibilityAttributesNameInitial
type(tem_pointData_type), private :: pntLvl(globalMaxLevels)

pointData for all levels


Subroutines

private subroutine append_pointData(me, point, storePnt, offset_bit, storeOffsetBit, elemPos, tree, pos, wasAdded)

Routine to append point Datas like points, offset_bit and elemPos Append point datas only if treeID of a point in max level is newly added

Arguments

TypeIntentOptionalAttributesName
type(tem_pointData_type), intent(inout) :: me

Point data type to be filled

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

space coordinate to append

logical, intent(in) :: storePnt

logical to store point into me%grwPnt

character, intent(in) :: offset_bit

offset bit to append

logical, intent(in) :: storeOffsetBit

logical to store offset bit into me%offset_bit

integer, intent(in) :: elemPos

Position of element which contains given point in global tree%treeID

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

global tree

integer, intent(out) :: pos

return position of treeID of a point in maxLevel in me%treeID

logical, intent(out) :: wasAdded

If point is new and added to pointData

private subroutine init_grwPoints(me, length)

This routine initialize growing array of points

Arguments

TypeIntentOptionalAttributesName
type(tem_grwPoints_type), intent(out) :: me

Growing array of points in each dimension

integer, intent(in), optional :: length

Initial length of the container

private subroutine append_singlePnt2grwPoints(me, val)

This routine append a single point to growing array of points

Arguments

TypeIntentOptionalAttributesName
type(tem_grwPoints_type), intent(inout) :: me

Growing array of points in each dimension

real(kind=rk), intent(in) :: val(3)

single point to append

private subroutine append_vectorPnt2grwPoints(me, val)

This routine append a array of points to growing array of points

Arguments

TypeIntentOptionalAttributesName
type(tem_grwPoints_type), intent(inout) :: me

Growing array of points in each dimension

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

Array of points to append

private subroutine truncate_grwPoints(me)

This routine truncates growing array of points

Arguments

TypeIntentOptionalAttributesName
type(tem_grwPoints_type), intent(inout) :: me

Growing array of points in each dimension

private subroutine destroy_grwPoints(me)

This routine destroys growing array of points

Arguments

TypeIntentOptionalAttributesName
type(tem_grwPoints_type), intent(inout) :: me

Growing array of points in each dimension