diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index 7b27c1c14ce7340c21687af09963530a38e90f9d..3027bc72642e08cf8aca12651b275890650e45e3 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.132 2004-09-18 01:12:16 geuzaine Exp $ +@c $Id: gmsh.texi,v 1.133 2004-10-04 01:07:43 geuzaine Exp $ @c @c Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle @c @@ -328,7 +328,7 @@ hexahedra and pyramids), arranged in such a way that if two of them intersect, they do so along a face, an edge or a node, and never otherwise. All the finite element meshes produced by Gmsh are considered as ``unstructured'', even if they were generated in a ``structured'' way -(e.g.@: by extrusion). This implies that the elementary geometrical elements +(e.g., by extrusion). This implies that the elementary geometrical elements are defined only by an ordered list of their nodes but that no predefined order relation is assumed between any two elements. @@ -414,7 +414,7 @@ displacement maps. Post-processing functions include section computation, offset, elevation, boundary and component extraction, color map and range modification, animation, vector graphic output, etc. All post-processing options can be accessed either interactively or through the input ASCII text -files. Scripting permits to automate all post-processing operations, e.g.@: +files. Scripting permits to automate all post-processing operations, e.g., for the creation of animations. User-defined operations can also be performed on post-processing views through dynamically loadable plugins. @@ -441,7 +441,7 @@ parameterize these geometries. Gmsh's scripting language enables all commands and command arguments to depend on previous calculations (see @ref{Expressions}, and @ref{Geometry commands}); @item -generate 1D, 2D and 3D simplicial (i.e.@: using line segments, triangles and +generate 1D, 2D and 3D simplicial (i.e., using line segments, triangles and tetrahedra) finite element meshes. The performance of the 1D and 2D algorithms is pretty good; the 3D algorithm is still experimental and slow (see @ref{Mesh module}, and @ref{Tutorial}); @@ -544,7 +544,7 @@ that metasyntactic variable definitions stay valid throughout the manual @item Keywords and literal symbols are printed like @code{this}. @item -Metasyntactic variables (i.e.@: text bits that are not part of the syntax, +Metasyntactic variables (i.e., text bits that are not part of the syntax, but stand for other text bits) are printed like @var{this}. @item A colon (@code{:}) after a metasyntactic variable separates the variable @@ -751,7 +751,7 @@ Character expressions are defined as: @end example @noindent The second case in this definition permits to take the -prefix of a string (e.g.@: for removing the extension from a file name). The +prefix of a string (e.g., for removing the extension from a file name). The third case permits to concatenate two character expressions, and the fourth is an equivalent of the @code{sprintf} C function (where @var{char-expression} is a format string that can contain floating point @@ -898,7 +898,7 @@ argument. The evaluation priorities are summarized below@footnote{The affectation operators are introduced in @ref{General commands}.} (from stronger to -weaker, i.e.@: @code{*} has a highest evaluation priority than @code{+}). +weaker, i.e., @code{*} has a highest evaluation priority than @code{+}). Parentheses @code{()} may be used anywhere to change the order of evaluation: @@ -1455,7 +1455,9 @@ point of the arc; the second @var{expression} gives the identification number of the center of the ellipse; the third @var{expression} gives the identification number of any point located on the major axis of the ellipse; the last @var{expression} gives the identification number of the end point -of the arc. (A deprecated synonym for @code{Ellipse} is @code{Ellipsis}.) +of the arc. + +(A deprecated synonym for @code{Ellipse} is @code{Ellipsis}.) @item Line ( @var{expression} ) = @{ @var{expression}, @var{expression} @}; Creates a straight line segment. The @var{expression} inside the parentheses @@ -1524,9 +1526,14 @@ plane surface's identification number; the @var{expression-list} on the right hand side should contain the identification numbers of all the line loops defining the surface. The first line loop defines the exterior boundary of the surface; all other line loops define holes in the surface. +A line loop defining a hole should not have any lines in common with the +exterior line loop (in which case it is not a hole, and the two surfaces +should be defined separately). Likewise, a line loop defining a hole should +not have any lines in common with another line loop defining a hole in the +same surface (in which case the two line loops should be combined). @item Ruled Surface ( @var{expression} ) = @{ @var{expression-list} @}; -Creates a ruled surface, i.e.@: a surface that can be interpolated using +Creates a ruled surface, i.e., a surface that can be interpolated using transfinite interpolation. The @var{expression} inside the parentheses is the ruled surface's identification number; the @var{expression-list} on the right hand side should the identification number of a single line loop, @@ -1572,8 +1579,15 @@ Creates a volume. The @var{expression} inside the parentheses is the volume's identification number; the @var{expression-list} on the right hand side should contain the identification numbers of all the surface loops defining the volume. The first surface loop defines the exterior boundary of -the volume; all other surface loops define holes in the volume. (A -deprecated synonym for @code{Volume} is @code{Complex Volume}.) +the volume; all other surface loops define holes in the volume. A surface +loop defining a hole should not have any surfaces in common with the +exterior surface loop (in which case it is not a hole, and the two volumes +should be defined separately). Likewise, a surface loop defining a hole +should not have any surfaces in common with another surface loop defining a +hole in the same volume (in which case the two surface loops should be +combined). + +(A deprecated synonym for @code{Volume} is @code{Complex Volume}.) @item Physical Volume ( @var{expression} ) = @{ @var{expression-list} @}; Creates a physical volume. The @var{expression} inside the parentheses is @@ -1693,7 +1707,7 @@ Here is a list of all other geometry commands currently available: @ftable @code @item Coherence; -Removes all duplicate elementary geometrical entities (e.g.@: points having +Removes all duplicate elementary geometrical entities (e.g., points having identical coordinates). Note that Gmsh executes the @code{Coherence} command automatically after each geometrical transformation, unless @code{Geometry.AutoCoherence} is set to zero (@pxref{Geometry options}). @@ -1772,6 +1786,10 @@ triangles by default, but quadrangles can be obtained by using the tetrahedra, hexahedra, prisms and pyramids, depending on the type of the surface meshes they are based on. +@c todo: explain what happens if we have a degenerate geometry (incorrect +@c holes with surfaces in contact with the exterior shell, intersecting +@c primitives, etc.) + @menu * Elementary vs physical entities:: * Mesh commands:: @@ -1812,7 +1830,7 @@ overlapping groups, and to control the orientation of the elements in these groups. If physical entities are defined, the output mesh only contains those elements that belong to physical entities. The introduction of such physical entities in large models usually greatly facilitates the -manipulation of the model (e.g.@: using `Tools->Visibility' in the GUI) and +manipulation of the model (e.g., using `Tools->Visibility' in the GUI) and the interfacing with external solvers. @c ------------------------------------------------------------------------- @@ -1868,7 +1886,7 @@ element sizes. This method works with all the algorithms implemented in the mesh module. The final element sizes are of course constrained by the structured -algorithms for which the element sizes are explicitly specified (e.g.@: +algorithms for which the element sizes are explicitly specified (e.g., transfinite and extruded grids: see @ref{Structured grids}). @item You can use geometrical ``attractors'', an elaborate version of the method @@ -1984,7 +2002,9 @@ progression (@code{Progression 2} meaning for example that each line element in the series will be twice as long as the preceding one). The optional argument `@code{Using Bump @var{expression}}' instructs the transfinite algorithm to distribute the nodes with a refinement at both ends of the -line. (A deprecated synonym for @code{Progression} is @code{Power}.) +line. + +(A deprecated synonym for @code{Progression} is @code{Power}.) @item Transfinite Surface @{ @var{expression} @} = @{ @var{expression-list} @}; Selects the surface @var{expression} to be meshed with the 2D transfinite @@ -2086,20 +2106,20 @@ Five external solvers can be interfaced simultaneously with Gmsh. If you just want to start a solver from the solver module, with no further interactions between the solver and Gmsh, just edit the options relative to -one of the five available solvers (e.g.@: @code{Solver.Name0}, +one of the five available solvers (e.g., @code{Solver.Name0}, @code{Solver.Executable0}, @dots{}; see @ref{Solver options}), and set the corresponding ``client-server'' option to zero -(e.g.@: @code{Solver.ClientServer0 = 0}). This doesn't require any +(e.g., @code{Solver.ClientServer0 = 0}). This doesn't require any modification to be made to the solver. If you want the solver to interact with Gmsh (for error messages, option definitions, post-processing, etc.), you need to link your solver with the @file{GmshClient.c} file and add the appropriate function calls inside your program. You can then proceed as in the previous case, but this time you -should set the client-server option to 1 (e.g.@: @code{Solver.ClientServer0 +should set the client-server option to 1 (e.g., @code{Solver.ClientServer0 = 1}), so that Gmsh and the solver can communicate through a Unix socket. See @ref{Solver example}, for an example of how to interface a C -solver. Bindings for solvers written in other languages (e.g.@: Perl) are +solver. Bindings for solvers written in other languages (e.g., Perl) are available on @value{GMSH-WEB}. @menu @@ -2197,7 +2217,7 @@ and the abscissa is the time step. Although visualization is usually mostly an interactive task, Gmsh exposes all the post-processing commands and options to the user in its scripting language to permit a complete automation of the post-processing process (see -e.g.@: @ref{t8.geo}, and @ref{t9.geo}). +e.g., @ref{t8.geo}, and @ref{t9.geo}). The two following sections summarize all available post-processing commands and options. Most options apply to both 2D and 3D plots (colormaps, @@ -2258,7 +2278,7 @@ Saves the the @var{expression}-th post-processing view in a file named Creates a new post-processing view, named @code{"@var{string}"}. This is the easiest way to create a post-processing view, but also the least efficient (the view is read through Gmsh's script parser, which can become quite slow -if the view is large---e.g.@: with more than 100,000 elements). Though, +if the view is large---e.g., with more than 100,000 elements). Though, this ``parsed'' post-processing format (explained in detail in @ref{Gmsh parsed post-processing file format}) is very powerful for testing proposes, since all the values are @var{expressions}. Two other formats, better @@ -2490,7 +2510,7 @@ example with: Note that, even if it is often handy to define the variables and the points directly in the ASCII input files (you can use any text editor for this -purpose, e.g.@: Wordpad on Windows, or Emacs on Unix), it is almost always +purpose, e.g., Wordpad on Windows, or Emacs on Unix), it is almost always simpler to define the lines, the surfaces and the volumes interactively. To do so, just follow the context dependent buttons in the Geometry module. For example, to create a spline, select `Geometry' in the module menu, and then @@ -2502,7 +2522,7 @@ automatically added at the end of the currently opened project file. Gmsh's second operating mode is the non-interactive mode. In this mode, there is no graphical user interface, and all operations are performed without any user interaction@footnote{If you compile Gmsh without the -graphical user interface, i.e.@: with @code{./configure --disable-gui}, this +graphical user interface, i.e., with @code{./configure --disable-gui}, this is the only mode you have access to.}. To mesh the first tutorial in non-interactive mode, just type: @@ -3138,7 +3158,7 @@ the same for all other kinds of values. For relatively small data sets Gmsh provides an additional post-processing format, which is read by Gmsh's script parser. You can thus, for example, embed small post-processing views directly into your geometrical -descriptions (see e.g.@: @ref{t4.geo}). This format is also useful for +descriptions (see e.g., @ref{t4.geo}). This format is also useful for testing purposes: its syntax is very permissive, and you can easily generate it by hand or on the fly. The format of the parsed post-processing file is the following: @@ -3383,14 +3403,14 @@ to make the code easy to read/debug/maintain: @enumerate @item -please enable full warnings for your compiler (e.g.@: add @code{-Wall} to +please enable full warnings for your compiler (e.g., add @code{-Wall} to @code{FLAGS} in the @file{variables} file); @item always use the @code{Msg()} function to print information, errors, @dots{}; @item indent your files using @file{utils/misc/indent.sh}; @item -if working on Windows, don't leave tabs in your files (e.g.@: untabify them +if working on Windows, don't leave tabs in your files (e.g., untabify them with @file{utils/misc/untabify.sh}). @end enumerate