@c This file was generated by "gmsh -doc": do not edit manually!

@ftable @code
@item AttractorAnisoCurve
Compute the distance to the given curves and specify the mesh size independently in the direction normal and parallel to the nearest curve. For efficiency each curve is replaced by a set of Sampling points, to which the distance is actually computed.@*
@*
Options:@*
@table @code
@item CurvesList
Tags of curves in the geometric model@*
Type: list@*
Default value: @code{@{@}}
@item DistMax
Maxmium distance, above this distance from the curves, prescribe the maximum mesh sizes@*
Type: float@*
Default value: @code{0.5}
@item DistMin
Minimum distance, below this distance from the curves, prescribe the minimum mesh sizes@*
Type: float@*
Default value: @code{0.1}
@item Sampling
Number of sampling points on each curve@*
Type: integer@*
Default value: @code{20}
@item SizeMaxNormal
Maximum mesh size in the direction normal to the closest curve@*
Type: float@*
Default value: @code{0.5}
@item SizeMaxTangent
Maximum mesh size in the direction tangeant to the closest curve@*
Type: float@*
Default value: @code{0.5}
@item SizeMinNormal
Minimum mesh size in the direction normal to the closest curve@*
Type: float@*
Default value: @code{0.05}
@item SizeMinTangent
Minimum mesh size in the direction tangeant to the closest curve@*
Type: float@*
Default value: @code{0.5}
@end table

@item AutomaticMeshSizeField
Compute a mesh size field that is quite automatic Takes into account surface curvatures and closeness of objects@*
@*
Options:@*
@table @code
@item features
Enable computation of local feature size (thin channels)@*
Type: boolean@*
Default value: @code{1}
@item gradation
Maximum growth ratio for the edges lengths@*
Type: float@*
Default value: @code{1.1}
@item hBulk
Default size where it is not prescribed@*
Type: float@*
Default value: @code{-1}
@item hMax
Maximum size@*
Type: float@*
Default value: @code{-1}
@item hMin
Minimum size@*
Type: float@*
Default value: @code{-1}
@item nPointsPerCircle
Number of points per circle (adapt to curvature of surfaces)@*
Type: integer@*
Default value: @code{20}
@item nPointsPerGap
Number of layers of elements in thin layers@*
Type: integer@*
Default value: @code{0}
@item p4estFileToLoad
p4est file containing the size field@*
Type: string@*
Default value: @code{""}
@item smoothing
Enable size smoothing (should always be true)@*
Type: boolean@*
Default value: @code{1}
@end table

@item Ball
Return VIn inside a spherical ball, and VOut outside. The ball is defined by@*
@*
  ||dX||^2 < R^2 &&@*
  dX = (X - XC)^2 + (Y-YC)^2 + (Z-ZC)^2@*
@*
If Thickness is > 0, the mesh size is interpolated between VIn and VOut in a layer around the ball of the prescribed thickness.@*
@*
Options:@*
@table @code
@item Radius
Radius@*
Type: float@*
Default value: @code{0}
@item Thickness
Thickness of a transition layer outside the ball@*
Type: float@*
Default value: @code{0}
@item VIn
Value inside the ball@*
Type: float@*
Default value: @code{1e+22}
@item VOut
Value outside the ball@*
Type: float@*
Default value: @code{1e+22}
@item XCenter
X coordinate of the ball center@*
Type: float@*
Default value: @code{0}
@item YCenter
Y coordinate of the ball center@*
Type: float@*
Default value: @code{0}
@item ZCenter
Z coordinate of the ball center@*
Type: float@*
Default value: @code{0}
@end table

