Schur complement method

From HandWiki
Revision as of 06:29, 5 August 2021 by imported>PolicyEnforcerIA (attribution)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

In numerical analysis, the Schur complement method, named after Issai Schur, is the basic and the earliest version of non-overlapping domain decomposition method, also called iterative substructuring. A finite element problem is split into non-overlapping subdomains, and the unknowns in the interiors of the subdomains are eliminated. The remaining Schur complement system on the unknowns associated with subdomain interfaces is solved by the conjugate gradient method.

The method and implementation

Suppose we want to solve the Poisson equation

[math]\displaystyle{ -\Delta u = f, \qquad u|_{\partial\Omega} = 0 }[/math]

on some domain Ω. When we discretize this problem we get an N-dimensional linear system AU = F. The Schur complement method splits up the linear system into sub-problems. To do so, divide Ω into two subdomains Ω1, Ω2 which share an interface Γ. Let U1, U2 and UΓ be the degrees of freedom associated with each subdomain and with the interface. We can then write the linear system as

[math]\displaystyle{ \left[\begin{matrix} A_{11} & 0 & A_{1\Gamma} \\ 0 & A_{22} & A_{2\Gamma} \\ A_{\Gamma 1} & A_{\Gamma 2} & A_{\Gamma\Gamma}\end{matrix}\right]\left[\begin{matrix} U_1 \\ U_2 \\ U_\Gamma\end{matrix}\right] = \left[\begin{matrix} F_1 \\ F_2 \\ F_\Gamma\end{matrix}\right], }[/math]

where F1, F2 and FΓ are the components of the load vector in each region.

The Schur complement method proceeds by noting that we can find the values on the interface by solving the smaller system

[math]\displaystyle{ \Sigma U_\Gamma = F_\Gamma - A_{\Gamma 1}A_{11}^{-1}F_1 - A_{\Gamma 2}A_{22}^{-1}F_2, }[/math]

for the interface values UΓ, where we define the Schur complement matrix

[math]\displaystyle{ \Sigma = A_{\Gamma\Gamma} - A_{\Gamma 1}A_{11}^{-1}A_{1\Gamma} - A_{\Gamma 2}A_{22}^{-1}A_{2\Gamma}. }[/math]

The important thing to note is that the computation of any quantities involving [math]\displaystyle{ A_{11}^{-1} }[/math] or [math]\displaystyle{ A_{22}^{-1} }[/math] involves solving decoupled Dirichlet problems on each domain, and these can be done in parallel. Consequently, we need not store the Schur complement matrix explicitly; it is sufficient to know how to multiply a vector by it.

Once we know the values on the interface, we can find the interior values using the two relations

[math]\displaystyle{ A_{11}U_1 = F_1 - A_{1\Gamma}U_\Gamma, \qquad A_{22}U_2 = F_2 - A_{2\Gamma}U_\Gamma, }[/math]

which can both be done in parallel.

The multiplication of a vector by the Schur complement is a discrete version of the Poincaré–Steklov operator, also called the Dirichlet to Neumann mapping.

Advantages

There are two benefits of this method. First, the elimination of the interior unknowns on the subdomains, that is the solution of the Dirichlet problems, can be done in parallel. Second, passing to the Schur complement reduces condition number and thus tends to decrease the number of iterations. For second-order problems, such as the Laplace equation or linear elasticity, the matrix of the system has condition number of the order 1/h2, where h is the characteristic element size. The Schur complement, however, has condition number only of the order 1/h.

For performances, the Schur complement method is combined with preconditioning, at least a diagonal preconditioner. The Neumann–Neumann method and the Neumann–Dirichlet method are the Schur complement method with particular kinds of preconditioners.