`msh2geo`

convert gmsh mesh in geo format

## Synopsis

    msh2geo [-zr|-rz] < file[.msh] > output.geo
    msh2geo [-zr|-rz]   file[.msh] > output.geo

## Description

Convert a `.msh` file, as generated by the `gmsh` mesh generator, into a `.geo` one for Rheolef. The output goes to standard output. The input comes either from standard input or from a file.

## Examples

        gmsh -2 toto.mshcad -o toto.msh
        msh2geo < toto.msh > toto.geo

        gmsh -2 -order 2 toto.mshcad -o toto2.msh
        msh2geo < toto2.msh > toto2.geo

See the `gmsh` documentation for a detailed description of the `.mshcad` input file for `gmsh`.

## Options

`-cartesian`
`-rz`
`-zr`

> Specifies the coordinate system. The default is `cartesian` while `-rz` and `-zr` denotes some axisymmetric coordinate systems. Recall that most of Rheolef codes are coordinate-system independent and the coordinate system is specified in the geometry file `.geo`.

## Implementation notes

There is an issue for curved boundaries, using high order Pk polynomial elements. Pk triangle, when k>=5, may have internal nodes renumbered. From the gmsh documentation:

    The nodes of a curved element are numbered in the following order:

      the element principal vertices;
      the internal nodes for each edge;
      the internal nodes for each face;
      the volume internal nodes.

    The numbering for face and volume internal nodes is recursive,
    i.e., the numbering follows that of the nodes of an embedded face/volume.
    The higher order nodes are assumed to be equispaced on the element.

In Rheolef, internal triangle nodes are numbered from left to right and then from bottom to top. The numbering differ for triangle when k >= 5. Thus, `msh2geo` fixes the corresponding internal nodes numbering during the conversion.

Pk tetrahedrons and hexahedrons in gmsh and Rheolef has not the same edge-node order and orientation. E.g. for tetrahedrons, edges 13 and 23 should be swapped and reoriented as 32 and 31. Thus, `msh2geo` also fix the corresponding internal nodes numbering.

## TODO

Fix for P3-tetra: swap edges orientations for 3,4,5 and swap faces 1 and 2. Check P4(T) for face orientation. Perform face visualization with gnuplot face fill.

See also hexa edges orient and faces numbers and orient.

Check that node are numbered by vertex-node, then edge-node, then face(tri,qua)-node and then volume(T,P,H)-node. Otherwise, renumber all nodes.

Support for high order >= 6 element is not documented in gmsh, but gmsh supports it at run

## Implementation

This documentation has been generated from file main/sbin/msh2geo.cc