Cannot create valid tet decomposition for wegde mesh
Summary
A wedge mesh generated with blockMesh in OpenFOAM v2012 cannot be decomposed into tets with polyMeshTetDecomposition::cellTetIndices()
and the tetIndices::faceTriIs()
function.
A possible reason might be that four points of the tet face are reported, e.g. for the sketch below it writes face (A B C A)
// A general wege
C
+
/|
/ |
/ 1|
+---+ B
^
A
If the mesh is generated with blockMesh of OpenFOAM 5.x the error does not occur. Note, only the mesh is generated with 5.x decomposition into tets is then done with v2012.
Steps to reproduce
- Generate a wedge domain with blockMesh
- Use cellTetIndices to get the tets for all cells and try to find the
faceTriIs
. An examplemain()
function could be:
int main()
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
forAll(mesh,cellI)
{
List<tetIndices> cellTets =
polyMeshTetDecomposition::cellTetIndices(mesh, cellI);
triFaceList triFaces(cellTets.size());
forAll(cellTets, cTI)
{
triFaces[cTI] = cellTets[cTI].faceTriIs(mesh);
}
}
return 0;
};
- This will return the warning:
--> FOAM Warning : From Foam::triFace Foam::tetIndices::faceTriIs(const Foam::polyMesh&, bool) const in file No base point for face 1620, 4(0 1 442 441), produces a valid tet decomposition.
Environment information
- OpenFOAM version : v2012
- Operating system : ubuntu 18.04 LTS
- Hardware info : amd ryzen 7
- Compiler : g++ 7.5.0