Domain decomposition method
Encyclopedia
In mathematics
, the additive Schwarz method, named after Hermann Schwarz
, solves a boundary value problem
for a partial differential equation
approximately by splitting it into boundary value problems on smaller domains and adding the results.
s to model phenomena. For the purpose of exposition, we give an example physical problem and the accompanying boundary value problem (BVP). Even if the reader is unfamiliar with the notation, the purpose is merely to show what a BVP looks like when written down.
Here, the domain
is the square [0,1] × [0,1].
This particular problem can be solved exactly on paper, so there is no need for a computer. However, this is an exceptional case, and most BVPs cannot be solved exactly. The only possibility is to use a computer to find an approximate solution.
in the square
[0,1] × [0,1]. For instance, we could take 8 samples in the x direction at x = 0.1, 0.2, ..., 0.8 and 0.9, and 8 samples in the y direction at similar coordinates
. We would then have 64 samples of the square, at places like (0.2,0.8) and (0.6,0.6). The goal of the computer program
would be to calculate the value of f at those 64 points, which seems easier than finding an abstract function of the square.
There are some difficulties, for instance it is not possible to calculate fxx(0.5,0.5) knowing f at only 64 points in the square. To overcome this, one uses some sort of numerical approximation of the derivatives, see for instance the finite element method
or finite difference
s. We ignore these difficulties and concentrate on another aspect of the problem.
This is a system of 2 equations in 2 unknowns (a and b). If we solve the BVP above in the manner suggested, we will need to solve a system of 64 equations in 64 unknowns. This is not a hard problem for modern computers, but if we use a larger number of samples, even modern computers cannot solve the BVP very efficiently.
We see that this system has only 4 important pieces of information. This means that a computer program will have an easier time solving two 1×1 systems than solving a single 2×2 system, because the pair of 1×1 systems are simpler than the single 2×2 system. While the 64×64 and 32×32 systems are too large to illustrate here, we could say by analogy that the 64×64 system has 4160 pieces of information, while the 32×32 systems each have 1056, or roughly a quarter of the 64×64 system.
There are two ways in which this can be better than solving the base 64×64 system. First, if the number of repetitions of the algorithm is small, solving two 32×32 systems may be more efficient than solving a 64×64 system. Second, the two 32×32 systems need not be solved on the same computer, so this algorithm can be run in parallel to use the power of multiple computers.
In fact, solving two 32×32 systems instead of a 64×64 system on a single computer (without using parallelism) is unlikely to be efficient. However, if we use more than two subdomains, the picture can change. For instance, we could use four 16×16 problems, and there's a chance that solving these will be better than solving a single 64×64 problem even if the domain decomposition algorithm needs to iterate a few times.
We will be solving the partial differential equation
The boundary condition is boundedness at infinity.
We decompose the domain R² into two overlapping subdomains H1 = (− ∞,1] × R and H2 = [0,+ ∞ ) × R. In each subdomain, we will be solving a BVP of the form:
where x1 = 1 and x2 = 0 and taking boundedness at infinity as the other boundary condition. We denote the solution u( j ) of the above problem by S(f,g). Note that S is bilinear.
The Schwarz algorithm proceeds as follows:
Mathematics
Mathematics is the study of quantity, space, structure, and change. Mathematicians seek out patterns and formulate new conjectures. Mathematicians resolve the truth or falsity of conjectures by mathematical proofs, which are arguments sufficient to convince other mathematicians of their validity...
, the additive Schwarz method, named after Hermann Schwarz
Hermann Schwarz
Karl Hermann Amandus Schwarz was a German mathematician, known for his work in complex analysis. He was born in Hermsdorf, Silesia and died in Berlin...
, solves a boundary value problem
Boundary value problem
In mathematics, in the field of differential equations, a boundary value problem is a differential equation together with a set of additional restraints, called the boundary conditions...
for a partial differential equation
Partial differential equation
In mathematics, partial differential equations are a type of differential equation, i.e., a relation involving an unknown function of several independent variables and their partial derivatives with respect to those variables...
approximately by splitting it into boundary value problems on smaller domains and adding the results.
Overview
Partial differential equations (PDEs) are used in all scienceScience
Science is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe...
s to model phenomena. For the purpose of exposition, we give an example physical problem and the accompanying boundary value problem (BVP). Even if the reader is unfamiliar with the notation, the purpose is merely to show what a BVP looks like when written down.
- (Model problem) The heat distribution in a square metal plate such that the left edge is kept at 1 degree, and the other edges are kept at 0 degree, after letting it sit for a long period of time satisfies the following boundary value problem:
-
- fxx(x,y) + fyy(x,y) = 0
- f(0,y) = 1; f(x,0) = f(x,1) = f(1,y) = 0
- where f is the unknown functionFunction (mathematics)In mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...
, fxx and fyy denote the second partial derivativePartial derivativeIn mathematics, a partial derivative of a function of several variables is its derivative with respect to one of those variables, with the others held constant...
s with respect to x and y, respectively.
Here, the domain
Domain (mathematics)
In mathematics, the domain of definition or simply the domain of a function is the set of "input" or argument values for which the function is defined...
is the square [0,1] × [0,1].
This particular problem can be solved exactly on paper, so there is no need for a computer. However, this is an exceptional case, and most BVPs cannot be solved exactly. The only possibility is to use a computer to find an approximate solution.
Solving on a computer
A typical way of doing this is to sample f at regular intervalsInterval (mathematics)
In mathematics, a interval is a set of real numbers with the property that any number that lies between two numbers in the set is also included in the set. For example, the set of all numbers satisfying is an interval which contains and , as well as all numbers between them...
in the square
Square (geometry)
In geometry, a square is a regular quadrilateral. This means that it has four equal sides and four equal angles...
[0,1] × [0,1]. For instance, we could take 8 samples in the x direction at x = 0.1, 0.2, ..., 0.8 and 0.9, and 8 samples in the y direction at similar coordinates
Coordinate system
In geometry, a coordinate system is a system which uses one or more numbers, or coordinates, to uniquely determine the position of a point or other geometric element. The order of the coordinates is significant and they are sometimes identified by their position in an ordered tuple and sometimes by...
. We would then have 64 samples of the square, at places like (0.2,0.8) and (0.6,0.6). The goal of the computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
would be to calculate the value of f at those 64 points, which seems easier than finding an abstract function of the square.
There are some difficulties, for instance it is not possible to calculate fxx(0.5,0.5) knowing f at only 64 points in the square. To overcome this, one uses some sort of numerical approximation of the derivatives, see for instance the finite element method
Finite element method
The finite element method is a numerical technique for finding approximate solutions of partial differential equations as well as integral equations...
or finite difference
Finite difference
A finite difference is a mathematical expression of the form f − f. If a finite difference is divided by b − a, one gets a difference quotient...
s. We ignore these difficulties and concentrate on another aspect of the problem.
Solving linear problems
Whichever method we choose to solve this problem, we will need to solve a large linear system of equations. The reader may recall linear systems of equations from high school, they look like this:- 2a + 5b = 12 (*)
- 6a − 3b = −3
This is a system of 2 equations in 2 unknowns (a and b). If we solve the BVP above in the manner suggested, we will need to solve a system of 64 equations in 64 unknowns. This is not a hard problem for modern computers, but if we use a larger number of samples, even modern computers cannot solve the BVP very efficiently.
Domain decomposition
Which brings us to domain decomposition methods. If we split the domain [0,1] × [0,1] into two subdomains [0,0.5] × [0,1] and [0.5,1] × [0,1], each has only half of the sample points. So we can try to solve a version of our model problem on each subdomain, but this time each subdomain has only 32 sample points. Finally, given the solutions on each subdomain, we can attempt to reconcile them to obtain a solution of the original problem on [0,1] × [0,1].Size of the problems
In terms of the linear systems, we're trying to split the system of 64 equations in 64 unknowns into two systems of 32 equations in 32 unknowns. This would be a clear gain, for the following reason. Looking back at system (*), we see that there are 6 important pieces of information. They are the coefficients of a and b (2,5 on the first line and 6,−3 on the second line), and the right hand side (which we write as 12,−3). On the other hand, if we take two "systems" of 1 equation in 1 unknown, it might look like this:- System 1: 3a = 15
- System 2: 6b = −4
We see that this system has only 4 important pieces of information. This means that a computer program will have an easier time solving two 1×1 systems than solving a single 2×2 system, because the pair of 1×1 systems are simpler than the single 2×2 system. While the 64×64 and 32×32 systems are too large to illustrate here, we could say by analogy that the 64×64 system has 4160 pieces of information, while the 32×32 systems each have 1056, or roughly a quarter of the 64×64 system.
Domain decomposition algorithm
Unfortunately, for technical reason it is usually not possible to split our grid of 64 points (a 64×64 system of linear equations) into two grids of 32 points (two 32×32 systems of linear equations) and obtain an answer to the 64×64 system. Instead, the following algorithm is what actually happens:- 1) Begin with an approximate solution of the 64×64 system.
- 2) From the 64×64 system, create two 32×32 systems to improve the approximate solution.
- 3) Solve the two 32×32 systems.
- 4) Put the two 32×32 solutions "together" to improve the approximate solution to the 64×64 system.
- 5) If the solution isn't very good yet, repeat from 2.
There are two ways in which this can be better than solving the base 64×64 system. First, if the number of repetitions of the algorithm is small, solving two 32×32 systems may be more efficient than solving a 64×64 system. Second, the two 32×32 systems need not be solved on the same computer, so this algorithm can be run in parallel to use the power of multiple computers.
In fact, solving two 32×32 systems instead of a 64×64 system on a single computer (without using parallelism) is unlikely to be efficient. However, if we use more than two subdomains, the picture can change. For instance, we could use four 16×16 problems, and there's a chance that solving these will be better than solving a single 64×64 problem even if the domain decomposition algorithm needs to iterate a few times.
A technical example
Here we assume that the reader is familiar with partial differential equations.We will be solving the partial differential equation
- uxx + uyy = f (**)
The boundary condition is boundedness at infinity.
We decompose the domain R² into two overlapping subdomains H1 = (
- u( j )xx + u( j )yy = f in Hj
- u( j )(xj,y) = g(y)
where x1 = 1 and x2 = 0 and taking boundedness at infinity as the other boundary condition. We denote the solution u( j ) of the above problem by S(f,g). Note that S is bilinear.
The Schwarz algorithm proceeds as follows:
- Start with approximate solutions u( 1 )0 and u( 2 )0 of the PDE in subdomains H1 and H2 respectively. Initialize k to 1.
- Calculate u( j )k + 1 = S(f,u(3 − j)k(xj)) with j = 1,2.
- Increase k by one and repeat 2 until sufficient precision is achieved.