|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Functions | |
| maxfacevel (s) | |
| gate_static () | |
| gate_wave () | |
| gate_hysing1 (nx=64) | |
Variables | |
| str | QUICK = "--quick" in sys.argv |
| list | GATES = [a for a in sys.argv[1:] if not a.startswith("--")] |
| tuple | GRIDS = (("staggered ", pf.Solver), ("collocated", pf.SolverColocated)) |
| dict | ALL |
| list | run = GATES or list(ALL) |
VoF rung V8 (WO-T) — the staggered/collocated physics battery, both columns.
The collocated (`SolverColocated`) path is the **ABC approximate projection**: average the cell
velocities onto a MAC face field, project THAT exactly, correct the cell field. Rung V8 adds
* variable density — the face coefficient ``c_f = o_f rho0/rho_f`` and ``projectCorrectVar`` on the
FACE field, with the CELL correction the AVERAGE OF THE TWO FACE CORRECTIONS of each axis;
* forces as FACE accelerations ``a_f = dt (f_f - (P(i)-P(i-s)))/rho_f`` added after
``centerToFace``, the cell taking the average of the two faces' total increment (Basilisk
``centered.h``; Popinet JCP 2009 §3);
* colour advection from ``uf_/vf_/wf_``, the field the approximate projection makes exactly
divergence-free.
What this script measures, staggered vs collocated:
G3 static droplet with the COMPUTED curvature — the spurious capillary number
``Ca = mu max|u| / sigma`` at D/dx = 16 (and 8, 24).
G4 Hysing case 1 (density ratio 10) — max rise velocity and y_c(3). The collocated column runs
WITHOUT momentum consistency (`enable_vof_momentum` is staggered-only at this rung — the
collocated construction needs Favre face states), so the honest staggered comparison is the
one with it OFF; both staggered columns are printed.
G5 capillary wave at 32 cells/lambda — the frequency against the exact viscous two-fluid mode.
Every gate records the pressure iteration count against its cap (preamble rule 3b: a capped solve
makes the run INVALID) and, on the collocated grid, BOTH the cell max|u| and the FACE max|uf|: the
cell field carries the approximate projection's invisible checkerboard, which `centerToFace`
annihilates and the projection therefore cannot remove.
Usage: PYTHONPATH=<build> python tests/study/vof_collocated.py [static|hysing1|wave] [--quick]
| vof_collocated.maxfacevel | ( | s | ) |
Definition at line 52 of file vof_collocated.py.
Referenced by gate_static().
| vof_collocated.gate_static | ( | ) |
Definition at line 57 of file vof_collocated.py.
References maxfacevel().
| vof_collocated.gate_wave | ( | ) |
Definition at line 93 of file vof_collocated.py.
| vof_collocated.gate_hysing1 | ( | nx = 64 | ) |
Definition at line 150 of file vof_collocated.py.
| str vof_collocated.QUICK = "--quick" in sys.argv |
Definition at line 46 of file vof_collocated.py.
| list vof_collocated.GATES = [a for a in sys.argv[1:] if not a.startswith("--")] |
Definition at line 47 of file vof_collocated.py.
| tuple vof_collocated.GRIDS = (("staggered ", pf.Solver), ("collocated", pf.SolverColocated)) |
Definition at line 49 of file vof_collocated.py.
| dict vof_collocated.ALL |
Definition at line 221 of file vof_collocated.py.
Definition at line 225 of file vof_collocated.py.