traverse_tree Subroutine

public recursive subroutine traverse_tree(node_pos, leVal, proto, geometry, temData, header, meshUniverse)

Recursively traverse the tree in a depth first manner to obtain the the ordering required by treelm.

Only consider flooded nodes here, no need to traverse further down any non-flooded node, as it does not belong to the computational domain. All virtual nodes containing at least one flooded leaf node has already been determined and set after flooding in sdr_flood_module::sdr_flood_tree. If the leaf node is reached, hand over to the ::refine_leaf routine, to find all elements, that actually should be created in the computational domain.

Todo

KM: Store has_boundary information for every leaf node in sdr_refine_leaf routine to avoid excessive boundary checking far away from the boundaries.

If this node is flooded or fluidifyable it needs to be included in the final mesh.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: node_pos

Position of leaf in the preliminary tree

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

type(sdr_temData_type), intent(inout) :: temData

temData contains final treelmesh

type(sdr_confHead_type), intent(in) :: header

Header information

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

contains bounding cube information


Calls

proc~~traverse_tree~~CallsGraph proc~traverse_tree traverse_tree proc~traverse_tree->proc~traverse_tree proc~create_target create_target proc~traverse_tree->proc~create_target proc~proto2treelm proto2Treelm proc~traverse_tree->proc~proto2treelm sdr_nodecolors sdr_nodecolors proc~traverse_tree->sdr_nodecolors tem_FirstIdAtLevel tem_FirstIdAtLevel proc~traverse_tree->tem_FirstIdAtLevel val val proc~traverse_tree->val proc~create_target->val append append proc~create_target->append bc_color_id bc_color_id proc~create_target->bc_color_id newunit newunit proc~create_target->newunit ply_convertfromoversample ply_convertfromoversample proc~create_target->ply_convertfromoversample ply_poly_project_n2m ply_poly_project_n2m proc~create_target->ply_poly_project_n2m positionofval positionofval proc~create_target->positionofval proc~sdr_color_points sdr_color_points proc~create_target->proc~sdr_color_points proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor proc~create_target->proc~sdr_find_periodic_neighbor proc~sdr_neighbor_in_proto sdr_neighbor_in_proto proc~create_target->proc~sdr_neighbor_in_proto sdr_bitfieldcolors sdr_bitfieldcolors proc~create_target->sdr_bitfieldcolors sdr_color_log2char sdr_color_log2char proc~create_target->sdr_color_log2char sdr_nodeprop_btest sdr_nodeprop_btest proc~create_target->sdr_nodeprop_btest tem_CoordOfId tem_CoordOfId proc~create_target->tem_CoordOfId tem_abort tem_abort proc~create_target->tem_abort proc~proto2treelm->val proc~proto2treelm->append proc~sdr_identify_boundary sdr_identify_boundary proc~proto2treelm->proc~sdr_identify_boundary proc~proto2treelm->tem_CoordOfId

Called by

proc~~traverse_tree~~CalledByGraph proc~traverse_tree traverse_tree 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