You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/documentation/case.md
+28-7Lines changed: 28 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -320,7 +320,8 @@ This is enabled by adding ``'elliptic_smoothing': "T",`` and ``'elliptic_smoothi
320
320
|`num_ibs`| Integer | Number of immersed boundary patches |
321
321
|`num_stl_models`| Integer | Number of STL/OBJ model entries in the `stl_models` array |
322
322
|`num_particle_clouds`| Integer | Number of particle bed specifications to generate immersed boundary patches from |
323
-
|`ib_neighborhood_radius`| Integer | Parameter that controls the neighborhood size for IB detection. |
323
+
|`ib_neighborhood_radius`| Integer | Parameter that controls the neighborhood size for IB detection. |
324
+
|`many_ib_patch_parallelism`| Logical | Parallelize over IB patches instead of grid cells (better for many small patches). |
324
325
|`geometry`| Integer | Geometry configuration of the patch.|
325
326
|`x[y,z]_centroid`| Real | Centroid of the applied geometry in the [x,y,z]-direction. |
326
327
|`length_x[y,z]`| Real | Length, if applicable, in the [x,y,z]-direction. |
@@ -368,7 +369,7 @@ Additional details on this specification can be found in [NACA airfoil](https://
368
369
369
370
- For STL/OBJ geometry (geometry 5 or 12), set `model_id` to index into the `stl_models` array and specify `model_filepath`, `model_scale`, `model_translate`, and `model_threshold` on that entry.
370
371
371
-
-`moving_ibm` sets the method by which movement will be applied to the immersed boundary. Using 0 will result in no movement. Using 1 will result 1-way coupling where the boundary moves at a constant rate and applied forces to the fluid based upon it's own motion. In 1-way coupling, the fluid does not apply forces back onto the IB. Using 2 will result in 2-way coupling, where the boundary pushes on the fluid and the fluid pushes back on the boundary via pressure and viscous forces. If external forces are applied, the boundary will also experience those forces.
372
+
-`moving_ibm` sets the method by which movement will be applied to the immersed boundary. Using 0 will result in no movement. Using 1 will result 1-way coupling where the boundary moves at a constant rate and applied forces to the fluid based upon its own motion. In 1-way coupling, the fluid does not apply forces back onto the IB. Using 2 will result in 2-way coupling, where the boundary pushes on the fluid and the fluid pushes back on the boundary via pressure and viscous forces. If external forces are applied, the boundary will also experience those forces.
372
373
373
374
-`vel(i)` is the initial linear velocity of the IB in the x, y, z direction for i=1, 2, 3. When `moving_ibm` equals 2, this velocity is just the starting speed of the object, which will then accelerate due to external forces. If `moving_ibm` equals 1, then this is constant if it is a number, or can be described analytically with an expression.
374
375
@@ -378,15 +379,35 @@ Additional details on this specification can be found in [NACA airfoil](https://
378
379
Available variables: `x` (`x_cc(i)`), `y` (`y_cc(j)`), `z` (`z_cc(k)`), `t` (current simulation time), and `r` (the IB patch radius).
379
380
The same intrinsic functions and `pi` constant apply; bare `e` is not available.
380
381
381
-
-`coefficient_of_restitution` is a number from 0 (exclusive) to 1 (inclusive) describing how elastic IB collisions are. 0 is for perfectly inellastic collisions while 1 is for perfectly ellastic collisions.
382
+
-`coefficient_of_restitution` is a number from 0 (exclusive) to 1 (inclusive) describing how elastic IB collisions are. 0 is for perfectly inelastic collisions while 1 is for perfectly elastic collisions.
382
383
383
-
-`collision_model` is an integer to select the collision model being used for IB collisions. Using 0 disables collisions and collisiono checking. 1 enables the soft-sphere collision model, where all IBs must be circles or sphere and those IBs can collide with each other as well as walls.
384
+
-`collision_model` is an integer to select the collision model being used for IB collisions. Using 0 disables collisions and collision checking. 1 enables the soft-sphere collision model, where all IBs must be circles or sphere and those IBs can collide with each other as well as walls.
384
385
385
-
-`collision_time` is approximately the amount of simulation time used to resolve collisions. This is handled by modifying the spring gonstant used to apply collision forces.
386
+
-`collision_time` is approximately the amount of simulation time used to resolve collisions. This is handled by modifying the spring constant used to apply collision forces.
386
387
387
388
-`ib_coefficient_of_friction` is the coefficient of friction used in IB collisions.
388
389
389
-
-`ib_neighborhood_radius` controls the size of the neighborhood size. This value defaults to 1, which indicates that any given rank is aware of IB's up to 1 ranks away. This parameter is required to strong-scale a case when IB's eventually grow to be larger than one full processor domain wide.
390
+
-`ib_neighborhood_radius` controls the size of the neighborhood size. This value defaults to 1, which indicates that any given rank is aware of IBs up to 1 ranks away. This parameter is required to strong-scale a case when IBs eventually grow to be larger than one full processor domain wide.
391
+
392
+
#### Particle Clouds
393
+
394
+
A particle cloud is a compact specification of a bed of identical circular (2D) or spherical (3D) immersed boundaries; each cloud is expanded into individual `patch_ib` particles at startup. Set `num_particle_clouds` to the number of beds and prepend the parameters below with `particle_cloud(j)%` where $j$ is the cloud index.
395
+
396
+
| Parameter | Type | Description |
397
+
| ---: | :----: | :--- |
398
+
|`x[y,z]_centroid`| Real | Centre of the cloud region in the [x,y,z]-direction. |
399
+
|`length_x[y,z]`| Real | Extent of the cloud region in the [x,y,z]-direction. |
400
+
|`num_particles`| Integer | Number of particles to place in the region. |
401
+
|`radius`| Real | Radius of every particle in the cloud. |
402
+
|`mass`| Real | Mass of every particle in the cloud. |
403
+
|`min_spacing`| Real | Minimum surface-to-surface gap between particles (centres are `2*radius + min_spacing` apart). |
404
+
|`moving_ibm`| Integer | Motion flag applied to every particle (see `patch_ib(j)%%moving_ibm`). |
405
+
|`seed`| Integer | Random seed for reproducible placement (used by `packing_method = 1`). |
406
+
|`packing_method`| Integer | Algorithm used to place the particles. |
407
+
408
+
-`packing_method` selects how the `num_particles` are positioned within the cloud region:
409
+
-`1` (rejection sampling) draws random positions and rejects any that violate `min_spacing`, producing a disordered bed. `seed` makes the placement reproducible.
410
+
-`2` (lattice) places the particles on the optimally dense lattice for the geometry — a triangular lattice in 2D and a face-centered cubic lattice in 3D. The lattice spacing is derived from the particle density (`num_particles` over the region area/volume); if that spacing is below the required `2*radius + min_spacing`, the region is too dense and the run aborts.
390
411
391
412
### 5. Fluid Material's {#sec-fluid-materials}
392
413
@@ -1248,7 +1269,7 @@ Boundary is at polar angle \f$\theta = \mathrm{atan2}(y - y_{\mathrm{centroid}},
1248
1269
| 3 | 2D Rectangle | 2 |
1249
1270
| 4 | 2D Airfoil | 2 |
1250
1271
| 8 | 3D Sphere | 3 |
1251
-
| 10 | 3D Cylinder | 3 |
1272
+
| 10 | 3D Cylinder | 3 |`length_x` sets the axial length of the cylinder. |
{name: "Microbubble-enhanced HIFU in a liver",image: "res/simulations/y.png",computer: "Delta",computerUrl: "https://www.ncsa.illinois.edu/research/project-highlights/delta/",accelerators: "128 CPU cores",walltime: "26m",source: "https://www.youtube.com/watch?v=TbR0MEdG8OU"},
0 commit comments