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

Type IntentOptional Attributes Name
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(len=1), 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 append append proc~proto2treelm->append proc~sdr_identify_boundary sdr_identify_boundary proc~proto2treelm->proc~sdr_identify_boundary tem_CoordOfId tem_CoordOfId proc~proto2treelm->tem_CoordOfId val val proc~proto2treelm->val proc~sdr_identify_boundary->val kindpos kindpos proc~sdr_identify_boundary->kindpos proc~getbcid_and_calcqval getBCID_and_calcQval proc~sdr_identify_boundary->proc~getbcid_and_calcqval proc~getnormal getNormal proc~sdr_identify_boundary->proc~getnormal proc~needcalcqvalbybcid needCalcQValByBCID proc~sdr_identify_boundary->proc~needcalcqvalbybcid proc~sdr_neighbor_in_proto sdr_neighbor_in_proto proc~sdr_identify_boundary->proc~sdr_neighbor_in_proto sdr_nodeprop_btest sdr_nodeprop_btest proc~sdr_identify_boundary->sdr_nodeprop_btest tem_BaryOfId tem_BaryOfId proc~sdr_identify_boundary->tem_BaryOfId tem_abort tem_abort proc~sdr_identify_boundary->tem_abort tem_convertTreeIDtoCube tem_convertTreeIDtoCube proc~sdr_identify_boundary->tem_convertTreeIDtoCube tem_pointCubeOverlap tem_pointCubeOverlap proc~sdr_identify_boundary->tem_pointCubeOverlap proc~getbcid_and_calcqval->val proc~getbcid_and_calcqval->proc~needcalcqvalbybcid proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor proc~getbcid_and_calcqval->proc~sdr_find_periodic_neighbor proc~sdr_qvalbynode sdr_qValByNode proc~getbcid_and_calcqval->proc~sdr_qvalbynode proc~sdr_truncate_qval sdr_truncate_qVal proc~getbcid_and_calcqval->proc~sdr_truncate_qval proc~getnormal->append proc~getnormal->val proc~getnormal->kindpos destroy destroy proc~getnormal->destroy init init proc~getnormal->init mrgrnk mrgrnk proc~getnormal->mrgrnk tem_triangle_normal_proximity tem_triangle_normal_proximity proc~getnormal->tem_triangle_normal_proximity proc~needcalcqvalbybcid->val proc~needcalcqvalbybcid->kindpos positionofval positionofval proc~sdr_neighbor_in_proto->positionofval tem_IdOfCoord tem_IdOfCoord proc~sdr_neighbor_in_proto->tem_IdOfCoord tem_ParentOf tem_ParentOf proc~sdr_neighbor_in_proto->tem_ParentOf proc~sdr_find_periodic_neighbor->tem_CoordOfId proc~sdr_find_periodic_neighbor->val proc~sdr_find_periodic_neighbor->kindpos proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid proc~sdr_find_periodic_neighbor->sdr_nodeprop_btest proc~sdr_find_periodic_neighbor->tem_BaryOfId proc~sdr_find_periodic_neighbor->tem_abort proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval proc~sdr_find_periodic_neighbor->tem_IdOfCoord proc~gettreeidposofcoord getTreeIDPosOfCoord proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord proc~projectveconplane projectVecOnPlane proc~sdr_find_periodic_neighbor->proc~projectveconplane tem_CoordOfReal tem_CoordOfReal proc~sdr_find_periodic_neighbor->tem_CoordOfReal proc~sdr_qvalbynode->val fraction_PointLine fraction_PointLine proc~sdr_qvalbynode->fraction_PointLine intersect_RayTriangle intersect_RayTriangle proc~sdr_qvalbynode->intersect_RayTriangle proc~sdr_truncate_qval->sdr_nodeprop_btest

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