-
Notifications
You must be signed in to change notification settings - Fork 0
Description
I'm using the .STL of a sphere pack with snappyHexMesh to generate a mesh for OpenFOAM. I originally had snapping on, and verified with checkMesh that there were no disconnected regions and that the mesh was fine. However, as soon as I try to run the case, I get this error regarding the mesh:
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 10
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : 10
Exec : simpleFoamMod -parallel
Date : Feb 26 2025
Time : 14:38:45
Host : "brittany-XPS-13-9370"
PID : 71013
I/O : uncollated
Case : /home/brittany/sedTransp/seq10/monoDense
nProcs : 4
Slaves :
3
(
"brittany-XPS-13-9370.71014"
"brittany-XPS-13-9370.71015"
"brittany-XPS-13-9370.71016"
)
Pstream initialised with:
floatTransfer : 0
nProcsSimpleSum : 0
commsType : nonBlocking
polling iterations : 0
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create mesh for time = 0
[2] processorPolyPatch::calcGeometry : Writing my 1443 faces to "/home/brittany/sedTransp/seq10/monoDense/processor2/procBoundary2to0throughyL_faces.obj"
[3] processorPolyPatch::calcGeometry : Writing my 1098 faces to "/home/brittany/sedTransp/seq10/monoDense/processor3/procBoundary3to1throughyL_faces.obj"
[0] processorPolyPatch::calcGeometry : Writing my 1813 faces to "/home/brittany/sedTransp/seq10/monoDense/processor0/procBoundary0to1throughx0_faces.obj"
[1] processorPolyPatch::calcGeometry : Writing my 1813 faces to "/home/brittany/sedTransp/seq10/monoDense/processor1/procBoundary1to0throughxL_faces.obj"
[3] processorPolyPatch::calcGeometry : Dumping lines between corresponding face centres to procBoundary3to1throughyL_faceCentresConnections.obj
[2] processorPolyPatch::calcGeometry : Dumping lines between corresponding face centres to procBoundary2to0throughyL_faceCentresConnections.obj
[1] processorPolyPatch::calcGeometry : Dumping lines between corresponding face centres to procBoundary1to0throughxL_faceCentresConnections.obj
[0] processorPolyPatch::calcGeometry : Dumping lines between corresponding face centres to procBoundary0to1throughx0_faceCentresConnections.obj
[3]
[3]
[3] --> FOAM FATAL ERROR:
[3] face 57 area does not match neighbour by 0.0124883% -- possible face ordering problem.
patch:procBoundary3to1throughyL my area:0.000368015 neighbour area:0.000368061 matching tolerance:2.87081e-08
Mesh face:231314 vertices:4((1.36457 2.12138 0.715095) (1.33914 2.12385 0.699719) (1.33857 2.1272 0.725713) (1.35883 2.12728 0.71873))
If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file.
Rerun with processor debug flag set for more information.
[3]
[3] From function virtual void Foam::processorPolyPatch::calcGeometry(Foam::PstreamBuffers&)
[3] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 269.
[3]
FOAM parallel run exiting
[3]
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 3 in communicator MPI COMMUNICATOR 3 SPLIT FROM 0
with errorcode 1.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[brittany-XPS-13-9370:71009] PMIX ERROR: UNREACHABLE in file ../../../src/server/pmix_server.c at line 2193
[2]
[2]
[2] --> FOAM FATAL ERROR:
[2] face 82 area does not match neighbour by 0.00551079% -- possible face ordering problem.
patch:procBoundary2to0throughyL my area:0.000330345 neighbour area:0.000330363 matching tolerance:1.78836e-08
Mesh face:235236 vertices:4((0.493972 2.12737 1.93407) (0.509532 2.12517 1.93394) (0.509855 2.12525 1.91275) (0.494651 2.12761 1.91277))
If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file.
Rerun with processor debug flag set for more information.
[2]
[2] From function virtual void Foam::processorPolyPatch::calcGeometry(Foam::PstreamBuffers&)
[2] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 269.
[2]
FOAM parallel run exiting
[2]
[brittany-XPS-13-9370:71009] 1 more process has sent help message help-mpi-api.txt / mpi-abort
[brittany-XPS-13-9370:71009] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
In order to rule out anything wrong with the case, I've successfully run the case with:
- A single sphere in the middle of the domain (rule out anything other than the mesh)
- A single sphere, but broken into octants at each of the corners of the domain; stl was generated with this function:
def makeCornerTestSpheres(length,r):
lx = [0, length[0]]
ly = [0, length[1]]
lz = [0, length[2]]
with pygmsh.geo.Geometry() as geom:
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
pos = [lx[k],ly[j],lz[i]]
geom.add_ball(pos,r,mesh_size=r * 0.1)
mesh = geom.generate_mesh()
mesh.write("./corners.stl")
I then moved a 100 sphere pack to sycamore (too large to run locally) with the case only to find it fail. I also toggled off the snapping and am still getting the exact same issue. I then generated a smaller pack with 11 spheres (small enough to run locally). It runs on a single processor (snapping on), but then gives the error above when I try to run it in parallel. This is also the same type of error that the 100 sphere pack gives on sycamore (face x area does not match neighbour by 0.0????% -- possible face ordering problem.). I tried googling the error, and it always seems to be about something else. I'm not sure if this is a purely openFoam problem or something about how the meshes from this code is interacting with OpenFoam.