This module provides the functionality to find the part of the universe cube, which is actually building up the computational domain.
This routine identifies the nodes, which are supposed to be part of the computational domain, as defined by the seed objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | The proto tree description with all the data enabling the flooding. |
||
type(sdr_geometry_type), | intent(in) | :: | geometry | Description of geometric objects. Propably not needed here, remove again if this is the case. |
||
type(sdr_confHead_type), | intent(inout) | :: | header | some global information on solver name and version |
||
type(treelmesh_type), | intent(in) | :: | meshUniverse | treelmesh contains bounding cube info |
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | The proto tree description with all the data enabling the flooding. |
||
type(sdr_confHead_type), | intent(in), | optional | :: | header | some global information on solver name and version |
|
type(sdr_geometry_type), | intent(in) | :: | geometry |
This routine loops over all intersected with geoemtry nodes and fluidify some node according to the following rule:\n 1. one of its link does noe intersect with any geometry that requires qVal 2. it has fluid neighbor on that direction. i.e. it is wet in that side. Jiaxing Qi
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | The proto tree description with all the data enabling the flooding. |
||
type(sdr_geometry_type), | intent(in) | :: | geometry | Description of geometric objects. |
||
type(treelmesh_type), | intent(in) | :: | meshUniverse | treelmesh contains bounding cube info |
This routine checks for qVal of the periphery and floods if qVal < 0 and the node in that direction is fluid and not intersected by boundary
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | The proto tree description with all the data enabling the flooding. |
||
integer, | intent(in) | :: | node_pos | node position in protoTree |
||
integer(kind=long_k), | intent(in) | :: | treeID | treeID of current node |
||
real(kind=rk) | :: | qVal(:) | qVal for all 26 neighbor directions, should be calculated already |
|||
integer, | intent(in) | :: | iColor | Color to do the flooding in |
Mark all virtual nodes, which contain a flooded child as flooded starting from the second finest level moving up to the root. This allows to easily avoid non-flooded domains later on.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_protoTree_type), | intent(inout) | :: | proto | The proto tree description with all the data enabling the flooding. |
||
logical, | intent(in) | :: | color_inverted(:) | List of flags for each color to indicate, wether the color should be inverted after flooding. |