Documentation

LeanPool.NavierStokesAndEuler.Euler.PacketStageSuccessor

The successor step, written once #

The forward step (stage 0, no history) and the joined step (positive history) build stage n + 1 from stage n by the same assembly. They differ in the analytic pipeline that constructs the packet and in the ratio, earlyRatio or badRatio, by which its guards measure the source error. Step records what either pipeline delivers, phrased against the scale sequences, and next is the one assembly of the Stage invariant from it. PacketForwardSuccessor and PacketInfiniteConstruction instantiate Step; nothing below reads a guard.

Adapted from Code4me2/NavierStokesAndEuler, commit 26e896edbdbe1215c0d50ddba24b2b6453646f5f, Euler/PacketStageSuccessor.lean.

The initial-gradient increment of the next packet, h·r for its target shear h and error ratio r plus the frequency error, fits the stage's initialIncrement budget once its bad-pressure cost does.

The coercivity guard of the next parent's low bounds, from the packet's budgets: h is the packet's target shear, d its spike and r its error ratio. The parent's cumulative bounds absorb the increments (next_localized).

What one chosen packet delivers to the successor assembly at stage n.

The scalars targetShear, spikeAmplitude, errorRatio are the packet's target shear, spike and error ratio as its guards name them. targetShear_eq identifies the shear with the scale sequence; the ratio is earlyRatio in the forward step and badRatio in the joined step. The rest is what the packet choice produces on the restricted parent: the new parent and state (parent_horizon, parent_scale, label_eq), the parent's low bounds updated by the packet's error terms (low_*), the whole-horizon physical bounds, the pressure budgets that the scale choice makes summable, and the renewed frame matched to the packet's lowGeometry at its target time nextTime.

Instances For

    The renewed coupling lies in the next cumulative error budget.

    The renewed background compresses with the next stage's remainder margin.

    noncomputable def EulerPacketInduction.Stage.next {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (D : P.Step) :
    Stage S (n + 1)

    Assemble the successor from the packet bounds and renewed frame. The analytic estimates are opaque theorems; the supplied parent, state, low bounds and frame remain available by reduction.

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

      The successor uses the parent supplied by the packet step.

      @[simp]
      theorem EulerPacketInduction.Stage.next_state {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (D : P.Step) :
      (P.next D).state = D.state

      The successor uses the Euler state supplied by the packet step.

      @[simp]
      theorem EulerPacketInduction.Stage.next_low {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (D : P.Step) :
      (P.next D).low = D.low

      The successor uses the updated source bounds supplied by the packet step.

      @[simp]
      theorem EulerPacketInduction.Stage.next_time {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (D : P.Step) :

      The successor activates at the current stage's next packet time.

      @[simp]

      The successor uses the renewed frame, reindexed to the next activation time.