diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp index e07acd147ded5839ff69655448c30c0d6c568a22..c8ba5eef9101bef2c007e1c4d5dd79893f60c684 100644 --- a/Mesh/Print_Mesh.cpp +++ b/Mesh/Print_Mesh.cpp @@ -1,4 +1,4 @@ -/* $Id: Print_Mesh.cpp,v 1.8 2000-11-26 15:43:47 geuzaine Exp $ */ +/* $Id: Print_Mesh.cpp,v 1.9 2000-11-30 10:14:09 geuzaine Exp $ */ #include "Gmsh.h" #include "Const.h" @@ -218,34 +218,21 @@ void add_msh_elements (Mesh * M){ for (i = 0; i < List_Nbr (M->PhysicalGroups); i++){ List_Read (M->PhysicalGroups, i, &p); MSH_PHYSICAL_NUM = p->Num; + MSH_VOL_NUM = 0; switch (p->Typ){ - case MSH_PHYSICAL_VOLUME: - for (k = 0; k < List_Nbr (ListVolumes); k++){ - List_Read (ListVolumes, k, &pV); - for (j = 0; j < List_Nbr (p->Entities); j++){ - List_Read (p->Entities, j, &Num); - MSH_VOL_NUM = abs (Num); - MSH_PHYSICAL_ORI = sign (Num); - Tree_Action (pV->Simplexes, add_msh_simplex); - Tree_Action (pV->Hexahedra, add_msh_hexahedron); - Tree_Action (pV->Prisms, add_msh_prism); - } - } - break; - - case MSH_PHYSICAL_SURFACE: + case MSH_PHYSICAL_POINT: for (j = 0; j < List_Nbr (p->Entities); j++){ - ps = &s; + pv = &v; List_Read (p->Entities, j, &Num); - ps->Num = abs (Num); + pv->Num = abs (Num); MSH_PHYSICAL_ORI = sign (Num); - if (Tree_Query (M->Surfaces, &ps)) - Tree_Action (ps->Simplexes, add_msh_simplex); + if (Tree_Query (M->Vertices, &pv)) + add_msh_point (pv); } break; - + case MSH_PHYSICAL_LINE: for (j = 0; j < List_Nbr (p->Entities); j++){ pc = &c; @@ -256,20 +243,40 @@ void add_msh_elements (Mesh * M){ Tree_Action (pc->Simplexes, add_msh_simplex); } break; - - case MSH_PHYSICAL_POINT: + + case MSH_PHYSICAL_SURFACE: for (j = 0; j < List_Nbr (p->Entities); j++){ - pv = &v; + ps = &s; List_Read (p->Entities, j, &Num); - pv->Num = abs (Num); + ps->Num = abs (Num); MSH_PHYSICAL_ORI = sign (Num); - if (Tree_Query (M->Vertices, &pv)) - add_msh_point (pv); + if (Tree_Query (M->Surfaces, &ps)){ + Tree_Action (ps->Simplexes, add_msh_simplex); + } + } + break; + + case MSH_PHYSICAL_VOLUME: + for (k = 0; k < List_Nbr (ListVolumes); k++){ + List_Read (ListVolumes, k, &pV); + for (j = 0; j < List_Nbr (p->Entities); j++){ + List_Read (p->Entities, j, &Num); + MSH_VOL_NUM = abs (Num); + MSH_PHYSICAL_ORI = sign (Num); + Tree_Action (pV->Simplexes, add_msh_simplex); + Tree_Action (pV->Hexahedra, add_msh_hexahedron); + Tree_Action (pV->Prisms, add_msh_prism); + } } break; + default : + Msg(ERROR, "Unknown Type of Physical Group"); + break; } + } + } void process_msh_elements (Mesh * M){