Documentation

LeanPool.NavierStokesAndEuler.Euler.PacketSourceGeometryAssembly

The actual source ray and selected primary satisfy every analytic field of PhysicalGeometryData. Neighbor errors follow from the source coefficient derivatives and the genuine stationary-history estimate.

The actual source normal and the same selected terminal coordinate give the scaled neighboring-label initial errors. Their constants only involve coefficient norms, the terminal size, and the stated scaling.

The actual fixed-terminal history estimate controls the scaled neighbor initial velocity. The loss ε⁻¹ comes from the specified coordinate rescaling and is independent of the oscillation frequency.

theorem EulerPacketMovingFrame.frame_pair_difference_le {p q x y : EulerSmoothLimit.Space} {ε D : } (hp : p = 1) (hq : q = 1) ( : 0 < ε) (hε1 : ε 1) (hxy : x - y D) :
|inner p x / ε - inner p y / ε| + |inner q x - inner q y| 2 * D / ε
theorem EulerPacketMovingFrame.scaledVelocity_initial_difference_le {m v x y : EulerSmoothLimit.Space} {t₀ a ε D : } (hm0 : m t₀ 0) (hv0 : v t₀ 0) ( : 0 < ε) (hε1 : ε 1) (hxy : x t₀ - y t₀ D) :
|scaledVelocity m v x t₀ a ε 0 0 - scaledVelocity m v y t₀ a ε 0 0| + |scaledVelocity m v x t₀ a ε 0 1 - scaledVelocity m v y t₀ a ε 0 1| 2 * D / ε
theorem EulerPacketMovingFrame.scaled_inner_difference_le {p x y : EulerSmoothLimit.Space} {b D : } (hp : p = 1) (hb : 0 < b) (hxy : x - y D) :
|inner p x / b - inner p y / b| D / b
theorem EulerPacketMovingFrame.scaledRay_initial_difference_le {m v x y : EulerSmoothLimit.Space} {s₀ t₀ a ε D : } (hs₀ : 0 < s₀) (hm0 : m t₀ 0) (hv0 : v t₀ 0) (hmv : inner (m t₀) (v t₀) = 0) ( : 0 < ε) (hε1 : ε 1) (hxy : x t₀ - y t₀ D) :
EulerPacketRay.norm3 (scaledRay m v x s₀ t₀ a ε 0 0 - scaledRay m v y s₀ t₀ a ε 0 0) (scaledRay m v x s₀ t₀ a ε 0 1 - scaledRay m v y s₀ t₀ a ε 0 1) (scaledRay m v x s₀ t₀ a ε 0 2 - scaledRay m v y s₀ t₀ a ε 0 2) 3 * D / (s₀ * ε)
theorem EulerPacketMovingFrame.scaledRay_initial_error {m v r : EulerSmoothLimit.Space} {s₀ t₀ a ε D : } (hs₀ : 0 < s₀) (hm0 : m t₀ 0) (hv0 : v t₀ 0) (hmv : inner (m t₀) (v t₀) = 0) ( : 0 < ε) (hε1 : ε 1) (hr : r t₀ - s₀ EulerPacketCrossProduct.cross (EulerPacketNormalizedPrimary.unit (m t₀)) (EulerPacketNormalizedPrimary.unit (v t₀)) D) :
EulerPacketRay.norm3 (scaledRay m v r s₀ t₀ a ε 0 0) (scaledRay m v r s₀ t₀ a ε 0 1) (scaledRay m v r s₀ t₀ a ε 0 2 - 1) 3 * D / (s₀ * ε)

A physical initial-ray error around the chosen normal becomes the source's scaled ray error with the fixed factor (s₀ ε)⁻¹.

