From ddcdeaaa65faa18baaf54a11e07ebc460a80fb09 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 30 Apr 2010 10:07:22 +0000
Subject: [PATCH] trying to clarify "characteristic length" (-> mesh element
 sizes) + restored default lc in GUI to avoid flood of messages on mailing
 list (thx to Dave for this)

---
 Common/CommandLine.cpp           |  10 +--
 Common/DefaultOptions.h          |  12 ++--
 Fltk/contextWindow.cpp           |   8 +--
 Fltk/menuWindow.cpp              |   2 +-
 Mesh/BackgroundMesh.cpp          |   4 +-
 Mesh/Field.cpp                   |   5 +-
 Mesh/Generator.cpp               |   2 +-
 benchmarks/boolean/wikipedia.lua |   1 -
 doc/texinfo/gmsh.texi            | 117 ++++++++++++++++---------------
 doc/texinfo/opt_fields.texi      |   2 +-
 doc/texinfo/opt_general.texi     |  15 ++++
 doc/texinfo/opt_mesh.texi        |  60 ++++++++--------
 doc/texinfo/opt_plugin.texi      |  45 ++++++++++--
 doc/texinfo/opt_post.texi        |   2 +-
 doc/texinfo/opt_solver.texi      |  27 ++++++-
 doc/texinfo/opt_view.texi        |   6 +-
 16 files changed, 197 insertions(+), 121 deletions(-)

diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index ab81e39ddf..b44acf0906 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -73,10 +73,10 @@ void PrintUsage(const char *name)
   Msg::Direct("  -optimize[_netgen]    Optimize quality of tetrahedral elements");
   Msg::Direct("  -optimize_hom         Optimize higher order meshes (in 2D)");
   Msg::Direct("  -optimize_lloyd       Optimize 2D meshes using Lloyd algorithm");
-  Msg::Direct("  -clscale float        Set characteristic length scaling factor");
-  Msg::Direct("  -clmin float          Set minimum characteristic length");
-  Msg::Direct("  -clmax float          Set maximum characteristic length");
-  Msg::Direct("  -clcurv               Compute characteristic lengths from curvatures");
+  Msg::Direct("  -clscale float        Set global mesh element size scaling factor");
+  Msg::Direct("  -clmin float          Set minimum mesh element size");
+  Msg::Direct("  -clmax float          Set maximum mesh element size");
+  Msg::Direct("  -clcurv               Automatically compute element sizes from curvatures");
   Msg::Direct("  -epslc1d              Set the accuracy of the evaluation of the LCFIELD for 1D mesh");
   Msg::Direct("  -swapangle            Set the treshold angle (in degree) between two adjacent faces");
   Msg::Direct("                          below which a swap is allowed");
