Skip to content

JIG File Format

Darren Engwirda edited this page May 18, 2023 · 10 revisions

*.jig files are used by JIGSAW to store user-defined configuration settings. An unstructured text-file format is used, consisting of keyword-value pairs. User-defined configurations may be passed to JIGSAW via the command-line:

>> .\jigsaw JIG-FILE-NAME.jig

INLINE COMMENTS

#   This is a comment line. Only full lines can be comments, no trailing comments are allowed.

OPTIONAL fields (INIT):

Optional settings associated with the initial conditions are available. Any settings omitted revert to their default values.

#   INIT_FILE - 'INITNAME.MSH', a string containing the 
#   name of the initial distribution file (is required 
#   at input).

    INIT_FILE = CHAR
#   INIT_NEAR - {default = 1.E-8} relative "zip" tol.
#   applied when processing initial conditions. In cases
#   where "sharp-feature" detection is active, nodes in 
#   the initial set are zipped to their nearest feature
#   node if the separation length is less than NEAR*SCAL
#   where SCAL is the max. bounding-box dimension.

    INIT_NEAR = UINT

OPTIONAL fields (GEOM):

Optional settings associated with the input geometry are available. Any settings omitted revert to their default values.

#   GEOM_FILE - 'GEOMNAME.MSH', a string containing the 
#   name of the geometry file (is required at input). 

    GEOM_FILE = CHAR
#   GEOM_SEED - {default=8} number of "seed" vertices 
#   used to initialise mesh generation.

    GEOM_SEED = UINT
#   GEOM_FEAT - {default=false} attempt to auto-detect 
#   "sharp-features" in the input geometry. Features can 
#   lie adjacent to 1-dim. entities, (i.e. geometry 
#   "edges") and/or 2-dim. entities, (i.e. geometry 
#   "faces") based on both geometrical and/or topologic-
#   al constraints. Geometrically, features are located 
#   between any neighbouring entities that subtend 
#   angles less than GEOM_ETAX degrees, where "X" is the 
#   (topological) dimension of the feature. Topological-
#   ly, features are located at the apex of non-manifold 
#   connections.

    GEOM_FEAT = BOOL
#   GEOM_ETA1 - {default=45deg} 1-dim. feature-angle, 
#   features are located between any neighbouring 
#   edges that subtend angles less than ETA1 degrees.

    GEOM_ETA1 = REAL
#   GEOM_ETA2 - {default=45deg} 2-dim. feature angle, 
#   features are located between any neighbouring 
#   faces that subtend angles less than ETA2 degrees.

    GEOM_ETA2 = REAL

OPTIONAL fields (HFUN):

Optional settings associated with mesh-spacing data are available. Any settings omitted revert to their default values.

#   HFUN_FILE - 'HFUNNAME.MSH', a string containing the 
#   name of the mesh-size file (is required at input).
#   The mesh-size function is specified as a general pi-
#   ecewise linear function, defined at the vertices of
#   an unstructured triangulation or over a structured
#   grid.

    HFUN_FILE = CHAR
#   HFUN_SCAL - {default='relative'} scaling type for 
#   mesh-size function. HFUN_SCAL='relative' interprets 
#   mesh-size values as percentages of the (mean) length 
#   of the axis-aligned bounding-box (AABB) associated 
#   with the geometry. HFUN_SCAL='absolute' interprets 
#   mesh-size values as absolute measures.

    HFUN_SCAL = CHAR
#   HFUN_HMAX - {default=0.02} max. mesh-size function 
#   value. Interpreted based on SCAL setting.

    HFUN_HMAX = REAL
#   HFUN_HMIN - {default=0.00} min. mesh-size function 
#   value. Interpreted based on SCAL setting.

    HFUN_HMIN = REAL

OPTIONAL fields (MESH):

Optional settings associated with the refinement scheme are available. Any settings omitted revert to their default values.

