Documentation

LeanPool.HighContrastHomogenization.Provider.Response.AdjointCongruence

High-contrast homogenization: Provider.Response.AdjointCongruence #

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

The coefficient-transpose congruence of the coarse block #

The adjoint half of the weak-norm estimate for the optimizer state and the adjoint line of the corrected centered response both rest on a single algebraic identity: for the transposed coefficient field the coarse Schur data are (σ, σ_*, -κ), so

𝐀(V;aᵗ) = D𝐀(V;a)D, D = diag(I, -I)

in the form the response estimate of p.response.transfer uses. Both printed sign conventions for D — diag(-I, I) and diag(I, -I) — give the same congruence, since the two differ by an overall sign.

BlockCoarseMatrixTheory supplies σ(V;aᵗ) = σ(V;a), σ_*(V;aᵗ) = σ_*(V;a) and κ(V;aᵗ) = -κ(V;a). The Schur block formula [Armstrong–Kuusi, (2.13)] is written over σ_*^{-1} rather than over σ_*, so the middle clause has to be upgraded to the inverse; that is done here from the magic identities, which show that the pure flux response J(V,0,q;·) is insensitive to transposition.

The pure flux response is insensitive to transposition: J(V,0,q;aᵗ) = J(V,0,q;a). Both sides equal ½q·σ_*^{-1}(V;a)q, the first by the adjoint quadratic identity and the second by the completed square.

The inverse Schur block is insensitive to transposition: σ_*^{-1}(V;aᵗ) = σ_*^{-1}(V;a). The canonical extraction reads σ_*^{-1} off the pure flux response alone.

The derived block b = σ + κᵗσ_*^{-1}κ is insensitive to transposition, the sign of κ cancelling in the quadratic correction.

The D-congruence of a doubled block matrix flips the sign of the two off-diagonal corners.

The coefficient-transpose congruence, the adjoint congruence of the coarse block used by the response estimate of p.response.transfer: 𝐀(V;aᵗ) = D𝐀(V;a)D with D = diag(I, -I).