|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
Functions | |
| closure_reference (U0, A, D, N=96) | |
| vel (x, y, U0, A) | |
| simulate (U0, A, D, Np, dt, T, nper_fpt=(1, 4, 16), seed=0, nsave=400) | |
| est_msd (ts, X, t1, t2, nb=20) | |
| est_gk (ts, U, D, Umean, tmax, nb=20) | |
| est_fpt (tau, L, nb=20) | |
Variables | |
| int | TWO_PI = 2 * np.pi |
| U0 | |
| A | |
| int | D = float(sys.argv[2]) if len(sys.argv) > 2 else 0.1 |
| int | Np = int(sys.argv[3]) if len(sys.argv) > 3 else 20000 |
| int | T = float(sys.argv[4]) if len(sys.argv) > 4 else 600.0 |
| float | dt = 0.01 |
| Um | |
| int | tD = TWO_PI**2 / D |
| t0 = time.time() | |
| ts | |
| X | |
| U | |
| fpt | |
| v = X.var(axis=1) | |
| i = min(len(ts) - 1, int(frac * (len(ts) - 1))) | |
| j = max(1, i // 2) | |
| m | |
| e | |
| g | |
| f | |
| miss | |
2-D prototype: dispersion estimators from Brownian tracer trajectories, against an exact
Eulerian reference (Brenner closure solved spectrally).
Flow: periodic cellular flow with mean through-flow on [0, 2pi)^2,
psi = U0*y + A*sin(x)*sin(y) -> u = U0 + A sin x cos y, v = -A cos x sin y
A > U0 gives closed recirculation cells (an analogue of hold-up regions in a bed).
Reference: B periodic, mean zero, u.grad B - D lap B = <u> - u (one per direction)
D*_aa = D <|e_a + grad B_a|^2> (no walls -> <grad B> = 0)
Estimators compared on the same trajectories:
MSD : late-time slope 1/2 dVar(x)/dt over [t1, t2], error by batch means over particles
GK : D + int_0^T <u'(0) u'(tau)> dtau (velocity autocorrelation only) -- misses the
velocity-noise cross-covariance when u_x depends on x
FPT : first passage over n periods: D = L^2 Var(tau) / (2 <tau>^3) (inverse Gaussian)
| tracers.closure_reference | ( | U0, | |
| A, | |||
| D, | |||
N = 96 |
|||
| ) |
Definition at line 24 of file tracers.py.
| tracers.vel | ( | x, | |
| y, | |||
| U0, | |||
| A | |||
| ) |
Definition at line 62 of file tracers.py.
Referenced by simulate().
| tracers.simulate | ( | U0, | |
| A, | |||
| D, | |||
| Np, | |||
| dt, | |||
| T, | |||
nper_fpt = (1, 4, 16), |
|||
seed = 0, |
|||
nsave = 400 |
|||
| ) |
Definition at line 66 of file tracers.py.
References vel().
| tracers.est_msd | ( | ts, | |
| X, | |||
| t1, | |||
| t2, | |||
nb = 20 |
|||
| ) |
Definition at line 91 of file tracers.py.
| tracers.est_gk | ( | ts, | |
| U, | |||
| D, | |||
| Umean, | |||
| tmax, | |||
nb = 20 |
|||
| ) |
Definition at line 103 of file tracers.py.
| tracers.est_fpt | ( | tau, | |
| L, | |||
nb = 20 |
|||
| ) |
Definition at line 116 of file tracers.py.
References mean().
| int tracers.TWO_PI = 2 * np.pi |
Definition at line 21 of file tracers.py.
| tracers.U0 |
Definition at line 127 of file tracers.py.
| tracers.A |
Definition at line 127 of file tracers.py.
| int tracers.D = float(sys.argv[2]) if len(sys.argv) > 2 else 0.1 |
Definition at line 128 of file tracers.py.
| int tracers.Np = int(sys.argv[3]) if len(sys.argv) > 3 else 20000 |
Definition at line 129 of file tracers.py.
| int tracers.T = float(sys.argv[4]) if len(sys.argv) > 4 else 600.0 |
Definition at line 130 of file tracers.py.
| float tracers.dt = 0.01 |
Definition at line 131 of file tracers.py.
| tracers.Um |
Definition at line 132 of file tracers.py.
Definition at line 133 of file tracers.py.
| tracers.t0 = time.time() |
Definition at line 136 of file tracers.py.
| tracers.ts |
Definition at line 137 of file tracers.py.
| tracers.X |
Definition at line 137 of file tracers.py.
| tracers.U |
Definition at line 137 of file tracers.py.
| tracers.fpt |
Definition at line 137 of file tracers.py.
| tracers.v = X.var(axis=1) |
Definition at line 140 of file tracers.py.
Definition at line 142 of file tracers.py.
| tracers.j = max(1, i // 2) |
Definition at line 143 of file tracers.py.
| tracers.m |
Definition at line 147 of file tracers.py.
| tracers.e |
Definition at line 147 of file tracers.py.
| tracers.g |
Definition at line 150 of file tracers.py.
| tracers.f |
Definition at line 153 of file tracers.py.
| tracers.miss |
Definition at line 153 of file tracers.py.