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.