sdr_refinePT_module Module

This module contains routine to refine protoTree until the minlevel or level defined in the refinement object is reached


Uses

Used by

  • module~~sdr_refinept_module~~UsedByGraph module~sdr_refinept_module sdr_refinePT_module program~seeder seeder program~seeder->module~sdr_refinept_module

Subroutines

public subroutine sdr_inHerit_distanceRefineObject(proto, geometry)

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

Arguments

Type IntentOptional 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

public subroutine sdr_refine_leaf(proto, geometry)

This routine extends the protoTree with max of minlevel or level of refinement object.

Read more…

Arguments

Type IntentOptional 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

public subroutine sdr_smooth_leaf(proto, header, maxLevel)

This routine smoothens fluid domain with maximum level jumps of 1.

Read more…

Arguments

Type IntentOptional 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

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

Read more…

Arguments

Type IntentOptional 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

private subroutine check_bndLevel(proto, parent, parent_ID_offset, leVal, maxLevel)

This routine checks if neighbor node with intersected boundary is level higher than current node level.

Read more…

Arguments

Type IntentOptional 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

private subroutine create_children(proto, parent, child_nodePos, grwTreeID)

This routine append 8 children to protoTree and inherit property bits from parent. leaf bit is removed from parent.

Arguments

Type IntentOptional 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