@item BoundaryLayer
Insert a 2D boundary layer mesh next to some curves in the model.@*
@*
Options:@*
@table @code
@item AnisoMax
Threshold angle for creating a mesh fan in the boundary layer@*
Type: float@*
Default value: @code{10000000000}
@item Beta
Beta coefficient of the Beta Law@*
Type: float@*
Default value: @code{1.01}
@item BetaLaw
Use Beta Law instead of geometric progression @*
Type: integer@*
Default value: @code{0}
@item CurvesList
Tags of curves in the geometric model for which a boundary layer is needed@*
Type: list@*
Default value: @code{@{@}}
@item ExcludedSurfacesList
Tags of surfaces in the geometric model where the boundary layer should not be constructed@*
Type: list@*
Default value: @code{@{@}}
@item FanPointsList
Tags of points in the geometric model for which a fan is created@*
Type: list@*
Default value: @code{@{@}}
@item FanPointsSizesList
Number of elements in the fan for each fan point. If not present default value Mesh.BoundaryLayerFanElements@*
Type: list@*
Default value: @code{@{@}}
@item IntersectMetrics
Intersect metrics of all surfaces@*
Type: integer@*
Default value: @code{0}
@item NbLayers
Number of Layers in theBeta Law@*
Type: integer@*
Default value: @code{10}
@item PointsList
Tags of points in the geometric model for which a boundary layer ends@*
Type: list@*
Default value: @code{@{@}}
@item Quads
Generate recombined elements in the boundary layer@*
Type: integer@*
Default value: @code{0}
@item Ratio
Size ratio between two successive layers@*
Type: float@*
Default value: @code{1.1}
@item Size
Mesh size normal to the curve@*
Type: float@*
Default value: @code{0.1}
@item SizeFar
Mesh size far from the curves@*
Type: float@*
Default value: @code{1}
@item SizesList
Mesh size normal to the curve, per point (overwrites Size when defined)@*
Type: list_double@*
Default value: @code{@{@}}
@item Thickness
Maximal thickness of the boundary layer@*
Type: float@*
Default value: @code{0.01}
@end table

@item Box
Return VIn inside the box, and VOut outside. The box is defined by@*
@*
  Xmin <= x <= XMax &&@*
  YMin <= y <= YMax &&@*
  ZMin <= z <= ZMax@*
@*
If Thickness is > 0, the mesh size is interpolated between VIn and VOut in a layer around the box of the prescribed thickness.@*
@*
Options:@*
@table @code
@item Thickness
Thickness of a transition layer outside the box@*
Type: float@*
Default value: @code{0}
@item VIn
Value inside the box@*
Type: float@*
Default value: @code{1e+22}
@item VOut
Value outside the box@*
Type: float@*
Default value: @code{1e+22}
@item XMax
Maximum X coordinate of the box@*
Type: float@*
Default value: @code{0}
@item XMin
Minimum X coordinate of the box@*
Type: float@*
Default value: @code{0}
@item YMax
Maximum Y coordinate of the box@*
Type: float@*
Default value: @code{0}
@item YMin
Minimum Y coordinate of the box@*
Type: float@*
Default value: @code{0}
@item ZMax
Maximum Z coordinate of the box@*
Type: float@*
Default value: @code{0}
@item ZMin
Minimum Z coordinate of the box@*
Type: float@*
Default value: @code{0}
@end table

@item Constant
Return VIn when inside the entities (and on their boundary if IncludeBoundary is set), and VOut outside.@*
@*
Options:@*
@table @code
@item CurvesList
Curve tags@*
Type: list@*
Default value: @code{@{@}}
@item IncludeBoundary
Include the boundary of the entities@*
Type: boolean@*
Default value: @code{1}
@item PointsList
Point tags@*
Type: list@*
Default value: @code{@{@}}
@item SurfacesList
Surface tags@*
Type: list@*
Default value: @code{@{@}}
@item VIn
Value inside the entities@*
Type: float@*
Default value: @code{1e+22}
@item VOut
Value outside the entities@*
Type: float@*
Default value: @code{1e+22}
@item VolumesList
Volume tags@*
Type: list@*
Default value: @code{@{@}}
@end table

@item Curvature
Compute the curvature of Field[InField]:@*
@*
  F = div(norm(grad(Field[InField])))@*
@*
Options:@*
@table @code
@item Delta
Step of the finite differences@*
Type: float@*
Default value: @code{0.0003464101615137755}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@end table

