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