This module contains routine to refine protoTree until the minlevel or level defined in the refinement object is reached
This routines inherit distance refine sphere object from root node down to leaf node. Only the object with level greater than node level are inHerited
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
This routine extends the protoTree with max of minlevel or level of refinement object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
This routine smoothens fluid domain with maximum level jumps of 1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | preliminary tree on which childern are created |
||
type(sdr_confHead_type), | intent(inout) | :: | header | some global information on solver name and version |
||
integer, | intent(in) | :: | maxLevel | Maximum level in the fluid domain |
This routine inherit the intersected boundary objects from parent to childrens
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
This routine checks if neighbor node with intersected boundary is level higher than current node level.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | preliminary tree on which childern are created |
||
integer, | intent(in) | :: | parent | Position of parent node on the dynamic array of node%treeID and node_data in preliminary tree |
||
integer(kind=long_k), | intent(in) | :: | parent_ID_offset | first treeID of the parent |
||
type(levelValues_type), | intent(in) | :: | leVal | contains information on current level on which children are created |
||
integer, | intent(inout) | :: | maxLevel | Maximum level to refine current node |
This routine append 8 children to protoTree and inherit property bits from parent. leaf bit is removed from parent.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | preliminary tree on which childern are created |
||
integer, | intent(in) | :: | parent | Position of parent node on the dynamic array of node%treeID and node_data in preliminary tree |
||
integer, | intent(out) | :: | child_nodePos(8) | 8 children node position in protoTree |
||
type(grw_longarray_type), | intent(inout) | :: | grwTreeID | Temporary growing array of TreeID contains new leaf nodes in current level |