#   MESH_FILE - 'MESHNAME.MSH', a string containing the 
#   name of the output file (will be created on output).`

    MESH_FILE = CHAR
#   MESH_DIMS - {default=3} number of "topological" dim-
#   ensions to mesh. DIMS=K meshes K-dimensional featur-
#   es, irrespective of the number of spatial dim.'s of 
#   the problem (i.e. if the geometry is 3-dimensional & 
#   DIMS=2 a surface mesh will be produced).

    MESH_DIMS = UINT
#   MESH_KERN - {default='delfront'} meshing kernel,
#   choice of the standard Delaunay-refinement algorithm 
#   (KERN='delaunay') or the Frontal-Delaunay method 
#   (KERN='delfront').

    MESH_KERN = CHAR
#   MESH_ITER - {default=+INF} max. number of mesh ref-
#   inement iterations. Set ITER=N to see progress after 
#   N iterations. 

    MESH_ITER = UINT
#   MESH_TOP1 - {default=false} enforce 1-dim. topolog-
#   ical constraints. 1-dim. edges are refined until all 
#   embedded nodes are "locally 1-manifold", i.e. nodes 
#   are either centred at topological "features", or lie 
#   on 1-manifold complexes.

    MESH_TOP1 = BOOL
#   MESH_TOP2 - {default=false} enforce 2-dim. topolog-
#   ical constraints. 2-dim. trias are refined until all 
#   embedded nodes are "locally 2-manifold", i.e. nodes 
#   are either centred at topological "features", or lie 
#   on 2-manifold complexes.

    MESH_TOP2 = BOOL
#   MESH_RAD2 - {default=1.05} max. radius-edge ratios 
#   for 2-tria elements. 2-trias are refined until the 
#   ratio of element circumradii to min. edge lengths is 
#   less-than RAD2.

    MESH_RAD2 = REAL
#   MESH_RAD3 - {default=2.05} max. radius-edge ratios 
#   for 3-tria elements. 3-trias are refined until the 
#   ratio of element circumradii to min. edge lengths is 
#   less-than RAD3.

    MESH_RAD3 = REAL
#   MESH_OFF2 - {default=0.90} radius-edge ratio target
#   for insertion of "shape"-type offcentres for 2-tria
#   elements. When refining an element II, offcentres
#   are positioned to form a new "frontal" element JJ 
#   that satisfies JRAD <= OFF2.

    MESH_OFF2 = REAL
#   MESH_OFF3 - {default=1.10} radius-edge ratio target
#   for insertion of "shape"-type offcentres for 3-tria
#   elements. When refining an element II, offcentres
#   are positioned to form a new "frontal" element JJ 
#   that satisfies JRAD <= OFF3.

    MESH_OFF3 = REAL
#   MESH_SNK2 - {default=0.25} inflation tolerance for
#   insertion of "sink" offcentres for 2-tria elements.
#   When refining an element II, a "sink" is positioned
#   at the centre of the largest adj. circumball staisf-
#   ying |JBAL-IBAL| < SNK2 * IRAD, where IRAD is the 
#   radius of the circumball, and [IBAL,JBAL] are the 
#   circumball centres.

    MESH_SNK2 = REAL
#   MESH_SNK3 - {default=0.33} inflation tolerance for
#   insertion of "sink" offcentres for 3-tria elements.
#   When refining an element II, a "sink" is positioned
#   at the centre of the largest adj. circumball staisf-
#   ying |JBAL-IBAL| < SNK3 * IRAD, where IRAD is the 
#   radius of the circumball, and [IBAL,JBAL] are the 
#   circumball centres.

    MESH_SNK3 = REAL
#   MESH_EPS1 - {default=0.33} max. surface-discretisat-
#   ion error multiplier for 1-edge elements. 1-edge 
#   elements are refined until their surface-disc. error 
#   is less-than EPS1 * HFUN(X).

    MESH_EPS1 = REAL
