This routine loop over all nodes are flood non-interesting leaf node with
wet face and inherit the wetness of the virtual node to the eligble
childrens
The algorithm works by flooding the domain, starting from the seed points
up to boundary elements. This approach is quite robust to broken STL
definitions, as any cracks below the resolution are automatically healed
and there is no dependece on the orientation of the surfaces.
To avoid unintended leaking, the flooding takes only the 6 side neighbors
into account, that is the computational domain will always be connected
by faces, there will be no parts of the domain which are only connected
by edges or corners.
Seeds are already marked as flooded during the previous leaf
identification, also the neighboring sides have already been marked as wet.
Note, that seeds in nodes with boundaries are ignored and not flooded.
Several iterations are done, referred to as waves and within each the
following algorithm is used:
Iterate over all nodes.
- If node is a leaf
+ If not intersecting boundaries:
* Check if any side is wet, and if so, flood yourself.
If flooded, mark all neighboring sides as wet.
+ If intersecting boundaries: nothing to do!
For virtual nodes: (if not leaf)
Inherit wet sides down to the direct children on this side
(eligible children).
The procedure is finished, if no property changed during a wave.
(Flooded status and wet faces are encoded in the PropertyBits field.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.