ORGANIZE_CheckFreeSurface_Version
define version number for the free-surface-check
The default value is
ORGANIZE_CheckFreeSurface_Version = 3 (new version with the options below)
Other values than 3 will invoke the classical version (ORGANIZE_CheckFreeSurface_Version=2).
compared to version 2,
ORGANIZE_CheckFreeSurface_Version = 3 will:
In general:
-
- The MESHFREE point \( \mathbf{x}\) is a free surface point, if its local Delaunay tetrahedralization contains open faces,
that means if the ring of tetras around the point is not closed.
- Let us call the corner points of the i-th local tetra by \( \left\{ \mathbf{P}_i^0, \mathbf{P}_i^1, \mathbf{P}_i^2, \mathbf{P}_i^3 \right\}, i=1...N\), where \( \mathbf{P}_i^0\) is the central point around which the Delaunay cells are formed.
- the boundary normal is computed from the normals of the open faces, that is (in 3D):
\( \mathbf{n} = \sum \limits_{i=1}^N \sum \limits_{j=1}^3 (\mathbf{P}_i^j-\mathbf{P}_i^0) \times (\mathbf{P}_i^{j+1}-\mathbf{P}_i^0)\), with the definition \( \mathbf{P}_i^4 = \mathbf{P}_i^1\)
Of course, \( \mathbf{n}\) will have to be normalized.
- Curvature computation: (to follow)
- The different options below concern different ways of computing and admitting the Delaunay tetrahedralization.
OPTIONs :
-
- simple local Delaunay tetrahedralization,
- the tetras is not admissible if their circumference is bigger than dist_FS_from_BND * smoothingLength.
-
- add a ghost point in normal direction if the point was previously a free surface point, the ghost point status is like an inner point,
- run local Delaunay tetrahedralization together with the ghost points,
- tetras are not admissible, if their circumference is bigger than dist_FS_from_BND * smoothingLength,
- tetras are not admissible, if all corner points were free surface points at the previous time step.
-
- tetras are not admissible if their circumference is bigger than dist_FS_from_BND * smoothingLength,
- tetra always admissible if one of its corner points is a (previous) inner point,
- otherwise the \( i\)-th tetra is not admissible if for some of their corner points \( j\) we have
\( \mathbf{n}_i^j \cdot ( \mathbf{x}_i^0-\mathbf{P}_i^j ) < \text{maxCos}\) (the normal looks "away" from the center of the circumcircle)
where
\( \mathbf{n}_i^j\) is the computed normal of the previous time step (the point being a former free surface point) or the wall normal (the point being a regular wall point),
\( \mathbf{x}_i^0\) is the center of the circumcircle of the tetra.
-
- tetras are not admissible if their circumference is bigger than dist_FS_from_BND * smoothingLength,
- a tetra is always admissible if one of its corner points is a (previous) inner point,
- otherwise the \( i\)-th tetra is not admissible if for some of their corner points \( j\) we have
\( \max \limits_{ k=1...4 , k \ne j }\left( \mathbf{n}_i^j \cdot ( \mathbf{P}_i^k-\mathbf{P}_i^j ) \right) < \text{maxCos}\) (all corner points look "away" from the normal)
where \( \mathbf{n}_i^j\) is the computed normal of the previous time step (the point being a former free surface point) or the wall normal (the point being a regular wall point).
-
- add a ghost point in normal direction if the point was previously any non-interior point, the ghost point status is like an inner point,
- run local Delaunay tetrahedralization together with the ghost points,
- tetras are not admissible, if their circumference is bigger than dist_FS_from_BND * smoothingLength,
- tetras are not admissible, if all corner points were free surface points at the previous time step.
for version 2 and 3:
ORGANIZE_CheckFreeSurface_Version = 32x
ORGANIZE_CheckFreeSurface_Version = 33x
the last digits define the maximum allowed cosine-values (maxCos) for admissibility as described above: maxCos=-0.x