|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Functions | |
| abraham_cd (re) | |
| run (duct) | |
Variables | |
| int | DH = float(sys.argv[1]) if len(sys.argv) > 1 else 8.0 |
| int | RE = float(sys.argv[2]) if len(sys.argv) > 2 else 1.5 |
| int | STEPS = int(sys.argv[3]) if len(sys.argv) > 3 else 800 |
| float | U = 0.02 |
| float | NU = U * DH / RE |
| float | DT = 3.2 if RE > 0.5 else 8.0 |
| KI_I | |
| KI_R | |
| float | OFF = 0.3 |
| float | WALL = 4.3 |
| L = int(np.ceil((100 / 15 * DH + 2 * WALL) / 8) * 8) | |
| tuple | WX = (L - 100 / 15 * DH) / 2 |
| NY = int(np.ceil(12 * DH / 8) * 8) | |
| fP | |
| FP | |
| vP | |
| _ | |
| fD | |
| FD | |
| vD | |
| u = vm[-1][1] | |
| int | re = u * DH / NU |
| cd = f / (0.5 * u ** 2 * np.pi * (DH / 2) ** 2) | |
| K = fD / fP * (vP[-1][1] / vD[-1][1]) | |
Confinement at finite Re, static twin of the ten Cate tank. Lab frame: tank at rest, fluid at rest, sphere falls at -U. Sphere frame: sphere FIXED, duct walls translate at +U, far fluid moves at +U -- plug flow, zero wall shear, exactly the quiescent lab state. No moving geometry (the duct is y-invariant, so its translation is a pure wall-velocity datum), so the finite-Re Galilean gate's clean bill applies and what is measured here is the solver's confinement physics alone. K(Re) = Cd_duct(Re) / Cd_periodic(Re) is the confinement factor. Creeping expectation for a sphere on the axis of a square duct with d/W = 0.15 (Faxen): K ~ 1.39. At Re = 1.5 with the wall at 3.3 d >> nu/U = 0.67 d the Stokeslet is screened and the experiment implies K ~ 1.05-1.15. A solver that returns ~1.39 at Re = 1.5 is not screening. Usage: PYTHONPATH=<flow build> python duct_re_gate.py [DH=8] [Re=1.5] [STEPS=800]
| duct_re_gate.abraham_cd | ( | re | ) |
Definition at line 35 of file duct_re_gate.py.
Referenced by run().
| duct_re_gate.run | ( | duct | ) |
Definition at line 39 of file duct_re_gate.py.
References abraham_cd(), and mean().
| int duct_re_gate.DH = float(sys.argv[1]) if len(sys.argv) > 1 else 8.0 |
Definition at line 21 of file duct_re_gate.py.
| int duct_re_gate.RE = float(sys.argv[2]) if len(sys.argv) > 2 else 1.5 |
Definition at line 22 of file duct_re_gate.py.
| int duct_re_gate.STEPS = int(sys.argv[3]) if len(sys.argv) > 3 else 800 |
Definition at line 23 of file duct_re_gate.py.
| float duct_re_gate.U = 0.02 |
Definition at line 24 of file duct_re_gate.py.
Definition at line 25 of file duct_re_gate.py.
| float duct_re_gate.DT = 3.2 if RE > 0.5 else 8.0 |
Definition at line 26 of file duct_re_gate.py.
| duct_re_gate.KI_I |
Definition at line 27 of file duct_re_gate.py.
| duct_re_gate.KI_R |
Definition at line 27 of file duct_re_gate.py.
| float duct_re_gate.OFF = 0.3 |
Definition at line 28 of file duct_re_gate.py.
| float duct_re_gate.WALL = 4.3 |
Definition at line 29 of file duct_re_gate.py.
Definition at line 30 of file duct_re_gate.py.
Definition at line 31 of file duct_re_gate.py.
| duct_re_gate.NY = int(np.ceil(12 * DH / 8) * 8) |
Definition at line 32 of file duct_re_gate.py.
| duct_re_gate.fP |
Definition at line 88 of file duct_re_gate.py.
| duct_re_gate.FP |
Definition at line 88 of file duct_re_gate.py.
| duct_re_gate.vP |
Definition at line 88 of file duct_re_gate.py.
|
protected |
Definition at line 88 of file duct_re_gate.py.
| duct_re_gate.fD |
Definition at line 89 of file duct_re_gate.py.
| duct_re_gate.FD |
Definition at line 89 of file duct_re_gate.py.
| duct_re_gate.vD |
Definition at line 89 of file duct_re_gate.py.
| duct_re_gate.u = vm[-1][1] |
Definition at line 91 of file duct_re_gate.py.
Definition at line 92 of file duct_re_gate.py.
Definition at line 93 of file duct_re_gate.py.