@item Cylinder
Return VIn inside a frustrated cylinder, and VOut outside. The cylinder is defined by@*
@*
  ||dX||^2 < R^2 &&@*
  (X-X0).A < ||A||^2@*
  dX = (X - X0) - ((X - X0).A)/(||A||^2) . A@*
@*
Options:@*
@table @code
@item Radius
Radius@*
Type: float@*
Default value: @code{0}
@item VIn
Value inside the cylinder@*
Type: float@*
Default value: @code{1e+22}
@item VOut
Value outside the cylinder@*
Type: float@*
Default value: @code{1e+22}
@item XAxis
X component of the cylinder axis@*
Type: float@*
Default value: @code{0}
@item XCenter
X coordinate of the cylinder center@*
Type: float@*
Default value: @code{0}
@item YAxis
Y component of the cylinder axis@*
Type: float@*
Default value: @code{0}
@item YCenter
Y coordinate of the cylinder center@*
Type: float@*
Default value: @code{0}
@item ZAxis
Z component of the cylinder axis@*
Type: float@*
Default value: @code{1}
@item ZCenter
Z coordinate of the cylinder center@*
Type: float@*
Default value: @code{0}
@end table

@item Distance
Compute the distance to the given points, curves or surfaces. For efficiency, curves and surfaces are replaced by a set of points (sampled according to Sampling), to which the distance is actually computed.@*
@*
Options:@*
@table @code
@item CurvesList
Tags of curves in the geometric model@*
Type: list@*
Default value: @code{@{@}}
@item PointsList
Tags of points in the geometric model@*
Type: list@*
Default value: @code{@{@}}
@item Sampling
Linear (i.e. per dimension) number of sampling points to discretize each curve and surface@*
Type: integer@*
Default value: @code{20}
@item SurfacesList
Tags of surfaces in the geometric model (only OpenCASCADE and discrete surfaces are currently supported)@*
Type: list@*
Default value: @code{@{@}}
@end table

@item Extend
Compute an extension of the mesh sizes from the given boundary curves (resp. surfaces) inside the surfaces (resp. volumes) being meshed. If the mesh size on the boundary, computed as the local average length of the edges of the boundary elements, is denoted by SizeBnd, the extension is computed as:@*
@*
  F = f * SizeBnd + (1 - f) * SizeMax, if d < DistMax@*
@*
  F = SizeMax, if d >= DistMax@*
@*
where d denotes the distance to the boundary and f = ((DistMax - d) / DistMax)^Power.@*
@*
Options:@*
@table @code
@item CurvesList
Tags of curves in the geometric model@*
Type: list@*
Default value: @code{@{@}}
@item DistMax
Maximum distance of the size extension@*
Type: float@*
Default value: @code{1}
@item Power
Power exponent used to interpolate the mesh size@*
Type: float@*
Default value: @code{1}
@item SizeMax
Mesh size outside DistMax@*
Type: float@*
Default value: @code{1}
@item SurfacesList
Tags of surfaces in the geometric model@*
Type: list@*
Default value: @code{@{@}}
@end table

@item ExternalProcess
**This Field is experimental**@*
Call an external process that received coordinates triple (x,y,z) as binary double precision numbers on stdin and is supposed to write the field value on stdout as a binary double precision number.@*
NaN,NaN,NaN is sent as coordinate to indicate the end of the process.@*
@*
Example of client (python2):@*
import os@*
import struct@*
import math@*
import sys@*
if sys.platform == "win32" :@*
    import msvcrt@*
    msvcrt.setmode(0, os.O_BINARY)@*
    msvcrt.setmode(1, os.O_BINARY)@*
while(True):@*
    xyz = struct.unpack("ddd", os.read(0,24))@*
    if math.isnan(xyz[0]):@*
        break@*
    f = 0.001 + xyz[1]*0.009@*
    os.write(1,struct.pack("d",f))@*
@*
Example of client (python3):@*
import struct@*
import sys@*
import math@*
while(True):@*
    xyz = struct.unpack("ddd", sys.stdin.buffer.read(24))@*
    if math.isnan(xyz[0]):@*
        break@*
    f = 0.001 + xyz[1]*0.009@*
    sys.stdout.buffer.write(struct.pack("d",f))@*
    sys.stdout.flush()@*