theorem EulerPacketMovingFrame.frame_pair_operator_difference_le {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] {T ε D : } (A B : U →L[] C((Set.Icc 0 T), EulerSmoothLimit.Space)) (ξ : U) (t : (Set.Icc 0 T)) {p q : EulerSmoothLimit.Space} (hp : p = 1) (hq : q = 1) ( : 0 < ε) (hε1 : ε 1) (hAB : A - B D) :
|inner p ((A ξ) t) / ε - inner p ((B ξ) t) / ε| + |inner q ((A ξ) t) - inner q ((B ξ) t)| 2 * D * ξ / ε
theorem EulerPacketMovingFrame.history_scaled_pair_difference_le {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] [CompleteSpace U] (T : ) (hT : 0 T) (Q Q₁ : C((Set.Icc 0 T), U →L[] EulerSmoothLimit.Space)) (H : C((Set.Icc 0 T), EulerSmoothLimit.Space →L[] EulerSmoothLimit.Space)) (c : ) (hc : 0 < c) (hQ : ∀ (t : (Set.Icc 0 T)) (ξ : U), c * ξ ^ 2 (Q t) ξ ^ 2) (hd : ∀ (t : (Set.Icc 0 T)), HasDerivWithinAt (EulerVolterraConvolution.extendPath T hT Q) (Q₁ t) (Set.Icc 0 T) t) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (z : EulerSmoothLimit.Space), inner ((H t) z) z K * z ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (P P₁ : C((Set.Icc 0 T), U →L[] EulerSmoothLimit.Space)) (G : C((Set.Icc 0 T), EulerSmoothLimit.Space →L[] EulerSmoothLimit.Space)) (hP : ∀ (t : (Set.Icc 0 T)) (ξ : U), c * ξ ^ 2 (P t) ξ ^ 2) (hp : ∀ (t : (Set.Icc 0 T)), HasDerivWithinAt (EulerVolterraConvolution.extendPath T hT P) (P₁ t) (Set.Icc 0 T) t) (hG : ∀ (t : (Set.Icc 0 T)) (z : EulerSmoothLimit.Space), inner ((G t) z) z K * z ^ 2) (hTpos : 0 < T) (q q₁ d a r : ) (hQn : Q q) (hPn : P q) (hQ₁n : Q₁ q₁) (hP₁n : P₁ q₁) (hD : T * Q₁ + Q d) (hD' : T * P₁ + P d) (hA : 1 + T ^ 2 * H a) (hA' : 1 + T ^ 2 * G a) (hr : EulerTimeH1FrameTransport.transportCost T Q Q₁ c r) (hr' : EulerTimeH1FrameTransport.transportCost T P P₁ c r) (L₀ L₁ LH s : ) (h₀ : Q - P L₀ * s) (h₁ : Q₁ - P₁ L₁ * s) (hHdiff : H - G LH * s) (ξ : U) (t : (Set.Icc 0 T)) {p₀ q₀ : EulerSmoothLimit.Space} (hp₀ : p₀ = 1) (hq₀ : q₀ = 1) {ε : } ( : 0 < ε) (hε1 : ε 1) :
have u := ((EulerTransverseEndpointCoordinates.historyVelocity T hT Q Q₁ H c hc hQ hd K hK hH hsmall) ξ) t; have v := ((EulerTransverseEndpointCoordinates.historyVelocity T hT P P₁ G c hc hP hp K hK hG hsmall) ξ) t; |inner p₀ u / ε - inner p₀ v / ε| + |inner q₀ u - inner q₀ v| 2 * EulerTransverseHistoryBounds.historyDifferenceCost T c q q₁ d a r L₀ L₁ LH * s * ξ / ε

The two actual stationary histories use the same terminal coordinate ξ; physical coefficient differences give the scaled initial error.

theorem EulerPacketActivationHistory.actual_scaled_velocity_initial_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} (τ : ) ( : 0 < τ) (hτT : τ < D.T) (B : EulerTransversePacketProvider.HistoryData (D.initial τ )) (m v : EulerSmoothLimit.Space) (hm : m τ 0) (hv : v τ 0) (ξ : U) (a ε lam : ) ( : 0 < ε) (hε1 : ε 1) (hu : EulerPacketMovingFrame.scaledVelocity m v (fun (s : ) => EulerPacketPrimaryFactorization.uncutVelocity τ hτT B ξ s 0) τ a ε 0 0 = -lam) (hw : EulerPacketMovingFrame.scaledVelocity m v (fun (s : ) => EulerPacketPrimaryFactorization.uncutVelocity τ hτT B ξ s 0) τ a ε 0 1 = 1) (x : EulerSmoothLimit.Space) :

