The 3D Navier–Stokes solver (ns3d.py)
A 3D pseudo-spectral solver (velocity/rotational form, 2/3 dealiasing, integrating-factor RK4) with low-k forcing and the filtered (Germano) energy-flux diagnostic—the 3D version of Pillar IV's flux test (ledger row IV/3D). The solver is validated by inviscid energy conservation to machine precision (Δ E/E∼10⁻¹⁶) and divergence-freeness (∼10⁻¹⁴).
)} A 3D pseudo-spectral solver (velocity/rotational form, 2/3 dealiasing, integrating-factor RK4) with low-k forcing and the filtered (Germano) energy-flux diagnostic—the 3D version of Pillar IV's flux test (ledger row IV/3D). The solver is validated by inviscid energy conservation to machine precision (Δ E/E∼10⁻¹⁶) and divergence-freeness (∼10⁻¹⁴).
)}
A 3D pseudo-spectral solver (velocity/rotational form, dealiasing,
integrating-factor RK4) with low-
forcing and the filtered (Germano) energy-flux
diagnostic—the 3D version of Pillar IV's flux test (ledger row IV/3D). The solver
is validated by inviscid energy conservation to machine precision (
) and divergence-freeness (
). Forcing drives a
developed cascade (velocity-derivative skewness
, the canonical
value), in which the forward energy flux
is
–
forward and concentrates on intense-strain events: the top
of the strain
field carries
–
of the forward flux,
–
of the
volume carries half, and
(the flux is
strain-aligned, not vorticity-aligned). The result is resolution-converged across
at fixed physical filter scale. The shipped
__main__ runs
a lighter developed case (still skewness
, same
concentration) for quick reproduction; the converged
figures were
obtained with the accompanying checkpointed forced driver
run3d.py and the
flux-concentration measurement tool measure3d.py (the field was
reached by spectral prolongation of the developed
field, energy preserved to
machine precision, then equilibrated under identical physics). Full source is shipped
as
ns3d.py (solver), run3d.py (checkpointed driver), and
measure3d.py (measurement). The only residual is the infinite-Reynolds asymptotic, the open
Onsager/Duchon–Robert problem.