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

@ftable @code
@item Attractor
Compute the distance to the given points, curves or surfaces. (Curves are replaced by NumPointsPerCurve equidistant points, to which the distance is actually computed. In the same way, surfaces are replaced by a point cloud, sampled according to NumPointsPerCurve and the size of their bounding box). The Attractor field is deprecated: use the Distance field instead.@*
Options:@*
@table @code
@item CurvesList
Tags of curves in the geometric model@*
type: list@*
default value: @code{@{@}}
@item FieldX
Tag of the field to use as x coordinate@*
type: integer@*
default value: @code{-1}
@item FieldY
Tag of the field to use as y coordinate@*
type: integer@*
default value: @code{-1}
@item FieldZ
Tag of the field to use as z coordinate@*
type: integer@*
default value: @code{-1}
@item NumPointsPerCurve
Number of points used to discretize each curve (and surface, relative to their bounding box size)@*
type: integer@*
default value: @code{20}
@item PointsList
Tags of points in the geometric model@*
type: list@*
default value: @code{@{@}}
@item SurfacesList
Tags of surfaces in the geometric model@*
type: list@*
default value: @code{@{@}}
@end table

@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. (Each curve is replaced by NumPointsPerCurve equidistant 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 NumPointsPerCurve
Number of points used to discretized 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 NRefine
Initial refinement level for the octree@*
type: integer@*
default value: @code{5}
@item gradientMax
Maximun gradient of the size field@*
type: float@*
default value: @code{1.4}
@item hBulk
Size everywhere no size is prescribed@*
type: float@*
default value: @code{0.1}
@item nPointsPerCircle
Number of points per circle (adapt to curvature of surfaces)@*
type: integer@*
default value: @code{55}
@item nPointsPerGap
Number of points in thin layers@*
type: integer@*
default value: @code{5}
@end table

@item Ball
The value of this field is VIn inside a spherical ball, 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{0}
@item VOut
Value outside the ball@*
type: float@*
default value: @code{0}
@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 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 contructed@*
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 node. If not present default value mesh.boundaryLayerFanPoints@*
type: list@*
default value: @code{@{@}}
@item IntersectMetrics
Intersect metrics of all surfaces@*
type: integer@*
default value: @code{0}
@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
Element 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
The value of this field is VIn inside the box, VOut outside the box. 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{0}
@item VOut
Value outside the box@*
type: float@*
default value: @code{0}
@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 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}
@item InField
Input field tag@*
type: integer@*
default value: @code{1}
@end table

@item Cylinder
The value of this field is VIn inside a frustrated cylinder, VOut outside. The cylinder is given 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{0}
@item VOut
Value outside the cylinder@*
type: float@*
default value: @code{0}
@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. (Curves are replaced by NumPointsPerCurve equidistant points, to which the distance is actually computed. In the same way, surfaces are replaced by a point cloud, sampled according to NumPointsPerCurve and the size of their bounding box).@*
Options:@*
@table @code
@item CurvesList
Tags of curves in the geometric model@*
type: list@*
default value: @code{@{@}}
@item FieldX
Id of the field to use as x coordinate@*
type: integer@*
default value: @code{-1}
@item FieldY
Id of the field to use as y coordinate@*
type: integer@*
default value: @code{-1}
@item FieldZ
Id of the field to use as z coordinate@*
type: integer@*
default value: @code{-1}
@item NumPointsPerCurve
Number of points used to discretized each curve (and surface, relative to their bounding box size)@*
type: integer@*
default value: @code{20}
@item PointsList
Tags of points in the geometric model@*
type: list@*
default value: @code{@{@}}
@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
This field is an extended cylinder with inner (i) and outer (o) radiuseson both endpoints (1 and 2). Length scale is bilinearly interpolated betweenthese locations (inner and outer radiuses, endpoints 1 and 2)The field values for a point P are 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)  lc = (1-v)*( (1-u)*v1i + u*v2i ) + v*( (1-u)*v1o + u*v2o )    where (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
Element size at point 1, inner radius@*
type: float@*
default value: @code{0.1}
@item InnerV2
Element 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
Element size at point 1, outer radius@*
type: float@*
default value: @code{1}
@item OuterV2
Element 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}
@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{0}
@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.1}
@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 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 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}
@item InField
Input field tag@*
type: integer@*
default value: @code{1}
@end table

@item Mean
Simple smoother:@*
@*
  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{0}
@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{0}
@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 IView.@*
Options:@*
@table @code
@item CropNegativeValues
return LC_MAX instead of a negative value (this option is needed for backward compatibility with the BackgroundMesh option@*
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.@*
Options:@*
@table @code
@item CurvesList
Curve tags@*
type: list@*
default value: @code{@{@}}
@item InField
Input field tag@*
type: integer@*
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{0}
@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
F = SizeMin if Field[InField] <= DistMin,@*
F = SizeMax if Field[InField] >= DistMax,@*
F = interpolation between SizeMin and SizeMax if DistMin < Field[InField] < DistMax@*
Options:@*
@table @code
@item DistMax
Distance from entity after which element size will be SizeMax@*
type: float@*
default value: @code{10}
@item DistMin
Distance from entity up to which element size will be SizeMin@*
type: float@*
default value: @code{1}
@item InField
Tag of the field to evaluate@*
type: integer@*
default value: @code{0}
@item Sigmoid
True to interpolate between SizeMin and LcMax using a sigmoid, false to interpolate linearly@*
type: boolean@*
default value: @code{0}
@item SizeMax
Element size outside DistMax@*
type: float@*
default value: @code{1}
@item SizeMin
Element size inside DistMin@*
type: float@*
default value: @code{0.1}
@item StopAtDistMax
True to not impose element size outside DistMax (i.e., F = a very big value if Field[InField] > DistMax)@*
type: boolean@*
default value: @code{0}
@end table

@end ftable
