CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   Help with error message from checkMesh (http://www.cfd-online.com/Forums/openfoam/69511-help-error-message-checkmesh.html)

madad2005 October 26, 2009 06:11

Help with error message from checkMesh
 
Hey,

I'm getting this error when running checkMesh. I have absolutely no idea what it means. Can anyone even give me an inkling as to how you should decipher these error messages?

Cheers,

#########################################

Create time
Create polyMesh for time = 0
Time = 0
Mesh stats
points: 20803225
faces: 112577028
internal faces: 107451394
cells: 47025675
boundary patches: 73
point zones: 0
face zones: 0
cell zones: 0
Overall number of cells of each type:
hexahedra: 6330110
prisms: 11450204
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 27152041
polyhedra: 2093320
Checking topology...
Boundary definition OK.
#0 Foam::error::printStack(Foam::Ostream&) in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigSegv::sigSegvHandler(int) in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 __restore_rt at sigaction.c:0
#3 void Foam::invertManyToMany<Foam::face, Foam::List<int> >(int, Foam::UList<Foam::face> const&, Foam::List<Foam::List<int> >&) in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#4 Foam::primitiveMesh::pointFaces() const in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#5 Foam::primitiveMesh::checkPoints(bool, Foam::HashSet<int, Foam::Hash<int> >*) const in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#6 Foam::checkTopology(Foam::polyMesh const&, bool, bool) in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/checkMesh"
#7 main in "/raid2/gagliard/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/checkMesh"
#8 __libc_start_main in "/lib64/libc.so.6"
#9 _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:116
Segmentation fault

madad2005 October 26, 2009 07:24

Ok, I've worked through the source.. whilst running checkPoints this line is called:

const labelListList& pf = pointFaces();

where pointFaces() calls and returns the result of:

// Invert faces()
pfPtr_ = new labelListList(nPoints());
invertManyToMany(nPoints(), faces(), *pfPtr_)

which it appears is inverting the faces... can someone tell me why? Could this error then be related to wrongly-orientated face normals? The function declaration for invertManyToMany is:

void Foam::invertManyToMany
(
const label nEdges, // const label nPoints
const UList<InList>& pointEdges, // const UList<InList>& pointFaces
List<OutList>& edges // List<OutList>& points
)

The reference to edges is apparently general. <= This is a template hence the general reference.

madad2005 October 27, 2009 04:53

I realise no one has replied to this, but I will persevere. If anything, it'll help me understand what is going on better and maybe help others who may encounter similar problems at a later date.

Ok, from doing some further reading and trying to understand what the routine is doing, I have this so far:

1) It iterates over all the faces and counts the number of times each node is referenced by a face.
2) It then creates a new list of size nPoints() and each index in the list is set to the number of faces expected.
3) It then iterates over all the faces and stores, at each point, which faces use that point.

It is at stage 3 it is crashing out with segmentation fault after progressing about 20% of the way through the faces. So, I'm assuming there is a mismatch between the number of faces using a particular point from Stage 1) and Stage 3). Just have to figure out why that is now!

madad2005 October 27, 2009 11:56

Problem solved due to an indexing issue. It now runs through checkMesh with some errors, but hopefully renumberMesh will help there.


All times are GMT -4. The time now is 01:06.