#   MESH_EPS2 - {default=0.33} max. surface-discretisat-
#   ion error multiplier for 2-tria elements. 2-tria 
#   elements are refined until their surface-disc. error 
#   is less-than EPS2 * HFUN(X).

    MESH_EPS2 = REAL
#   MESH_VOL3 - {default=0.00} min. volume-length ratio 
#   for 3-tria elements. 3-tria elements are refined 
#   until the volume-length ratio exceeds VOL3. Can be 
#   used to supress "sliver" elements.

    MESH_VOL3 = REAL

OPTIONAL fields (OPTM):

Optional settings associated with the optimisation scheme are available. Any settings omitted revert to their default values.

#   OPTM_KERN - {default = 'odt+dqdx'} mesh optimisation
#   kernel, choice of an Optimal Delaunay Tessellation
#   strategy (KERN='odt+dqdx') or a Centroidal Voronoi
#   Tessellation method (KERN='cvt+dqdx'). In both cases
#   a hybrid formulation is employed, using a "blend" of
#   ODT/CVT updates, and gradients of a "fall-back" mesh
#   quality function Q.

    OPTM_KERN = CHAR
#   OPTM_COST - {default='area-len'} mesh optimisation
#   cost metric, choice of area-length (COST='area-len') 
#   or skewed-cosine (COST='skew-cos') functions.
#   The area-length metric is symmetric wrt. both small 
#   and large cell angles, and is typically appropriate
#   for simplex-only meshes. The skewed-cosine metric is 
#   based on an asymmetric penalisation of large cell
#   angles, and may be useful for staggered primal-dual 
#   tessellations.

    OPTM_COST = CHAR
#   OPTM_BETA - {default=0.4950} "momentum"-type weight
#   for gradient descent updates, such that
#   DX' = BETA * DX(K-1) + (1-BETA) * DX(K).
#   Momentum typically improves the convergence of mesh
#   optimisation.

    OPTM_BETA = REAL
#   OPTM_ZETA - {default=0.8250} "momentum"-type weight
#   for search direction updates, such that
#   DX* = ZETA * DX' (K) + (1-ZETA) * DX(K).
#   Momentum typically improves the convergence of mesh
#   optimisation.
  
    OPTM_ZETA = REAL
#   OPTM_ITER - {default=16} max. number of mesh optim-
#   isation iterations. Set ITER=N to see progress after 
#   N iterations. 

    OPTM_ITER = UINT
#   OPTM_QTOL - {default=1.E-04} tolerance on mesh cost
#   function for convergence. Iteration on a given node
#   is terminated if adjacent element cost-functions are
#   improved by less than QTOL.

    OPTM_QTOL = REAL
#   OPTM_QLIM - {default=0.9250} threshold on mesh cost
#   function above which gradient-based optimisation is
#   attempted.

    OPTM_QLIM = REAL
#   OPTM_ZIP_ - {default= true} allow for "merge" oper-
#   ations on sub-faces.

    OPTM_ZIP_ = BOOL
#   OPTM_DIV_ - {default= true} allow for "split" oper-
#   ations on sub-faces.

    OPTM_DIV_ = BOOL
#   OPTM_TRIA - {default= true} allow for optimisation
#   of TRIA grid geometry.

    OPTM_TRIA = BOOL
#   OPTM_DUAL - {default=false} allow for optimisation
#   of DUAL grid geometry.

    OPTM_DUAL = BOOL

OPTIONAL fields (MISC):

Optional miscellaneous settings are also available. Any settings omitted revert to their default values.

#   VERBOSITY - {default=0} verbosity of log-file gene-
#   rated by JIGSAW. Set VERBOSITY >= 1 for more output.

    VERBOSITY = UINT
#   NUMTHREAD - {default=0} control for thread-parallel
#   implementations. Set NUMTHREAD <= 0 to autodetect a
#   machine's max-thread allocation.

    NUMTHREAD = UINT