Exact scale normalization from the actual parent frame and shear. The physical interval ends at the chosen scaled horizon; no extension beyond the source time interval is required.

theorem EulerPacketMovingFrame.activation_coupling_match (B : EulerSmoothLimit.Space →L[] EulerSmoothLimit.Space) (m v : EulerSmoothLimit.Space) (t₀ ε : ) :
have a := normalizedCoupling (B t₀) (m t₀) (v t₀); rescaledFrame B m v t₀ a ε 0 0 1 = a
theorem EulerPacketMovingFrame.activation_tilt_match (B : EulerSmoothLimit.Space →L[] EulerSmoothLimit.Space) (m v : EulerSmoothLimit.Space) (t₀ ε : ) (ha : normalizedCoupling (B t₀) (m t₀) (v t₀) 0) ( : 0 normalizedTilt (B t₀) (m t₀) (v t₀)) :
have a := normalizedCoupling (B t₀) (m t₀) (v t₀); have σ := (normalizedTilt (B t₀) (m t₀) (v t₀)); rescaledFrame B m v t₀ a ε 0 2 1 = a * σ ^ 2
theorem EulerPacketMovingFrame.activation_shear_match (c : ) (m v : EulerSmoothLimit.Space) (t₀ a : ) (ha : 0 < a) (hh : 0 < primaryShear c m v t₀) :
have ε := (a / primaryShear c m v t₀); 0 < ε rescaledShear c m v t₀ a ε 0 = a / ε ^ 2
theorem EulerPacketMovingFrame.activation_horizon_exact (t₀ T a ε : ) (ha : a 0) ( : ε 0) :
physicalTime t₀ a ε (a * (T - t₀) / ε) = T
theorem EulerPacketMovingFrame.activation_horizon_maps (t₀ T a ε : ) (ha : 0 < a) ( : 0 < ε) :
Set.MapsTo (physicalTime t₀ a ε) (Set.Icc 0 (a * (T - t₀) / ε)) (Set.Icc t₀ T)

Source ray, given by D.normal.field (D.clamp t) x.

Equations
Instances For

    Source error, given by sourceMatrix D x t-P.B t-primaryShear P.c P.m P.v t • rankOne ℝ (unit (P.v t)) (unit (P.m t)).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Source velocity, given by uncutVelocity τ hτ hτT H A.terminal t x.

      Equations
      Instances For
        theorem EulerPacketSourceGeometry.Guards.radius_cost_le_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) :
        P.neighborCost hτT H A.CM A.CH * A.radius P.totalError hτT H A.CM A.CH A.radius
        theorem EulerPacketSourceGeometry.Guards.sourceError_bound {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) (x : EulerSmoothLimit.Space) (hx : x A.radius) (t : ) (ht : t Set.Icc τ D.T) :
        theorem EulerPacketSourceGeometry.Guards.error_le_scaled_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) :
        P.totalError hτT H A.CM A.CH A.radius 16 * (P.epsilon * P.horizon * (4 * P.G) ^ 2 + P.totalError hτT H A.CM A.CH A.radius)

        Every new analytic component is the actual source field or the selected stationary/forward primary. The parent input and scalar guard record contain none of this record's new-field conclusions.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem EulerPacketSourceGeometry.Guards.geometryData_matrix {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 Ω) ( : xΩ, x A.radius) (x : { x : EulerSmoothLimit.Space // x Ω }) (t : ) :
          (A.geometryData Ω h0 ).M x t = (D.M.field (D.clamp t)) x
          theorem EulerPacketSourceGeometry.Guards.geometryData_ray {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 Ω) ( : xΩ, x A.radius) (x : { x : EulerSmoothLimit.Space // x Ω }) (t : ) :
          (A.geometryData Ω h0 ).r x t = (D.normal.field (D.clamp t)) x
          theorem EulerPacketSourceGeometry.Guards.geometryData_velocity {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : } { : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ )} (A : Guards hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 Ω) ( : xΩ, x A.radius) (x : { x : EulerSmoothLimit.Space // x Ω }) (t : ) :
          (A.geometryData Ω h0 ).w x t = EulerPacketPrimaryFactorization.uncutVelocity τ hτT H (terminal hτT P H A) t x