diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp index 6aa9deb5881f4fc4dab704a6b8cc03166d97ec39..4a9c1dbd9e908697114e84fc1bbea2f048a50f47 100644 --- a/Mesh/DiscreteSurface.cpp +++ b/Mesh/DiscreteSurface.cpp @@ -1,4 +1,4 @@ -// $Id: DiscreteSurface.cpp,v 1.27 2005-10-24 14:09:42 remacle Exp $ +// $Id: DiscreteSurface.cpp,v 1.28 2005-10-26 15:19:24 geuzaine Exp $ // // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle // @@ -32,7 +32,7 @@ extern Mesh *THEM; extern Context_T CTX; -extern void Move_SimplexBaseToSimplex(Mesh * M, int dimension); + void Mesh_To_BDS(Mesh *m) { diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index d34f0f6ef6f7582ed92334f8e7bf9f9732122b6b..83f108f9c4f7172f3177c18da54ea959b21d4371 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -1,4 +1,4 @@ -// $Id: Generator.cpp,v 1.72 2005-10-16 15:55:46 geuzaine Exp $ +// $Id: Generator.cpp,v 1.73 2005-10-26 15:19:24 geuzaine Exp $ // // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle // @@ -238,9 +238,8 @@ void Maillage_Dimension_1(Mesh * M) t1 = Cpu(); - Move_SimplexBaseToSimplex(M, 1); - Tree_Action(M->Curves, Maillage_Curve); + t2 = Cpu(); M->timing[0] = t2 - t1; } @@ -253,8 +252,6 @@ void Maillage_Dimension_2(Mesh * M) t1 = Cpu(); - Move_SimplexBaseToSimplex(M, 2); - // create reverse 1D meshes List_T *Curves = Tree2List(M->Curves); @@ -309,8 +306,6 @@ void Maillage_Dimension_3(Mesh * M) t1 = Cpu(); - Move_SimplexBaseToSimplex(M, 3); - // merge all the delaunay parts in a single special volume v = Create_Volume(99999, 99999); List_T *list = Tree2List(M->Volumes); @@ -466,7 +461,7 @@ void mai3d(Mesh * M, int Asked) oldstatus = M->status; - // re-read data + // Re-read data if((Asked > oldstatus && Asked >= 0 && oldstatus < 0) || (Asked < oldstatus)) { @@ -476,6 +471,9 @@ void mai3d(Mesh * M, int Asked) CTX.threads_lock = 1; + // Clean up all the 2nd order nodes and transfer all SimplexBase + // into "real" Simplexes + Degre1(); // 1D mesh @@ -530,11 +528,13 @@ void mai3d(Mesh * M, int Asked) if(M->status == 3 && CTX.mesh.optimize) Optimize_Netgen(M); - // Second order elements + // Create second order elements if(M->status && CTX.mesh.order == 2) Degre2(M->status); + // Partition + if(M->status > 1 && CTX.mesh.nbPartitions != 1) PartitionMesh(M, CTX.mesh.nbPartitions); diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 0cace55b7bc3c1ab90b44fee635a0bdb0cf194bc..1f2a763246a6c34a7c86e19b04cc3db942629533 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -492,6 +492,8 @@ void Freeze_Vertex(void *a, void *b); void deFreeze_Vertex(void *a, void *b); void ReOrientSurfaceMesh(Surface *s); +void Move_SimplexBaseToSimplex(Mesh * M, int dimension); + double Lc_XYZ(double X, double Y, double Z, Mesh *m); void ActionLiss(void *data, void *dummy); void ActionLissSurf(void *data, void *dummy); diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index 1461fa2ceddef3a6dea96739df8984a9cadb0586..a7a17cdd2e4ac4371afe34742521fede8b98790e 100644 --- a/Mesh/SecondOrder.cpp +++ b/Mesh/SecondOrder.cpp @@ -1,4 +1,4 @@ -// $Id: SecondOrder.cpp,v 1.33 2005-05-15 01:44:26 geuzaine Exp $ +// $Id: SecondOrder.cpp,v 1.34 2005-10-26 15:19:24 geuzaine Exp $ // // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle // @@ -444,6 +444,9 @@ void ResetDegre2_Volume(void *a, void *b) void Degre1() { + // transform any SimplexBase into "real" simplices + Move_SimplexBaseToSimplex(THEM, 3); + // (re-)initialize the global tree of edges/quadfaces if(edges) delete edges;