@*
Example of client (c, unix):@*
#include <unistd.h>@*
int main(int argc, char **argv) @{@*
  double xyz[3];@*
  while(read(STDIN_FILENO, &xyz, 3*sizeof(double)) == 3*sizeof(double)) @{@*
    if (xyz[0] != xyz[0]) break; //nan@*
    double f = 0.001 + 0.009 * xyz[1];@*
    write(STDOUT_FILENO, &f, sizeof(double));@*
  @}@*
  return 0;@*
@}@*
@*
Example of client (c, windows):@*
#include <stdio.h>@*
#include <io.h>@*
#include <fcntl.h>@*
int main(int argc, char **argv) @{@*
  double xyz[3];@*
  setmode(fileno(stdin),O_BINARY);@*
  setmode(fileno(stdout),O_BINARY);@*
  while(read(fileno(stdin), &xyz, 3*sizeof(double)) == 3*sizeof(double)) @{@*
    if (xyz[0] != xyz[0])@*
      break;@*
    double f = f = 0.01 + 0.09 * xyz[1];@*
    write(fileno(stdout), &f, sizeof(double));@*
  @}@*
@}@*
@*
@*
Options:@*
@table @code
@item CommandLine
Command line to launch@*
Type: string@*
Default value: @code{""}
@end table

@item Frustum
Interpolate mesh sizes on a extended cylinder frustrum defined by inner (R1i and R2i) and outer (R1o and R2o) radii and two endpoints P1 and P2.The field value F for a point P is given by :@*
@*
  u = P1P . P1P2 / ||P1P2|| @*
  r = || P1P - u*P1P2 || @*
  Ri = (1 - u) * R1i + u * R2i @*
  Ro = (1 - u) * R1o + u * R2o @*
  v = (r - Ri) / (Ro - Ri) @*
  F = (1 - v) * ((1 - u) * v1i + u * v2i) +       v * ((1 - u) * v1o + u * v2o)@*
with (u, v) in [0, 1] x [0, 1].@*
@*
Options:@*
@table @code
@item InnerR1
Inner radius of Frustum at endpoint 1@*
Type: float@*
Default value: @code{0}
@item InnerR2
Inner radius of Frustum at endpoint 2@*
Type: float@*
Default value: @code{0}
@item InnerV1
Mesh size at point 1, inner radius@*
Type: float@*
Default value: @code{0.1}
@item InnerV2
Mesh size at point 2, inner radius@*
Type: float@*
Default value: @code{0.1}
@item OuterR1
Outer radius of Frustum at endpoint 1@*
Type: float@*
Default value: @code{1}
@item OuterR2
Outer radius of Frustum at endpoint 2@*
Type: float@*
Default value: @code{1}
@item OuterV1
Mesh size at point 1, outer radius@*
Type: float@*
Default value: @code{1}
@item OuterV2
Mesh size at point 2, outer radius@*
Type: float@*
Default value: @code{1}
@item X1
X coordinate of endpoint 1@*
Type: float@*
Default value: @code{0}
@item X2
X coordinate of endpoint 2@*
Type: float@*
Default value: @code{0}
@item Y1
Y coordinate of endpoint 1@*
Type: float@*
Default value: @code{0}
@item Y2
Y coordinate of endpoint 2@*
Type: float@*
Default value: @code{0}
@item Z1
Z coordinate of endpoint 1@*
Type: float@*
Default value: @code{1}
@item Z2
Z coordinate of endpoint 2@*
Type: float@*
Default value: @code{0}
@end table

@item Gradient
Compute the finite difference gradient of Field[InField]:@*
@*
  F = (Field[InField](X + Delta/2) -        Field[InField](X - Delta/2)) / Delta@*
@*
Options:@*
@table @code
@item Delta
Finite difference step@*
Type: float@*
Default value: @code{0.0003464101615137755}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@item Kind
Component of the gradient to evaluate: 0 for X, 1 for Y, 2 for Z, 3 for the norm@*
Type: integer@*
Default value: @code{3}
@end table

