The Weighted Stiffness Matrix is linear in the conductivity. With in its own finite element space,

The sparsity pattern of does not depend on . Number the stored entries , with row and column . Then the stored values are one matrix-vector product:

is sparse, of size , and built once per mesh by the usual cell loop: cell contributes the local tensor (see Numerical Quadrature and Assembly). The quadrature must integrate a polynomial of degree exactly, where , are the polynomial degrees of the two spaces.

Gradients from the same tensor

Every derivative of a bilinear expression in is a contraction with :

This is exactly , the discrete gradient of the Adjoint State Method. It is exact because assembly and gradient use the same quadrature (see Discretize-then-Optimize vs Optimize-then-Discretize). Sums over current patterns only change : .

  • Adjoint state: .
  • Voltage-driven data: (see Adjoint Method for the Dirichlet Problem).
  • Kohn-Vogelius Functional: , with no adjoint at all.
  • Jacobian rows: with for a block of adjoint fields , i.e. one sparse times dense product per pattern.

L² gradient

The vector is a dual vector: its entries are integrals against the basis functions , so they scale with the cell sizes. The L2 Projection of the continuous gradient density onto the space solves

with the mass matrix of the space. This is the Riesz representative in (see Gradient Representation and the Riesz Map). It is mesh independent and usually a better search direction on graded meshes. For piecewise constant , is diagonal with the cell areas, so is the coefficient gradient divided by the cell areas. Both gradients come from the same contraction and differ only by the Riesz map.

Parallelism

Assembly (), gradient () and the gather are sparse matrix-vector products and one independent product per stored entry. They parallelise over threads and GPU cores without atomic operations or colouring. The memory cost is for potential and conductivity basis functions per cell. That is small in 2D, and needs checking in 3D with high-order conductivity spaces.

In ModularEIT.jl: ConductivityTensor, pair_products!, tensor_gradient!.

References

  1. S. C. Brenner, L. R. Scott (2008). The Mathematical Theory of Finite Element Methods, 3rd ed. Springer. doi:10.1007/978-0-387-75934-0
  2. M. Hinze, R. Pinnau, M. Ulbrich, S. Ulbrich (2009). Optimization with PDE Constraints. Springer. doi:10.1007/978-1-4020-8839-1
  3. N. Polydorides, W. R. B. Lionheart (2002). A Matlab toolkit for three-dimensional electrical impedance tomography: a contribution to the Electrical Impedance and Diffuse Optical Reconstruction Software project. Meas. Sci. Technol. 13(12), 1871–1883. doi:10.1088/0957-0233/13/12/310