diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp index 27e5f3bfabef238ce16b2629765c5e63c8547a2f..a71d099025e6654b07c691aa489ead212024fb05 100644 --- a/Mesh/meshGFaceExtruded.cpp +++ b/Mesh/meshGFaceExtruded.cpp @@ -1,4 +1,4 @@ -// $Id: meshGFaceExtruded.cpp,v 1.7 2006-11-27 03:06:46 geuzaine Exp $ +// $Id: meshGFaceExtruded.cpp,v 1.8 2006-11-27 05:16:30 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -152,7 +152,7 @@ int MeshExtrudedSurface(GFace *gf) // build a set with all the vertices on the boundary of gf double old_tol = MVertexLessThanLexicographic::tolerance; - MVertexLessThanLexicographic::tolerance = 1.e-6 * CTX.lc; + MVertexLessThanLexicographic::tolerance = 1.e-8 * CTX.lc; std::set<MVertex*, MVertexLessThanLexicographic> pos; std::list<GEdge*> edges = gf->edges(); std::list<GEdge*>::iterator it = edges.begin(); diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 499001697b45687fe2bbd8f2be29609f1dddf237..6fbc68b129e1886e616cb386bc189e029cca5ea7 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.240 2006-11-25 20:08:40 geuzaine Exp $ +// $Id: Gmsh.y,v 1.241 2006-11-27 05:16:31 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -2335,6 +2335,7 @@ ExtrudeParameters : ExtrudeParameter : tLayers '{' ListOfDouble ',' ListOfDouble ',' ListOfDouble '}' tEND { + yymsg(WARNING, "Explicit region numbers in layers are deprecated"); double d; extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr($3); diff --git a/doc/TODO b/doc/TODO index a9611b42b5811ce32d54853446ad32f661e5efb0..bce6a61eca8498e8cda6be4715697de21d3abbc3 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.25 2006-11-22 03:01:48 geuzaine Exp $ +$Id: TODO,v 1.26 2006-11-27 05:16:31 geuzaine Exp $ ******************************************************************** @@ -185,13 +185,7 @@ The "Symmetry" operation should be renamed "Reflection" (?) ******************************************************************** -Attractors in the 2D aniso algo are extremely buggy - -******************************************************************** - -Memory leaks, memory leaks - -- in the old 2D code: mesh_domain()... +Memory leaks: - check all calls to Tree_Replace: we shouldn't use it with trees of pointers, since we loose the original pointer when we actually do a diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index 9196ab5d06d7dde5df8dc5f11db8cb71c989c28c..f2fc70c6e5a77a759b071e476113a3723a7857fe 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: gmsh.texi,v 1.217 2006-11-27 03:22:25 geuzaine Exp $ +@c $Id: gmsh.texi,v 1.218 2006-11-27 05:16:31 geuzaine Exp $ @c @c Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle @c @@ -2023,23 +2023,16 @@ extruded and has the following syntax: @example @var{layers}: @group - Layers @{ @{ @var{expression-list} @}, < @{ @var{expression-list} @}, > - @{ @var{expression-list} @} @} | Recombine; @dots{} + Layers @{ @{ @var{expression-list} @}, @{ @var{expression-list} @} @} | + Recombine; @dots{} @end group @end example -The first @var{expression-list} defines how many elements should be created -in each extruded layer. The (optional) second @var{expression-list} assigns -a region number to each layer, which, if non-zero, overrides the elementary -entity number of the extruded entity. This is useful when there is more -than one layer, as the elements in each layer can then be identified in a -unique way. If the region number is set to zero, or if the -@var{expression-list} is omitted, the elements are associated with the -automatically created elementary geometrical entity (line, surface or -volume) created during the extrusion. The last @var{expression-list} gives -the normalized height of each layer (the list should contain a sequence of -@var{n} numbers 0 < @var{h1} < @var{h2} < @dots{} < @var{hn} <= 1). See -@ref{t3.geo}, for an example. +The first @var{expression-list} defines how many elements should be +created in each extruded layer. The second @var{expression-list} gives +the normalized height of each layer (the list should contain a sequence +of @var{n} numbers 0 < @var{h1} < @var{h2} < @dots{} < @var{hn} <= +1). See @ref{t3.geo}, for an example. For line extrusions, the @code{Recombine} option will recombine triangles into quadrangles when possible. For surface extrusions, the diff --git a/tutorial/t1.geo b/tutorial/t1.geo index 8761b856825e7606bb483187dc189ba625483127..11a1cf01afbe79f369c59efcc1dcebfcc0bfeeda 100644 --- a/tutorial/t1.geo +++ b/tutorial/t1.geo @@ -3,7 +3,7 @@ * Gmsh tutorial 1 * * Variables, elementary entities (points, lines, surfaces), physical - * entities (points, lines, surfaces), background mesh + * entities (points, lines, surfaces) * *********************************************************************/ @@ -22,9 +22,8 @@ Point(1) = {0, 0, 0, 9.e-1 * lc}; // The actual distribution of the mesh element sizes is then obtained // by interpolation of these characteristic lengths throughout the -// geometry. There are also other possibilities to specify -// characteristic lengths: attractors (see `t7.geo') and background -// meshes (see `bgmesh.pos'). +// geometry. Another method to specify characteristic lengths is to use +// a background mesh (see `t7.geo' and `bgmesh.pos'). // As can be seen in the previous definition, more complex expressions // can be constructed from variables and floating point diff --git a/tutorial/t7.geo b/tutorial/t7.geo index 495f994ecbcef088f3bf6cb5f1c10288141fb663..a04f981bf2e55c0a2244249c1f695d784a26ddfd 100644 --- a/tutorial/t7.geo +++ b/tutorial/t7.geo @@ -2,49 +2,19 @@ * * Gmsh tutorial 7 * - * Anisotropic meshes, attractors + * Background mesh * *********************************************************************/ -// The anisotropic 2D mesh generator can be selected with: +// Characteristic lengths can be specified very accuractely by +// providing a background mesh, i.e., a post-processing view that +// contains the target mesh sizes. -Mesh.Algorithm = 2 ; +// Merge the first tutorial +Merge "t1.geo"; -// One can force a 4 step Laplacian smoothing of the mesh with: - -Mesh.Smoothing = 4 ; - -lc = .1; - -Point(1) = {0.0,0.0,0,lc}; -Point(2) = {1.2,-0.2,0,lc}; -Point(3) = {1,1,0,lc}; -Point(4) = {0,1,0,lc}; - -Line(1) = {3,2}; -Line(2) = {2,1}; -Line(3) = {1,4}; -Line(4) = {4,3}; - -Line Loop(5) = {1,2,3,4}; -Plane Surface(6) = {5}; - -Point(5) = {0.1,0.2,0,lc}; -Point(11) = {0.4,0.7,-1,lc}; -Point(12) = {0.5,0.5,0,lc}; -Point(22) = {0.9,0.9,1,lc}; - -Line(5) = {11,22}; - -Spline(7) = {4,5,12,2}; - -// Isotropic and anisotropic attractors can be defined on points and -// lines (this is still experimental and known to be unstable: use at -// your own risk!): - -Attractor Point{1} = {0.01, 0.01, 2}; - -Attractor Line{5} = {0.3, 0.01, 2}; - -Attractor Line{7} = {0.1, 0.02, 8}; +// Merge a post-processing view containing the target mesh sizes +Merge "bgmesh.pos"; +// Apply the view as the current background mesh +Background Mesh View[0];