Skip to content
Snippets Groups Projects
Commit 8ffd1a3e authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

todo tetgen: recategorize vertices+tets in each separate region
parent e88cb090
No related branches found
No related tags found
No related merge requests found
// $Id: meshGRegion.cpp,v 1.13 2006-11-26 01:11:01 geuzaine Exp $ // $Id: meshGRegion.cpp,v 1.14 2006-11-26 02:14:24 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
// Please report all bugs and problems to <gmsh@geuz.org>. // Please report all bugs and problems to <gmsh@geuz.org>.
#include "meshGRegion.h" #include "meshGRegion.h"
#include "meshGRegionDelaunayInsertion.h"
#include "GModel.h" #include "GModel.h"
#include "GRegion.h" #include "GRegion.h"
#include "GFace.h" #include "GFace.h"
...@@ -124,9 +125,8 @@ void TransferTetgenMesh(GRegion *gr, tetgenio &in, tetgenio &out, ...@@ -124,9 +125,8 @@ void TransferTetgenMesh(GRegion *gr, tetgenio &in, tetgenio &out,
Msg(INFO,"%d points %d edges and %d faces in the final mesh", Msg(INFO,"%d points %d edges and %d faces in the final mesh",
out.numberofpoints, out.numberofedges, out.numberoftrifaces); out.numberofpoints, out.numberofedges, out.numberoftrifaces);
// Tetgen modifies both surface & edge mesh. So, we need to // Tetgen modifies both surface & edge mesh, so we need to re-create
// re-create everything // everything
std::list<GFace*> faces = gr->faces(); std::list<GFace*> faces = gr->faces();
std::list<GFace*>::iterator it = faces.begin(); std::list<GFace*>::iterator it = faces.begin();
while(it != faces.end()){ while(it != faces.end()){
...@@ -134,6 +134,7 @@ void TransferTetgenMesh(GRegion *gr, tetgenio &in, tetgenio &out, ...@@ -134,6 +134,7 @@ void TransferTetgenMesh(GRegion *gr, tetgenio &in, tetgenio &out,
for(unsigned int i = 0; i < gf->triangles.size(); i++) for(unsigned int i = 0; i < gf->triangles.size(); i++)
delete gf->triangles[i]; delete gf->triangles[i];
gf->triangles.clear(); gf->triangles.clear();
if(gf->meshRep) gf->meshRep->destroy();
++it; ++it;
} }
...@@ -458,8 +459,11 @@ void meshGRegion::operator() (GRegion *gr) ...@@ -458,8 +459,11 @@ void meshGRegion::operator() (GRegion *gr)
sprintf(opts, "pe%c", (CTX.verbosity < 3) ? 'Q': (CTX.verbosity > 6)? 'V': '\0'); sprintf(opts, "pe%c", (CTX.verbosity < 3) ? 'Q': (CTX.verbosity > 6)? 'V': '\0');
tetrahedralize(opts, &in, &out); tetrahedralize(opts, &in, &out);
TransferTetgenMesh(gr, in, out, numberedV); TransferTetgenMesh(gr, in, out, numberedV);
// FIXME: all the volume nodes+tets now belong to the first
// region--we need to recategorize them into each separate region
// now do insertion of points // now do insertion of points
void insertVerticesInRegion(GRegion *gr) ;
insertVerticesInRegion(gr); insertVerticesInRegion(gr);
// restore the initial set of faces // restore the initial set of faces
gr->set(faces); gr->set(faces);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment