sdr_find_periodic_neighbor Subroutine

public subroutine sdr_find_periodic_neighbor(elemBary, iDir, bc_ID, qVal, unKnownBnd, neighbor_pos, neighbor_level, leVal, proto, geometry, meshUniverse)

This routine find the treeID on the opposite side neighbor of the periodic plane for current leaf node

write(dbgUnit(5),*) '1.1 qVal ', qVal

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: elemBary(3)

current element barycenter

integer, intent(in) :: iDir

Current boundary neighbor direction

integer(kind=long_k), intent(inout) :: bc_ID

treeiD of opposite neighbor with periodic plane

real(kind=rk), intent(out) :: qVal

distance from boundary for direction iDir

Todo

HK: maybe turn this optional, why is it relevant for periodic?

logical, intent(inout) :: unKnownBnd

Set to true if a neighbor with no property is encountered

integer, intent(in) :: neighbor_pos

position of neighbor treeID in the proto%node list

integer, intent(in) :: neighbor_level

level of the periodic boundary neighbor node

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

level value of parent node

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

preliminary tree

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

contains all geometrical objects

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

contains bounding cube information


Calls

proc~~sdr_find_periodic_neighbor~~CallsGraph proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor kindpos kindpos proc~sdr_find_periodic_neighbor->kindpos proc~gettreeidposofcoord getTreeIDPosOfCoord proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord proc~needcalcqvalbybcid needCalcQValByBCID proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid proc~projectveconplane projectVecOnPlane proc~sdr_find_periodic_neighbor->proc~projectveconplane proc~sdr_qvalbynode sdr_qValByNode proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode proc~sdr_truncate_qval sdr_truncate_qVal proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval sdr_nodeprop_btest sdr_nodeprop_btest proc~sdr_find_periodic_neighbor->sdr_nodeprop_btest tem_BaryOfId tem_BaryOfId proc~sdr_find_periodic_neighbor->tem_BaryOfId tem_CoordOfId tem_CoordOfId proc~sdr_find_periodic_neighbor->tem_CoordOfId tem_CoordOfReal tem_CoordOfReal proc~sdr_find_periodic_neighbor->tem_CoordOfReal tem_IdOfCoord tem_IdOfCoord proc~sdr_find_periodic_neighbor->tem_IdOfCoord tem_abort tem_abort proc~sdr_find_periodic_neighbor->tem_abort val val proc~sdr_find_periodic_neighbor->val proc~gettreeidposofcoord->sdr_nodeprop_btest proc~gettreeidposofcoord->tem_CoordOfReal proc~gettreeidposofcoord->tem_IdOfCoord positionofval positionofval proc~gettreeidposofcoord->positionofval proc~needcalcqvalbybcid->kindpos proc~needcalcqvalbybcid->val 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~~sdr_find_periodic_neighbor~~CalledByGraph proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor proc~create_target create_target proc~create_target->proc~sdr_find_periodic_neighbor proc~getbcid_and_calcqval getBCID_and_calcQval proc~getbcid_and_calcqval->proc~sdr_find_periodic_neighbor proc~sdr_identify_boundary sdr_identify_boundary proc~sdr_identify_boundary->proc~getbcid_and_calcqval proc~traverse_tree traverse_tree proc~traverse_tree->proc~create_target proc~traverse_tree->proc~traverse_tree proc~proto2treelm proto2Treelm proc~traverse_tree->proc~proto2treelm proc~proto2treelm->proc~sdr_identify_boundary proc~sdr_proto2treelm sdr_proto2treelm proc~sdr_proto2treelm->proc~traverse_tree program~seeder seeder program~seeder->proc~sdr_proto2treelm