sdr_smooth_leaf Subroutine

public subroutine sdr_smooth_leaf(proto, header, maxLevel)

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

This is done by running over all leaf, flooded, non-intersected node at each level and check for neighbor in all 26 directions. If neighbor exist in protoTree and is not a leaf then get eligible children of neighbor in the inverse direction of iDir and check if any of eligible children is not a leaf then refine myself.

Algorithm: Iterate over minLevel, maxLevel-2 - Iterate over all nodes in iLevel + if iNode is leaf, flooded and non intersected boundary * Iterate over 26 directions ++ if neighbor in iDir exist in protoTree and not a leaf ** get eligible children of neighbor in inverse iDir -- if any of eligible children in protoTree is not a leaf +++ refine iNode

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


Calls

proc~~sdr_smooth_leaf~~CallsGraph proc~sdr_smooth_leaf sdr_smooth_leaf append append proc~sdr_smooth_leaf->append destroy destroy proc~sdr_smooth_leaf->destroy init init proc~sdr_smooth_leaf->init positionofval positionofval proc~sdr_smooth_leaf->positionofval proc~create_children create_children proc~sdr_smooth_leaf->proc~create_children sdr_nodeprop_btest sdr_nodeprop_btest proc~sdr_smooth_leaf->sdr_nodeprop_btest sorted sorted proc~sdr_smooth_leaf->sorted tem_CoordOfId tem_CoordOfId proc~sdr_smooth_leaf->tem_CoordOfId tem_FirstIdAtLevel tem_FirstIdAtLevel proc~sdr_smooth_leaf->tem_FirstIdAtLevel tem_IdOfCoord tem_IdOfCoord proc~sdr_smooth_leaf->tem_IdOfCoord tem_eligibleChildren tem_eligibleChildren proc~sdr_smooth_leaf->tem_eligibleChildren tem_horizontalSpacer tem_horizontalSpacer proc~sdr_smooth_leaf->tem_horizontalSpacer tem_startTimer tem_startTimer proc~sdr_smooth_leaf->tem_startTimer tem_stopTimer tem_stopTimer proc~sdr_smooth_leaf->tem_stopTimer val val proc~sdr_smooth_leaf->val proc~create_children->append proc~create_children->val sdr_clear_nodeprop_bit sdr_clear_nodeprop_bit proc~create_children->sdr_clear_nodeprop_bit sdr_inheritbnd_eligiblechildren sdr_inheritbnd_eligiblechildren proc~create_children->sdr_inheritbnd_eligiblechildren sdr_set_nodeprop_bit sdr_set_nodeprop_bit proc~create_children->sdr_set_nodeprop_bit tem_directChildren tem_directChildren proc~create_children->tem_directChildren

Called by

proc~~sdr_smooth_leaf~~CalledByGraph proc~sdr_smooth_leaf sdr_smooth_leaf program~seeder seeder program~seeder->proc~sdr_smooth_leaf