-
Notifications
You must be signed in to change notification settings - Fork 35
/
example.jig
420 lines (291 loc) · 11.1 KB
/
example.jig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
#
# EXAMPLE.JIG: an example config. file for JIGSAW
#
# To run this example navigate to the directory containing
# this file and run the following from the cmd line:
#
# On WIN platforms:
#
# bin\jigsaw.exe example.jig
#
# On LNX platforms:
#
# bin/jigsaw example.jig
#
# This command calls JIGSAW using the config. data contai-
# ned in "example.jig", which, in unmodified form, creates
# a tetrahedral mesh of the "stanford-bunny" geometry.
#
# The subsequent sections detail the various configuration
# options available for JIGSAW. Simply uncomment any given
# option and re-run JIGSAW to explore its effect.
#
#
# REQUIRED fields:
# ---------------
#
# ---> GEOM_FILE - 'GEOMNAME.MSH', a string containing the
# name of the geometry file (is required at input).
#
GEOM_FILE = geo/bunny.msh
# ---> MESH_FILE - 'MESHNAME.MSH', a string containing the
# name of the output file (will be created on output).
#
MESH_FILE = out/bunny.msh
#
# OPTIONAL fields (INIT):
# ----------------------
#
# ---> INIT_FILE - 'INITNAME.MSH', a string containing the
# name of the initial distribution file (is required
# at input).
#
# INIT_FILE = *.msh
# ---> 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 = 1.E-6
#
# OPTIONAL fields (GEOM):
# ----------------------
#
# ---> GEOM_SEED - {default=8} number of "seed" vertices
# used to initialise mesh generation.
#
# GEOM_SEED = 16
# ---> 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 any non-man-
# ifold connections.
#
# GEOM_FEAT = TRUE
# ---> GEOM_ETA1 - {default=45deg} 1-dim. feature-angle,
# features are located between any neighbouring
# edges that subtend angles less than ETA1 degrees.
#
# GEOM_ETA1 = 60
# ---> GEOM_ETA2 - {default=45deg} 2-dim. feature angle,
# features are located between any neighbouring
# faces that subtend angles less than ETA2 degrees.
#
# GEOM_ETA2 = 60
#
# OPTIONAL fields (HFUN):
# ----------------------
#
# ---> 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 on a structured
# grid.
#
# HFUN_FILE = *.msh
# ---> 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 = ABSOLUTE
# ---> HFUN_HMAX - {default=0.02} max. mesh-size function
# value. Interpreted based on SCAL setting.
#
HFUN_HMAX = 0.05
# ---> HFUN_HMIN - {default=0.00} min. mesh-size function
# value. Interpreted based on SCAL setting.
#
# HFUN_HMIN = 0.01
#
# OPTIONAL fields (MESH):
# ----------------------
#
# ---> MESH_DIMS - {default=3} number of "topological" di-
# mensions to mesh. DIMS=K meshes K-dimensional featu-
# res, irrespective of the number of spatial dim.'s of
# the problem (i.e. if the geometry is 3-dimensional
# and DIMS=2 a surface mesh will be produced).
#
# MESH_DIMS = 2
# ---> MESH_KERN - {default='delfront'} meshing kernel,
# choice of the standard Delaunay-refinement algorithm
# (KERN='delaunay') or the Frontal-Delaunay method
# (KERN='delfront').
#
# MESH_KERN = DELAUNAY
# ---> MESH_ITER - {default=+INF} max. number of mesh ref-
# inement iterations. Set ITER=N to see progress after
# N iterations.
#
# MESH_ITER = 10000
# ---> 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 = TRUE
# ---> 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 = TRUE
# ---> MESH_RAD2 - {default=1.05} max. radius-edge ratio
# for 2-tria elements. 2-trias are refined until the
# ratio of the element circumradii to min. edge length
# is less-than RAD2.
#
# MESH_RAD2 = 1.50
# ---> MESH_RAD3 - {default=2.05} max. radius-edge ratio
# for 3-tria elements. 3-trias are refined until the
# ratio of the element circumradii to min. edge length
# is less-than RAD3.
#
# MESH_RAD3 = 2.50
# ---> 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 = 0.95
# ---> 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 = 1.25
# ---> MESH_SNK2 - {default=0.25} inflation tolerance for
# insertion of "sink" offcentres for 2-tria elements.
# When refining an element II, "sinks" are 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 = 0.10
# ---> MESH_SNK3 - {default=0.33} inflation tolerance for
# insertion of "sink" offcentres for 3-tria elements.
# When refining an element II, "sinks" are 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 = 0.20
# ---> MESH_EPS1 - {default=0.33} max. surface-discretisa-
# tion error multiplier for 1-edge elements. 1-edge
# elements are refined until the surface-disc. error
# is less-than EPS1 * HFUN(X).
#
# MESH_EPS1 = 0.25
# ---> MESH_EPS2 - {default=0.33} max. surface-discretisa-
# tion error multiplier for 2-tria elements. 2-tria
# elements are refined until the surface-disc. error
# is less-than EPS2 * HFUN(X).
#
# MESH_EPS2 = 0.25
# ---> 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 suppress "sliver" elements.
#
# MESH_VOL3 = 0.10
#
# OPTIONAL fields (OPTM):
# ----------------------
#
# ---> 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 the ODT/CVT updates, and gradients of a
# "fall-back" mesh quality function Q.
#
# OPTM_KERN = CVT+DQDX
# ---> 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 = SKEW-COS
# ---> 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 = 0.3750
# ---> 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 = 0.7500
# ---> OPTM_ITER - {default=16} max. number of mesh optim-
# isation iterations. Set ITER=N to see progress after
# N iterations.
#
# OPTM_ITER = 32
# ---> 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 = 1.0E-05
# ---> OPTM_QLIM - {default=0.9250} threshold on mesh cost
# function above which gradient-based optimisation is
# attempted.
#
# OPTM_QLIM = 0.90
# ---> OPTM_ZIP_ - {default= true} allow for "merge" oper-
# ations on sub-faces.
#
# OPTM_ZIP_ = FALSE
# ---> OPTM_DIV_ - {default= true} allow for "split" oper-
# ations on sub-faces.
#
# OPTM_DIV_ = FALSE
# ---> OPTM_TRIA - {default= true} allow for optimisation
# of TRIA grid geometry.
#
# OPTM_TRIA = FALSE
# ---> OPTM_DUAL - {default=false} allow for optimisation
# of DUAL grid geometry.
#
# OPTM_DUAL = TRUE
#
# OPTIONAL fields (MISC):
# ----------------------
#
# ---> VERBOSITY - {default=0} verbosity of log-file gene-
# rated by JIGSAW. Set VERBOSITY >= 1 for more output.
#
# VERBOSITY = 1
# ---> NUMTHREAD - {default=0} control for thread-parallel
# implementations. Set NUMTHREAD <= 0 to autodetect a
# machine's max-thread allocation.
#
# NUMTHREAD = 4