|
[Sponsors] |
July 18, 2009, 09:46 |
Reading faceSet
|
#1 |
Senior Member
Sebastian Gatzka
Join Date: Mar 2009
Location: Frankfurt, Germany
Posts: 729
Rep Power: 20 |
Hallo again.
I'm currently playing with faceSets and how to access its information. I stole some code from splitMesh, which is reading a faceSet to split a mesh at these faces. For a very very basic understanding I tried to read an existing faceSet (named f0) and output its size. Here is the code Code:
#include "faceSet.H" #include "polyMesh.H" #include "argList.H" using namespace Foam; int main(int argc, char *argv[]) { word setName = argv[1]; Info<< "Reading faceSet from " << setName << endl; # include "setRootCase.H" # include "createMesh.H" # include "createTime.H" # include "createPolyMesh.H" faceSet facesSet(mesh, setName); Info<< "faceSet size: " << facesSet.size() << endl; } Here is the output from wmake: Code:
sega@deepblue:~/OpenFOAM/sega-1.5/applications/listFaceSet$ wmake SOURCE=listFaceSet.C ; g++ -m64 -Dlinux64 -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -march=opteron -O3 -DNoRepository -ftemplate-depth-40 -I/home/sega/OpenFOAM/OpenFOAM-1.5/src/dynamicMesh/lnInclude -I/home/sega/OpenFOAM/OpenFOAM-1.5/src/meshTools/lnInclude -IlnInclude -I. -I/home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude -I/home/sega/OpenFOAM/OpenFOAM-1.5/src/OSspecific/Unix/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/listFaceSet.o In file included from listFaceSet.C:74: /home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/createMesh.H: In function ‘int main(int, char**)’: /home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/createMesh.H:2: error: ‘runTime’ was not declared in this scope /home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/createMesh.H:4: error: ‘fvMesh’ is not a member of ‘Foam’ /home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/createMesh.H:4: error: expected `;' before ‘mesh’ In file included from listFaceSet.C:75: /home/sega/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/createTime.H:5: error: incomplete type ‘Foam::Time’ used in nested name specifier make: *** [Make/linux64GccDPOpt/listFaceSet.o] Fehler 1 Code:
listFaceSet f0
__________________
Schrödingers wife: "What did you do to the cat? It's half dead!" |
|
July 18, 2009, 11:55 |
|
#2 |
Senior Member
Henrik Rusche
Join Date: Mar 2009
Location: Wernigerode, Sachsen-Anhalt, Germany
Posts: 281
Rep Power: 18 |
Dear Sebastian,
Read the error message carfully! The compiler complains that it does not understand a few things in your createMesh.H. Without knowing the contents of this file, I would guess that a lot of those errors will go away if you add #include "fvCFD.H" to your code. But the ";"-problem will not. Henrik |
|
July 18, 2009, 13:17 |
|
#3 |
Senior Member
Sebastian Gatzka
Join Date: Mar 2009
Location: Frankfurt, Germany
Posts: 729
Rep Power: 20 |
All of the problems were solved with including fvCFD.H and putting
Code:
-I$(LIB_SRC)/finiteVolume/lnInclude \ But now there is a problem with the number of argument. When runnning the file on a case for which a faceSet exists in constant/polyMesh/sets/f0 I'm getting this error: Code:
Wrong number of arguments, expected 0 found 1 Code:
#include "faceSet.H" #include "polyMesh.H" #include "argList.H" #include "fvCFD.H" using namespace Foam; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // int main(int argc, char *argv[]) { # include "setRootCase.H" # include "createTime.H" # include "createPolyMesh.H" Foam::argList::validArgs.append("faceSet"); word setName(args.additionalArgs()[0]); Info<< "Reading faceSet set from " << setName << endl; faceSet facesSet(mesh, setName); Info<< "faceSet size: " << facesSet.size() << endl; Info<< nl << "end" << endl; return 0; }
__________________
Schrödingers wife: "What did you do to the cat? It's half dead!" |
|
July 18, 2009, 13:32 |
|
#4 |
Senior Member
Henrik Rusche
Join Date: Mar 2009
Location: Wernigerode, Sachsen-Anhalt, Germany
Posts: 281
Rep Power: 18 |
Not sure, but try
Code:
int main(int argc, char *argv[]) { Foam::argList::validArgs.append("faceSet"); # include "setRootCase.H" # include "createTime.H" # include "createPolyMesh.H" word setName(args.additionalArgs()[0]); // more code } |
|
July 19, 2009, 08:13 |
|
#5 |
Senior Member
Sebastian Gatzka
Join Date: Mar 2009
Location: Frankfurt, Germany
Posts: 729
Rep Power: 20 |
Yes, its working! Thank you!
I didn't realize that this would made a difference. Why is that so?
__________________
Schrödingers wife: "What did you do to the cat? It's half dead!" |
|
July 19, 2009, 08:35 |
|
#6 |
Senior Member
Henrik Rusche
Join Date: Mar 2009
Location: Wernigerode, Sachsen-Anhalt, Germany
Posts: 281
Rep Power: 18 |
Dear Sebastian,
the argument parser needs to know the full syntax to its job properly which includes flagging errors. Some of the arguments are used in setRootCase.H so valid option have to be defined before ... If you want to learn more - dig through $FOAM_SRC/OpenFOAM/lnInclude/argList.C $FOAM_SRC/OpenFOAM/lnInclude/setRootCase.H Henrik |
|
Tags |
faceset |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Commercial meshers] Problem converting fluent mesh | vinz | OpenFOAM Meshing & Mesh Conversion | 28 | October 12, 2015 07:37 |
[blockMesh] StitchMesh on two patches | anita | OpenFOAM Meshing & Mesh Conversion | 31 | April 4, 2013 12:51 |
[Commercial meshers] Converting a mesh with splitted cells using fluentMeshToFoam | jlpelerin | OpenFOAM Meshing & Mesh Conversion | 4 | April 25, 2011 17:56 |
[Commercial meshers] TGridFluent mesh with internal by prism layer and internal face for diagnostic | sponiar | OpenFOAM Meshing & Mesh Conversion | 2 | March 30, 2009 16:02 |
[Commercial meshers] FluentMesh conversion problem | waynezw0618 | OpenFOAM Meshing & Mesh Conversion | 12 | December 1, 2006 00:12 |