Block Matrix #
Support for the Armstrong–Vicol anomalous-diffusion formalization.
Coordinate indices for the two blocks of a doubled vector.
Equations
- Homogenization.BlockCoord d = (Fin d ⊕ Fin d)
Instances For
Doubled vector represented by a function on the disjoint union of coordinate indices.
Equations
Instances For
Doubled matrix represented on the disjoint union of coordinate indices.
Equations
Instances For
Flatten a pair of spatial vectors into a doubled coordinate vector.
Equations
- Homogenization.toFullBlockVec X (Sum.inl i) = X.1 i
- Homogenization.toFullBlockVec X (Sum.inr i) = X.2 i
Instances For
Split a doubled coordinate vector into its two spatial blocks.
Equations
Instances For
Flatten a block matrix into a matrix on doubled coordinate indices.
Equations
- Homogenization.toFullBlockMat A (Sum.inl i) (Sum.inl j) = A.upperLeft i j
- Homogenization.toFullBlockMat A (Sum.inl i) (Sum.inr j) = A.upperRight i j
- Homogenization.toFullBlockMat A (Sum.inr i) (Sum.inl j) = A.lowerLeft i j
- Homogenization.toFullBlockMat A (Sum.inr i) (Sum.inr j) = A.lowerRight i j
Instances For
Split a doubled coordinate matrix into its four spatial matrix blocks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Entry of a block matrix indexed by the doubled coordinate set.
Equations
- Homogenization.blockMatEntry A (Sum.inl i) (Sum.inl j) = A.upperLeft i j
- Homogenization.blockMatEntry A (Sum.inl i) (Sum.inr j) = A.upperRight i j
- Homogenization.blockMatEntry A (Sum.inr i) (Sum.inl j) = A.lowerLeft i j
- Homogenization.blockMatEntry A (Sum.inr i) (Sum.inr j) = A.lowerRight i j
Instances For
Coordinate basis of the doubled vector space in block form.
Equations
Instances For
Symmetry of all entries of a block matrix under exchange of coordinate indices.
Equations
- Homogenization.IsSymmetricBlockMat A = ∀ (α β : Homogenization.BlockCoord d), Homogenization.blockMatEntry A α β = Homogenization.blockMatEntry A β α
Instances For
A block matrix acts linearly on doubled vectors.
Equations
- Homogenization.blockMatLinearMap A = { toFun := Homogenization.blockMatVecMul A, map_add' := ⋯, map_smul' := ⋯ }
Instances For
A block matrix acts continuously on doubled vectors. Continuity is automatic because the carrier is finite-dimensional.
Equations
- Homogenization.blockMatContinuousLinearMap A = { toLinearMap := Homogenization.blockMatLinearMap A, cont := ⋯ }
Instances For
Exchange both input and output blocks of a block matrix.
Equations
- Homogenization.blockReflect A = { upperLeft := A.lowerRight, upperRight := A.lowerLeft, lowerLeft := A.upperRight, lowerRight := A.upperLeft }