Provided by: rheolef_7.2-2_amd64 bug

NAME

       bamg - bidimensional anisotropic mesh generator (rheolef-7.2)

SYNOPSIS

         bamg [options] -g file[.bamgcad] -o ouput.bamg

EXAMPLE

         bamg -g toto.bamgcad -o toto.bamg

        This command generates the mesh of a square ]1,1[^2 with a mesh size h=0.666 at all
       vertices. The geometry in defined in the following square.bamgcad file:

         MeshVersionFormatted 0
         Dimension 2
         Vertices 4
           -1 -1  1
            1 -1  2
            1  1  3
           -1  1  4
         Edges 4
           1 2    1
           2 3    2
           3 4    3
           4 1    4
         hVertices
           0.666 0.666 0.666 0.666

        The file starts with vertices, coordinates and identifier. Then come the boundary edges,
       using vertices identifiers and defining a boundary edge identifier.

OUTLINE

       This software present five modes of action:

       1.  create a mesh from a geometry

       2.  adapt a mesh from an existing background mesh using a metric or a solution file.

       3.  build a metric file, e.g. if you have another mesh generator.

       4.  improve the quality of an existing mesh, by generating a new mesh.

       5.  interpolate a field defined on one mesh to another one.

1) CREATE

       Create a mesh from a geometry. For instance:

         bamg -g toto.bamgcad -o toto.bamg

        The create mode supports the following options:

       -g filename

           The input file, specifying the geometry boundaries of the domain to mesh (bamg file
           format DB mesh).

       -o filename

           The output mesh file (bamg file format DB mesh). Some alternatives output file formats
           are supported with some -oXY options where XY is one of the supported output file
           formats (see below).

        In addition, optional parameter can be added to specify a metric or the quality
       improvement. All these options are described below.

2) ADAPT

       Adapt a mesh from a background mesh using a metric or solution file. For instance:

         bamg -b toto_bgd.bamg -Mbb toto_bgd_sol.bb -o toto_new.bamg

        The adapt mode supports the following options:

       -b filename

           The input background mesh, where the file suffixe defines the format of the file:
           .amdba, .am_fmt, .am, .ftq, .nopo. Otherwise the file is the bamg default BD mesh file
           format.

       -Mbb filename
       -MBB filename
       -M filename

           The input metric file. The -Mbb or -MBB specifies the solution file from which the
           metric is automatically computed, where the file is of type bb or BB (see file format
           below). An alternative is to specify directly the metric with the -M option (file
           format Metric).

       -o filename

           The output mesh file (bamg file format DB mesh). Some alternatives output file formats
           are supported with some -oXY options where XY is one of the supported output file
           formats (see below).

       In addition, optional parameter can be added to control the metric generation and the
       quality improvement. All these options are described below.

3) METRIC BUILD

       Construct a metric file for an existing mesh and with a provided solution. This option can
       be used without generating a new mesh, e.g. if you have another mesh generator. For
       instance:

         bamg -r toto_bgd.bamg -Mbb toto_bgd_sol.bb -oM toto_bgd.metric

        The metric build mode supports the following options:

       -r filename

           The input mesh file (bamg format DB mesh).

       --Mbb filename
       --MBB *filename

           The input provided solution, where the file is of type .bb or .BB (see file format
           below).

       -oM filename

           The output metric file, in file format Metric (see file format below).

       In addition, optional parameter can be added to control the metric generation. All these
       options are described below.

4) IMPROVE QUALITY

       Improve quality for an existing mesh and generate a new mesh. For instance:

         bamg -r toto_bgd.bamg -M toto_bgd.metric -o toto_new.bamg

        The quality improvement mode supports the following options:

       -r filename

           The input mesh file (bamg format DB mesh).

       -M filename

           The input metric file, in file format Metric (see file format below).

       -o filename

           The output mesh file (bamg file format DB mesh). Some alternatives output file formats
           are supported with some -oXY options where XY is one of the supported output file
           formats (see below).

5) INTERPOLATE

       In the adaption process, a solution has been computed with the background mesh. In order
       to transfer the solution of the problem under consideration on the new generated mesh, an
       interpolation of old solution is necessary. This transferred solution may be a good
       initial guess for the solution on the new mesh. This interpolation is carried out in a P1
       Lagrange context.

         bamg -b toto_old.bamg -rbb toto_old.bb -r toto_new.bamg -obb toto_new.bb

        The interpolation mode supports the following options:

       -b filename

           The destination input mesh file (bamg format DB mesh).

       -rbb filename
       -rBB *filename

           The origin input solution, where the file is of type .bb or .BB (see file format
           below).

       -r filename

           The origin input mesh file (bamg format DB mesh).

       -wbb filename
       -wBB filename

           The output solution, as reinterpolated on the destination mesh.

