forked from cselab/aphros
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sim_base.conf
505 lines (444 loc) · 14.5 KB
/
sim_base.conf
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
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
# General config
# Communication backend.
# local: shared-memory
# cubismnc: distrubuted with MPI using Cubism, 3D only
# native: distrubited with MPI using native implementation, 2D and 3D
set string backend cubismnc
set int openmp 0
set int mpi_compress_msg 0
set int CHECKNAN 0
set int fill_halo_nan 0
set double fill_halo_nan_value 1e100
# Ranks in each direction.
# The total number of cells is the product `px * bx * bsx` etc.
set int px 2
set int py 2
set int pz 1
# Blocks per rank in each direction.
set int bx 1
set int by 1
set int bz 2
# Cells per block in each direction.
set int bsx 16
set int bsy 16
set int bsz 16
# Domain.
set double extent 1. # Maximum domain length over all directions.
set int spacedim 3 # Solver dimensionality (size of vectors).
set int dim 3 # Effective dimensionality (no computations in unused directions).
set int hypre_periodic_x 0 # 1 if domain is periodic in x
set int hypre_periodic_y 0 # 1 if domain is periodic in y
set int hypre_periodic_z 0 # 1 if domain is periodic in z
# Time step.
set double tmax 1e10
set double dt0 1e-6
set double dtmax 1e10
set double cfl 0.8
set double cfla 0.8
set double cflst 2
set int max_step 1000000
# Solvers.
set int enable_advection 1
set int enable_bc 0
set int enable_electro 0
set int enable_embed 0
set int enable_erasevf 0
set int enable_fluid 1
set int enable_surftens 1
set int enable_tracer 0
set int enable_stepwise_body 0
# Box to erase volume fraction from.
set vect erasevf_rect_x0 0 0 0
set vect erasevf_rect_x1 1 1 1
set double erasevf_t0 0
set double erasevf_per 1
# Tracers.
set int tracer_layers 2
set double cfl_tracer_advection 0.25
set double cfl_tracer_diffusion 0.125
set string tracer_scheme superbee
set int tracer_override_mixture 0
set int tracer_use_termvel 0
set vect tracer_spawn_sphere_c 0 0 0
set double tracer_spawn_sphere_r 0
set vect tracer_density 1 1
set vect tracer_viscosity 0 0
set vect tracer_termvel 0 0
set vect tracer_diameter 0 0
set int tracer_override_mixture 0
set double tracer_interface_diffusion_factor 0
set string tracer0_list_path inline
set string tracer1_list_path inline
set string tracer0_init zero
set string tracer1_init zero
set string tracer0_slip none
set string tracer1_slip none
set double tracer0_factor 1
set double tracer1_factor 1
# Electro.
set int enable_electro_control 0 # Controller of potential for given current.
set double resist1 1
set double resist2 1000
set double flux_from_current 0
set double electro_control_current 0 # Controller target current.
set double electro_control_rate 0 # Controller rate, [potential/current].
set double electro_control_initial_potential 0
# Nucleation through cells.
set int enable_nucleation 0
set double nucleation_cmax0 0.4 # critical concentration of tracer 0
set double nucleation_rate0 1 # nucleation rate from tracer 0
set double nucleation_cmax1 0.4 # critical concentration of tracer 1
set double nucleation_rate1 1 # nucleation rate from tracer 1
# Nucleation through points.
set int enable_nucleation_points 0
set double nucleation_number_density 0
# Bubble growth from tracers.
set double growth_rate_tracer0 0
set double growth_rate_tracer1 0
# Particles.
set int enable_particles 0
set int dump_particles 1
set vect particles_spawn_sphere_c 0 0 0
set double particles_spawn_sphere_r 0
set vect particles_spawn_rate 10 # particles per unit time
set vect particles_termvel 0
set string particles_mode tracer
set vect particles_spawn_velocity 0 0 0
set vect particles_radius 0
set double particles_density 1
set string particles_init_csv # path to csv file
set string particles_dumplist id x y z vx vy vz r
set int particles_dumpvtk 0 # Dump in VTK format (1) or CSV format (0).
set int particles_to_vof 0
set double particles_to_vof_radius 2
set int particles_coal 0
set double particles_growth_diffusion_factor 0
set double particles_growth_rate 8
# Embedded boundaries.
set string eb_init list
set string eb_list_path body.dat
set string eb_model_path model.ply
set vect eb_model_center 0.5 0.5 0.5
set vect eb_model_rotation 0 0 0
set double eb_model_extent 1
set int eb_init_inverse 1
set double embed_gradlim 0.5
set string bc_path bc.dat
set int embed_smoothen_iters 0
# Use stepwise approximation for complex boundaries.
set int dump_stepwise_body 0
set string body_list_path body.dat
#set string body_init list
set string body_init zero
set int body_init_inverse 0
set double stepwise_threshold 0.5 # Minimum volume fraction for inner cell.
# Convergence parameters.
set double tol 1e-3
set int max_iter 1
set int min_iter 1
set double abortvel 1e10 # abort if exceeded by velocity magnitude
set double stop_diff -1
# Numerical parameters.
# Fluid solver: Bell-Colella-Glaz (proj), SIMPLE (simple).
set string fluid_solver proj
# Bell-Colella-Glaz scheme in projection if true, else upwind scheme
set int proj_bcg 1
set int proj_redistr_adv 0
set int proj_diffusion_iters 1
set int proj_diffusion_consistent_guess 1
set double prelax 0.9
set double vrelax 0.8
set double rhie 1.
set int second_order 1
set int vfsmooth 0
set int vfsmooth_extrapolate_cut 0
set int vfsmoothnode 0
set int inletflux_numid 1
set double inletpressure_factor 0
set double stdiag 1.
set string conv imp
set string convsc quick
set double convdf 1.
set double kslip 0
set double penalslip 0
set double slipnormal 0
#set double slipnormal 10
set double slipnormal_dist 1
set vect slipvel 1 0 0
set int stokes 0
set int convsymm 0
set int explconv 0
set int explviscous 1 # enable explicit part of viscous terms
set double outlet_relax 1
# Advection solver.
# vof: standard VOF, vofm: Multi-VOF for coalescence prevention
set string advection_solver vof
set string vof_scheme weymouth
set int vof_verb 0
set double clipth 1e-10 # set volume fractions within this threshold to 0 or 1
set double filterth 0 # remove orphan fragments without neighbors above threshold
set int sharpen 0 # use forward-backward PLIC sharpening
set double sharpen_cfl 0.1
# Algorithm for connected component labeling (propagation, unionfind).
# propagation: iterative label propagation on blocks and between blocks
# unionfind: union-find on blocks, iterative between blocks
set string labeling unionfind
set int vof_recolor_unionfind 1
set int vof_recolor_verbose 0
set int vof_recolor_reduce 1
set int vof_recolor_grid 1
set double clfixed -1
set vect clfixed_x 1e10 1e10 1e10
# Coalescence is triggered the sum of volume fractions exceeds this value:
set double vofm_coalth 1e10
# Curvature estimation using particles.
set string curvature particles
set double part_h 4
set double part_relax 0.5
set int part_np 7
set double part_segcirc 0 # factor for circular segment
set int part_dn 0 # normal displacement
set int part_ns 3
set double part_tol 1e-5
set int part_itermax 20
set int part_verb 0
# Parameters of Multi-VOF.
set double avgnorm0 1
set double avgnorm1 1
set int vofm_layers 4
set int vof_extrapolate_boundaries 0
# Physical parameters.
set double rho1 1
set double rho2 1
set double mu1 0.01
set double mu2 0.01
set vect force 0 0 0
set vect gravity 0 0 0
# Surface tension.
set string surftens kn
set double zerostx0 1e10 # decay of surface tension withing range [x0,x1]
set double zerostx1 1e10
# initial surface tension sigma field
set string init_sig uniform
set double sigma 0
set double sig_k 1.25
set int marangoni 0
set int youngbc 0
set int bcc_reflectpoly 1 # reflect at boundaries for DumpPolyMarch
set double bcc_fill 0
set double bcc_clear0 0 # range for clipping vf near walls
set double bcc_clear1 1 # value set to 0 or 1 if outside the range
set double inletcl 1 # inlet color
# Point with fixed pressure.
#set double pfixed 0
#set vect pfixed_x 0. 0. 0.
# Initial velocity.
set string vel_init zero
set string vellist_path vel.dat
# Initial contact angle.
set string init_contang uniform
set double contang -1
# Initial volume fraction.
set string init_vf zero
set int vf_init_sm 0
set string list_path b.dat
set string init_vf_hdf_path vf.h5
set int init_vf_load_state 0
set string init_vf_state_dir state
set int list_ls 1
# Lamb wave.
set int wavelamb_vort 0
#set string init_vf wavelamb
#set double wavelamb_a0 0.1
#set double wavelamb_xc 0.5
#set double wavelamb_h 0.5
#set double wavelamb_k 6.28
#set double wavelamb_delta 0.01
#set double wavelamb_omk 1
#set int wavelamb_vort 1
#set string vel_init wavelamb_vort
#set int initvort 1
# Noise added to initial velocity.
set int vel_init_noise 0
# Disturbance vector.
set vect noise_vel0 1 0 0
set vect noise_vel1 1 0 0
set vect noise_vel2 1 0 0
# Wavelength relative to cell size.
set vect noise_per0 0 0 1
set vect noise_per1 0 0 1
set vect noise_per2 0 0 1
# Random initial force.
set int vel_init_random 0
set double random_amp 1
set vect random_vel 1 0 0
# Source from volume fraction.
set double source_mag 0. # magnitude [1/time]
#set double source_freq 1. # frequency [1/time]
#set double source_wly 1. # wavelength in y [length]
set double source_mag0 0. # magnitude, constant component [1/time]
set double source_mexp 0 # exponent for factor (m2/m20)^mexp
set double source_mexp0 0 # exponent for factor (m2/m20)^mexp0
# Force from volume fraction.
set double force_mag 0. # magnitude [1/time]
#set double force_freq 1. # frequency [1/time]
#set double force_wly 1. # wavelength in y [length]
# Vortex force.
set double force_vort_g 0
set double force_vort_r 0
set vect force_vort_c 0
# Moving force.
set vect force_mov 0 0 0
set vect force_mov2 0 0 0
# Kolmogorov forcing.
set int force_kolm 0
set int force_kolm_accel 0
# Vortex ring.
set int initvort 0 # Interpret initial velocity as vorticity.
#set string vel_init vortexring
set vect ring_c 0.5 0.5 0.5
set vect ring_n 1. 0. 0.
set double ring_om 0.01
set double ring_r0 0.2
set double ring_r1 0.4
set int vort_report 1
set int linreport 0
set int check_symmetry 0
set double check_symmetry_dump_threshold 1e10
# Bubble generation.
set int enable_bubgen 0
set string bubgen_path bg.dat
set double bubgen_t0 0
set double bubgen_dt 1
set int bubgen_max 1000000
# Communication.
set int hl 2 # Number of halo cells.
# Parameters of local backend.
set int loc_maxcomm 16
set int loc_periodic_x 1
set int loc_periodic_y 1
set int loc_periodic_z 1
# Bubble tracker.
set int enable_color 0
set double color_th 0.5
set double color_maxr 1e10
# shell averaging around bubbles
# requires enable_color=true
# shell total radius: rr * req + r
set int enable_shell 0
set double shell_h 3 # shell thickness in cells
set double shell_rr 2 # shell inner radius relative to equivalent radius
set double shell_r 0 # shell inner radius absolute
# Linear solver.
# General.
set string linsolver_gen hypre
set string hypre_gen_solver gmres
set int hypre_gen_maxiter 30
set double hypre_gen_tol 1e-3
set int linsolver_gen_maxnorm 0
# Symmetric.
set string linsolver_symm hypre
set string hypre_symm_solver pcg
#set string hypre_symm_solver pcg+smg
#set string hypre_symm_solver smg
set int hypre_symm_maxiter 100
set int hypre_symm_miniter 10
set double hypre_symm_tol 1e-3
set int linsolver_symm_maxnorm 0
# Vorticity.
set string linsolver_vort hypre
set string hypre_vort_solver smg
set int hypre_vort_maxiter 1000
set double hypre_vort_tol 1e-6
set int linsolver_vort_maxnorm 0
# Common parameters.
set int hypre_print 0
set string bc_xm wall 0 0 0
set string bc_xp wall 0 0 0
set string bc_ym wall 0 0 0
set string bc_yp wall 0 0 0
set string bc_zm wall 0 0 0
set string bc_zp wall 0 0 0
set int enable_bc 0
set string BOX_X0 "box 0 0 0 1e-10 10 10"
set string BOX_X1 "box 1 0 0 1e-10 10 10"
set string BOX_Y0 "box 0 0 0 10 1e-10 10"
set string BOX_Y1 "box 0 1 0 10 1e-10 10"
set string BOX_Z0 "box 0 0 0 10 10 1e-10"
set string BOX_Z1 "box 0 0 1 10 10 1e-10"
set string BOX_ALL "box 0 0 0 1e6 1e6 1e6"
set int bc_wall_init_vel 0
set vect overwrite_inlet_times
set vect overwrite_inlet_factors
set vect overwrite_inletpressure_times
set vect overwrite_inletpressure_pressure
set int enable_inlet_periodic 0
# Body velocity.
set vect bodyvel_times
set vect bodyvel_x
set vect bodyvel_y
set vect bodyvel_z
# Initial velocity as Poiseuille flow in rectangular duct.
set int poiswym 1
set int poiswyp 1
set int poiswzm 1
set int poiswzp 1
# Field output.
set int output 1
set string dumpformat default # Field output format (default, hdf, raw, plain).
set int dumpmerge 0 # Merge fields into one file with many attributes.
set double dump_field_t0 0 # Time of the first dump.
set double dump_field_dt 1 # Time interval between dumps.
set int dump_field_max 10000
set int dumpinit 0 # Dump initial conditions.
set int dumplast 0 # Dump final state before termination.
set string dumplist vx vy vz p vf cl # List of fields to dump.
set int dumpbc 0 # Dump boundary conditions on faces to `bc.vtk`.
# Timing report, timings of stages written to files `trep_*.log`.
set double dump_trep_t0 1e10 # Time of first timing report.
set double dump_trep_dt 1 # Interval between timing reports.
set int dump_trep_max 10000
# Debug output.
set int report_knan 0 # nan curvature
set int report_stat 0 # field statistics
set int histogram 0 # collect statistics on each rank [ap.histbin -h]
# may generate large data in the case of many ranks and
# steps
# Output with bubble trajectories.
set double dump_traj_t0 0
set double dump_traj_dt 1
set int dump_traj_max 10000
# VOF output.
set int dumppoly 1 # Write `s_*.vtk` with PLIC interface fragments.
set int dumppolymarch 1 # Write `sm_*.vtk` with interface from marching cubes.
set double dumppolymarch_fill -1 # value to fill halo cells, applied if >=0
set int cloverride 0
set int vtkbin 1 # VTK format: binary (1) or ASCII (0).
set int vtkmerge 1 # Merge close points.
set double vtkiso 0.5 # Isovalue for marching cubes.
# Output from curvature estimation using particles.
set int dumppart 0 # Write particles `partit_*.csv`.
set int dumppartinter 0 # Write interface lines to `sp_*.vtk`.
set double dump_part_t0 0.
set double dump_part_dt 1
set int dump_part_max 10000
set int part_dump_fr 1
set int part_report_fr 1
# Statistics and text output.
set int dump_stat_max 1000000
set double dump_stat_dt 0
set int report_sysinfo 1
set int verbose 0 # Write the name of current stage (will print hundreds of lines per time step), use for debugging.
set int verbose_stages 1 # Write timings of stages after finishing simulation.
set int verbose_time 1
set int verbose_openmp 0
set int verbose_conf_reads 0
set int verbose_conf_unused 1
set string conf_unused_ignore_path base.conf
set int statvel 0
set int enstrophy 0
set int stat_area 0
set int stat_dissip 0
set int stat_vofm 0
set int report_step_every 1 # Interval in steps for printing statistics.
set int stat_step_every 1 # Interval in steps for writing to `stat.dat`.