tem_shape_module Module

Geometrical shape definitions for pre-defined bodies

This module provides data types and definitions for pre-defined geometrical objects such as points, lines, planes, and cubes.

Shapes


Uses

Used by

  • module~~tem_shape_module~~UsedByGraph module~tem_shape_module tem_shape_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_shape_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_shape_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spacetime_fun_module->module~tem_subtree_module module~tem_spacetime_fun_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~hvs_output_module hvs_output_module module~tem_tracking_module->module~hvs_output_module module~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~tem_subtree_module module~hvs_output_module->module~hvs_ascii_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_shape_module module~tem_convergence_module->module~tem_subtree_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 program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_spacetime_fun_module module~tem_varmap_module tem_varMap_module module~tem_varmap_module->module~tem_spacetime_fun_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_spacetime_fun_module module~tem_face_module tem_face_module module~tem_face_module->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 module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module module~tem_derived_module tem_derived_module module~tem_derived_module->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_simcontrol_module tem_simControl_module module~tem_simcontrol_module->module~tem_convergence_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_spacetime_fun_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_subtree_module program~tem_varsys_test->module~tem_spacetime_fun_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_spacetime_fun_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_spacetime_fun_module module~tem_variable_module tem_variable_module module~tem_variable_module->module~tem_spacetime_fun_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: tem_global_shape =0

Parameters for different tracking shapes Global mesh

integer, public, parameter:: tem_geometrical_shape =1

treelm geometrical object like canoND, sphere, cylinder, eclipse, triangle STL (STLs are converted further into triangles)

integer, public, parameter:: tem_property_shape =2

elements that has a certain property

integer, public, parameter:: tem_local_shape =3

elements on the local partition

integer, public, parameter:: tem_boundary_shape =4

elements of one or more boundaries

integer, public, parameter:: tem_level_shape =5

elements of certain levels


Interfaces

public interface tem_shape_out

  • private subroutine tem_shape_out_scal(me, conf)

    Write a shape to lua file

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_shape_type), intent(in) :: me

    shape types to write out

    type(aot_out_type), intent(inout) :: conf

    Aotus type handling the output to the file in lua format

  • private subroutine tem_shape_out_vec(me, conf)

    Write a array of shapes to lua file

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_shape_type), intent(in) :: me(:)

    shape types to write out

    type(aot_out_type), intent(inout) :: conf

    Aotus type handling the output to the file in lua format

public interface tem_load_shape

  • private subroutine tem_load_shapes(me, conf, parent, key, iError, reqSegments)

    Read in an arbitrary shapes from a lua file defined as multiple tables

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_shape_type), intent(out), allocatable:: me(:)

    array of shape type defined in a lua file

    type(flu_state) :: conf

    lua config file to load shape from

    integer, intent(in), optional :: parent

    optional parent handle

    character(len=*), intent(in), optional :: key

    optional key to load from

    integer, intent(out), optional :: iError

    error flag

    logical, intent(in), optional :: reqSegments

    Is true if use_get_point is true in output table

  • private subroutine tem_load_shape_single(me, conf, key, parent, sub_table, iError, reqSegments)

    Read in an arbitrary shape from a lua file defined in a single table

    Read more…

    Arguments

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

    shape type defined in a lua file

    type(flu_state) :: conf

    lua state

    character(len=*), intent(in), optional :: key

    optional key to load from

    integer, intent(in), optional :: parent

    optional parent handle

    integer, intent(in), optional :: sub_table

    shape table handle

    integer, intent(out), optional :: iError

    error flag

    logical, intent(in), optional :: reqSegments

    Is true if use_get_point is true in output table


Derived Types

type, public :: tem_shape_type

Complete shape definitions

Components

TypeVisibilityAttributesNameInitial
character(len=labelLen), private :: kind

a kind of the shape defined.

integer, private :: shapeID =0

a identification for the shape

type(tem_canonicalND_type), private, allocatable:: canoND(:)

canonical definition

type(tem_triangle_type), private, allocatable:: triangle(:)

triangle definition

type(tem_stlData_type), private :: stl_data

STL definition

type(tem_sphere_type), private, allocatable:: sphere(:)

spheres definition

type(tem_ellipsoid_type), private, allocatable:: ellipsoid(:)

ellipsoid definition

type(tem_cylinder_type), private, allocatable:: cylinder(:)

cylinder definition