CREATION OPTIONS

       -hmax float

           Set the value of the maximal edge size. Default value is the diameter of the domain to
           be meshed.

       -hmin float

           Set the value of the minimal edge size. Default value is related to the size of the
           domain to be meshed and the grid resolution used by the mesh generator (machine
           dependent).

       -errg float

           Set the value of the relative error on geometry of the boundary. Default value is 0.1.
           In any case this value is greater than 1/sqrt(2). Remark that mesh size created by
           this option can be smaller than the hmin argument due to geometrical constraint.

       -nbv int

           Set the maximal number of vertices of the generated mesh. Default value is 50000.

ADAPTATION OPTIONS

       These options are relevant when computing a metric from a scalar field provided in a .bb
       file. Notice that, when providing a tensor metric in the .bb file, the metric computation
       is not performed and these options are not relevant.

       -RelError

           Compute the metric with a relative error. This is the default. In this case, the
           metric field is defined by

        1 |H(x)| M(x) = ---------- -------------------- err*coef^2 max(CutOff,|eta(x)|)

           where err, coef, CutOff are adjustable parameters defined below, eta is the solution
           field read in the input file and H is its Hessian. Here |eta| denotes the absolute
           value of the field eta and |H| is the tensor field composed of the absolute values of
           the Hessian eigenvalues and with the same eigenbasis as H.

       -AbsError

           Compute the metric with an absolute error. In this case, the metric is defined by

        1 |H(x)| M(x) = ---------- --------------------- err*coef^2 (sup(eta) - inf(eta))

           where sup(eta) and inf(eta) denotes the two extremal values of the input solution
           field eta.

       -coef float

           The multiplicative coefficient on the mesh size. Default value is 1.0.

       -err float

           The level of the P1 interpolation error. Default value is 0.01. Recall that this error
           behaves as O(h^2) locally, where h is the local mesh size. Remark on the two previous
           formulae that a change by a factor 1/4 is equivalent to a change by a factor 1/2 on
           the mesh size. So, either coef} or err are specified in order to generate a convergent
           mesh family.

       -CutOff float

           The cut-off value used for the relative error criteria. Default value is 1e-5.

       -power float

           Set the power parameter of hessian to construct the metric. Default value is 1.

       -NbJacobi int

           Set the number of iterations in a smoothing procedure during the metric construction.
           The 0 value implies no smoothing. Default value is 1.

        -ratio float

           Set the ratio for a prescribed smoothing on the metric. If ratio is 0 (default value)
           or less than 1.1, no smoothing on the metric is done. If ratio > 1.1 the speed of mesh
           size variation is bounded by log(ratio). Remark tht, as val is closer to 1, the number
           of vertices generated increases. This may be useful to control the thickness of
           refined regions near shocks or boundary layers.

        -aniso
       -iso The -anio enforces the metric to be anisotropic. This is the default. Conversely, the
       metric may be of isotropic type with the -iso flag.

       -anisomax float

           Set the bound of mesh anisotropy with respect to minimal mesh size in all direction so
           the maximal mesh size in all direction is bounded by the ratio anisomax. The default
           value is 1e6. Remark that when anisomax=1, the generated mesh is isotropic.

        -hminaniso float

           Set the value of hmin the minimal edge size and set the aniso mode.

       -maxsubdiv float

           Change the metric such that the maximal subdivision of a background's edge is bound by
           the maxsubdiv number. The maxsubdiv number is alway limited by 10 and this is the
           default value.

       -KeepBackVertices
       -noKeepBackVertices

           Try to Keep old vertices (default). Otherwise, all vertices are created from scratch.

       -NoRescaling
       -Rescaling

           Don't rescale the solution between [0,1] before metric computation Default is to
           rescale.

QUALITY IMPROVEMENT OPTIONS

       -NbSmooth int

           Set the number of iterations of the mesh smoothing procedure. Default value is 3.

       -omega float

           Set the relaxation parameter of the smoothing procedure, Default value is 1.8.

       -splitpbedge
       -nosplitpbedge

           Sometimes, an internal edge can have its two vertices on the boundary. This causes a
           triangle to have all its vertices on the boundary. With the -splitpbedge option, this
           edge is splited in two, and this situation is avoided. By default, don't split.

       -thetaquad float

           To create quad with 2 triangles Merge two triangles into a quadrilateral when the four
           angles of the quadrilateral are in the range [thetaquad, 180-thetaquad].

       -2

           To create the mesh with a mesh size divided by two.

        -2q

           To split all triangles in three quadrilaterals, and to split all quadrilaterals in
           four.

OUTPUT MESH FORMAT OPTIONS

       -o filename

           bamg DB mesh file format (default).

       -oamdba *filename

           amdba format.

       -oftq *filename

           ftq format.

       -omsh *filename

           msh format (freefem3 format).

       -oam_fmt *filename

           am_fmt format.

       -oam *filename

           am format.

       -onopo *filename

           nopo format.

