Documentation

LeanPool.HighContrastHomogenization.Support.CoarseGraining.BlockFormalism.Structures

Coarse-graining support: Support.CoarseGraining.BlockFormalism.Structures #

Imported from the Apache-2.0 CoarseGraining development at commit c7ddd76c08ade64fed1b8d2ca51be14dfee8deb4.

Block formalism -- structures and private matrix helpers #

BlockState structure, constVecField, blockMatrixOfCoeff / blockCoeffField definitions, plus symmPart / skewPart / inverse / conjugation helpers used throughout.

A pair of vector fields representing a potential component and a flux component.

  • potential : Vec d → Vec d

    The vector field in the potential component of the block state.

  • flux : Vec d → Vec d

    The vector field in the flux component of the block state.

Instances For
    theorem HCPolySupport.BlockState.ext {d : ℕ} {X Y : BlockState d} (hpot : X.potential = Y.potential) (hflux : X.flux = Y.flux) :
    X = Y
    @[instance_reducible]
    Equations
    @[instance_reducible]
    Equations

    The pair of potential and flux values at a point.

    Equations
    Instances For
      @[simp]
      theorem HCPolySupport.BlockState.eval_add {d : ℕ} (X Y : BlockState d) (x : Vec d) :
      (X + Y).eval x = X.eval x + Y.eval x
      @[simp]
      theorem HCPolySupport.BlockState.eval_smul {d : ℕ} (c : ℝ) (X : BlockState d) (x : Vec d) :
      (c • X).eval x = c • X.eval x

      Apply the same matrix to both vector fields of a block state pointwise.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem HCPolySupport.BlockState.eval_mapMatrix {d : ℕ} (R : Mat d) (X : BlockState d) (x : Vec d) :

        Negate the flux component of a block state.

        Equations
        Instances For
          def HCPolySupport.constVecField {d : ℕ} (p : Vec d) :
          Vec d → Vec d

          The constant vector field with value p.

          Equations
          Instances For
            noncomputable def HCPolySupport.blockMatrixOfCoeff {d : ℕ} (A : Mat d) :

            The block matrix with blocks s + kᵀ s⁻¹ k, -kᵀ s⁻¹, -s⁻¹ k, and s⁻¹, where s and k are the symmetric and skew parts of A.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def HCPolySupport.blockCoeffField {d : ℕ} (a : CoeffField d) :
              Vec d → BlockMat d

              The block coefficient field obtained by applying the block matrix construction pointwise.

              Equations
              Instances For
                def HCPolySupport.blockVecConj {d : ℕ} (R : Mat d) (X : BlockVec d) :

                Apply R to each component of a vector pair.

                Equations
                Instances For
                  def HCPolySupport.blockMatConj {d : ℕ} (R : Mat d) (B : BlockMat d) :

                  Multiply each block of B on both sides by R.

                  Equations
                  Instances For
                    theorem HCPolySupport.nonsing_inv_mul_mul_of_mul_self_eq_one {d : ℕ} {R A : Mat d} (hR2 : R * R = 1) :
                    (R * A * R)⁻¹ = R * A⁻¹ * R
                    theorem HCPolySupport.mul_mul_mul_conj_of_mul_self_eq_one {d : ℕ} {R B C : Mat d} (hR2 : R * R = 1) :
                    R * B * R * (R * C * R) = R * (B * C) * R
                    theorem HCPolySupport.matVecMul_mul_mul_cancel_of_mul_self_eq_one {d : ℕ} {R A : Mat d} {x : Vec d} (hR2 : R * R = 1) :
                    matVecMul (R * A * R) (matVecMul R x) = matVecMul R (matVecMul A x)