tem_canonicalND_module Module

This module provides the user with a simple geometrical object like point, line, plane and box.

Detail description of the canonical shapes can be found in the Documentation.


Uses

Used by

  • module~~tem_canonicalnd_module~~UsedByGraph module~tem_canonicalnd_module tem_canonicalND_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_canonicalnd_module module~tem_shape_module tem_shape_module module~tem_spatial_module->module~tem_shape_module module~tem_shape_module->module~tem_canonicalnd_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_shape_module module~tem_subtree_module tem_subTree_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_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_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_subtree_module->module~tem_shape_module module~tem_spacetime_var_module tem_spacetime_var_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~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~hvs_ascii_module module~hvs_output_module->module~tem_subtree_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spacetime_fun_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_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module module~tem_simcontrol_module tem_simControl_module module~tem_simcontrol_module->module~tem_convergence_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 program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->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_var_module program~tem_varsys_test->module~tem_spacetime_fun_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 module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_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_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_derived_module->module~tem_spacetime_fun_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_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_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_spacetime_fun_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_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

Contents


Interfaces

public interface tem_canonicalND_out

interface to write out canonical shape(s) in lua format to a file

  • private subroutine tem_canonicalND_out_scal(me, conf)

    Write out a canonicalND shape in lua format

    Arguments

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

    canonicalND 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_canonicalND_out_vec(me, conf)

    Write out an array of canonical shapes in lua format

    Arguments

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

    canonicalND 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_canonicalND

interface to load canonical objects

  • private subroutine tem_load_oneCanonicalND(me, transform, conf, thandle, reqSegments)

    Read one canonical object definition into a tem_canonicalND_type from a lua table.

    Arguments

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

    contains canonicalND data

    type(tem_transformation_type), intent(in) :: transform

    transformation for spatial object

    type(flu_state) :: conf

    lua state

    integer, intent(in) :: thandle

    lua table identification

    logical, intent(in), optional :: reqSegments

    Is true if use_get_point is true in output table

  • private subroutine tem_load_canonicalND_vec(me, transform, conf, thandle, reqSegments)

    Loading canonicalNDs from the config file valid definitions:

    Arguments

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

    the array of canonical objects which to read in (and first allocate)

    type(tem_transformation_type), intent(in) :: transform

    transformation for spatial object

    type(flu_state) :: conf

    lua config handle

    integer, intent(in) :: thandle

    table handle from which to read

    logical, intent(in), optional :: reqSegments

    Is true if use_get_point is true in output table

public interface tem_transformCanoND

This routine apply transformations to canonical objects

  • private subroutine transformCanoND(canoND, transform)

    This routine apply transformation to canonical objects.

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_canonicalND_type), intent(inout) :: canoND(:)

    canonical geometry object type

    type(tem_transformation_type), intent(in) :: transform

    transformation for spatial object

  • private subroutine transformCanoND_single(canoND, transform)

    This routine apply transformation to canonical objects.

    Arguments

    TypeIntentOptionalAttributesName
    type(tem_canonicalND_type), intent(inout) :: canoND

    canonical geometry object type

    type(tem_transformation_type), intent(in) :: transform

    transformation for spatial object


Derived Types

type, public :: tem_canonicalND_type

Definition of the canonicalND

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: origin(3)

origin of the canonical shape

real(kind=rk), private :: vec(3,3)

vector along the edge A (also defines size) 1st dimension defines x,y, z coord 2nd dimension vec number

integer, private :: segments(3)

how many discrete points the canonicalND is divided into

character(len=labellen), private :: distribution

spatial distribution of the points

character(len=labellen), private :: kind

kind of canonicalND (line, plane, point, box)

logical, private :: active(3)

identify which vectors are active (not equal 0)

integer, private :: nDim

dimension of canonical object nDim=0 - point nDim=1 - line nDim=2 - plane nDim=3 - box

logical, private :: only_surface =.false.

To choose what to do with intersection of box if only_surface = true than the only the surface of the object is intersected if only_surface = false then the whole object is intersected default is set to false

type(tem_point_type), private :: point

canonical point

type(tem_line_type), private :: line
type(tem_plane_type), private :: plane
type(tem_box_type), private :: box

Functions

public pure function tem_getNextCoordOfcanonicalND(me, iElem) result(coord)

Return the next coordinate of the canonical shape.

Arguments

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

current canonical type

integer, intent(in) :: iElem

current element within total amount of elements to process

Return Value real(kind=rk)(3)

calulated real-world coordinate, which is returned


Subroutines

public subroutine tem_cano_initSubTree(me, inTree, countElems, map2global, shapeInverted)

Create subtree from the intersection of canonical shapes and inTree

Arguments

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

canonicalND 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

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

growing array for the map2global

logical, intent(in) :: shapeInverted

If true then elements not intersected are added to subTree

public subroutine tem_cano_storePntsInSubTree(me, inTree, map2global, countPoints, grwPnts)

Generate points using segments on canoND and add those points to a growing array of points if a point is found in subTree

Arguments

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

canonicalND objects on which to work

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

Global tree

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

growing array for the map2global

integer, intent(inout) :: countPoints

How many points there will be

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

growing array to store tracking points

private subroutine tem_load_canonicalND_vec(me, transform, conf, thandle, reqSegments)

Loading canonicalNDs from the config file valid definitions:

Arguments

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

the array of canonical objects which to read in (and first allocate)

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

type(flu_state) :: conf

lua config handle

integer, intent(in) :: thandle

table handle from which to read

logical, intent(in), optional :: reqSegments

Is true if use_get_point is true in output table

private subroutine tem_load_oneCanonicalND(me, transform, conf, thandle, reqSegments)

Read one canonical object definition into a tem_canonicalND_type from a lua table.

Arguments

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

contains canonicalND data

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

type(flu_state) :: conf

lua state

integer, intent(in) :: thandle

lua table identification

logical, intent(in), optional :: reqSegments

Is true if use_get_point is true in output table

private subroutine transformCanoND(canoND, transform)

This routine apply transformation to canonical objects.

Arguments

TypeIntentOptionalAttributesName
type(tem_canonicalND_type), intent(inout) :: canoND(:)

canonical geometry object type

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

private subroutine transformCanoND_single(canoND, transform)

This routine apply transformation to canonical objects.

Arguments

TypeIntentOptionalAttributesName
type(tem_canonicalND_type), intent(inout) :: canoND

canonical geometry object type

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

private subroutine tem_canonicalND_out_vec(me, conf)

Write out an array of canonical shapes in lua format

Arguments

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

canonicalND 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_canonicalND_out_scal(me, conf)

Write out a canonicalND shape in lua format

Arguments

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

canonicalND types to write out

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

Aotus type handling the output to the file in lua format