Documentation

LeanPool.HighContrastHomogenization.Analytic.AffineGeometry

High-contrast homogenization: Analytic.AffineGeometry #

Imported from the Apache-2.0 HighContrastHomogenization development at commit 7a13dbcd8d6609264a713373f5c69ceeac870472.

Affine geometry and coefficient pullback #

An invertible matrix sends a coefficient field to its divergence-form pullback, sends the corresponding domain to a linear image, and rescales both volume and unnormalized integrals by its determinant. The determinant cancels from normalized averages.

noncomputable def HCPolySupport.HighContrast.affineCoefficient {d : ℕ} (L : Mat d) (_hL : IsUnit (Matrix.det L)) (a : CoeffField d) :

The divergence-form coefficient after the invertible change of variables x = L y.

Equations
Instances For

    Transposition commutes with the congruence used by the affine coefficient.

    The symmetric part of an affine coefficient is the congruence of the symmetric part of the original coefficient.

    The skew part of an affine coefficient is the congruence of the skew part of the original coefficient.

    The right inverse-transpose factor cancels the transformed gradient.

    Fluxes transform contravariantly under the affine coefficient pullback.

    The potential--flux pairing is invariant under the dual affine actions.

    Linear images and volume #

    theorem HCPolySupport.HighContrast.matImage_matImage {d : ℕ} (M N : Mat d) (U : Set (Vec d)) :
    matImage M (matImage N U) = matImage (M * N) U

    Linear images compose by matrix multiplication.

    theorem HCPolySupport.HighContrast.matImage_inv_eq_preimage {d : ℕ} {L : Mat d} (hL : IsUnit (Matrix.det L)) (U : Set (Vec d)) :
    matImage L⁻¹ U = (fun (y : Vec d) => matVecMul L y) ⁻¹' U

    Pulling a domain back by L⁻¹ is the same as taking its preimage by L.

    An invertible linear image rescales volume by the absolute determinant.

    The real-valued volume obeys the same determinant scaling.

    The restricted source volume pushed through an invertible matrix is the restricted target volume with the inverse Jacobian density.

    theorem HCPolySupport.HighContrast.setIntegral_matImage {d : ℕ} {F : Type u_1} [NormedAddCommGroup F] [NormedSpace ℝ F] {L : Mat d} (hL : IsUnit (Matrix.det L)) {U : Set (Vec d)} (hU : MeasurableSet U) (f : Vec d → F) :
    ∫ (x : Vec d) in matImage L U, f x = |Matrix.det L| • ∫ (y : Vec d) in U, f (matVecMul L y)

    Bochner integration over a linear image carries the determinant Jacobian.

    theorem HCPolySupport.HighContrast.volumeAverage_matImage {d : ℕ} {L : Mat d} (hL : IsUnit (Matrix.det L)) {U : Set (Vec d)} (hU : MeasurableSet U) (f : Vec d → ℝ) :
    volumeAverage (matImage L U) f = volumeAverage U fun (y : Vec d) => f (matVecMul L y)

    Normalized scalar averages are unchanged after affine pullback.

    A matrix image sends an adapted cell to the cell with the multiplied grid.