|
[Sponsors] |
Mesh morphing in parallel: procBoundary faces don't match after many iterations |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 4, 2017, 14:22 |
Mesh morphing in parallel: procBoundary faces don't match after many iterations
|
#1 |
Member
Jean-Michel FONTAINE
Join Date: Aug 2009
Location: Orleans - France
Posts: 55
Rep Power: 17 |
Dear all
I'm using fvMesh::movePoints() for moving a dynamic mesh. The morphing scaling and other components come from sixDOFRigidBodyMotion. The case is a simple floating box, meshed with snappyHexMesh, nothing special. According checkMesh, the mesh is OK. Everything works fine on a single processor. But in parallel (8 procs), the solver stops after roughly 70 morphing iterations with this message : Code:
[0] processorPolyPatch::calcGeometry : Writing my 141 faces to OBJ file "/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor0/procBoundary0to1_faces.obj" [1] processorPolyPatch::calcGeometry : Writing my 141 faces to OBJ file "/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor1/procBoundary1to0_faces.obj" [2] processorPolyPatch::calcGeometry : Writing my 141 faces to OBJ file "/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor2/procBoundary2to0_faces.obj" [0] processorPolyPatch::calcGeometry : Dumping cell centre lines between corresponding face centres to OBJ file"/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor0/procBoundary0to1_faceCentresConnections.obj" [2] processorPolyPatch::calcGeometry : Dumping cell centre lines between corresponding face centres to OBJ file"/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor2/procBoundary2to0_faceCentresConnections.obj" [1] processorPolyPatch::calcGeometry : Dumping cell centre lines between corresponding face centres to OBJ file"/home/nous/OpenFOAM/nous-dev/tutorials/multiphase/bodyWave/testFloatingBox/processor1/procBoundary1to0_faceCentresConnections.obj" [0] [2] [0] [0] --> FOAM FATAL ERROR: [0] face 14 area does not match neighbour by 0.00556450469057% -- possible face ordering problem. patch:procBoundary0to1 my area:0.248848415159 neighbour area:0.248834568363 matching tolerance:1.36641209403e-05 Mesh face:8647 vertices:5((2.29891922335e-07 -0.401730229978 -1.16728607597) (-3.71220352615e-07 2.59544341986e-07 -1.16652025771) (-8.609616315e-07 -3.77768751261e-07 -0.547727379825) (-3.04170602284e-07 -0.20229502984 -0.548709812717) (-1.96712958549e-07 -0.404060089841 -0.551903587152)) 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. [0] [0] From function virtual void Foam::processorPolyPatch::calcGeometry(Foam::PstreamBuffers&) [0] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 284. FOAM parallel run exiting [2] [2] --> FOAM FATAL ERROR: [2] face 14 area does not match neighbour by 0.00556450510688% -- possible face ordering problem. patch:procBoundary2to0 my area:0.248953795093 neighbour area:0.248967648526 matching tolerance:1.36663291959e-05 Mesh face:7755 vertices:5((-0.401888239985 2.44719181695e-07 -1.16729052031) (-3.71220343883e-07 2.59544353419e-07 -1.16652564526) (-8.6096156693e-07 -3.77768666727e-07 -0.547767214909) (-0.202414009888 -2.04817231172e-07 -0.548748574775) (-0.404287879889 -3.22308157959e-07 -0.551940166394)) 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 284. [2] FOAM parallel run exiting [2] [1] --> FOAM FATAL ERROR: [1] face 14 area does not match neighbour by 0.00556450469057% -- possible face ordering problem. patch:procBoundary1to0 my area:0.248834568363 neighbour area:0.248848415159 matching tolerance:1.36630506152e-05 Mesh face:7758 vertices:5((2.29891931019e-07 -0.401730229978 -1.16729143327) (-1.96712894399e-07 -0.404060089841 -0.551943163643) (-3.04170537813e-07 -0.20229502984 -0.548749587058) (-8.6096156693e-07 -3.77768666727e-07 -0.547767214909) (-3.71220343883e-07 2.59544353419e-07 -1.16652564526)) 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. [1] [1] From function virtual void Foam::processorPolyPatch::calcGeometry(Foam::PstreamBuffers&) [1] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 284. [1] FOAM parallel run exiting [1] -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD 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. -------------------------------------------------------------------------- [linux0:04198] 2 more processes have sent help message help-mpi-api.txt / mpi-abort [linux0:04198] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages In Paraview, the faulty processor boundary faces show very tiny mismatches, see the attached image. It may be due to machine precision errors, isn't it ? Is there in OF a build-in function to resynchronize the processor boundary points position ? I found these classes : /OpenFOAM/meshes/polyMesh/syncTools/syncTools.C I also found this aplication : /applications/test/syncTools/Test-syncTools.C I added in the solver something like this, without any results : Code:
// Synchonize the points pointField syncedPoints(mesh.points()); syncTools::syncPointPositions ( mesh, syncedPoints, minMagSqrEqOp<point>(), point(GREAT, GREAT, GREAT) ); Best wishes Jean-Michel OF version : 1612+ |
|
Tags |
match faces, parallel error, processor boundary, synchronization |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
decomposePar problem: Cell 0contains face labels out of range | vaina74 | OpenFOAM Pre-Processing | 37 | July 20, 2020 06:38 |
Problem with chtMultiregionFoam radiation boundary condition | baran_foam | OpenFOAM Running, Solving & CFD | 10 | December 17, 2019 18:36 |
[snappyHexMesh] Error snappyhexmesh - Multiple outside loops | avinashjagdale | OpenFOAM Meshing & Mesh Conversion | 53 | March 8, 2019 10:42 |
pimpleFoam: turbulence->correct(); is not executed when using residualControl | hfs | OpenFOAM Running, Solving & CFD | 3 | October 29, 2013 09:35 |
Orifice Plate with a fully developed flow - Problems with convergence | jonmec | OpenFOAM Running, Solving & CFD | 3 | July 28, 2011 06:24 |