|
[Sponsors] |
[snappyHexMesh] snappyHexMesh error "Cannot determine normal vector from patches." |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 10, 2017, 05:15 |
snappyHexMesh error "Cannot determine normal vector from patches."
|
#1 |
New Member
Kim Le
Join Date: May 2016
Location: Lyon, France
Posts: 21
Rep Power: 10 |
Hello everyone,
I am trying to run snappy on my STL files but I have this error message. Apparently, it cannot find "Cannot determine normal vector from patches" I have already check the concerned twoDPointCorrector.C file and it comes from this : Code:
if (mag(pn) < VSMALL) { FatalErrorInFunction << "Cannot determine normal vector from patches." << abort(FatalError); } else { pn /= mag(pn); } This is the error I get : Code:
Checking initial mesh ... Checking faces in error : non-orthogonality > 65 degrees : 0 faces with face pyramid volume < 1e-13 : 0 faces with face-decomposition tet quality < 1e-15 : 0 faces with concavity > 80 degrees : 0 faces with skewness > 4 (internal) or 20 (boundary) : 0 faces with interpolation weights (0..1) < 0.02 : 0 faces with volume ratio of neighbour cells < 0.01 : 0 faces with face twist < 0.02 : 0 faces on cells with determinant < 0.001 : 0 Detected 0 illegal faces (concave, zero area or negative cell pyramid volume) Checked initial mesh in = 0.28 s Smoothing patch points ... Smoothing iteration 0 Found 0 non-manifold point(s). Scaling iteration 0 Moving mesh using displacement scaling : min:1 max:1 Correcting 2-D mesh motion--> FOAM Warning : [3] [4] [4] [4] --> FOAM FATAL ERROR: [4] Cannot determine normal vector from patches. [4] [4] From function void Foam::twoDPointCorrector::calcAddressing() const [4] in file twoDPointCorrector/twoDPointCorrector.C at line 105.[5] [5] [5] --> FOAM FATAL ERROR: [5] Cannot determine normal vector from patches. [5] [5] From function void Foam::twoDPointCorrector::calcAddressing() const [5] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [5] FOAM parallel run aborting [6] [6] [6] --> FOAM FATAL ERROR: [6] Cannot determine normal vector from patches. [6] [6] From function void Foam::twoDPointCorrector::calcAddressing() const [6] in file twoDPointCorrector/twoDPointCorrector.C at line 105[7] [7] [7] --> FOAM FATAL ERROR: [7] Cannot determine normal vector from patches. [7] [7] From function void Foam::twoDPointCorrector::calcAddressing() const [7] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [7] FOAM parallel run aborting [7] [8] [8] [8] --> FOAM FATAL ERROR: [8] Cannot determine normal vector from patches. [8] [8] From function void Foam::twoDPointCorrector::calcAddressing() const [8] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [8] FOAM parallel run aborting [8] [9] [9] [9] --> FOAM FATAL ERROR: [9] Cannot determine normal vector from patches. [9] [9] From function void Foam::twoDPointCorrector::calcAddressing() const [9] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [9] FOAM parallel run aborting [9] [10] [10] [10] --> FOAM FATAL ERROR: [10] Cannot determine normal vector from patches. [10] [10] From function void Foam::twoDPointCorrector::calcAddressing() const [10] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [10] FOAM parallel run aborting [10] [11] [11] [11] --> FOAM FATAL ERROR: [11] Cannot determine normal vector from patches. [11] [11] From function void Foam::twoDPointCorrector::calcAddressing() const [11] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [11] FOAM parallel run aborting [11] [12] [12] [12] --> FOAM FATAL ERROR: [12] Cannot determine normal vector from patches. [12] [12] From function void Foam::twoDPointCorrector::calcAddressing() const [12] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [12] FOAM parallel run aborting [12] [13] [13] [13] --> FOAM FATAL ERROR: [13] Cannot determine normal vector from patches. [13] [13] From function void Foam::twoDPointCorrector::calcAddressing() const [13] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [13] FOAM parallel run aborting [13] [14] [14] [14] --> FOAM FATAL ERROR: [14] Cannot determine normal vector from patches. [14] [14] From function void Foam::twoDPointCorrector::calcAddressing() const [14] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [14] FOAM parallel run aborting [14] [15] [15] [15] --> FOAM FATAL ERROR: [15] Cannot determine normal vector from patches. [15] [15] From function void Foam::twoDPointCorrector::calcAddressing() const [15] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [15] FOAM parallel run aborting [15] [2] [2] [2] --> FOAM FATAL ERROR: [2] Cannot determine normal vector from patches. [2] [2] From function void Foam::twoDPointCorrector::calcAddressing() const [2] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [2] FOAM parallel run aborting [2] [1] [1] [1] --> FOAM FATAL ERROR: [1] Cannot determine normal vector from patches. [1] [1] From function void Foam::twoDPointCorrector::calcAddressing() const [1] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [1] FOAM parallel run aborting [1] [3] [3] --> FOAM FATAL ERROR: [3] Cannot determine normal vector from patches. [3] [3] From function void Foam::twoDPointCorrector::calcAddressing() const [3] in file twoDPointCorrector/twoDPointCorrector.C at line 105. [3] FOAM parallel run aborting [3] [4] FOAM parallel run aborting [4] [5] . [6] FOAM parallel run aborting [6] [2] #0 Foam::error::printStack(Foam::Ostream&)[1] #0 Foam::error::printStack(Foam::Ostream&)[15] #0 Foam::error::printStack(Foam::Ostream&)[3] #0 Foam::error::printStack(Foam::Ostream&)[4] #0 Foam::error::printStack(Foam::Ostream&)[5] #0 Foam::error::printStack(Foam::Ostream&)[7] #0 Foam::error::printStack(Foam::Ostream&)[8] #0 Foam::error::printStack(Foam::Ostream&)[9] #0 Foam::error::printStack(Foam::Ostream&)[10] #0 Foam::error::printStack(Foam::Ostream&)[11] #0 Foam::error::printStack(Foam::Ostream&)[12] #0 Foam::error::printStack(Foam::Ostream&)[13] #0 Foam::error::printStack(Foam::Ostream&)[14] #0 Foam::error::printStack(Foam::Ostream&)[6] #0 Foam::error::printStack(Foam::Ostream&) From function void Foam::motionSmootherAlgo::modifyMotionPoints(Foam::pointField&) const in file motionSmoother/motionSmootherAlgo.C at line 657 2D mesh-motion probably not correct in parallel --> FOAM Warning : From function void Foam::twoDPointCorrector::calcAddressing() const in file twoDPointCorrector/twoDPointCorrector.C at line 160 The number of points in the mesh is not equal to twice the number of edges normal to the plane - this may be OK only for wedge geometries. Please check the geometry or adjust the orthogonality tolerance. Number of normal edges: 33396 number of points: 34348 ...done at ??:? at ??:? at ??:? at ??:? at ??:? [11] #1 Foam::error::abort() at ??:? at ??:? [3] #1 Foam::error::abort()[6] #1 [14] #1 Foam::error::abort()Foam::error::abort()[12] #1 at ??:? Foam::error::abort() at ??:? at ??:? [8] #1 Foam::error::abort()[10] #1 Foam::error::abort() at ??:? [5] #1 Foam::error::abort()[1] #1 Foam::error::abort()[9] #1 Foam::error::abort()[7] #1 Foam::error::abort() at ??:? at ??:? [2] #1 Foam::error::abort()[4] #1 Foam::error::abort() at ??:? [13] #1 Foam::error::abort() at ??:? [15] #1 Foam::error::abort() at ??:? [11] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? at ??:? [5] #2 Foam::twoDPointCorrector::calcAddressing() const[9] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? at ??:? at ??:? [10] #2 [8] #2 Foam::twoDPointCorrector::calcAddressing() const[14] #2 Foam::twoDPointCorrector::calcAddressing() constFoam::twoDPointCorrector::calcAddressing() const at ??:? [6] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? at ??:? [7] #2 Foam::twoDPointCorrector::calcAddressing() const[12] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? [1] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? at ??:? [2] #2 Foam::twoDPointCorrector::calcAddressing() const[4] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? [3] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? [13] #2 Foam::twoDPointCorrector::calcAddressing() const at ??:? at ??:? [9] #3 Foam::twoDPointCorrector::normalEdgeIndices() const[11] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [14] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [6] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? at ??:? at ??:? [5] #3 Foam::twoDPointCorrector::normalEdgeIndices() const[15] #2 Foam::twoDPointCorrector::calcAddressing() const[12] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [2] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [7] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? at ??:? [10] #3 Foam::twoDPointCorrector::normalEdgeIndices() const[8] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [4] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [1] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [3] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [13] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? [5] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? at ??:? [11] #4 [9] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) constFoam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [15] #3 Foam::twoDPointCorrector::normalEdgeIndices() const at ??:? at ??:?[14] #4 at ??:? Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const[2] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const[6] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [8] #4 at ??:? Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const[4] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [7] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [12] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [10] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [1] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [13] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [3] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? at ??:? [5] #5 Foam::motionSmootherAlgo::curPoints() const[9] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [15] #4 Foam::motionSmootherAlgo::modifyMotionPoints(Foam::Field<Foam::Vector<double> >&) const at ??:? [11] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? at ??:? at ??:? [8] #5 Foam::motionSmootherAlgo::curPoints() const[6] #5 Foam::motionSmootherAlgo::curPoints() const[4] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [2] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? at ??:? [7] #5 Foam::motionSmootherAlgo::curPoints() const[14] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [1] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [10] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [12] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [3] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? at ??:? [5] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int)[13] #5 Foam::motionSmootherAlgo::curPoints() const at ??:? [11] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [9] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [8] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [2] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? at ??:? [14] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int)[6] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [4] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? at ??:? [7] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int)[1] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [10] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? at ??:? [3] #6 [15] #5 Foam::motionSmootherAlgo::curPoints() constFoam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? at ??:? [5] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int)[13] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [12] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int) at ??:? [11] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [2] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? at [14] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int)??:? [6] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [8] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [1] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [7] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [3] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [5] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [13] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? at ??:? [15] #6 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, Foam::dictionary const&, Foam::dictionary const&, bool, int)[4] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [10] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [9] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? at ??:? [11] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&)[12] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [14] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [8] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [2] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [1] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [6] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [5] #9 Foam::snappySnapDriver::doSnap(Foam::dictionary const&, Foam::dictionary const&, double, double, Foam::snapParameters const&) at ??:? [7] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [13] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [15] #7 Foam::motionSmootherAlgo::scaleMesh(Foam::List<int>&, Foam::List<Foam::Pair<int> > const&, bool, int) at ??:? [3] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [4] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [10] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [9] #8 at ??:? Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&)[11] #9 Foam::snappySnapDriver::doSnap(Foam::dictionary const&, Foam::dictionary const&, double, double, Foam::snapParameters const&) at ??:? at ??:? [8] #9 Foam::snappySnapDriver::doSnap(Foam::dictionary const&, Foam::dictionary const&, double, double, Foam::snapParameters const&)[2] #9 Foam::snappySnapDriver::doSnap(Foam::dictionary const&, Foam::dictionary const&, double, double, Foam::snapParameters const&) at ??:? [12] #8 Foam::snappySnapDriver::preSmoothPatch(Foam::meshRefinement const&, Foam::snapParameters const&, int, Foam::List<Foam::Pair<int> > const&, Foam::motionSmoother&) at ??:? [5] #10 at ??:? etc...... Does anyone has any clue ? Thanks for helping ! |
|
June 3, 2020, 08:49 |
|
#2 |
Senior Member
Franco
Join Date: Nov 2019
Location: Compiègne, France
Posts: 129
Rep Power: 6 |
i am having the same issue! did you solved?
best regards. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] Patches disappearing after snappyHexMesh | obiscolly50 | OpenFOAM Meshing & Mesh Conversion | 3 | April 14, 2023 14:24 |
[snappyHexMesh] Snappy fails to create layers | johny | OpenFOAM Meshing & Mesh Conversion | 5 | November 6, 2020 08:13 |
How to determine the direction of cell face vectors on processor patches | sebastian_vogl | OpenFOAM Programming & Development | 1 | October 11, 2016 14:17 |
[snappyHexMesh] snappyHexMesh does not create boundary patches from .stl files | bug_or_feature | OpenFOAM Meshing & Mesh Conversion | 7 | August 30, 2016 20:18 |
How to determine the direction of cell face vectors on processor patches | sebastian_vogl | OpenFOAM Running, Solving & CFD | 0 | October 27, 2009 09:47 |