flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
vof_collocated Namespace Reference

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)
 

Detailed Description

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]

Function Documentation

◆ maxfacevel()

vof_collocated.maxfacevel (   s)

Definition at line 52 of file vof_collocated.py.

Referenced by gate_static().

◆ gate_static()

vof_collocated.gate_static ( )

Definition at line 57 of file vof_collocated.py.

References maxfacevel().

◆ gate_wave()

vof_collocated.gate_wave ( )

Definition at line 93 of file vof_collocated.py.

◆ gate_hysing1()

vof_collocated.gate_hysing1 (   nx = 64)

Definition at line 150 of file vof_collocated.py.

Variable Documentation

◆ QUICK

str vof_collocated.QUICK = "--quick" in sys.argv

Definition at line 46 of file vof_collocated.py.

◆ GATES

list vof_collocated.GATES = [a for a in sys.argv[1:] if not a.startswith("--")]

Definition at line 47 of file vof_collocated.py.

◆ GRIDS

tuple vof_collocated.GRIDS = (("staggered ", pf.Solver), ("collocated", pf.SolverColocated))

Definition at line 49 of file vof_collocated.py.

◆ ALL

dict vof_collocated.ALL
Initial value:
1= {"static": gate_static, "wave": gate_wave,
2 "hysing1": lambda: gate_hysing1(32 if QUICK else 64)}

Definition at line 221 of file vof_collocated.py.

◆ run

list vof_collocated.run = GATES or list(ALL)

Definition at line 225 of file vof_collocated.py.