inHerit_intersectedObject Subroutine

private subroutine inHerit_intersectedObject(proto, geometry, parent, parentID, testAll, intersected_object, grwObjPos, parent_objPos, leVal, child_intersected_object, child_nodePos, memLeft, isDistRefObj)

This routine inherit the intersected boundary objects from parent to childrens

Update the intersected_first and last for children

Arguments

TypeIntentOptionalAttributesName
type(sdr_protoTree_type), intent(inout) :: proto

The proto tree description with all the data to refine further

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

type which contains all geometry object infos

integer, intent(in) :: parent

Position of parent node in protoTree

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

TreeID of parent

logical, intent(in) :: testAll

To test all intersected objects

type(grw_intarray_type), intent(inout) :: intersected_object

Growing array of intersected objects. Could be user defined or distance refine spatial objects

type(grw_intersectobjposarray_type), intent(inout) :: grwObjPos

First and last position of intersected object of all nodes in intersected_object list

type(sdr_intersectObjPos_type), intent(in) :: parent_objPos

Position of first ans last intersected object of parent node in intersected_object list

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

contains information on current level on which children are created

type(grw_intarray_type), intent(inout) :: child_intersected_object

Temporary array of intersected objects for 8 children

integer, intent(in) :: child_nodePos(8)

8 children node position in protoTree

integer, intent(out) :: memLeft

memory of parent intersected object unused by children

logical, intent(in) :: isDistRefObj

Is this distance refine objects


Calls

proc~~inherit_intersectedobject~~CallsGraph proc~inherit_intersectedobject inHerit_intersectedObject proc~tem_coordofid tem_CoordOfId proc~inherit_intersectedobject->proc~tem_coordofid proc~is_intersecting is_intersecting proc~inherit_intersectedobject->proc~is_intersecting proc~tem_spherecubeoverlap tem_sphereCubeOverlap proc~inherit_intersectedobject->proc~tem_spherecubeoverlap interface~sdr_append_childintersectedobject sdr_append_childIntersectedObject proc~inherit_intersectedobject->interface~sdr_append_childintersectedobject interface~append~10 append proc~inherit_intersectedobject->interface~append~10 proc~is_intersecting->proc~tem_spherecubeoverlap proc~sdr_periodicplanecubeoverlap sdr_periodicPlaneCubeOverlap proc~is_intersecting->proc~sdr_periodicplanecubeoverlap proc~tem_cylindercubeoverlap tem_cylinderCubeOverlap proc~is_intersecting->proc~tem_cylindercubeoverlap proc~tem_trianglecubeoverlap tem_triangleCubeOverlap proc~is_intersecting->proc~tem_trianglecubeoverlap proc~tem_linecubeoverlap tem_lineCubeOverlap proc~is_intersecting->proc~tem_linecubeoverlap proc~tem_ellipsoidcubeoverlap tem_ellipsoidCubeOverlap proc~is_intersecting->proc~tem_ellipsoidcubeoverlap proc~tem_pointcubeoverlap tem_pointCubeOverlap proc~is_intersecting->proc~tem_pointcubeoverlap proc~tem_boxcubeoverlap tem_boxCubeOverlap proc~is_intersecting->proc~tem_boxcubeoverlap proc~sdr_spacerinterwovencubeoverlap sdr_spacerInterwovenCubeOverlap proc~is_intersecting->proc~sdr_spacerinterwovencubeoverlap proc~sdr_append_childintersectedobjectgtminlevel sdr_append_childIntersectedObjectGTminLevel interface~sdr_append_childintersectedobject->proc~sdr_append_childintersectedobjectgtminlevel proc~sdr_append_childintersectedobjectall sdr_append_childIntersectedObjectAll interface~sdr_append_childintersectedobject->proc~sdr_append_childintersectedobjectall proc~sdr_periodicplanecubeoverlap->proc~tem_trianglecubeoverlap proc~sdr_append_childintersectedobjectgtminlevel->interface~append~10 proc~sdr_nodeprop_btest sdr_nodeProp_btest proc~sdr_append_childintersectedobjectgtminlevel->proc~sdr_nodeprop_btest interface~mrgrnk mrgrnk proc~sdr_append_childintersectedobjectgtminlevel->interface~mrgrnk interface~placeat~8 placeat proc~sdr_append_childintersectedobjectgtminlevel->interface~placeat~8 proc~sdr_spacerinterwovencubeoverlap->proc~tem_spherecubeoverlap proc~sdr_append_childintersectedobjectall->interface~append~10 proc~sdr_append_childintersectedobjectall->proc~sdr_nodeprop_btest proc~sdr_append_childintersectedobjectall->interface~mrgrnk proc~sdr_append_childintersectedobjectall->interface~placeat~8

Called by

proc~~inherit_intersectedobject~~CalledByGraph proc~inherit_intersectedobject inHerit_intersectedObject proc~sdr_inherit_distancerefineobject sdr_inHerit_distanceRefineObject proc~sdr_inherit_distancerefineobject->proc~inherit_intersectedobject proc~sdr_refine_leaf sdr_refine_leaf proc~sdr_refine_leaf->proc~inherit_intersectedobject program~seeder seeder program~seeder->proc~sdr_inherit_distancerefineobject program~seeder->proc~sdr_refine_leaf

Contents


Variables

TypeVisibilityAttributesNameInitial
integer(kind=long_k), private :: firstchild_ID
integer, private :: node_coord(4)
integer, private :: firstchild_coord(4)
integer, private :: iChild
integer, private :: iObject
integer, private :: obj_pos
integer, private :: child_nObjects(8)
integer, private :: objLevel
integer, private :: attr_pos
integer, private :: minLevel
integer, private :: prim_pos
integer, private :: prim_kind
type(sdr_intersectObjPos_type), private :: child_objPos(8)
type(tem_cube_type), private :: node_cube
type(tem_sphere_type), private :: hol_sphere