Let's say that I have a FEM code which yields the following problem: $$ \mathbf{A}\mathbf{x} = \mathbf{b}. $$ In order to solve this more efficiently with an iterative method, I would like to precondition it, $$ \mathbf{BAx} = \mathbf{Bb}, $$ using domain decomposition. This is a common application for domain decomposition methods. My question is: How do I retrieve $\mathbf{B}$ from a Schwarz domain decomposition method?
For example, the alternating Schwarz algorithm for the Poisson problem first solves this problem: $$ -\nabla^2u=f\quad\rm{in}\ \Omega_1,\\ u_1^n=g\quad \rm{on}\ \partial\Omega_1\backslash\Gamma_1,\\ u_1^n=u_2^{n-1}|_{\Gamma_1} $$
and then solves this problem: $$ -\nabla^2u=f\quad\rm{in}\ \Omega_2,\\ u_2^n=g\quad \rm{on}\ \partial\Omega_2\backslash\Gamma_2,\\ u_2^n=u_1^{n-1}|_{\Gamma_2} $$ where $\Omega = \Omega_1\cup \Omega_2$ is the global domain, and $\Gamma_i$ denotes the part of the boundary which overlaps the other subdomain. By solving these equations repeatedly, I get better and better estimates for the global solutions $u_1$ and $u_2$. Let's now say I want to use this to precondition $\mathbf{Ax} = \mathbf{b}$, how do I do that? How do I get the $\mathbf{B}$ matrix mentioend earlier from these solutions?
Ultimately, I am also interested in additive Schwarz and multiplicative Schwarz.