Provided by: rheolef_6.6-1build2_amd64 bug

NAME

       bamg - bidimensional anisotropic mesh generator

SYNOPSIS

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

EXAMPLE

       Generate the mesh of a square ]1,1[^2 with a mesh size h=0.666 at all vertices. Enter the unix command:

           bamg -g toto.bamgcad -o toto.bamg

       The geometry in defined in the 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 can

       1) create
              a mesh from a geometry

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

       3) metric build
              just build a metric file, e.g. if you have an other mesher .

       3) quality improve
              of an existing mesh, by generating a new mesh.

       5) interpolate
              a field from one mesh to another.

1) CREATE

       Create a mesh from a geometry. Example:

           bamg -g toto.bamgcad -o toto.bamg

       -g filename
              the input file, specifying tghe 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
              the options are described below.

2) ADAPT

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

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

       -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 the 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 an other mesher.

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

       -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 the options are described below.

4) QUALITY IMPROVE

       Improve quality for an existing mesh and generate a new mesh.

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

       -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).
              In addition, optional parameter can be added to control the quality improvement.  All the  options
              are described 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 tranferred 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

       -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 geater 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 relevent.

       -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 hessien 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 quadrilaterls, 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 concecutives edges.  The default is 180 degree, i.e. no corners are curved.  This option is
              usefull when no geomtry are provided, e.g. remeshing from  an  other  mesh  file  format  (am_fmt,
              amdba,  nopo,  etc).   This  parameter is normaly 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  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_k 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 usefull, 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 degre to  be  curved.   The  angle  is
       defined  from  two  normals  of  two  concecutives 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

           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 informations will be approached by a straight  line,  three  information
       allow  to  obtain  a  curve  of  degree  two and four data allow for a approximation 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

       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

CREDITS

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

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  detailled  file  formats  and  more advanced
       examples, e.g. a mesh adaptation loop to minimize the P1 Lagrange interpolation error.

rheolef-6.6                                        rheolef-6.6                                    bamg(1rheolef)