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

make it possible to add second order vertices for a mesh read from
a file (without cad)
parent 5acbde88
No related branches found
No related tags found
No related merge requests found
// $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 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
// //
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
extern Mesh *THEM; extern Mesh *THEM;
extern Context_T CTX; extern Context_T CTX;
extern void Move_SimplexBaseToSimplex(Mesh * M, int dimension);
void Mesh_To_BDS(Mesh *m) void Mesh_To_BDS(Mesh *m)
{ {
......
// $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 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
// //
...@@ -238,9 +238,8 @@ void Maillage_Dimension_1(Mesh * M) ...@@ -238,9 +238,8 @@ void Maillage_Dimension_1(Mesh * M)
t1 = Cpu(); t1 = Cpu();
Move_SimplexBaseToSimplex(M, 1);
Tree_Action(M->Curves, Maillage_Curve); Tree_Action(M->Curves, Maillage_Curve);
t2 = Cpu(); t2 = Cpu();
M->timing[0] = t2 - t1; M->timing[0] = t2 - t1;
} }
...@@ -253,8 +252,6 @@ void Maillage_Dimension_2(Mesh * M) ...@@ -253,8 +252,6 @@ void Maillage_Dimension_2(Mesh * M)
t1 = Cpu(); t1 = Cpu();
Move_SimplexBaseToSimplex(M, 2);
// create reverse 1D meshes // create reverse 1D meshes
List_T *Curves = Tree2List(M->Curves); List_T *Curves = Tree2List(M->Curves);
...@@ -309,8 +306,6 @@ void Maillage_Dimension_3(Mesh * M) ...@@ -309,8 +306,6 @@ void Maillage_Dimension_3(Mesh * M)
t1 = Cpu(); t1 = Cpu();
Move_SimplexBaseToSimplex(M, 3);
// merge all the delaunay parts in a single special volume // merge all the delaunay parts in a single special volume
v = Create_Volume(99999, 99999); v = Create_Volume(99999, 99999);
List_T *list = Tree2List(M->Volumes); List_T *list = Tree2List(M->Volumes);
...@@ -466,7 +461,7 @@ void mai3d(Mesh * M, int Asked) ...@@ -466,7 +461,7 @@ void mai3d(Mesh * M, int Asked)
oldstatus = M->status; oldstatus = M->status;
// re-read data // Re-read data
if((Asked > oldstatus && Asked >= 0 && oldstatus < 0) || if((Asked > oldstatus && Asked >= 0 && oldstatus < 0) ||
(Asked < oldstatus)) { (Asked < oldstatus)) {
...@@ -476,6 +471,9 @@ void mai3d(Mesh * M, int Asked) ...@@ -476,6 +471,9 @@ void mai3d(Mesh * M, int Asked)
CTX.threads_lock = 1; CTX.threads_lock = 1;
// Clean up all the 2nd order nodes and transfer all SimplexBase
// into "real" Simplexes
Degre1(); Degre1();
// 1D mesh // 1D mesh
...@@ -530,11 +528,13 @@ void mai3d(Mesh * M, int Asked) ...@@ -530,11 +528,13 @@ void mai3d(Mesh * M, int Asked)
if(M->status == 3 && CTX.mesh.optimize) if(M->status == 3 && CTX.mesh.optimize)
Optimize_Netgen(M); Optimize_Netgen(M);
// Second order elements // Create second order elements
if(M->status && CTX.mesh.order == 2) if(M->status && CTX.mesh.order == 2)
Degre2(M->status); Degre2(M->status);
// Partition
if(M->status > 1 && CTX.mesh.nbPartitions != 1) if(M->status > 1 && CTX.mesh.nbPartitions != 1)
PartitionMesh(M, CTX.mesh.nbPartitions); PartitionMesh(M, CTX.mesh.nbPartitions);
......
...@@ -492,6 +492,8 @@ void Freeze_Vertex(void *a, void *b); ...@@ -492,6 +492,8 @@ void Freeze_Vertex(void *a, void *b);
void deFreeze_Vertex(void *a, void *b); void deFreeze_Vertex(void *a, void *b);
void ReOrientSurfaceMesh(Surface *s); void ReOrientSurfaceMesh(Surface *s);
void Move_SimplexBaseToSimplex(Mesh * M, int dimension);
double Lc_XYZ(double X, double Y, double Z, Mesh *m); double Lc_XYZ(double X, double Y, double Z, Mesh *m);
void ActionLiss(void *data, void *dummy); void ActionLiss(void *data, void *dummy);
void ActionLissSurf(void *data, void *dummy); void ActionLissSurf(void *data, void *dummy);
......
// $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 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
// //
...@@ -444,6 +444,9 @@ void ResetDegre2_Volume(void *a, void *b) ...@@ -444,6 +444,9 @@ void ResetDegre2_Volume(void *a, void *b)
void Degre1() void Degre1()
{ {
// transform any SimplexBase into "real" simplices
Move_SimplexBaseToSimplex(THEM, 3);
// (re-)initialize the global tree of edges/quadfaces // (re-)initialize the global tree of edges/quadfaces
if(edges) if(edges)
delete edges; delete edges;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment