diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index 95143df72832c1abd6999f7bd0f58fe10d4e0310..04d53d6d081b0c48fa45d444edca5e979dbdb6de 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,4 +1,4 @@ -// $Id: CommandLine.cpp,v 1.97 2007-03-23 08:44:41 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.98 2007-04-20 07:11:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -81,8 +81,8 @@ void Print_Usage(char *name){ Msg(DIRECT, " -1, -2, -3 Perform 1D, 2D or 3D mesh generation, then exit"); Msg(DIRECT, " -saveall Save all elements (discard physical group definitions)"); Msg(DIRECT, " -o file Specify mesh output file name"); - Msg(DIRECT, " -format string Set output mesh format (msh, msh1, msh2, unv, vrml, stl, mesh"); - Msg(DIRECT, " bdf, p3d, cgns, med)"); + Msg(DIRECT, " -format string Set output mesh format (msh, msh1, msh2, unv, vrml, stl, mesh,"); + Msg(DIRECT, " bdf, p3d, cgns, med)"); Msg(DIRECT, " -algo string Select mesh algorithm (iso, netgen, tetgen)"); Msg(DIRECT, " -smooth int Set number of mesh smoothing steps"); Msg(DIRECT, " -optimize Optimize quality of tetrahedral elements"); diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 57bef333570489f163db690beea329e6f13e6f9e..bab97acc764eb6220d21aff073283d97afab8915 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1,4 +1,4 @@ -// $Id: GModel.cpp,v 1.38 2007-04-16 09:08:27 remacle Exp $ +// $Id: GModel.cpp,v 1.39 2007-04-20 07:11:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -160,10 +160,17 @@ void GModel::associateEntityWithVertices() int GModel::renumberMeshVertices() { // FIXME: here, we should first: - // 1) loop over all elements, and tag all unused vertices in a - // special way (I think the best would be to set their associated - // entity to 0) - // 2) delete all untagged (i.e., unused) vertices + + // 0) set vertex num of all vertices to 0 + + // 1) loop over all point elements, and only set their vertex num + // if they are not connected to at least one edge or if they + // have a physical id + + // 2) loop over all line, face and volume elements, and set num of + // used verts + + // 3) change all save routines to only save verts with num > 0 int numVertices = 0; for(viter it = firstVertex(); it != lastVertex(); ++it) diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index 88f281471f4492680016e4ad26966f2fa53e7abe..eaf9ffe446a328a3ff34f971e199700b00841472 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -1,4 +1,4 @@ -// $Id: Generator.cpp,v 1.117 2007-02-28 06:58:46 geuzaine Exp $ +// $Id: Generator.cpp,v 1.118 2007-04-20 07:11:26 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -179,7 +179,8 @@ void GetStatistics(double stat[50], double quality[3][100]) } -bool TooManyElements(int dim){ +bool TooManyElements(int dim) +{ if(CTX.expert_mode || !GMODEL->numVertex()) return false; // try to detect obvious mistakes in characteristic lenghts (one of @@ -308,10 +309,10 @@ void GenerateMesh(int ask) if(GMODEL->getMeshStatus() == 3 && CTX.mesh.optimize) OptimizeMesh(); - // Create second order elements + // Create high order elements if(GMODEL->getMeshStatus() && CTX.mesh.order > 1) - SetOrderN(GMODEL, CTX.mesh.order, - CTX.mesh.second_order_linear, CTX.mesh.second_order_incomplete); + SetOrderN(GMODEL, CTX.mesh.order, CTX.mesh.second_order_linear, + CTX.mesh.second_order_incomplete); Msg(INFO, "%d vertices %d elements", GMODEL->numVertices(), GMODEL->numElements()); diff --git a/benchmarks/step/linkrods_in_a_box.geo b/benchmarks/step/linkrods_in_a_box.geo index 7162a6bfcc53c3eef46f143d76e635f0af7571c3..1c2cea0f4b6a372fa0c79ba41fe99bde0d0bfe1c 100644 --- a/benchmarks/step/linkrods_in_a_box.geo +++ b/benchmarks/step/linkrods_in_a_box.geo @@ -24,3 +24,12 @@ Plane Surface(10006) = {10005}; tmp[] = Extrude {0, 0, (zmax - zmin) + 2 * l} { Surface{10006}; }; + +Delete { Volume{tmp[1]}; } + +Surface Loop(10029) = {10027,10006,10015,10019,10023,10028}; +Surface Loop(10030) = {7,9,10,11,8,6,28,26,36,15,2,4,5,12,3,1,13,24,23,14, + 16,22,21,18,20,37,34,19,17,35,31,33,32,30,29,27,25}; +Volume(10031) = {10029,10030}; + +//Mesh.CharacteristicLengthFactor = 0.3;