mus_get_points_fromBC Subroutine

public subroutine mus_get_points_fromBC(bc, globBC, tree, stencil, total, iLevel, nPoints, points, offset_bit)

Get Surface points on boundary elements. For boundary state variable which are evaluated linkwise, extract surface points for each link and for non-link based variables project barycenter on the boundary surface. Return real coordinates on boundary surface and offset bit which encodes direction.


type(boundary_type), intent(in) :: bc

Field boundary type

type(glob_boundary_type), intent(in) :: globBC

for number of elements in boundary and position in buffer

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

global treelm mesh

type(tem_stencilHeader_type), intent(in) :: stencil

for directions

integer(kind=long_k), intent(in) :: total(:)

global pdf type

integer, intent(in) :: iLevel

Current level

integer, intent(out) :: nPoints

Number of points

real(kind=rk), intent(out), allocatable:: points(:,:)

3-d real coordinates on which boundary variables are evaluated

character, intent(out), allocatable:: offset_bit(:)

Offset bit encodes direction of boundary. used by apesmate to translate space coordinate in the offset direction to determine the treeID in remote domain


proc~~mus_get_points_frombc~~CallsGraph proc~mus_get_points_frombc mus_get_points_fromBC proc~tem_elemsizelevel tem_ElemSizeLevel proc~mus_get_points_frombc->proc~tem_elemsizelevel proc~tem_baryofid tem_BaryOfId proc~mus_get_points_frombc->proc~tem_baryofid

Called by

proc~~mus_get_points_frombc~~CalledByGraph proc~mus_get_points_frombc mus_get_points_fromBC proc~mus_setupindices_forbc mus_setupIndices_forBC proc~mus_setupindices_forbc->proc~mus_get_points_frombc proc~init_boundary_single init_boundary_single proc~init_boundary_single->proc~mus_setupindices_forbc proc~mus_init_boundary mus_init_boundary proc~mus_init_boundary->proc~init_boundary_single proc~mus_initialize mus_initialize proc~mus_initialize->proc~mus_init_boundary proc~mus_reset_aux mus_reset_aux proc~mus_reset_aux->proc~mus_init_boundary



real(kind=rk), private :: dx
real(kind=rk), private :: bary(3)
real(kind=rk), private, allocatable:: qVal(:)
integer, private :: iElem
integer, private :: iDir
integer, private :: iPnt
integer, private :: invDir
logical, private :: qValIsZero