getBCID_and_calcQval Subroutine

private subroutine getBCID_and_calcQval(proto, geometry, elemBary, iDir, bndnode_pos, level, leVal, meshUniverse, BC_ID, minBCID, qVal, unKnownBnd)

This routine gets minBCID of the given node position in the protoTree. If the minBcid is periodic then it bcID is set to treeID of fluid node on the opposite side of periodic plane. It also computes the qVal if calc_dist = true. If qVal = -1 then there is no intersection and if qVal > 1 then the geometry is intersected after the link distance.

write(dbgUnit(5),*) 'min bc_id ', bc_id

Arguments

Type IntentOptional Attributes Name
type(sdr_protoTree_type), intent(in) :: proto

preliminary tree

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

contains all geometrical objects

real(kind=rk), intent(in) :: elemBary(3)

current element barycenter

integer, intent(in) :: iDir

Current boundary neighbor direction

integer, intent(in) :: bndnode_pos

position of node treeID in the proto%node list

integer, intent(in) :: level

level of the node

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

level value of parent node

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

contains bounding cube information

integer(kind=long_k), intent(out) :: BC_ID

Boundary ID for direction iDir

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

minimum boundary id of current node before truncation

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

distance from boundary for direction iDir

logical, intent(inout) :: unKnownBnd

Is true if a neighbor with no property is encountered


Calls

proc~~getbcid_and_calcqval~~CallsGraph proc~getbcid_and_calcqval getBCID_and_calcQval proc~needcalcqvalbybcid needCalcQValByBCID 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 val val proc~getbcid_and_calcqval->val proc~needcalcqvalbybcid->val kindpos kindpos proc~needcalcqvalbybcid->kindpos proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval proc~sdr_find_periodic_neighbor->val proc~sdr_find_periodic_neighbor->kindpos proc~gettreeidposofcoord getTreeIDPosOfCoord proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord proc~projectveconplane projectVecOnPlane proc~sdr_find_periodic_neighbor->proc~projectveconplane 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 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 proc~gettreeidposofcoord->sdr_nodeprop_btest proc~gettreeidposofcoord->tem_CoordOfReal proc~gettreeidposofcoord->tem_IdOfCoord positionofval positionofval proc~gettreeidposofcoord->positionofval

Called by

proc~~getbcid_and_calcqval~~CalledByGraph proc~getbcid_and_calcqval getBCID_and_calcQval proc~sdr_identify_boundary sdr_identify_boundary proc~sdr_identify_boundary->proc~getbcid_and_calcqval proc~proto2treelm proto2Treelm proc~proto2treelm->proc~sdr_identify_boundary 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