@@ -355,7 +355,7 @@ void GetOptions(int argc, char *argv[])
         if(argv[i]) {
           CTX::instance()->mesh.lcFactor = atof(argv[i++]);
           if(CTX::instance()->mesh.lcFactor <= 0.0)
-            Msg::Fatal("Characteristic length factor must be > 0");
+            Msg::Fatal("Mesh element size factor must be > 0");
         }
         else
           Msg::Fatal("Missing number");
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index e745269f3d..8da8dd5c75 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1059,17 +1059,17 @@ StringXNumber MeshOptions_Number[] = {
     "(Adv. Chaco): Parameter TERMINAL_PROPOGATION" },
   { F|O, "CharacteristicLengthExtendFromBoundary" , 
     opt_mesh_lc_extend_from_boundary, 1. ,
-    "Extend characteristic lengths from the boundaries inside the surface/volume" },
+    "Extend computation of mesh element sizes from the boundaries into the surfaces/volumes" },
   { F|O, "CharacteristicLengthFactor" , opt_mesh_lc_factor , 1.0 ,
-    "Factor applied to all characteristic lengths" },
+    "Factor applied to all mesh element sizes" },
   { F|O, "CharacteristicLengthMin" , opt_mesh_lc_min, 0.0 ,
-    "Minimum characteristic length" },
+    "Minimum mesh element size" },
   { F|O, "CharacteristicLengthMax" , opt_mesh_lc_max, 1.e22,
-    "Maximum characteristic length" },
+    "Maximum mesh element size" },
   { F|O, "CharacteristicLengthFromCurvature" , opt_mesh_lc_from_curvature , 0. ,
-    "Compute characteristic lengths from curvature" },
+    "Automatically compute mesh element sizes from curvature (experimental)" },
   { F|O, "CharacteristicLengthFromPoints" , opt_mesh_lc_from_points , 1. ,
-    "Compute characteristic lengths from values given at geometry points" },
+    "Compute mesh element sizes from values given at geometry points" },
   { F,   "Clip" , opt_mesh_clip , 0.,
     "Enable clipping planes? (Plane[i]=2^i, i=0,...,5)" },
   { F|O, "ColorCarousel" , opt_mesh_color_carousel , 1. ,
diff --git a/Fltk/contextWindow.cpp b/Fltk/contextWindow.cpp
index 35a0dc84f6..bb891a9fd3 100644
--- a/Fltk/contextWindow.cpp
+++ b/Fltk/contextWindow.cpp
@@ -82,8 +82,8 @@ geometryContextWindow::geometryContextWindow(int deltaFontSize)
       input[3]->value("0");
       input[4] = new Fl_Input(2 * WB, 2 * WB + 3 * BH, IW, BH, "Z coordinate");
       input[4]->value("0");
-      input[5] = new Fl_Input(2 * WB, 2 * WB + 4 * BH, IW, BH, "Characteristic length");
-      input[5]->value("");
+      input[5] = new Fl_Input(2 * WB, 2 * WB + 4 * BH, IW, BH, "Prescribed element size at point");
+      input[5]->value("1.0");
       for(int i = 2; i < 6; i++) {
         input[i]->align(FL_ALIGN_RIGHT);
       }
@@ -221,10 +221,10 @@ meshContextWindow::meshContextWindow(int deltaFontSize)
   win->box(GMSH_WINDOW_BOX);
   {
     Fl_Tabs *o = new Fl_Tabs(WB, WB, width - 2 * WB, height - 2 * WB);
-    // 0: Characteristic length
+    // 0: Element size at points
     {
       group[0] = new Fl_Group
-        (WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "Characteristic Length");
+        (WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "Element size at points");
       input[0] = new Fl_Input(2 * WB, 2 * WB + 1 * BH, IW, BH, "Value");
       input[0]->value("0.1");
       input[0]->align(FL_ALIGN_RIGHT);
diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp
index 17cf6e758f..8027900133 100644
--- a/Fltk/menuWindow.cpp
+++ b/Fltk/menuWindow.cpp
@@ -2594,7 +2594,7 @@ contextItem menu_mesh[] = {
   contextItem menu_mesh_define[] = {
     {"1Mesh>Define"} ,
     {"Fields",      (Fl_Callback *)field_cb},
-    {"Characteristic length", (Fl_Callback *)mesh_define_length_cb  } ,
+    {"Element size at points", (Fl_Callback *)mesh_define_length_cb  } ,
     {"Embedded points", (Fl_Callback *)mesh_define_embedded_cb, (void*)"point" } ,
     {"Recombine",   (Fl_Callback *)mesh_define_recombine_cb  } ,
     {"Transfinite", (Fl_Callback *)mesh_define_transfinite_cb  } , 
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index 8f371dccef..26138a3ed4 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -182,7 +182,7 @@ double BGM_MeshSize(GEntity *ge, double U, double V,
   lc = std::min(lc, CTX::instance()->mesh.lcMax);
 
   if(lc <= 0.){
-    Msg::Error("Wrong characteristic length lc = %g (lcmin = %g, lcmax = %g)",
+    Msg::Error("Wrong mesh element size lc = %g (lcmin = %g, lcmax = %g)",
                lc, CTX::instance()->mesh.lcMin, CTX::instance()->mesh.lcMax);
     lc = l1;
   }
@@ -228,7 +228,7 @@ SMetric3 BGM_MeshMetric(GEntity *ge,
   lc = std::min(lc, CTX::instance()->mesh.lcMax);
 
   if(lc <= 0.){
-     Msg::Error("Wrong characteristic length lc = %g (lcmin = %g, lcmax = %g)",
+     Msg::Error("Wrong mesh element size lc = %g (lcmin = %g, lcmax = %g)",
                lc, CTX::instance()->mesh.lcMin, CTX::instance()->mesh.lcMax);
      lc = l1;
   }
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 9d0e80e7aa..616e993ce3 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -1230,8 +1230,9 @@ class AttractorField : public Field
       (n_nodes_by_edge, "Number of nodes used to discretized each curve",
        &update_needed);
     options["FacesList"] = new FieldOptionList
-      (faces_id, "Indices of surfaces in the geometric model (Warning: might "
-       "give strange results for complex surfaces)", &update_needed);
+      (faces_id, "Indices of surfaces in the geometric model (Warning, this feature "
+       "is still experimental. It might (read: will probably) give wrong results "
+       "for complex surfaces)", &update_needed);
   }
   ~AttractorField()
   {
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 4085019b47..930fb3ec9a 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -309,7 +309,7 @@ static bool TooManyElements(GModel *m, int dim)
   sumAllLc /= (double)m->getNumVertices();
   if(!sumAllLc || pow(CTX::instance()->lc / sumAllLc, dim) > 1.e10) 
     return !Msg::GetAnswer
-      ("Your choice of characteristic lengths will likely produce a very\n"
+      ("Your choice of mesh element sizes will likely produce a very\n"
        "large mesh. Do you really want to continue?\n\n"
        "(To disable this warning in the future, select `Enable expert mode'\n"
        "in the option dialog.)", 1, "Cancel", "Continue");
diff --git a/benchmarks/boolean/wikipedia.lua b/benchmarks/boolean/wikipedia.lua
index 806e0d719a..bd1ee4e9b5 100644
--- a/benchmarks/boolean/wikipedia.lua
+++ b/benchmarks/boolean/wikipedia.lua
@@ -25,4 +25,3 @@ myModel2:computeUnion(myTool3,0);
 
 myModel:computeDifference(myModel2,0);
 myModel:setAsCurrent();
-
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index 21a83edd26..acfab898ce 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -194,7 +194,7 @@ Mesh module
 
 Mesh commands
 
-* Characteristic lengths::      
+* Specifying mesh element sizes::  
 * Structured grids::            
 * Miscellaneous mesh commands::  
 
@@ -420,11 +420,12 @@ discretization of an ``isolated'' (@var{n}-1)-th dimensional entity
 inside an @var{n}-th dimensional entity does @emph{not} constrain the
 @var{n}-th dimensional mesh---unless it is explicitly told to do so
 (@pxref{Miscellaneous mesh commands}).  Every meshing step is
-constrained by the characteristic length field, which can be uniform,
-specified by characteristic lengths associated with points in the
-geometry, or defined by general ``fields'' (a scalar field defined on
-another mesh using post-processing view, threshold fields associated
-with point or line ``attractors'', etc.).
+constrained by a ``size field'' (sometimes called ``characteristic
+length field''), which prescribes the desired size of the elements in
+the mesh. This size field can be uniform, specified by values associated
+with points in the geometry, or defined by general ``fields'' (for
+example related to the distance to some boundary, to a arbitrary scalar
+field defined on another mesh, etc.).
 
 For each meshing step, all structured mesh directives are executed
 first, and serve as additional constraints for the unstructured parts
@@ -867,13 +868,13 @@ Optimize quality of tetrahedral elements
 @item -order int
 Set the order of the generated elements (1, 2)
 @item -clscale float
-Set characteristic length scaling factor
+Set mesh element size scaling factor
 @item -clmin float
-Set minimum characteristic length
+Set minimum mesh element size
 @item -clmax float
-Set maximum characteristic length
+Set maximum mesh element size
 @item -clcurv
-Compute characteristic lengths from curvatures
+Compute mesh element sizes from curvatures
 @item -rand float
 Set random perturbation factor
 @item -bgm file
@@ -2070,10 +2071,10 @@ Creates an elementary point. The @var{expression} inside the parentheses
 is the point's identification number; the three first
 @w{@var{expression}s} inside the braces on the right hand side give the
 three X, Y and Z coordinates of the point in the three-dimensional
-Euclidean space; the optional last @var{expression} sets the
-characteristic mesh length at that point. See @ref{Characteristic
-lengths}, for more information about how this characteristic length
-information is used in the meshing process.
+Euclidean space; the optional last @var{expression} sets the prescribed
+mesh element size at that point. See @ref{Specifying mesh element
+sizes}, for more information about how this value is used in the meshing
+process.
 
 @item Physical Point ( @var{expression} | @var{char-expression} ) = @{ @var{expression-list} @};
 Creates a physical point. The @var{expression} inside the parentheses is
@@ -2620,8 +2621,8 @@ generator based on abstract rules}, Comput. Visual. Sci., 1, pp. 41--52,
 
 The ``Delaunay'' algorithm is the most robust and the fastest, and is
 the only one that supports the @code{Field} mechanism to specify element
-sizes (@pxref{Characteristic lengths}). However, this algorithm will
-sometimes modify the surface mesh, and is thus not suitable for
+sizes (@pxref{Specifying mesh element sizes}). However, this algorithm
+will sometimes modify the surface mesh, and is thus not suitable for
 producing hybrid structured/unstructured grids. In that case the
 ``Frontal'' algorithm should be preferred. The quality of the elements
 produced by both algorithms is comparable. If element quality is
@@ -2688,25 +2689,25 @@ in the output file just load the file back using `File->Open'.
 @cindex Mesh commands
 @cindex Commands, mesh
 
-The mesh module commands mostly permit to modify the characteristic
-lengths and specify structured grid parameters. The actual mesh
-``actions'' (i.e., ``mesh the lines'', ``mesh the surfaces'' and ``mesh
-the volumes'') cannot be specified in the script files. They have to be
+The mesh module commands mostly permit to modify the mesh element sizes
+and specify structured grid parameters. The actual mesh ``actions''
+(i.e., ``mesh the lines'', ``mesh the surfaces'' and ``mesh the
+volumes'') cannot be specified in the script files. They have to be
 given either in the GUI or on the command line (see @ref{Running Gmsh on
 your system}, and @ref{Command-line options}).
 
 @menu
-* Characteristic lengths::      
+* Specifying mesh element sizes::  
 * Structured grids::            
 * Miscellaneous mesh commands::  
 @end menu
 
 @c .........................................................................
-@c Characteristic lengths
+@c Specifying mesh element sizes
 @c .........................................................................
 
-@node Characteristic lengths, Structured grids, Mesh commands, Mesh commands
-@subsection Characteristic lengths
+@node Specifying mesh element sizes, Structured grids, Mesh commands, Mesh commands
+@subsection Specifying mesh element sizes
 
 @cindex Characteristic lengths
 @cindex Mesh, element size
@@ -2720,13 +2721,13 @@ given geometry:
 @enumerate
 @item
 First, if @code{Mesh.CharacteristicLengthFromPoints} is set (it is by
-default), you can simply specify characteristic lengths at the
+default), you can simply specify desired mesh element sizes at the
 geometrical points of the model (with the @code{Point} command: see
 @ref{Points}). The size of the mesh elements will then be computed by
-linearly interpolating these characteristic lengths on the initial mesh
-(see @ref{Mesh}). This might sometimes lead to over-refinement in some
-areas, so that you may have to add ``dummy'' geometrical entities in the
-model in order to get the desired element sizes.
+linearly interpolating these values on the initial mesh (see
+@ref{Mesh}). This might sometimes lead to over-refinement in some areas,
+so that you may have to add ``dummy'' geometrical entities in the model
+in order to get the desired element sizes.
 
 This method works with all the algorithms implemented in the mesh
 module. The final element sizes are of course constrained by the structured
@@ -2735,10 +2736,11 @@ transfinite and extruded grids: see @ref{Structured grids}).
 @item
 Second, if @code{Mesh.CharacteristicLengthFromCurvature} is set (it is
 not by default), the mesh will be adapted with respect to the curvature
-of the geometrical entities.
+of the geometrical entities. Warning: as of Gmsh 2.5 this feature is
+still (very) experimental. @c FIXME
 @item
-Finally, you can specify general characteristic lengths using mesh size
-``fields''. Various fields exist:
+Finally, you can specify general mesh size ``fields''. Various fields
+exist:
 @itemize @bullet
 @item 
 A @code{PostView} field specifies an explicit background mesh in the
@@ -2747,7 +2749,10 @@ commands}, and @ref{File formats}) in which the nodal values are the
 target element sizes.  This method is very general but it requires a
 first (usually rough) mesh and a way to compute the target sizes on this
 mesh (usually through an error estimation procedure, in an iterative
-process of mesh adaptation).
+process of mesh adaptation). Warning: only parsed (@file{.pos}) files
+can currently be used as background meshes (@file{.msh} files cannot be
+used, since the mesh used to define the field will be destroyed during
+the meshing process).
 
 (Note that you can also load a background mesh directly from the command
 line using the @code{-bgm} option (@pxref{Command-line options}), or in
@@ -2783,13 +2788,13 @@ and @code{Mesh.CharacteristicLengthFactor} options (@pxref{Mesh options
 list})
 
 Here are the mesh commands that are related to the specification of
-characteristic lengths:
+mesh element sizes:
 
 @ftable @code
 @item Characteristic Length @{ @var{expression-list} @} = @var{expression};
-Modify the characteristic length of the points whose identification
-numbers are listed in @var{expression-list}. The new value is given by
-@var{expression}.
+Modify the prescribed mesh element size of the points whose
+identification numbers are listed in @var{expression-list}. The new
+value is given by @var{expression}.
 @item Field[@var{expression}] = @var{string};
 Create a new field (with id number @var{expression}), of type
 @var{string}.
@@ -2809,7 +2814,7 @@ Here is the list of all available fields with their associated options:
 @c Structured grids
 @c .........................................................................
 
-@node Structured grids, Miscellaneous mesh commands, Characteristic lengths, Mesh commands
+@node Structured grids, Miscellaneous mesh commands, Specifying mesh element sizes, Mesh commands
 @subsection Structured grids
 
 @cindex Extrusion, mesh
@@ -2869,16 +2874,16 @@ Extrudes a boundary layer along the normals of the specified surfaces.
 
 @item Transfinite Line @{ @var{expression-list} @} | "*" = @var{expression} < Using Progression | Bump @var{expression} >;
 Selects the lines in @var{expression-list} to be meshed with the 1D
-transfinite algorithm. The @var{expression} on the right hand side gives the
-number of nodes that will be created on the line (this overrides any
-characteristic length prescription---see @ref{Characteristic lengths}). The
-optional argument `@code{Using Progression @var{expression}}' instructs the
-transfinite algorithm to distribute the nodes following a geometric
-progression (@code{Progression 2} meaning for example that each line element
-in the series will be twice as long as the preceding one). The optional
-argument `@code{Using Bump @var{expression}}' instructs the transfinite
-algorithm to distribute the nodes with a refinement at both ends of the
-line.
+transfinite algorithm. The @var{expression} on the right hand side gives
+the number of nodes that will be created on the line (this overrides any
+other mesh element size prescription---see @ref{Specifying mesh element
+sizes}). The optional argument `@code{Using Progression
+@var{expression}}' instructs the transfinite algorithm to distribute the
+nodes following a geometric progression (@code{Progression 2} meaning
+for example that each line element in the series will be twice as long
+as the preceding one). The optional argument `@code{Using Bump
+@var{expression}}' instructs the transfinite algorithm to distribute the
+nodes with a refinement at both ends of the line.
 
 @item Transfinite Surface @{ @var{expression-list} @} | "*" < = @{ @var{expression-list} @} > < Left | Right | Alternate > ;
 Selects surfaces to be meshed with the 2D transfinite algorithm. The
@@ -5065,13 +5070,13 @@ or per window).
 
 @item Can I edit STEP/IGES/BRep models?
 
-Not yet. At the moment you can only change characteristic lengths,
-define volumes and physical groups, or delete entities. The easiest way
-to do this is to merge the model in a @file{.geo} file using @code{Merge
+Not yet. At the moment you can only change mesh element sizes, define
+volumes and physical groups, or delete entities. The easiest way to do
+this is to merge the model in a @file{.geo} file using @code{Merge
 "file.step";} and add the relevant scripting command after that. We plan
 to add more advanced editing features in the future (to delete entities,
-to create ``mixed'' surfaces and volumes, to export in @file{.geo} format,
-etc.).
+to create ``mixed'' surfaces and volumes, to export in @file{.geo}
+format, etc.).
 
 @item How can I build modular geometries?
 
@@ -5101,9 +5106,9 @@ system and the full geometry.
 
 Verify that the surfaces in your model do not self-intersect or
 partially overlap. If they don't, try the other 3D algorithms
-(`Tool->Options->Mesh->General->3D algorithm') or try to adapt the
-characteristic lengths in your input file so that the surface mesh
-better matches the geometrical details of the model. 
+(`Tool->Options->Mesh->General->3D algorithm') or try to adapt the mesh
+element sizes in your input file so that the surface mesh better matches
+the geometrical details of the model.
 
 If nothing works, file a bug report with the version of your operating
 system and and the full geometry.
diff --git a/doc/texinfo/opt_fields.texi b/doc/texinfo/opt_fields.texi
index 26c776259a..dd0e0fae19 100644
--- a/doc/texinfo/opt_fields.texi
+++ b/doc/texinfo/opt_fields.texi
@@ -13,7 +13,7 @@ Indices of curves in the geometric model@*
 type: list@*
 default value: @code{@{@}}
 @item FacesList
-Indices of surfaces in the geometric model (Warning: might give strange results for complex surfaces)@*
+Indices of surfaces in the geometric model (Warning, this feature is still experimental. It might (read: will probably) give wrong results for complex surfaces)@*
 type: list@*
 default value: @code{@{@}}
 @item NNodesByEdge
diff --git a/doc/texinfo/opt_general.texi b/doc/texinfo/opt_general.texi
index 48da2b3da1..ca828cd3f0 100644
--- a/doc/texinfo/opt_general.texi
+++ b/doc/texinfo/opt_general.texi
@@ -69,6 +69,11 @@ Font used in the graphic window@*
 Default value: @code{"Helvetica"}@*
 Saved in: @code{General.OptionsFileName}
 
+@item General.GraphicsFontTitle
+Font used in the graphic window for titles@*
+Default value: @code{"Helvetica"}@*
+Saved in: @code{General.OptionsFileName}
+
 @item General.OptionsFileName
 Option file created with `Tools->Options->Save'; automatically read on startup@*
 Default value: @code{".gmsh-options"}@*
@@ -119,6 +124,11 @@ System command to launch a web browser@*
 Default value: @code{"open %s"}@*
 Saved in: @code{General.OptionsFileName}
 
+@item General.WatchFilePattern
+Pattern of files to merge as they become available@*
+Default value: @code{""}@*
+Saved in: @code{-}
+
 @item General.AlphaBlending
 Enable alpha blending (transparency) in post-processing views@*
 Default value: @code{1}@*
@@ -449,6 +459,11 @@ Size of the font in the graphic window@*
 Default value: @code{17}@*
 Saved in: @code{General.OptionsFileName}
 
+@item General.GraphicsFontSizeTitle
+Size of the font in the graphic window for titles@*
+Default value: @code{19}@*
+Saved in: @code{General.OptionsFileName}
+
 @item General.GraphicsHeight
 Height (in pixels) of the graphic window@*
 Default value: @code{600}@*
diff --git a/doc/texinfo/opt_mesh.texi b/doc/texinfo/opt_mesh.texi
index 06cf7e20ba..9b34d8a138 100644
--- a/doc/texinfo/opt_mesh.texi
+++ b/doc/texinfo/opt_mesh.texi
@@ -115,32 +115,32 @@ Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthExtendFromBoundary
-Extend characteristic lengths from the boundaries inside the surface/volume@*
+Extend computation of mesh element sizes from the boundaries into the surfaces/volumes@*
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthFactor
-Factor applied to all characteristic lengths@*
+Factor applied to all mesh element sizes@*
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthMin
-Minimum characteristic length@*
+Minimum mesh element size@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthMax
-Maximum characteristic length@*
+Maximum mesh element size@*
 Default value: @code{1e+22}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthFromCurvature
-Compute characteristic lengths from curvature@*
+Automatically compute mesh element sizes from curvature (experimental)@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.CharacteristicLengthFromPoints
-Compute characteristic lengths from values given at geometry points@*
+Compute mesh element sizes from values given at geometry points@*
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
@@ -274,6 +274,11 @@ Split MSH file by mesh partition@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Mesh.PartitionByExtrusion
+Special partitioner that annotates all all extruded elements to the same node as the source element@*
+Default value: @code{0}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Mesh.NbHexahedra
 Number of hexahedra in the current mesh (read-only)@*
 Default value: @code{0}@*
@@ -434,11 +439,6 @@ Save parametric coordinates of nodes@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
-@item Mesh.SaveDistance
-Save distance of nodes to boundaries@*
-Default value: @code{0}@*
-Saved in: @code{General.OptionsFileName}
-
 @item Mesh.SaveGroupsOfNodes
 Save groups of nodes for each physical line and surface (UNV mesh format only)@*
 Default value: @code{0}@*
@@ -456,7 +456,7 @@ Saved in: @code{General.OptionsFileName}
 
 @item Mesh.SecondOrderIncomplete
 Create incomplete second order elements? (8-node quads, 20-node hexas, etc.)@*
-Default value: @code{1}@*
+Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.SecondOrderLinear
@@ -606,92 +606,92 @@ Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.One
 Color 1 in color carousel@*
-Default value: @code{@{255,160,0@}}@*
+Default value: @code{@{0,255,132@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Two
 Color 2 in color carousel@*
-Default value: @code{@{255,200,0@}}@*
+Default value: @code{@{255,160,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Three
 Color 3 in color carousel@*
-Default value: @code{@{255,240,0@}}@*
+Default value: @code{@{0,255,192@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Four
 Color 4 in color carousel@*
-Default value: @code{@{228,255,0@}}@*
+Default value: @code{@{255,200,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Five
 Color 5 in color carousel@*
-Default value: @code{@{188,255,0@}}@*
+Default value: @code{@{0,216,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Six
 Color 6 in color carousel@*
-Default value: @code{@{148,255,0@}}@*
+Default value: @code{@{255,240,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Seven
 Color 7 in color carousel@*
-Default value: @code{@{108,255,0@}}@*
+Default value: @code{@{0,176,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Eight
 Color 8 in color carousel@*
-Default value: @code{@{68,255,0@}}@*
+Default value: @code{@{228,255,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Nine
 Color 9 in color carousel@*
-Default value: @code{@{0,255,52@}}@*
+Default value: @code{@{0,116,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Ten
 Color 10 in color carousel@*
-Default value: @code{@{0,255,132@}}@*
+Default value: @code{@{188,255,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Eleven
 Color 11 in color carousel@*
-Default value: @code{@{0,255,192@}}@*
+Default value: @code{@{0,76,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Twelve
 Color 12 in color carousel@*
-Default value: @code{@{0,216,255@}}@*
+Default value: @code{@{148,255,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Thirteen
 Color 13 in color carousel@*
-Default value: @code{@{0,176,255@}}@*
+Default value: @code{@{24,0,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Fourteen
 Color 14 in color carousel@*
-Default value: @code{@{0,116,255@}}@*
+Default value: @code{@{108,255,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Fifteen
 Color 15 in color carousel@*
-Default value: @code{@{0,76,255@}}@*
+Default value: @code{@{84,0,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Sixteen
 Color 16 in color carousel@*
-Default value: @code{@{24,0,255@}}@*
+Default value: @code{@{68,255,0@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Seventeen
 Color 17 in color carousel@*
-Default value: @code{@{84,0,255@}}@*
+Default value: @code{@{104,0,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Eighteen
 Color 18 in color carousel@*
-Default value: @code{@{104,0,255@}}@*
+Default value: @code{@{0,255,52@}}@*
 Saved in: @code{General.OptionsFileName}
 
 @item Mesh.Color.Nineteen
diff --git a/doc/texinfo/opt_plugin.texi b/doc/texinfo/opt_plugin.texi
index 02bae8e8e4..6ee37281d3 100644
--- a/doc/texinfo/opt_plugin.texi
+++ b/doc/texinfo/opt_plugin.texi
@@ -176,6 +176,11 @@ Default value: @code{0}
 Default value: @code{-1}
 @end table
 
+@item Plugin(Distance)
+Plugin(Distance) computes distances to boundaries in a mesh.
+
+Plugin(Distance) creates a bunch of files.
+
 @item Plugin(Divergence)
 Plugin(Divergence) computes the divergence of the field in the view `View'.
 
@@ -216,8 +221,20 @@ Default value: @code{1}
 Default value: @code{-1}
 @end table
 
+@item Plugin(ExtractEdges)
+Plugin(ExtractEdges) extracts sharp edges from a triangular mesh.
+
+Plugin(ExtractEdges) creates one new view.
+Numeric options:
+@table @code
+@item Angle
+Default value: @code{40}
+@item IncludeBoundary
+Default value: @code{1}
+@end table
+
 @item Plugin(ExtractElements)
-Plugin(ExtractElements) extracts the elements from the view `View' whose `TimeStep'-th values (averaged by element) are comprised between `MinVal' and `MaxVal'.
+Plugin(ExtractElements) extracts some elements from the view `View'. If `MinVal' != `MaxVal', it extracts the elements whose `TimeStep'-th values (averaged by element) are comprised between `MinVal' and `MaxVal'. If `Visible' != 0, it extracts visible elements. 
 
 If `View' < 0, the plugin is run on the current view.
 
@@ -227,9 +244,11 @@ Numeric options:
 @item MinVal
 Default value: @code{0}
 @item MaxVal
-Default value: @code{1}
+Default value: @code{0}
 @item TimeStep
 Default value: @code{0}
+@item Visible
+Default value: @code{1}
 @item View
 Default value: @code{-1}
 @end table
@@ -338,9 +357,11 @@ Default value: @code{-1}
 @end table
 
 @item Plugin(Homology)
-Plugin(Homology) computes generators for (relative) homology groups and their thick cuts.
+Plugin(Homology) computes ranks and generators of (relative) homology spaces and their thick cuts.
 
-Plugin(Homology) creates new views.
+Define physical groups in order to specify the computation domain and the relative subdomain. Otherwise the whole mesh is the domain and the relative subdomain is empty. 
+
+Plugin(Homology) creates new views, one for each generator found. The resulting generator chains together with the mesh are saved to the file given.
 String options:
 @table @code
 @item Filename
@@ -358,9 +379,7 @@ Default value: @code{0}
 Default value: @code{0}
 @item ComputeGenerators
 Default value: @code{1}
-@item ComputeDualGenerators
-Default value: @code{0}
-@item ComputeBettiNumbers
+@item ComputeCuts
 Default value: @code{0}
 @end table
 
@@ -497,6 +516,18 @@ Default value: @code{-1}
 Default value: @code{-1}
 @end table
 
+@item Plugin(MinMax)
+Plugin(MinMax) computes the min/max of a view.
+
+If `View' < 0, the plugin is run on the current view.
+
+Plugin(MinMax) creates two new views.
+Numeric options:
+@table @code
+@item View
+Default value: @code{-1}
+@end table
+
 @item Plugin(ModifyComponent)
 Plugin(ModifyComponent) sets the `Component'-th component of the `TimeStep'-th time step in the view `View' to the expression `Expression'.
 
diff --git a/doc/texinfo/opt_post.texi b/doc/texinfo/opt_post.texi
index fe7b710430..9bf0c729d9 100644
--- a/doc/texinfo/opt_post.texi
+++ b/doc/texinfo/opt_post.texi
@@ -21,7 +21,7 @@ Saved in: @code{General.OptionsFileName}
 
 @item PostProcessing.Format
 Default file format for post-processing views (0=ASCII view, 1=binary view, 2=parsed view, 3=STL triangulation, 4=raw text, 5=Gmsh mesh, 6=MED file)@*
-Default value: @code{0}@*
+Default value: @code{2}@*
 Saved in: @code{General.OptionsFileName}
 
 @item PostProcessing.HorizontalScales
diff --git a/doc/texinfo/opt_solver.texi b/doc/texinfo/opt_solver.texi
index 4f5da4a2d7..bea79b07ff 100644
--- a/doc/texinfo/opt_solver.texi
+++ b/doc/texinfo/opt_solver.texi
@@ -17,7 +17,7 @@ Saved in: @code{General.OptionsFileName}
 @item Solver.Help0
 Help string for solver 0@*
 Default value: @code{"A General environment for the treatment of Discrete Problems.
-Copyright (C) 1997-2009 Patrick Dular and Christophe Geuzaine.
+Copyright (C) 1997-2010 Patrick Dular and Christophe Geuzaine.
 Visit http://www.geuz.org/getdp/ for more info"}@*
 Saved in: @code{General.OptionsFileName}
 
@@ -26,6 +26,11 @@ System command to launch solver 0 (should not contain the `&' character)@*
 Default value: @code{"getdp"}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Solver.ExtraArguments0
+Extra arguments to pass to solver 0@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Solver.InputName0
 Default input file name for solver 0@*
 Default value: @code{""}@*
@@ -151,6 +156,11 @@ System command to launch solver 1 (should not contain the `&' character)@*
 Default value: @code{""}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Solver.ExtraArguments1
+Extra arguments to pass to solver 1@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Solver.InputName1
 Default input file name for solver 1@*
 Default value: @code{""}@*
@@ -276,6 +286,11 @@ System command to launch solver 2 (should not contain the `&' character)@*
 Default value: @code{""}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Solver.ExtraArguments2
+Extra arguments to pass to solver 2@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Solver.InputName2
 Default input file name for solver 2@*
 Default value: @code{""}@*
@@ -401,6 +416,11 @@ System command to launch solver 3 (should not contain the `&' character)@*
 Default value: @code{""}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Solver.ExtraArguments3
+Extra arguments to pass to solver 3@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Solver.InputName3
 Default input file name for solver 3@*
 Default value: @code{""}@*
@@ -526,6 +546,11 @@ System command to launch solver 4 (should not contain the `&' character)@*
 Default value: @code{""}@*
 Saved in: @code{General.OptionsFileName}
 
+@item Solver.ExtraArguments4
+Extra arguments to pass to solver 4@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item Solver.InputName4
 Default input file name for solver 4@*
 Default value: @code{""}@*
diff --git a/doc/texinfo/opt_view.texi b/doc/texinfo/opt_view.texi
index 1cfc2cf02f..c868d331e4 100644
--- a/doc/texinfo/opt_view.texi
+++ b/doc/texinfo/opt_view.texi
@@ -205,7 +205,7 @@ Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item View.CenterGlyphs
-Center glyphs (arrows, numbers, etc.)@*
+Center glyphs (arrows, numbers, etc.)? (0=left, 1=centered, 2=right)@*
 Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
@@ -595,8 +595,8 @@ Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
 @item View.ShowTime
-Time display mode (0=hidden, 1=value if multi-step, 2=value always, 3=step if multi-step, 4=step always)@*
-Default value: @code{1}@*
+Time display mode (0=hidden, 1=time value if multi-step, 2=time value always, 3=time step if multi-step, 4=time step always)@*
+Default value: @code{3}@*
 Saved in: @code{General.OptionsFileName}
 
 @item View.SmoothNormals
-- 
GitLab