proto2Treelm Subroutine

public subroutine proto2Treelm(node_pos, treeID, leVal, proto, geometry, check_bnd, temData, nodeprops, nodecolors, meshUniverse)

Routine to convert protoTree to Treelm data format. append all leaves to the temData%treeID

Add this element to the list of elements in the final tree, by adding: * treeID * propertyBits If there is a boundary, also add the correct boundary data into the 26 direct neighbors (bc_ID), append to all 26 even if there is no boundary condition in the given direction, no boundaries are indicated by 0, boundary conditions are decided based on the trumping rule, that is the minimal bc_ID of all boundary objects in the corresponding neighbor are chosen. Treat periodic boundaries here if possible by putting the opposite treeID into the bc_ID.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: node_pos

Position of leaf in the preliminary tree

integer(kind=long_k), intent(in) :: treeID

treeID of current node

type(levelValues_type), intent(in) :: leVal

level value of current node

type(sdr_protoTree_type), intent(in) :: proto

preliminary tree

type(sdr_geometry_type), intent(in) :: geometry

contains all geometrical objects

logical, intent(in) :: check_bnd

does this node has boundary neighbor

type(sdr_temData_type), intent(inout) :: temData
integer, intent(in) :: nodeprops

propertyBits of current node

character, intent(in) :: nodecolors(:)

Color information of the cuurent node

type(treelmesh_type), intent(inout) :: meshUniverse

contains bounding cube information


Calls

proc~~proto2treelm~~CallsGraph proc~proto2treelm proto2Treelm proc~sdr_identify_boundary sdr_identify_boundary proc~proto2treelm->proc~sdr_identify_boundary interface~append~10 append proc~proto2treelm->interface~append~10 proc~tem_coordofid tem_CoordOfId proc~proto2treelm->proc~tem_coordofid proc~sdr_neighbor_in_proto sdr_neighbor_in_proto proc~sdr_identify_boundary->proc~sdr_neighbor_in_proto proc~tem_baryofid tem_BaryOfId proc~sdr_identify_boundary->proc~tem_baryofid proc~getbcid_and_calcqval getBCID_and_calcQval proc~sdr_identify_boundary->proc~getbcid_and_calcqval proc~sdr_nodeprop_btest sdr_nodeProp_btest proc~sdr_identify_boundary->proc~sdr_nodeprop_btest proc~needcalcqvalbybcid needCalcQValByBCID proc~sdr_identify_boundary->proc~needcalcqvalbybcid proc~tem_abort tem_abort proc~sdr_identify_boundary->proc~tem_abort proc~tem_idofcoord tem_IdOfCoord proc~sdr_neighbor_in_proto->proc~tem_idofcoord interface~tem_parentof tem_ParentOf proc~sdr_neighbor_in_proto->interface~tem_parentof interface~positionofval~3 positionofval proc~sdr_neighbor_in_proto->interface~positionofval~3 proc~getbcid_and_calcqval->proc~needcalcqvalbybcid proc~sdr_truncate_qval sdr_truncate_qVal proc~getbcid_and_calcqval->proc~sdr_truncate_qval proc~sdr_qvalbynode sdr_qValByNode proc~getbcid_and_calcqval->proc~sdr_qvalbynode proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor proc~getbcid_and_calcqval->proc~sdr_find_periodic_neighbor proc~sdr_truncate_qval->proc~sdr_nodeprop_btest proc~intersect_raytriangle intersect_RayTriangle proc~sdr_qvalbynode->proc~intersect_raytriangle proc~fraction_pointline fraction_PointLine proc~sdr_qvalbynode->proc~fraction_pointline proc~sdr_find_periodic_neighbor->proc~tem_coordofid proc~sdr_find_periodic_neighbor->proc~tem_baryofid proc~sdr_find_periodic_neighbor->proc~sdr_nodeprop_btest proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid proc~sdr_find_periodic_neighbor->proc~tem_abort proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval proc~sdr_find_periodic_neighbor->proc~tem_idofcoord proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode proc~gettreeidposofcoord getTreeIDPosOfCoord proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord proc~tem_coordofreal tem_CoordOfReal proc~sdr_find_periodic_neighbor->proc~tem_coordofreal proc~projectveconplane projectVecOnPlane proc~sdr_find_periodic_neighbor->proc~projectveconplane

Called by

proc~~proto2treelm~~CalledByGraph proc~proto2treelm proto2Treelm proc~traverse_tree traverse_tree proc~traverse_tree->proc~proto2treelm proc~traverse_tree->proc~traverse_tree proc~sdr_proto2treelm sdr_proto2treelm proc~sdr_proto2treelm->proc~traverse_tree program~seeder seeder program~seeder->proc~sdr_proto2treelm

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public :: iDir
integer(kind=long_k), public :: BC_ID(qQQQ)
real(kind=rk), public :: qVal(qQQQ)
integer(kind=long_k), public :: propBits
type(sdr_cube_type), public :: node_cube
integer, public :: node_coord(4)
real(kind=rk), public :: elemvol
integer, public :: nodepropbits(proto%node%propLength)
integer, public :: iColor
integer, public :: col_int
integer, public :: col_bit