Path: blob/devel/ElmerGUI/netgen/libsrc/meshing/meshing3.hpp
3206 views
#ifndef FILE_MESHING31#define FILE_MESHING323456enum MESHING3_RESULT7{8MESHING3_OK = 0,9MESHING3_GIVEUP = 1,10MESHING3_NEGVOL = 2,11MESHING3_OUTERSTEPSEXCEEDED = 3,12MESHING3_TERMINATE = 4,13MESHING3_BADSURFACEMESH = 514};151617/// 3d volume mesh generation18class Meshing319{20/// current state of front21AdFront3 * adfront;22/// 3d generation rules23ARRAY<vnetrule*> rules;24/// counts how often a rule is used25ARRAY<int> ruleused, canuse, foundmap;26/// describes, why a rule is not applied27ARRAY<char*> problems;28/// tolerance criterion29double tolfak;30public:31///32Meshing3 (const string & rulefilename);33///34Meshing3 (const char ** rulep);35///36virtual ~Meshing3 ();3738///39void LoadRules (const char * filename, const char ** prules);40///41MESHING3_RESULT GenerateMesh (Mesh & mesh, const MeshingParameters & mp);4243///44int ApplyRules (ARRAY<Point3d> & lpoints, ARRAY<int> & allowpoint,45ARRAY<MiniElement2d> & lfaces, INDEX lfacesplit,46INDEX_2_HASHTABLE<int> & connectedpairs,47ARRAY<Element> & elements,48ARRAY<INDEX> & delfaces, int tolerance,49double sloppy, int rotind1,50float & retminerr);5152///53PointIndex AddPoint (const Point3d & p, PointIndex globind);54///55void AddBoundaryElement (const Element2d & elem);56///57void AddBoundaryElement (const MiniElement2d & elem);58///59int AddConnectedPair (const INDEX_2 & pair);6061///62void BlockFill (Mesh & mesh, double gh);63///64void BlockFillLocalH (Mesh & mesh, const MeshingParameters & mp);6566/// uses points of adfront, and puts new elements into mesh67void Delaunay (Mesh & mesh, int domainnr, const MeshingParameters & mp);68///69friend class PlotVolMesh;70///71friend void TestRules ();72};7374757677/// status of mesh generation78class MeshingStat3d79{80public:81///82MeshingStat3d ();83///84int cntsucc;85///86int cnttrials;87///88int cntelem;89///90int nff;91///92int qualclass;93///94double vol0;95///96double vol;97///98double h;99///100int problemindex;101};102103104105106107/*108template <typename POINTARRAY, typename FACEARRAY>109extern int FindInnerPoint (POINTARRAY & grouppoints,110FACEARRAY & groupfaces,111Point3d & p);112113*/114115116117118119#endif120121122123124125126127128129130131132