Documentation

LeanPool.Superdiffusion.Algsuperdiff.StochasticProcess.Common.DivergenceForm.Decay.LocalizedSplitSkew

LocalizedSplitSkew #

Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.

The weighted energy inequality with a split antisymmetric part #

The antisymmetric part of the coefficient is split as k = ks + kl, with ks merely bounded and kl continuously differentiable. The two parts are paid for differently.

The resulting energy inequality keeps the drift term as an exact quantity on the left, so no absolute value is committed to before the weight is chosen.

Main results #

The smooth antisymmetric part as a drift #

theorem DivergenceFormProcess.Decay.isScalarForcedWeakSolution_of_splitSkew {d : ℕ} {Om : Set (HCPolySupport.Vec d)} (hOmOpen : IsOpen Om) (hOmBdd : HCPolySupport.IsBoundedDomain Om) {a : HCPolySupport.CoeffField d} {ks kl : HCPolySupport.Vec d → HCPolySupport.Mat d} {nu LamS : ℝ} {z : HCPolySupport.H10Function Om} {g : HCPolySupport.Vec d → ℝ} (hEllS : HCPolySupport.IsEllipticFieldOn nu LamS Om fun (y : HCPolySupport.Vec d) => nu • 1 + ks y) (hsplit : ∀ (y : HCPolySupport.Vec d), a y = nu • 1 + ks y + kl y) (hklSkew : ∀ (y : HCPolySupport.Vec d), HCPolySupport.matTranspose (kl y) = -kl y) (hklC1 : ∀ (p q : Fin d), ContDiff ℝ 1 fun (y : HCPolySupport.Vec d) => kl y p q) (hsol : Form.IsScalarForcedWeakSolution a Om g z.toH1Function) :

The smooth antisymmetric part is a drift. A zero-trace solution of the equation with coefficient a = nu • I + ks + kl, with kl a C¹ antisymmetric field, is a solution of the equation with coefficient nu • I + ks and the extra forcing ⟨div kl, grad z⟩.

The energy inequality with a split antisymmetric part #

theorem DivergenceFormProcess.Decay.weightedEnergy_split_le {d : ℕ} {Om : Set (HCPolySupport.Vec d)} (hOmOpen : IsOpen Om) (hOmBdd : HCPolySupport.IsBoundedDomain Om) {a : HCPolySupport.CoeffField d} {ks kl : HCPolySupport.Vec d → HCPolySupport.Mat d} {z : HCPolySupport.H10Function Om} {g zeta : HCPolySupport.Vec d → ℝ} {L : Set (HCPolySupport.Vec d)} {nu LamS Ks : ℝ} (hnu : 0 < nu) (hKs : 0 ≤ Ks) (hEllS : HCPolySupport.IsEllipticFieldOn nu LamS Om fun (y : HCPolySupport.Vec d) => nu • 1 + ks y) (hsplit : ∀ (y : HCPolySupport.Vec d), a y = nu • 1 + ks y + kl y) (hksSkew : ∀ (y : HCPolySupport.Vec d), HCPolySupport.matTranspose (ks y) = -ks y) (hklSkew : ∀ (y : HCPolySupport.Vec d), HCPolySupport.matTranspose (kl y) = -kl y) (hklC1 : ∀ (p q : Fin d), ContDiff ℝ 1 fun (y : HCPolySupport.Vec d) => kl y p q) (hsol : Form.IsScalarForcedWeakSolution a Om g z.toH1Function) (hzeta : ContDiff ℝ (↑⊤) zeta) (hzetaCompact : HasCompactSupport zeta) (hzetaL : tsupport zeta ⊆ L) (hksSize : ∀ y ∈ L, ∀ (v : HCPolySupport.Vec d), HCPolySupport.vecNormSq (HCPolySupport.matVecMul (ks y) v) ≤ Ks ^ 2 * HCPolySupport.vecNormSq v) :
((nu / 2 * ∫ (x : HCPolySupport.Vec d) in Om, zeta x ^ 2 * HCPolySupport.vecNormSq (z.grad x)) + 1 / 2 * ∫ (x : HCPolySupport.Vec d) in Om, z.toFun x ^ 2 * HCPolySupport.vecDot (skewFieldDiv kl x) fun (i : Fin d) => (fderiv ℝ (fun (y : HCPolySupport.Vec d) => zeta y ^ 2) x) (HCPolySupport.basisVec i)) ≤ (∫ (x : HCPolySupport.Vec d) in Om, g x * (zeta x ^ 2 * z.toFun x)) + 2 * (nu + Ks) ^ 2 / nu * ∫ (x : HCPolySupport.Vec d) in Om, z.toFun x ^ 2 * HCPolySupport.vecNormSq fun (i : Fin d) => (fderiv ℝ zeta x) (HCPolySupport.basisVec i)

The weighted energy inequality with a split antisymmetric part. The rough part is charged to its size on the layer through the Young inequality; the smooth part appears as the exact drift term on the left, carrying only the divergence of the smooth part and no gradient of the solution.