integer(kind=long_k), private :: propBits =0_long_k

property bits

character(len=labelLen), private, allocatable:: bcLabels(:)

boundary labels, used to identify elements belong to these boundaries It is allocated and set in routine: tem_shape_load_bcLabels

integer, private :: minLevel =1

level range for level shape type

integer, private :: maxLevel =globalMaxLevels
logical, private :: inverted =.false.

If true then subTree is created for inverted shape i.e nonintersected


Subroutines

public subroutine tem_shape_subTreeFromGeomInters(me, inTree, countElems, countPoints, grwPnts, storePnts, map2global)

This routine creates subTree from geometry intersection

Arguments

TypeIntentOptionalAttributesName
type(tem_shape_type), intent(in) :: me

shape objects on which to work

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

Global tree

integer, intent(inout) :: countElems(globalMaxLevels)

How many elements there will be for each level in the track

integer, intent(inout) :: countPoints

How many points there will be

type(tem_grwPoints_type), intent(inout) :: grwPnts

growing array to store tracking points

logical, intent(in) :: storePnts

to Store points in grwPnts

type(dyn_intarray_type), intent(inout) :: map2global

growing array for the map2global

private subroutine tem_load_shapes(me, conf, parent, key, iError, reqSegments)

Read in an arbitrary shapes from a lua file defined as multiple tables

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_shape_type), intent(out), allocatable:: me(:)

array of shape type defined in a lua file

type(flu_state) :: conf

lua config file to load shape from

integer, intent(in), optional :: parent

optional parent handle

character(len=*), intent(in), optional :: key

optional key to load from

integer, intent(out), optional :: iError

error flag

logical, intent(in), optional :: reqSegments

Is true if use_get_point is true in output table

private subroutine tem_load_shape_single(me, conf, key, parent, sub_table, iError, reqSegments)

Read in an arbitrary shape from a lua file defined in a single table

Read more…

Arguments

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

shape type defined in a lua file

type(flu_state) :: conf

lua state

character(len=*), intent(in), optional :: key

optional key to load from

integer, intent(in), optional :: parent

optional parent handle

integer, intent(in), optional :: sub_table

shape table handle

integer, intent(out), optional :: iError

error flag

logical, intent(in), optional :: reqSegments

Is true if use_get_point is true in output table

private subroutine tem_shape_out_vec(me, conf)

Write a array of shapes to lua file

Arguments

TypeIntentOptionalAttributesName
type(tem_shape_type), intent(in) :: me(:)

shape types to write out

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine tem_shape_out_scal(me, conf)

Write a shape to lua file

Arguments

TypeIntentOptionalAttributesName
type(tem_shape_type), intent(in) :: me

shape types to write out

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine tem_shape_load_propLabel(propBits, conf, thandle)

Loading property labels from the config file, set the property bits accordingly

Arguments

TypeIntentOptionalAttributesName
integer(kind=long_k) :: propBits

propBits

type(flu_state) :: conf

lua config handle

integer, intent(in) :: thandle

table handle from which to read

private subroutine tem_shape_load_bcLabels(bcLabels, conf, thandle)

Loading bc labels from the config file, save those labels for further use.

Arguments

TypeIntentOptionalAttributesName
character(len=labelLen), allocatable:: bcLabels(:)

bc labels

type(flu_state) :: conf

lua config handle

integer, intent(in) :: thandle

table handle from which to read

private subroutine tem_shape_load_level(minLevel, maxLevel, conf, thandle)

Arguments

TypeIntentOptionalAttributesName
integer :: minLevel

level range

integer :: maxLevel

level range

type(flu_state) :: conf

lua config handle

integer, intent(in) :: thandle

table handle from which to read

private subroutine tem_shape_level_out(minLevel, maxLevel, conf)

Write out a shape level in lua format

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: minLevel

Minlevel and maxlevel

integer, intent(in) :: maxLevel

Minlevel and maxlevel

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine tem_shape_propLabel_out(propBits, conf)

Write out a shape property label in lua format

Arguments

TypeIntentOptionalAttributesName
integer(kind=long_k), intent(in) :: propBits

property bits

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine tem_shape_bcLabel_out(bcLabels, conf)

Write out a shape boundary label in lua format

Arguments

TypeIntentOptionalAttributesName
character(len=labelLen), intent(in) :: bcLabels(:)

Boundary labels

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format