@item IntersectAniso
Take the intersection of 2 anisotropic fields according to Alauzet.@*
@*
Options:@*
@table @code
@item FieldsList
Field indices@*
Type: list@*
Default value: @code{@{@}}
@end table

@item Laplacian
Compute finite difference the Laplacian of Field[InField]:@*
@*
  F = G(x+d,y,z) + G(x-d,y,z) +@*
      G(x,y+d,z) + G(x,y-d,z) +@*
      G(x,y,z+d) + G(x,y,z-d) - 6 * G(x,y,z),@*
@*
where G = Field[InField] and d = Delta.@*
@*
Options:@*
@table @code
@item Delta
Finite difference step@*
Type: float@*
Default value: @code{0.0003464101615137755}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@end table

@item LonLat
Evaluate Field[InField] in geographic coordinates (longitude, latitude):@*
@*
  F = Field[InField](atan(y / x), asin(z / sqrt(x^2 + y^2 + z^2))@*
@*
Options:@*
@table @code
@item FromStereo
If = 1, the mesh is in stereographic coordinates: xi = 2Rx/(R+z),  eta = 2Ry/(R+z)@*
Type: integer@*
Default value: @code{0}
@item InField
Tag of the field to evaluate@*
Type: integer@*
Default value: @code{1}
@item RadiusStereo
Radius of the sphere of the stereograpic coordinates@*
Type: float@*
Default value: @code{6371000}
@end table

@item MathEval
Evaluate a mathematical expression. The expression can contain x, y, z for spatial coordinates, F0, F1, ... for field values, and mathematical functions.@*
@*
Options:@*
@table @code
@item F
Mathematical function to evaluate.@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@end table

@item MathEvalAniso
Evaluate a metric expression. The expressions can contain x, y, z for spatial coordinates, F0, F1, ... for field values, and mathematical functions.@*
@*
Options:@*
@table @code
@item M11
Element 11 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@item M12
Element 12 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@item M13
Element 13 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@item M22
Element 22 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@item M23
Element 23 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@item M33
Element 33 of the metric tensor@*
Type: string@*
Default value: @code{"F2 + Sin(z)"}
@end table

@item Max
Take the maximum value of a list of fields.@*
@*
Options:@*
@table @code
@item FieldsList
Field indices@*
Type: list@*
Default value: @code{@{@}}
@end table

@item MaxEigenHessian
Compute the maximum eigenvalue of the Hessian matrix of Field[InField], with the gradients evaluated by finite differences:@*
@*
  F = max(eig(grad(grad(Field[InField]))))@*
@*
Options:@*
@table @code
@item Delta
Step used for the finite differences@*
Type: float@*
Default value: @code{0.0003464101615137755}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@end table

@item Mean
Return the mean value@*
@*
  F = (G(x + delta, y, z) + G(x - delta, y, z) +@*
       G(x, y + delta, z) + G(x, y - delta, z) +@*
       G(x, y, z + delta) + G(x, y, z - delta) +@*
       G(x, y, z)) / 7,@*
@*
where G = Field[InField].@*
@*
Options:@*
@table @code
@item Delta
Distance used to compute the mean value@*
Type: float@*
Default value: @code{0.0003464101615137755}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@end table

@item Min
Take the minimum value of a list of fields.@*
@*
Options:@*
@table @code
@item FieldsList
Field indices@*
Type: list@*
Default value: @code{@{@}}
@end table

@item MinAniso
Take the intersection of a list of possibly anisotropic fields.@*
@*
Options:@*
@table @code
@item FieldsList
Field indices@*
Type: list@*
Default value: @code{@{@}}
@end table

@item Octree
Pre compute another field on an octree to speed-up evalution.@*
@*
Options:@*
@table @code
@item InField
Id of the field to represent on the octree@*
Type: integer@*
Default value: @code{1}
@end table

@item Param
Evaluate Field[InField] in parametric coordinates:@*
@*
  F = Field[InField](FX,FY,FZ)@*
@*
See the MathEval Field help to get a description of valid FX, FY and FZ expressions.@*
@*
Options:@*
@table @code
@item FX
X component of parametric function@*
Type: string@*
Default value: @code{""}
@item FY
Y component of parametric function@*
Type: string@*
Default value: @code{""}
@item FZ
Z component of parametric function@*
Type: string@*
Default value: @code{""}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@end table

@item PostView
Evaluate the post processing view with index ViewIndex, or with tag ViewTag if ViewTag is positive.@*
@*
Options:@*
@table @code
@item CropNegativeValues
return MAX_LC instead of a negative value (this option is needed for backward compatibility with the BackgroundMesh option@*
Type: boolean@*
Default value: @code{1}
@item UseClosest
Use value at closest node if no exact match is found@*
Type: boolean@*
Default value: @code{1}
@item ViewIndex
Post-processing view index@*
Type: integer@*
Default value: @code{0}
@item ViewTag
Post-processing view tag@*
Type: integer@*
Default value: @code{-1}
@end table

@item Restrict
Restrict the application of a field to a given list of geometrical points, curves, surfaces or volumes (as well as their boundaries if IncludeBoundary is set).@*
@*
Options:@*
@table @code
@item CurvesList
Curve tags@*
Type: list@*
Default value: @code{@{@}}
@item InField
Input field tag@*
Type: integer@*
Default value: @code{1}
@item IncludeBoundary
Include the boundary of the entities@*
Type: boolean@*
Default value: @code{1}
@item PointsList
Point tags@*
Type: list@*
Default value: @code{@{@}}
@item SurfacesList
Surface tags@*
Type: list@*
Default value: @code{@{@}}
@item VolumesList
Volume tags@*
Type: list@*
Default value: @code{@{@}}
@end table

@item Structured
Linearly interpolate between data provided on a 3D rectangular structured grid.@*
@*
The format of the input file is:@*
@*
  Ox Oy Oz @*
  Dx Dy Dz @*
  nx ny nz @*
  v(0,0,0) v(0,0,1) v(0,0,2) ... @*
  v(0,1,0) v(0,1,1) v(0,1,2) ... @*
  v(0,2,0) v(0,2,1) v(0,2,2) ... @*
  ...      ...      ... @*
  v(1,0,0) ...      ... @*
@*
where O are the coordinates of the first node, D are the distances between nodes in each direction, n are the numbers of nodes in each direction, and v are the values on each node.@*
@*
Options:@*
@table @code
@item FileName
Name of the input file@*
Type: path@*
Default value: @code{""}
@item OutsideValue
Value of the field outside the grid (only used if the "SetOutsideValue" option is true).@*
Type: float@*
Default value: @code{1e+22}
@item SetOutsideValue
True to use the "OutsideValue" option. If False, the last values of the grid are used.@*
Type: boolean@*
Default value: @code{0}
@item TextFormat
True for ASCII input files, false for binary files (4 bite signed integers for n, double precision floating points for v, D and O)@*
Type: boolean@*
Default value: @code{0}
@end table

@item Threshold
Return F = SizeMin if Field[InField] <= DistMin, F = SizeMax if Field[InField] >= DistMax, and the interpolation between SizeMin and SizeMax if DistMin < Field[InField] < DistMax.@*
@*
Options:@*
@table @code
@item DistMax
Value after which the mesh size will be SizeMax@*
Type: float@*
Default value: @code{10}
@item DistMin
Value up to which the mesh size will be SizeMin@*
Type: float@*
Default value: @code{1}
@item InField
Tag of the field computing the input value, usually a distance@*
Type: integer@*
Default value: @code{0}
@item Sigmoid
True to interpolate between SizeMin and SizeMax using a sigmoid, false to interpolate linearly@*
Type: boolean@*
Default value: @code{0}
@item SizeMax
Mesh size when value > DistMax@*
Type: float@*
Default value: @code{1}
@item SizeMin
Mesh size when value < DistMin@*
Type: float@*
Default value: @code{0.1}
@item StopAtDistMax
True to not impose mesh size outside DistMax (i.e., F = a very big value if Field[InField] > DistMax)@*
Type: boolean@*
Default value: @code{0}
@end table

@end ftable
