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

Contents


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

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

public subroutine sdr_refine_leaf(proto, geometry)

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

Read more…

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

public subroutine sdr_smooth_leaf(proto, header, maxLevel)

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

Read more…

Arguments

TypeIntentOptionalAttributesName
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

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

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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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