pith. machine review for the scientific record. sign in
structure

CoreNSOperator

definition
show as:
view math explainer →
module
IndisputableMonolith.NavierStokes.DiscreteNSOperator
domain
NavierStokes
line
96 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.NavierStokes.DiscreteNSOperator on GitHub at line 96.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  93
  94/-- Physical data of a discrete incompressible lattice Navier--Stokes flow.
  95No pair-budget or absorption fields—those are derived below. -/
  96structure CoreNSOperator (siteCount : ℕ) extends EvolutionIdentity siteCount where
  97  topology : LatticeTopology siteCount
  98  h : ℝ
  99  ν : ℝ
 100  h_pos : 0 < h
 101  ν_pos : 0 < ν
 102  state : State siteCount
 103  velocity : VectorField siteCount
 104  divergence_free : ∀ x : Fin siteCount, divergence topology h velocity x = 0
 105  transportFlux : ScalarField siteCount
 106  transportPerm : Equiv.Perm (Fin siteCount)
 107  transport_def :
 108    contributions.transport = conservativeTransportField transportFlux transportPerm
 109  viscous_def :
 110    contributions.viscous = fun x => ν * scalarLaplacian topology h state.omega x
 111  omega_rms : ℝ
 112  omega_rms_pos : 0 < omega_rms
 113  normalized_omega_pos : ∀ i : Fin siteCount, 0 < |state.omega i| / omega_rms
 114  gradientMag_nonneg : ∀ i : Fin siteCount,
 115    0 ≤ velocityGradientMag topology h velocity i
 116  dt : ℝ
 117  dt_pos : 0 < dt
 118  stretching_bound :
 119    ∀ i : Fin siteCount,
 120      contributions.stretching i ≤
 121        Jcost (|state.omega i| / omega_rms * (1 + dt * velocityGradientMag topology h velocity i))
 122        + Jcost (|state.omega i| / omega_rms / (1 + dt * velocityGradientMag topology h velocity i))
 123        - 2 * Jcost (|state.omega i| / omega_rms)
 124  viscous_absorbs :
 125    total (fun i =>
 126      pairwiseStretchingChange