Documentation

LeanPool.NavierStokesAndEuler.Euler.ParentEulerChild

The same exact packet that constructs the next particle map supplies its physical Euler evolution. All new flow and Euler laws are proved from the old evolution and the actual correction solver.

The actual scalar pressure of the corrected source packet has the constructed continuous physical pressure force, at every time.

@[instance_reducible]

Cache the standard NormedSpace ℝ Space instance to shorten typeclass synthesis.

Equations
Instances For
    @[instance_reducible]

    Cache the standard NormedAddCommGroup (Space →L[ℝ] Space) instance to shorten typeclass synthesis.

    Equations
    Instances For
      @[instance_reducible]

      Cache the standard NormedSpace ℝ (Space →L[ℝ] Space) instance to shorten typeclass synthesis.

      Equations
      Instances For

        Exact packet force, constructed using force.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem EulerParentPacketFrames.Parent.normalizedExactPressure_gradient (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (k : ) (hk : k * κ = 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hXY : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), A.position t (Y t x) = x) (hY : Continuous (Function.uncurry Y)) (p : × EulerSmoothLimit.Space) (force : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hp : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), DifferentiableAt (fun (y : EulerSmoothLimit.Space) => p (t, y)) x) (hgradient : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), gradient (fun (y : EulerSmoothLimit.Space) => p (t, y)) x = force t x) (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space) :
          gradient (fun (y : EulerSmoothLimit.Space) => A.normalizedExactPressure m hm J support hSupport B residual k Y p (t, y)) x = A.ell⁻¹ force t (A.ell x) + (ContinuousLinearMap.adjoint ((A.inverse.field t) (A.packetInverse Y (t, x)))) ((EulerAllOrderDriftCorrection.exactPacketOfResidual P B residual).graphPressure k t (A.packetInverse Y (t, x)))
          theorem EulerParentPacketFrames.Parent.exactPacketPressure_gradient (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (k : ) (hk : k * κ = 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hXY : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), A.position t (Y t x) = x) (hY : Continuous (Function.uncurry Y)) (p : × EulerSmoothLimit.Space) (force : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hp : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), DifferentiableAt (fun (y : EulerSmoothLimit.Space) => p (t, y)) x) (hgradient : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), gradient (fun (y : EulerSmoothLimit.Space) => p (t, y)) x = force t x) (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space) :
          gradient (fun (y : EulerSmoothLimit.Space) => A.exactPacketPressure m hm J support hSupport B residual k Y p (t, y)) x = A.exactPacketForce m hm J support hSupport B residual k Y force t x

          Incompressibility of the actual corrected parent velocity. The normalized packet uses the parent's genuine determinant-one Jacobian, and the final physical rescaling preserves divergence exactly.

          theorem EulerParentPacketFrames.Parent.normalizedExact_euler (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (k : ) (hk : k * κ = 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hYX : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), Y t (A.position t x) = x) (hXY : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), A.position t (Y t x) = x) (hY : Continuous (Function.uncurry Y)) (u : × EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (p : × EulerSmoothLimit.Space) (hvelocity : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), (A.velocity.field t) x = u (t, A.position t x)) (hu : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), DifferentiableAt u (t, x)) (hp : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), DifferentiableAt (fun (y : EulerSmoothLimit.Space) => p (t, y)) x) (heuler : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), EulerLagrangian.momentumResidual u p (t, x) = 0) (hdiv : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), EulerSmoothLimit.divergence (fun (y : EulerSmoothLimit.Space) => u (t, y)) x = 0) (t : ) (ht : t Set.Ioo 0 A.T) (x : EulerSmoothLimit.Space) :
          EulerLagrangian.momentumResidual (A.normalizedExactVelocity m hm J support hSupport B residual k Y u) (A.normalizedExactPressure m hm J support hSupport B residual k Y p) (t, x) = 0 EulerSmoothLimit.divergence (fun (y : EulerSmoothLimit.Space) => A.normalizedExactVelocity m hm J support hSupport B residual k Y u (t, y)) x = 0
          theorem EulerParentPacketFrames.Parent.exactPacket_euler (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (k : ) (hk : k * κ = 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hYX : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), Y t (A.position t x) = x) (hXY : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), A.position t (Y t x) = x) (hY : Continuous (Function.uncurry Y)) (u : × EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (p : × EulerSmoothLimit.Space) (hvelocity : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), (A.velocity.field t) x = u (t, A.position t x)) (hu : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), DifferentiableAt u (t, x)) (hp : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), DifferentiableAt (fun (y : EulerSmoothLimit.Space) => p (t, y)) x) (heuler : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), EulerLagrangian.momentumResidual u p (t, x) = 0) (hdiv : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), EulerSmoothLimit.divergence (fun (y : EulerSmoothLimit.Space) => u (t, y)) x = 0) (t : ) (ht : t Set.Ioo 0 A.T) (x : EulerSmoothLimit.Space) :
          EulerLagrangian.momentumResidual (A.exactPacketVelocity m hm J support hSupport B residual k Y u) (A.exactPacketPressure m hm J support hSupport B residual k Y p) (t, x) = 0 EulerSmoothLimit.divergence (fun (y : EulerSmoothLimit.Space) => A.exactPacketVelocity m hm J support hSupport B residual k Y u (t, y)) x = 0

          The new parent is the particle map of the actual corrected Euler velocity, and its acceleration is minus the actual constructed pressure force. Both matches are derived from the existing parent law and Euler.

          theorem EulerParentPacketFrames.Parent.child_velocity_exact (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hYX : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), Y t (A.position t x) = x) (u : × EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hvelocity : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), (A.velocity.field t) x = u (t, A.position t x)) (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space) :
          ((A.child G k m hgraph nextEll hnext hnext1).velocity.field t) x = A.exactPacketVelocity m hm J support hSupport B residual k Y u (t, (A.child G k m hgraph nextEll hnext hnext1).position t x)
          theorem EulerParentPacketFrames.Parent.child_acceleration_exact (A : Parent) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hk : k * κ = 1) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) (Y : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hYX : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), Y t (A.position t x) = x) (hXY : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), A.position t (Y t x) = x) (hY : Continuous (Function.uncurry Y)) (u : × EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (p : × EulerSmoothLimit.Space) (force : (Set.Icc 0 A.T)EulerSmoothLimit.SpaceEulerSmoothLimit.Space) (hforce : Continuous (Function.uncurry force)) (hgradient : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), gradient (fun (y : EulerSmoothLimit.Space) => p (t, y)) x = force t x) (hvelocity : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), (A.velocity.field t) x = u (t, A.position t x)) (hu : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), DifferentiableAt u (t, x)) (hp : ∀ (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space), DifferentiableAt (fun (y : EulerSmoothLimit.Space) => p (t, y)) x) (heuler : tSet.Ioo 0 A.T, ∀ (x : EulerSmoothLimit.Space), EulerLagrangian.momentumResidual u p (t, x) = 0) (t : (Set.Icc 0 A.T)) (x : EulerSmoothLimit.Space) :
          ((A.child G k m hgraph nextEll hnext hnext1).acceleration.field t) x = -A.exactPacketForce m hm J support hSupport B residual k Y force t ((A.child G k m hgraph nextEll hnext hnext1).position t x)
          noncomputable def EulerParentPacketFrames.Evolution.child {A : Parent} (E : Evolution A) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hk : k * κ = 1) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) :
          Evolution (A.child G k m hgraph nextEll hnext hnext1)

          Child, bundling inverse, velocity, pressure, force and the required compatibility proofs.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem EulerParentPacketFrames.Evolution.child_velocity {A : Parent} (E : Evolution A) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hk : k * κ = 1) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) :
            (E.child m hm J support hSupport B residual V hV G hG k hk hgraph nextEll hnext hnext1).velocity = A.exactPacketVelocity m hm J support hSupport B residual k E.inverse.field E.velocity
            @[simp]
            theorem EulerParentPacketFrames.Evolution.child_pressure {A : Parent} (E : Evolution A) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hk : k * κ = 1) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) :
            (E.child m hm J support hSupport B residual V hV G hG k hk hgraph nextEll hnext hnext1).pressure = A.exactPacketPressure m hm J support hSupport B residual k E.inverse.field E.pressure
            @[simp]
            theorem EulerParentPacketFrames.Evolution.child_force {A : Parent} (E : Evolution A) {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (J : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) {P : } [Fact (0 < P)] {κ : } { : |κ| 1} {Z R : EulerAllOrderCorrectionData.FieldTower P A.T} (B : EulerAllOrderDriftCorrection.Budget P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) (residual : EulerAllOrderDriftCorrection.ApproximationResidual P (EulerPacketCorrectionCoefficients.correctionData (A.transverseData m hm J support hSupport) P κ Z R)) {raw : EulerPacketProfileRecursion.VectorField} (V : EulerPacketCylinderField.Field P A.T raw) (hV : Z = V.toFieldTower) (G : EulerPhysicalGraphFlowBounds.Data P A.T) (hG : G.A = EulerAllOrderDriftCorrection.Budget.liftedPacketCoefficient P B V) (k : ) (hk : k * κ = 1) (hgraph : ∀ (t : (Set.Icc 0 A.T)) (q : EulerLiftedGradientSpace.LiftTangent), (EulerGraphInvariantFlow.graphConstraint k m) ((G.A.field t) q) = 0) (nextEll : ) (hnext : 0 < nextEll) (hnext1 : nextEll 1) :
            (E.child m hm J support hSupport B residual V hV G hG k hk hgraph nextEll hnext hnext1).force = A.exactPacketForce m hm J support hSupport B residual k E.inverse.field E.force