Skip to content
Snippets Groups Projects
Select Git revision
  • 0257c4e659948d2cf2fb259e3d4693719c0ea663
  • master default
  • cgnsUnstructured
  • partitioning
  • poppler
  • HighOrderBLCurving
  • gmsh_3_0_4
  • gmsh_3_0_3
  • gmsh_3_0_2
  • gmsh_3_0_1
  • gmsh_3_0_0
  • gmsh_2_16_0
  • gmsh_2_15_0
  • gmsh_2_14_1
  • gmsh_2_14_0
  • gmsh_2_13_2
  • gmsh_2_13_1
  • gmsh_2_12_0
  • gmsh_2_11_0
  • gmsh_2_10_1
  • gmsh_2_10_0
  • gmsh_2_9_3
  • gmsh_2_9_2
  • gmsh_2_9_1
  • gmsh_2_9_0
  • gmsh_2_8_6
26 results

FAQ

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    FAQ 20.52 KiB
    $Id: FAQ,v 1.77 2006-12-01 15:07:12 geuzaine Exp $
    
    This is the Gmsh FAQ
    
    ********************************************************************
    
    Section 1: The basics
    
    * 1.1 What is Gmsh?
    
    Gmsh is an automatic three-dimensional finite element mesh generator
    with built-in pre- and post-processing facilities. Its design goal is
    to provide a simple meshing tool for academic problems with parametric
    input and advanced visualization capabilities.
    
    * 1.2 What are the terms and conditions of use?
    
    Gmsh is distributed under the terms of the GNU General Public
    License. See the file 'doc/LICENSE' for more information, or go to the
    GNU foundation's web site at http://www.gnu.org.
    
    * 1.3 What does 'Gmsh' mean?
    
    Nothing ;-)
    
    (Note that in the US, people tend to pronounce 'Gmsh' as
    'Gee-mesh'. Yeehaa!)
    
    * 1.4 Where can I find more information?
    
    http://www.geuz.org/gmsh/ is the primary location to obtain
    information about Gmsh. You will for example find a complete reference
    manual as well as a searchable archive of the Gmsh mailing list
    (gmsh@geuz.org) on this webpage.
    
    ********************************************************************
    
    Section 2: Installation
    
    * 2.1 Which OSes does Gmsh run on?
    
    Gmsh is known to run on Windows 95/98/NT/2000/XP, Linux, Mac OS X,
    Compaq Tru64 Unix (aka OSF1, aka Digital Unix), Sun OS, IBM AIX, SGI
    IRIX, FreeBSD and HP-UX. It should compile on any Unix-like operating
    system, provided that you have access to a recent C and C++ compiler.
    
    * 2.2 Are there additional requirements to run Gmsh?
    
    You should have the OpenGL libraries installed on your system, and in
    the path of the library loader. A free replacement for OpenGL can be
    found at http://www.mesa3d.org.
    
    * 2.3 What do I need to compile Gmsh from the sources?
    
    You need a C and a C++ compiler (e.g. the GNU compilers gcc and g++)
    as well as the GSL (version 1.2 or higher; freely available from
    http://sources.redhat.com/gsl/) and FLTK (version 1.1.x, configured
    with OpenGL support; freely available from http://www.fltk.org).
    
    * 2.4 How do I compile Gmsh?
    
    Just type './configure; make; make install'. If you change some
    configuration options (type './configure --help' to get the list of
    all available choices), don't forget to do 'make clean' before
    rebuilding Gmsh.
    
    ********************************************************************
    
    Section 3: General problems
    
    * 3.1 Gmsh (from a binary distribution) complains about missing
    libraries.
    
    Try 'ldd gmsh' (or 'otool -L gmsh' on Mac OS X) to check if all the
    required shared libraries are installed on your system. If not,
    install them. If it still doesn't work, recompile Gmsh from the
    sources.
    
    * 3.2 Gmsh keeps re-displaying its graphics when other windows
    partially hide the graphical window.
    
    Disable opaque move in your window manager.
    
    * 3.3 The graphics display very slowly.
    
    Are you are executing Gmsh from a remote host (via the network)
    without GLX?  You should turn double buffering off (with the '-nodb'
    command line option).
    
    * 3.4 There is an ugly "ghost triangulation" in the vector
    PostScript/PDF files generated by Gmsh!
    
    No, there isn't. This "ghost triangulation" is due to the fact that
    most PostScript previewers nowadays antialias the graphic primitives
    when they display the page on screen. (For example, in gv, you can
    disable antialising with the 'State->Antialias' menu.) You should not
    see this ghost triangulation in the printed output (on paper).
    
    * 3.5 How can I save GIF, JPEG, ..., images?
    
    Just choose the appropriate format in 'File->Save As'.
    
    * 3.6 How can I save MPEG, AVI, ..., animations?
    
    See question 7.9.
    
    ********************************************************************
    
    Section 4: Geometry module
    
    * 4.1 Does Gmsh support NURBS curves/surfaces?
    
    Only via STEP, IGES or BREP models (not in GEO files).
    
    * 4.2 Gmsh is very slow when I use many transformations (Translate,
    Rotate, Symmetry, Extrude, etc. ). What's wrong?
    
    The default behavior of Gmsh is to check and suppress all duplicate
    entities (points, lines and surfaces) each time a transformation
    command is issued. This can slow down things a lot if many
    transformations are performed. There are two solutions to this
    problem:
    - you may save the unrolled geometry in another file (e.g. with 
      gmsh file.geo -0 > flat.geo), and use this new file for subsequent
      computations;
    - you may set the 'Geometry.AutoCoherence' option to 0. This will
      prevent any automatic duplicate check/replacement. If you still
      need to remove the duplicates entities, simply add 'Coherence;' at 
      strategic locations in your geo files (e.g. before the creation of
      line loops, etc.).
    
    * 4.3 How can I display only selected parts of my model?
    
    By using 'Tool->Visibility':
    
    - In the 'Browser' tab, you can select which group of entities to show
    (several entities can be selected at once by dragging the mouse or by
    holding the Ctrl and Shift keys while clicking). There are three main
    modes: 'Elementary', in which the numbers in the list correspond to
    elementary geometrical entities; 'Physical', in which the numbers in
    the list correspond to physical entities; and 'Partitions', in which
    the numbers in the list correspond to indices of mesh partitions (for
    multi-domain meshes read from "new" .msh files). If 'Geometry+Mesh' is
    selected, the selection applies to both the geometrical entities and
    their associated meshes; if 'Mesh' is selected, the selection applies
    only to the mesh; if 'Geometry' is selected, the selection applies
    only to the geometry. If the 'Recursive' option is set, selecting an
    entity implies that all the entities that are used to construct it
    (all the "boundaries") are selected too, recursively. For example, if
    'Recursive' is set, selecting a surface will automatically select its
    boundary curves, as well as the boundaries of these curves (i.e.,
    points). If 'Recursive' is not set, only the surface (the dashed
    cross) would be shown.
    
    - In the 'Selector' tab, you can choose to show or hide any entity or
    mesh element by giving its number. You can also use the "*" character
    to select all the entities/elements at once. For example, to show only
    the mesh element 13245 in the mesh, you would enter "*" in the
    'Element' input field and click on 'Hide' (this will hide all the mesh
    elements); and then enter "13245" in the 'Element' input field and
    click on 'Show' (this will show the element 13245). To show other
    element, you would just enter another number in the input field, click
    on 'Show', etc.
    
    4.4 When compiled with OpenCascade support, Gmsh crashes at startup
    
    Try setting these environment variables, which govern how OpenCascade
    allocates memory:
    
    export MMGT_OPT=0
    export MMGT_MMAP=0
    
    ********************************************************************
    
    Section 5: Mesh module
    
    * 5.1 What should I do when the 2D unstructured algorithm fails?
    
    Try one of the other 2D algorithms, e.g.:
    - on the command line: 'gmsh -algo tri'
    - in the interface: 'Tools->Options->Mesh->2D->Isotropic algorithm (Triangle)'
    - in input files: 'Mesh.Algorithm = 3'
    The old 2D algorithm may disappear once all its features are
    integrated in the new ones, so please don't send bug reports on the
    old algorithm anymore.
    
    * 5.2 The new 2D unstructured algorithms also fail! Then what?
    
    Send us your geometry, and we will investigate. Please keep the
    following in mind though: 2D (surface) meshes are generated by
    projecting the 2D mesh in a "mean plane" of the surface. This gives
    nice results only if the surface curvature is small enough. Otherwise
    you must cut the surface into several pieces (patches). For example,
    using half circles to define a cylinder will fail with the
    unstructured algorithm: you should define arcs with angles smaller
    than Pi, and thus define the cylinder with at least three patches.
    
    * 5.3 What should I do when the 3D unstructured algorithm fails?
    
    The 3D algorithm is still very experimental. Try to change some
    characteristic lengths in your input file to generate meshes that
    better suit the geometrical details of your structure.
    
    * 5.4 I changed the characteristic lengths, but the 3D algorithm still
    does not work. What should I do?
    
    Buy a professional mesh generator ;-) You can also try to use Netgen
    instead of the default algorithm for the 3D mesh. Note that all
    surface meshes have to be oriented with exterior normals in this case.
    
    * 5.5 The 3D algorithm is reaaaaally slow. Can you improve it?
    
    We are working on it. But since we have a (very) limited amount of
    time to spend on the development of Gmsh, this may take a while. For
    very big meshes, see the answer to the previous question...
    
    * 5.6 The quality of the elements generated by the 3D algorithm is
    very bad.
    
    Upgrade to Gmsh >= 1.54 and use 'Optimize quality'. If badly shaped
    elements still exist due to the surface recovery step, you can try to
    use Netgen instead of the default algorithm for the 3D mesh. Note that
    all surface meshes have to be oriented with exterior normals in this
    case.
    
    * 5.7 Non-recombined 3D extruded meshes sometimes fail.
    
    The swapping algorithm is not very clever at the moment. Try to change
    the surface mesh a bit, or recombine your mesh to generate prisms or
    hexahedra instead of tetrahedra.
    
    * 5.8 Tools->Visibility does not seem to work with extruded meshes.
    
    This is fixed in Gmsh >= 1.54. Note that in Gmsh < 2.0, when region
    numbers are explicitly assigned to mesh entities in the extrude
    commands (which partially destroys the geometry/mesh relationship),
    the 'Visibility' tool will only work as expected when displaying
    elementary entities. In this particular case, the only solution to
    visualize extruded physical entities is to save the mesh, and to read
    it again.
    
    * 5.9 Can I explicitly assign region numbers to extruded layers?
    
    No, this feature has been removed in Gmsh 2.0. You must now use the
    standard entity number instead.
    
    * 5.10 Did you remove the elliptic mesh generator in Gmsh 2.0?
    
    Yes. You can achieve the same result by using the transfinite
    algorithm with smoothing (e.g., with "Mesh.Smoothing = 10").
    
    * 5.11 Does Gmsh support curved elements?
    
    Yes, Gmsh can generate both 1st order and 2nd order elements. To
    generate second order elements, click on 'Second order' in the mesh
    menu after the mesh is completed. To always generate 2nd order
    elements, select 'Generate second order elements' in the mesh option
    panel. From the command line, you can also use '-order 2'.
    
    * 5.12 Can I import an existing surface mesh in Gmsh and use it to
    build a 3D mesh?
    
    Yes, see for example 'demos/sphere-discrete.geo'. 
    
    * 5.13 How do I define boundary conditions or material properties in
    Gmsh?
    
    By design, Gmsh does not try to incorporate every possible definition
    of boundary conditions or material properties--this is a job best left
    to the solver. Instead, Gmsh provides a simple mechanism to tag groups
    of elements, and it is up to the solver to interpret these tags as
    boundary conditions, materials, etc. Associating tags with elements in
    Gmsh is done by defining Physical entities (Physical Points, Physical
    Lines, Physical Surfaces and Physical Volumes): see the reference
    manual as well as the tutorials (in particular 'tutorial/t1.geo') for
    a detailed description and some examples.
    
    * 5.14 How can I display only the mesh associated with selected
    geometrical entities?
    
    See question 4.3.
    
    * 5.15 How can I "explore" a mesh (for example, to see inside a
    complex structure)?
    
    You can use 'Tools->Clipping Planes' to extract the region of
    interest. You can define up to 6 clipping planes in Gmsh (i.e., enough
    to define a "cube" inside your model) and each plane can clip either
    the geometry, the mesh, the post-processing views, or any combination
    of the above.  The clipping planes are defined using the four
    coefficients A,B,C,D of the equation A*x+B*y+C*y+D=0, which can be
    adjusted interactively by dragging the mouse in the input
    fields. There is also one additional clipping plane available for
    "cutting" only the mesh (by keeping entire elements), in
    'Tools->Options->Mesh->Cut Plane'.
    
    * 5.16 What is the signification of Rho, Eta and Gamma in 
    Tools->Statistics?
    
    They measure the quality of the tetrahedra in a mesh:
    
    Rho ~ min_edge_length / max_edge_length
    Eta ~ volume^(2/3) / sum_edge_length^2
    Gamma ~ volume / sum_face_area / max_edge_length 
    
    For the exact definitions, look at Mesh/Element.cpp and
    Mesh/Simplex.cpp.
    
    The graphs plot the the number of elements vs the quality measure.
    
    ********************************************************************
    
    Section 6: Solver module
    
    * 6.1 How do I integrate my own solver with Gmsh?
    
    If you want to simply launch a program from within Gmsh, just edit the
    options to define your solver commands (e.g. Solver.Name0,
    Solver.Executable0, etc.), and set the ClientServer option to zero
    (e.g. Solver.ClientServer0 = 0).
    
    If you want your solver to interact with Gmsh (for error messages,
    option definitions, post-processing, etc.), you will need to link your
    solver with the GmshClient routines and add the appropriate function
    calls inside your program. You will of course also need to define your
    solver commands in an option file, but this time you should set the
    ClientServer variable to 1 (e.g. Solver.ClientServer = 1). C, C++,
    Perl and Python solver examples are available in the source
    distribution in the 'utils/solvers' directory.
    
    * 6.2 On Windows, Gmsh does not seem to find the solver
    executable. What's wrong?
    
    The solver executable (for example, 'getdp.exe') has to be in your
    path. If it is not, simply go to the solver options (the second tab in
    the Solver dialog) and specify its location in the 'Executable' field.
    
    * 6.3 Can I launch Gmsh from my solver (instead of launching my solver
    from Gmsh) in order to monitor a solution?
    
    Sure. The simplest (but rather crude) approach if to re-launch Gmsh
    everytime you want to visualize something (a simple C program showing
    how to do this is given in 'utils/misc/callgmsh.c'). A better approach
    is to modify your program so that it can communicate with Gmsh over a
    socket (see question 6.1 above; you can skip the option file
    creation). Then select 'Always listen to incoming connection requests'
    in the solver option panel (or run gmsh with the '-listen' command
    line option) and Gmsh will always listen for your program on the
    Solver.SocketName socket.
    
    ********************************************************************
    
    Section 7: Post-processing module
    
    * 7.1 How do I compute a section of a plot?
    
    Use 'View->Plugins->Cut Plane'.
    
    * 7.2 Can I save an isosurface to a file?
    
    Yes: first run 'View->Plugins->Cut Map' to extract the isosurface,
    then use 'View->Save As' to save the new view.
    
    * 7.3 Can Gmsh generate isovolumes?
    
    Yes, with the CutMap plugin (set the ExtractVolume option to -1 or 1
    to extract the negative or positive levelset).
    
    * 7.4 How do I animate my plots?
    
    If the views contain multiple time steps, you can press the 'play'
    button at the bottom of the graphic window, or change the time step by
    hand in the view option panel. You can also use the left and right
    arrow keys on your keyboard to change the time step in all visible
    views in real time.
    
    If you want to loop through different views instead of time steps, you
    can use the 'Loop through views instead of time steps' option in the
    view option panel, or use the up and down arrow keys on your keyboard.
    
    * 7.5 How do I visualize a deformed mesh?
    
    Load a vector view containing the displacement field, and set 'Vector
    display' to 'Displacement' in View->Options->Aspect. If the
    displacement is too small (or too large), you can scale it with the
    'Displacement factor' option. (Remember that you can drag the mouse in
    all numeric input fields to slide the value!)
    
    Another option is to use the "general transformation expressions" (in
    View->Options->Offset) on a scalar view, with the displacement map
    selected as the data source.
    
    * 7.6 Can I visualize a field on a deformed mesh?
    
    Yes, there are several ways to do that. 
    
    The easiest is to load two views: the first one containing a
    displacement field (a vector view that will be used to deform the
    mesh), and the second one containing the field you want to display
    (this view has to contain the same number of elements as the
    displacement view). You should then set 'Vector display' to
    'Displacement' in the first view, as well as set 'Data source' to
    point to the second view. (You might want to make the second view
    invisible, too. If you want to amplify or decrease the amount of
    deformation, just modify the 'Displacement factor' option.)
    
    Another solution is to use the 'General transformation expressions'
    (in 'View->Options->Offset') on the field you want to display, with
    the displacement map selected as the data source.
    
    And yet another solution is to use the Warp plugin.
    
    * 7.7 Can I color the arrows representing a vector field with data
    from a scalar field?
    
    Yes: load both the vector and the scalar fields (the two views must
    have the same number of elements) and, in the vector field options,
    select the scalar view in 'Data source'.
    
    * 7.8 Can I color isovalue surfaces with data from another scalar
    view?
    
    Yes, using either the CutMap plugin (with the 'dView' option) or the
    Evaluate plugin.
    
    * 7.9 Is there a way to save animations?
    
    Yes, using scripts. Have a look at 'tutorial/t8.geo' or
    'demos/anim.script' for some examples.
    
    * 7.10 Is there a way to visualize only certain components of
    vector/tensor fields?
    
    Yes, using 'View->Plugin->Extract'.
    
    * 7.11 Can I do arithmetic operations on a view? Can I perform
    operations involving different views?
    
    Yes, with the Evaluate plugin.
    
    * 7.12 Some plugins seem to create empty views. What's wrong?
    
    There can be several reasons:
    
    - the plugin might be written for specific element types only (for
      example, only for scalar triangles or tetrahedra). In that case, you
      should transform your view before running the plugin (you can use
      Plugin(DecomposeinSimplex) to transform all quads, hexas, prisms and
      pyramids into triangles and tetrahedra).
    
    - the plugin might expect a mesh while all you provide is a point
      cloud. In 2D, you can use Plugin(Triangulate) to transform a point
      cloud into a triangulated surface. A 3D version of this plugin is
      not available yet but it is on our TODO list.
    
    - the input parameters are out of range.
    
    In any case, you can automatically remove all empty views with
    'View->Remove->Empty Views' in the GUI, or with "Delete Empty Views;"
    in a script.
    
    * 7.13 My code generates data "time step by time step", and thus
    cannot easily output Gmsh's multi-time-step post-processing files,
    where the values for all the time steps are given per element. How can
    I use Gmsh's post-processor in this situation?
    
    Just create one view for each time step: Gmsh can handle an arbitrary
    number of views and it can deal with these separate views as
    efficiently as with a single multi-time-step view. The only
    disadvantage is that the total amount of disk space used is greater
    (since the node data is repeated for each time step).
    
    In practice, depending on the size of the data set, you may want to
    store all the views in a single file or create one separate file for
    each view, which you can then load selectively (and thus reduce the
    memory required for the analysis). In any case you can use
    'Tools->Options->Post-processing->View links' to apply options to
    multiple views at once, and the up and down arrow keys to loop through
    (animate) the views (instead of the left and right arrow keys for
    multi-time-step views).
    
    Also note that if all the views are based on the same grid, Gmsh can
    combine the separate views into a multi-time-step view by using the
    'View->Combine->Time Steps' menu, or by using the '-combine' command
    line option.
    
    * 7.14 How can I see "inside" a complicated post-processing view?
    
    See question 5.13. 
    
    When viewing 3D scalar fields, you can also modify the colormap
    ('Tools->Options->View->Map') to make the iso-surfaces "transparent":
    either by holding 'Ctrl' while dragging the mouse to draw the alpha
    channel by hand, or by using the 'a', 'Ctrl+a', 'p' and 'Ctrl+p'
    keyboard shortcuts.
    
    Yet another (destructive) option is to use the ExtractVolume option in
    the CutSphere or CutPlane plugins.
    
    * 7.15 I am loading a valid 3D scalar view but Gmsh does not display
    anything!
    
    In versions < 1.61, the default drawing mode for 3D scalar views was
    to draw iso-surfaces. If your data set was constant per element, Gmsh
    would not draw anything (a fix for this would be to run
    Plugin(Smooth), which would average the data on the nodes of the
    grid)... This behavior has changed in version 1.61, and Gmsh now draws
    the solution on the boundary of the elements by default. Iso-surfaces
    are of course still available by setting 'Intervals type' to
    'Iso-values' in 'Tools->Options->View->Range'.
    
    Note that the most efficient way to visualize the dataset on the
    boundary of the elements is to run Plugin(Skin) on the view: this will
    extract the boundary of the dataset and only draw the data on this
    boundary.