snappyHexMesh type castellatedBufferLayer crashes
Summary
I routinely use the attached notorious testcase to check snappyHexMesh capabilities. It contains some basic STLs in awkwards angles intersecting each other. With the new castellatedBufferLayers, it crashes.
Steps to reproduce
- unzip bugreport.zip
- blockMesh
- snappyHexMesh
Example case
What is the current bug behaviour?
Crashes with message:
Selecting pointSmoother type geometricElementTransform [stack trace]
_ #1 (closed) Foam::sigSegv::sigHandler(int) in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libOpenFOAM.so #2 (closed) ? in /lib64/libc.so.6 #3 (closed) Foam::cellPointConnectivity::generateCellPointConnectivity(int) in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #4 (closed) Foam::cellPointConnectivity::cellPointConnectivity(Foam::polyMesh const&) in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #5 (closed) Foam::cellPointConnectivity const& Foam::MeshObject::New<>(Foam::polyMesh const&) in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #6 (closed) Foam::pointSmoothers::geometricElementTransformPointSmoother::calculate(Foam::List const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field&) const in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #7 (closed) Foam::pointSmoother::update(Foam::List const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::Field const&, Foam::GeometricField&, bool) const in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #8 (closed) Foam::displacementPointSmoothingMotionSolver::solve() in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #9 (closed) Foam::motionSolver::newPoints() in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libdynamicMesh.so #10 (closed) Foam::snappySnapDriver::doSnap(Foam::dictionary const&, Foam::dictionary const&, Foam::meshRefinement::FaceMergeType, double, double, Foam::snapParameters const&) in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/lib/libsnappyHexMesh.so #11 (closed) ? in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/bin/snappyHexMesh #12 (closed) __libc_start_main in /lib64/libc.so.6 #13 (closed) ? in /sw/apps/openfoam/v2412/aocc-4.2.0_tp/OpenFOAM-v2412/platforms/linux64AmdDPInt32Opt/bin/snappyHexMesh_
Segmentation fault (core dumped)
When switching the pointSmoother to laplacian it manages to get past the buffer generation, but ends with an internal error:
Setting up information for layer truncation ...
--> FOAM FATAL ERROR: (openfoam-2412) Did not determine new position for face 634184 owner 156831 neighbour -1 region -1 This is usually caused by not specifying a patch for a boundary face. Switch on the polyTopoChange::debug flag to catch this error earlier. points (removed points marked with (1e+300 1e+300 1e+300)) 4((1.46290408682 0.937006904432 -0.49996807154) (1.48254339401 0.92893979396 -0.498869026054) (1.48103192538 0.927853431168 -0.499422043473) (1.46143446512 0.935928081069 -0.499983683743))
From void Foam::polyTopoChange::getFaceOrder(const label, const labelUList &, const labelUList &, labelList &, labelList &, labelList &) const in file polyTopoChange/polyTopoChange.C at line 876.
FOAM aborting
What is the expected correct behavior?
Correct run ;)
Relevant logs and/or images
Environment information
- OpenFOAM version : v2412 Release version
- Operating system :
- Hardware info :
- Compiler : aocc 4.2.0