Content deleted Content added
mNo edit summary |
No edit summary |
||
(50 intermediate revisions by 32 users not shown) | |||
Line 1:
{{No footnotes|date=December 2024}}
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.
==
Partial differential equations (PDEs) are used in all
{{block indent | em = 1.5 | text =
<math display="block">\begin{align}
&f(0,y) = 1; \; f(x,0) = f(x,1) = f(1,y) = 0
\end{align}</math>
}}
Here, the
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.
Line 18 ⟶ 23:
=== Solving on a computer ===
A typical way of doing this is to ''sample'' {{math|''f''}} at regular [[interval (mathematics)|intervals]] in the [[Square (geometry)|square]] {{math|[0,1]
There are some difficulties, for instance it
=== Solving linear problems ===
Whichever method we choose to solve this problem, we will need to solve a large [[linear system of equations]]. The reader
{{NumBlk||<math display="block">2a + 5b = 12</math>|{{EquationRef|<nowiki>*</nowiki>}}}}
<math display="block">6a - 3b = -3</math>
This is a system of 2 equations in 2 unknowns ({{mvar|a}} and {{mvar|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.▼
▲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 {{math|[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 {{EquationNote|*|(*)}}, 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,
<math display="block">2a = 12</math>
<math display="block">-3b = -3</math>
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
==== Domain decomposition algorithm ====
Unfortunately, for technical
There are two ways in which this can be better than solving the base
In fact, solving two
== A technical example ==
Here we assume that the reader is familiar with partial differential equations.
We will be solving the partial differential equation
{{NumBlk||<math display="block">u_{xx} + u_{yy} = f</math>|{{EquationRef|<nowiki>**</nowiki>}}}}
We impose boundedness at infinity.
We decompose the ___domain {{math|'''R'''<sup>2</sup>}} into two overlapping subdomains {{math|1=H<sub>1</sub> = {{open-closed|−∞, 1}} × '''R'''}} and {{math|1=H<sub>2</sub> = {{closed-open|0, +∞}} × '''R'''}}. In each subdomain, we will be solving a BVP of the form:
<math display="block"> \begin{align}
u_{xx}^{(j)} + u_{yy}^{(j)} &= f \;\; \text{ in } H_j \\
u^{(j)}(x_j, y) &= g(y)
\end{align}</math>
where {{math|1=''x''<sub>1</sub> = 1}} and {{math|1=''x''<sub>2</sub> = 0}} and taking boundedness at infinity as the other boundary condition. We denote the solution {{math|''u''<sup>( ''j'' )</sup>}} of the above problem by {{math|S(''f'',''g'')}}. Note that {{math|S}} is bilinear.
The Schwarz algorithm proceeds as follows:
#Start with approximate solutions {{math|''u''<sup>(1)</sup><sub>0</sub>}} and {{math|''u''<sup>(2)</sup><sub>0</sub>}} of the PDE in subdomains {{math|H<sub>1</sub>}} and {{math|H<sub>2</sub>}} respectively. Initialize {{mvar|k}} to 0.
#Calculate {{math|1=''u''<sup>(''j'')</sup><sub>''k'' + 1</sub> = S(''f'',''u''<sup>(3 − ''j'')</sup><sub>''k''</sub>(''x''<sub>''j''</sub>))}} with {{math|1=''j'' = 1, 2}}.
#Increase {{mvar|k}} by one and repeat 2 until sufficient precision is achieved.
==See also==
*[[Domain decomposition method]]
*[[Schwarz alternating method]]
== References ==
{{refbegin}}
* {{cite book | first1 = Barry | last1 = Smith | first2 = Petter | last2 = Bjørstad | first3 = William | last3 = Gropp | title = Domain Decomposition, Parallel Multilevel Methods for Elliptic Partial Differential Equations | publisher = Cambridge University Press | year = 1996 | isbn = 0-521-49589-X }}
* {{cite book | first1 = Andrea | last1 = Toselli | first2 = Olof B. | last2 = Widlund | title = Domain Decomposition Methods - Algorithms and Theory | series = Springer Series in Computational Mathematics, Vol. 34 | year = 2004 | isbn = 978-3-540-20696-5 }}
{{refend}}
== External links ==
▲:1) Begin with an approximate solution of the 64x64 system.
* [http://www.ddm.org The official Domain Decomposition Methods page]
▲:2) From the 64x64 system, create two 32x32 systems to improve the approximate solution.
▲:3) Solve the two 32x32 systems.
▲:4) Put the two 32x32 solutions "together" to improve the approximate solution to the 64x64 system.
▲:5) If the solution isn't very good yet, repeat from 2.
{{Numerical PDE}}
▲There are two ways in which this can be better than solving the base 64x64 system. First, if the number of repetitions of the algorithm is small, solving two 32x32 systems may be more efficient than solving a 64x64 system. Second, the two 32x32 systems need not be solved on the same computer, so this algorithm can be run in ''parallel'' to use the power of multiple computers.
[[Category:Domain decomposition methods]]
▲In fact, solving two 32x32 systems instead of a 64x64 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 16x16 problems, and there's a chance that solving these will be better than solving a single 64x64 problem even if the ___domain decomposition algorithm needs to iterate a few times.
|