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

Functions

 run (N, R, SPP, AR, seed, moving=True)
 
 line (tag, r, ref=None)
 

Variables

 RHO
 
 MU
 
 NU
 
 DR
 
 NPER
 
 FITP
 
 NH
 
 KN_R
 
 KI_I
 
 KI_R
 
 which = os.environ.get("LEG", "dt")
 
 st = run(96, 9.6, 200, 0.25, 0, moving=False)
 

Detailed Description

FRESH-CELL GATE: does a body that physically MOVES through the grid spike the drag?

A sphere oscillating at vanishing amplitude has an exact answer (Stokes 1851) and, in this solver,
a second reference that is exact by construction: the LINEARISED run, where the boundary condition
oscillates but the geometry never moves. The difference between the two is everything the motion
itself introduces -- which in a sharp-interface IBM is the textbook source of spurious force
oscillations (Lee, Kim, Choi & Yang 2011; Seo & Mittal 2011): cells emerging from the body inherit
a solid state rather than a fluid one, and the stencil changes abruptly as the interface crosses a
face.

TWO METRICS, deliberately:
  * RMS |F^{n+1} - 2F^n + F^{n-1}| / |F1| -- the Seo & Mittal (2011) Eq. (12) second-difference
    measure, the one the literature actually uses (Martins et al. 2017 Eq. 54 adopts it verbatim).
    Comparable in FORM to published numbers; the absolute value is not, since we normalise by the
    fundamental amplitude rather than their C_PD.
  * the residual after fitting 5 harmonics of the driving frequency -- flat spectral gain, no
    explicit dt dependence of its own, and physically interpretable as "the part of the force that
    is not at the driving frequency". Kept because the 2-delta operator's own (omega*dt)^2 rolloff
    makes its temporal exponent metric-dependent rather than physical.

THREE LEGS: refine dt at fixed grid (the artefact should NOT improve -- it is spatial); refine h at
fixed physics; sweep the amplitude (hence the number of cell crossings per cycle). Each run is
repeated with set_fresh_cell_seed off and on.

Function Documentation

◆ run()

fresh_cell_gate.run (   N,
  R,
  SPP,
  AR,
  seed,
  moving = True 
)

Definition at line 32 of file fresh_cell_gate.py.

References mean().

◆ line()

fresh_cell_gate.line (   tag,
  r,
  ref = None 
)

Definition at line 66 of file fresh_cell_gate.py.

Variable Documentation

◆ RHO

fresh_cell_gate.RHO

Definition at line 28 of file fresh_cell_gate.py.

◆ MU

fresh_cell_gate.MU

Definition at line 28 of file fresh_cell_gate.py.

◆ NU

fresh_cell_gate.NU

Definition at line 28 of file fresh_cell_gate.py.

◆ DR

fresh_cell_gate.DR

Definition at line 29 of file fresh_cell_gate.py.

◆ NPER

fresh_cell_gate.NPER

Definition at line 29 of file fresh_cell_gate.py.

◆ FITP

fresh_cell_gate.FITP

Definition at line 29 of file fresh_cell_gate.py.

◆ NH

fresh_cell_gate.NH

Definition at line 29 of file fresh_cell_gate.py.

◆ KN_R

fresh_cell_gate.KN_R

Definition at line 30 of file fresh_cell_gate.py.

◆ KI_I

fresh_cell_gate.KI_I

Definition at line 30 of file fresh_cell_gate.py.

◆ KI_R

fresh_cell_gate.KI_R

Definition at line 30 of file fresh_cell_gate.py.

◆ which

fresh_cell_gate.which = os.environ.get("LEG", "dt")

Definition at line 71 of file fresh_cell_gate.py.

◆ st

fresh_cell_gate.st = run(96, 9.6, 200, 0.25, 0, moving=False)

Definition at line 74 of file fresh_cell_gate.py.