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

TypeIntentOptionalAttributesName
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

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 proc~tem_coordofid tem_CoordOfId proc~sdr_find_periodic_neighbor->proc~tem_coordofid proc~sdr_nodeprop_btest sdr_nodeProp_btest proc~sdr_find_periodic_neighbor->proc~sdr_nodeprop_btest proc~gettreeidposofcoord getTreeIDPosOfCoord proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord proc~tem_baryofid tem_BaryOfId proc~sdr_find_periodic_neighbor->proc~tem_baryofid proc~sdr_qvalbynode sdr_qValByNode proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode proc~needcalcqvalbybcid needCalcQValByBCID proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid proc~tem_coordofreal tem_CoordOfReal proc~sdr_find_periodic_neighbor->proc~tem_coordofreal proc~projectveconplane projectVecOnPlane proc~sdr_find_periodic_neighbor->proc~projectveconplane proc~tem_idofcoord tem_IdOfCoord proc~sdr_find_periodic_neighbor->proc~tem_idofcoord proc~tem_abort tem_abort proc~sdr_find_periodic_neighbor->proc~tem_abort proc~sdr_truncate_qval sdr_truncate_qVal proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval proc~gettreeidposofcoord->proc~sdr_nodeprop_btest proc~gettreeidposofcoord->proc~tem_coordofreal proc~gettreeidposofcoord->proc~tem_idofcoord interface~positionofval~3 positionofval proc~gettreeidposofcoord->interface~positionofval~3 proc~intersect_raytriangle intersect_RayTriangle proc~sdr_qvalbynode->proc~intersect_raytriangle proc~fraction_pointline fraction_PointLine proc~sdr_qvalbynode->proc~fraction_pointline proc~sdr_truncate_qval->proc~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~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~sdr_identify_boundary sdr_identify_boundary proc~sdr_identify_boundary->proc~getbcid_and_calcqval 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

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: opp_periplane_pos
integer, private :: periPlane_pos
type(sdr_PeriodicPlane_type), private :: plane_curr
type(sdr_PeriodicPlane_type), private :: plane_opp
real(kind=rk), private :: bary_opp(3)
real(kind=rk), private :: coordReal_opp_per(3)
integer, private :: iObj

position of current periodic plane in periodic plane list

integer, private :: coord_opp(4)
real(kind=rk), private :: bary_opp_per(3)
integer(kind=long_k), private :: treeID_opp
integer, private :: treeID_opp_pos
integer, private :: nBCs
integer, private :: minbcid
integer, private :: leafLevel
logical, private :: bc_defined
integer, private :: intersected_first
integer, private :: intersected_last
integer, private :: minLevel_loc