OTHERS OPTIONS

       -thetamax float

           Set the angular limit for a corner in degre to be curved. The angle is defined from
           two normals of two consecutives edges. The default is 180 degree, i.e. no corners are
           curved. This option is useful when no geometry are provided, e.g. remeshing from an
           other mesh file format (am_fmt, amdba, nopo, etc). This parameter is normally
           specified in the geometry boundaries file (in BD file format) by the
           AngleOfCornerBound optional section: when this file format is used, this option has no
           effet.

       -v int

           Set the level of printing (verbosity), which can be chosen between 0 and 10. Default
           value is 1.

GEOMETRY FILE FORMAT (BAMGCAD)

       The general structure allows one to specify a mesh describing the geometry of the given
       domain. The identification of the boundaries are used to define boundary conditions for a
       partial derivative equation problem. In this case, some of the above sections are not
       relevant. First the required sections are:

         MeshVersionFormatted 0
         Dimension 2
         Vertices nv
         {x_k y_k i_k} k=1:nv
         Edges ne
         {i_l j_l k_l} l=1:ne

        Next, the optional sections:

         SubDomain nd
         {2 ie_k orient id_k} k=1:nd

        A sub-domain, i.e. a bounded connex components of the plan is defined using one edge
       identifier ie along with an orientation information orient, indicating on which side of
       this entity the sub-domain lies. This feature is useful, e.g. when dealing with a domain
       with holes. The sub-domain number is id. If no sub-domain are defined, then we suppose to
       mesh all the bounded connex component of the plan. Remark: SubDomainFromGeom is equivalent
       to SubDomain.

         AngleOfCornerBound angle

        The AngleOfCornerBound specifies the angular limit for a corner in degree to be curved.
       The angle is defined from two normals of two consecutives edges. The default is 180
       degree, i.e. no corners are curved. When this angle is defined, some corners could be
       specified not to be curved by the following list:

         Corners nc
         {i_k} k=1:nc

        The curved geometric representation of a boundary in two dimensions uses the edges
       provided in the data structure so as to define some curves of order three in the following
       way:

       • an edge whose endpoints are corners and if no additional information are provided will
         be represented by a straight segment,

       • an edge whose endpoints are corners but whose tangent is provided at one endpoint will
         be represented by a curve of degree two,

       • an edge whose endpoints are corners but whose tangents are provided at these corners
         will be represented by a curve of degree three,

       • an edge whose endpoints are not corners and with no additional information will be
         represented by a curve of degree three. Indeed, we use in this case the adjacent edges
         so as to evaluate the tangents at the edge endpoints.

       In short, an edge defined by two information will be approached by a straight line, three
       information allow one to obtain a curve of degree two and four data, a curve of degree
       three. The tangents are optionally specified by:

         TangentAtEdges nt
         {ie_k ive_k xt yt} k=1:nt

        For the edge identifier ie, the tangent at its ive vertex (ive takes value 1 or 2) is
       specified by its components xt and yt. Giving the tangent vector of an edge by means of
       the tangent vector at a point enables us to deal with the case where several edges
       (boundary lines) are emanating from a point.

       The required vertices, are the vertices of the support that must be present in the mesh as
       element vertices. Similarly, some edges can be required:

         RequiredVertices nrv
         {iv_k} k=1:nrv
         RequiredEdges nre
         {ie_k} k=1:nre

FUTURE OPTIONS

       The following features are planed for future work. For periodic boundary conditions, the
       section EquivalencedEdges indicates that two edges must be meshed the same way:

         EquivalencedEdges nee
         {ie1_k ie2_k} k=1:nee

        Crack definition is the purpose of the CrackedEdges section. We specify then that an edge
       is identical in terms of geometry to another edge:

         CrackedEdges nce
         {ie1_k ie2_k} k=1:nce

MORE READING

       The original site of the bamg mesh generator is http://www.ann.jussieu.fr/hecht/ftp/bamg .
       Please read http://www.ann.jussieu.fr/hecht/ftp/bamg/bamg.pdf for the detailed file
       formats and more advanced examples, e.g. a mesh adaptation loop to minimize the P1
       Lagrange interpolation error.

AUTHORS

       Frederic Hecht Frederic.Hecht@inria.fr is the author of bamg.
       Pierre Saramito Pierre.Saramito@imag.fr writes this unix man page.

COPYRIGHT

       Copyright (C) 1998-2018 Frederic Hecht <Frederic.Hecht@inria.fr> LGPLv3+: GNU LGPL version
       3 or later http://gnu.org/licenses/lgpl.html. This is free software: you are free to
       change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

AUTHOR

       Pierre  Saramito  <Pierre.Saramito@imag.fr>