Direkt zum Inhalt

Lexikon der Mathematik: Mehrgitterverfahren

W. Hackbusch

Die Lösung linearer Gleichungssysteme ist ein Grundproblem einer Vielzahl von Anwendungen. Bei Anwendungen mit physikalischen Hintergrund (z. B. Kontinuums- oder Strömungsmechanik) treten Gleichungssysteme als Diskretisierung partieller Differentialgleichungen auf. Ihre Dimension ist im wesentlichen nur durch den zur Verfügung stehenden Speicherplatz noch oben beschränkt. Zur Zeit steht die Lösung von bis zu Millionen von Gleichungen an. Hierzu können nur Verfahren verwendet werden, deren Aufwand proportional zur Dimension des Gleichungssystems steigt. Seit man Computer einsetzt, versucht man, effizientere Lösungsverfahren zu konstruieren. Mehrgitterverfahren waren die ersten, die dieses Ziel für eine große Klasse von Problemen erreichten.

Die Mehrgittermethode enthält Komponenten, die problemabhängig gewählt werden müssen. Es handelt sich also eher um eine Lösungsstrategie als um einen feststehenden Algorithmus.

1 Die Mehrgitterhierarchie

Das Mehrgitterverfahren ist eine Iteration zur Lösung linearer oder nichtlinearer Gleichungen, die als Diskretisierung partieller Differential-gleichungen (vornehmlich von elliptischem Typ) entstehen. Der Diskretisierungshintergrund ist entscheidend, da er zu einer Hierarchie von diskreten Gleichungen führt. Ein Randwertproblem (Differentialgleichung samt Randbedingung) sei notiert als \begin{eqnarray}\begin{array}{cc}Lu=f.\end{array}\end{eqnarray}

Im einfachsten Fall kann zur Diskretisierung ein Differenzenverfahren mit der Gitterweite h verwendet werden. Die diskrete Gleichung lautet \begin{eqnarray}\begin{array}{cc}{L}_{h}{u}_{h}={f}_{h}.\end{array}\end{eqnarray}

Sei h0, h1 = h0/2, …, h = h0/2, … eine Folge von Schrittweiten, die für die maximale Stufenzahl = max die Schrittweite \(h={h}_{{\ell }_{\max }}\) aus (2) ergebe. Dann ist (2) die feinste Diskretisierung in der Diskretisierungshierarchie \begin{eqnarray}\begin{array}{cc}{L}_{0}{u}_{0}={f}_{0},\ldots, {L}_{\ell }{u}_{\ell }={f}_{\ell },\ldots\end{array}\end{eqnarray}

für = 0, …,max, wobei L die Abkürzung für \({L}_{{h}_{\ell }}\) ist (analog u, f).

Im Fall einer FE-Diskretisierung (“FE-” kürzt “Finite-Element-” ab) wird diese durch einen FE-Raum V beschrieben, der z. B. aus stückweise linearen Elementen über Dreiecken einer Triangulation 𝒯 bestehen kann. Falls diese Triangulation das letzte Element in einer Folge 𝒯0, 𝒯1, …, 𝒯, …, \({\mathcal{T}}_{{\ell }_{\max }}\) ist, wobei 𝒯+1 jeweils durch eine Verfeinerung der Triangulation 𝒯 entsteht, so gilt für die zugehörigen FE-Räume die Inklusion \begin{eqnarray}{V}_{0}\subset \cdots \subset {V}_{\ell -1}\subset {V}_{\ell }\subset \cdots \subset {V}_{{\ell }_{\max }}=V.\end{eqnarray}

Der größte FE-Raum \({V}_{{\ell }_{\max }}\) stimmt mit dem obigen Raum V überein, für den die FE-Diskretisierung gelöst werden soll. Jeder Raum V führt zu einer Diskretisierung Lu = f in der Hierarchie (3).

Mehrgitterverfahren lösen das Gleichungssystem \({L}_{{\ell }_{\max }}{u}_{{\ell }_{\max }}={f}_{{\ell }_{\max }}\), wobei sie von den Grobgitter-matrizen L(0 ≤ < max) Gebrauch machen. Die geschachtelte Iteration (siehe unten) löst sogar alle Gleichungen in (3).

2 Was leisten Mehrgitterverfahren?

Ziel aller schnellen Iterationsverfahren ist es, ein Gleichungssystem mit n Gleichungen und Unbekannten mit einem (Zeit- bzw. Rechen-)Aufwand proportional zu n zu lösen. Da ein Iterationsschritt mit einer schwachbesetzen Matrix n Operationen kostet, muß die gewünschte Genauigkeit mit einer festen Anzahl von Iterationsschritten erreichbar sein. Dies bedeutet, daß die Konvergenzgeschwindigkeit nicht nur < 1, sondern auch unabhängig von n (d. h. unabhängig vom Diskretisierungsparameter h bzw. der Dimension von V) sein muß.

Diese optimale Konvergenz kann ein Mehrgitterverfahren in sehr allgemeinen Fällen erreichen. “Allgemein” heißt hier, daß keine speziellen algebraischen Eigenschaften der Matrix L, insbesondere weder Symmetrie noch positive Definitheit, vorliegen müssen.

3 Struktur der Mehrgitteriteration

3.1 Glättungsiterationen

Übliche klassische Iterationsverfahren wie das Jacobi- oder das Gauß-Seidel-Verfahren oder die einfache Richardson-Iteration \begin{eqnarray}\begin{array}{cc}{\mathcal{S}}_{h}:({u}_{h},{f}_{h})\mapsto {u}_{h}-\frac{1}{||{L}_{h}||}({L}_{h}{u}_{h}-{f}_{h})\end{array}\end{eqnarray}

wirken als Glättungsiteration, d. h. sie reduzieren die oszillierenden Fehleranteile wesentlich besser als die glatten. Im symmetrisch positiv definiten Fall ist ∥Lh∥ = λn der größte Eigenwert. Die (oszillierenden) Eigenvektoren von Lh zu Eigenwerten in [λn/2, λn] werden durch (4) um den Faktor 0 ≤ 1 − ωλν ≤ 1/2 reduziert. Wenn (4) nur langsam konvergiert, liegt es an den Fehler-komponenten von \({u}_{h}-{u}_{h}^{exakt}\), die zu den niedrigen Eigenwerten gehören.

Wenige Schritte einer Glättungsiteration liefern eine Näherung \({\tilde{u}}_{h}\), deren Fehler \({\tilde{u}}_{h}-{u}_{h}^{exakt}\) “glatt” ist und damit im Gitter der gröberen Schrittweite H repräsentiert werden kann.

3.2 Zweigitterverfahren

Das Zweigitterverfahren, obwohl nicht für die praktische Anwendung geeignet, ist der wesentliche Schritt zur Konstruktion und der Analyse des Mehrgitterverfahrens. Es werden nur die Stufen und − 1 betrachtet, die der feinen Schrittweite h und der groben Schrittweite H (z. B. H = 2h) entsprechen. Die zugehörigen Matrizen aus (3) seien Lh und LH.

Zuerst wird aus dem Startwert uh mit wenigen Glättungsschritten \({\tilde{u}}_{h}\) erzeugt. Die Zahl der Glättungsschritte ist oft 2 oder 3. Der Defekt \begin{eqnarray}{d}_{h}:={L}_{h}{\tilde{u}}_{h}-{f}_{h}\end{eqnarray}

wird berechnet. Offenbar ist Lhδuh = dh die Gleichung für die exakte Korrektur: \({u}_{h}:={\tilde{u}}_{h}-\delta {u}_{h}\) erfüllt \begin{eqnarray}{L}_{h}{u}_{h}={L}_{h}{\tilde{u}}_{h}-{L}_{h}\delta {u}_{h}={d}_{h}+{f}_{h}-{d}_{h}={f}_{h}.\end{eqnarray}

Natürlich ist die direkte Lösung von Lhδuh = dh ebenso schwierig wie diejenige von Lhuh = fh. Da die Korrektur δuh aber gleichzeitig der Fehler \({\tilde{u}}_{h}-{u}_{h}^{exakt}\) und daher glatt ist, kann Lhδuh = dh näherungsweise im groben Gitter gelöst werden. Im Zweigitterfall wird \begin{eqnarray}\begin{array}{cc}{L}_{H}{\upsilon }_{H}=r{d}_{h}\end{array}\end{eqnarray}

direkt gelöst, wobei die Restriktion r eine geeignete lineare Abbildung vom Gitter der Schrittweite h in das gröbere Gitter H darstellt. Im eindimensionalen äquidistanten Fall mit H = 2h ist \begin{eqnarray}(r{d}_{h})(x):=\frac{1}{4}{d}_{h}(x-h)+\frac{1}{2}{d}_{h}(x)+\frac{1}{4}{d}_{h}(x+h)\end{eqnarray}

für alle x = 2νh (ν ∈ ℤ) eine kanonische Wahl.

Anschließend wird die Lösung υH von (5) mittels einer Prolongation p (Interpolation) vom H-Gitter in das feinere h-Gitter transportiert. Im eindimensionalen Fall übernimmt man die Werte υH(2νh) und interpoliert dazwischen linear: \((p{\upsilon }_{H})(x):={\scriptstyle \frac{1}{2}}{\upsilon }_{H}(x-h)+{\displaystyle \frac{1}{2}}{\upsilon }_{H}(x+h)\) für alle x = (2ν + 1)h (ν ∈ ℤ). Da H ein Ersatz für δuh ist und \({u}_{h}^{exakt}={\tilde{u}}_{h}-\delta {u}_{h}\) gilt, wird \begin{eqnarray}{u}_{h}^{neu}={\tilde{u}}_{h}-p{\upsilon }_{H}\end{eqnarray}

als neuer Iterationswert definiert. Oft ist p die adjungierte Abbildung zu r.

In algorithmischer Schreibweise lautet das Zweigitterverfahren der Stufe (h = h, h−1 = H):

function ZGM(ℓ, u, f): Gitterfunktion;

begin for i := 1 to ν do u := 𝒮(u, f); (vgl. (4))

d := L uf; (Defektberechnung)

d := rd; (Restriktion auf Stufe − 1)

\(\upsilon :={L}_{l-1}^{-1}d;\) (exakte Lsg. der Grobgittergl.)

u = u; (Grobgitterkorrektur)

ZGM := u (neue Iterierte)

end;

Die Abbildungen 𝒮, r und p sind im allgemeinen problemabhängig.

3.3 Mehrgitterverfahren

Im Zweigitterverfahren ZGM wird die Grobgittergleichung noch exakt gelöst. Im Mehrgitterfall ersetzt man die exakte Lösung durch Annäherung mittels γ Iterationen einer Zweigittermethode auf den Stufen − 1 und − 2. Gleiches geschieht auf der Stufe − 2, bis man auf der Stufe 0 (gröbstes Gitter, d. h. kleinste Anzahl von Gleichungen) exakt löst. Es entsteht der folgende rekursive Algorithmus:

function MGM(, u, f): Gitterfunktion;

if = 0 then \(u:={L}_{0}^{-1}f\) else

begin for i := 1 to ν do u := 𝒮(u, f);

d := r(L uf); (Defektrestriktion)

υ := 0; (Startwert für Korrektur)

for i := 1 to γ do υ := MGM( − 1, υ, d);

u = u; (Grobgitterkorrektur)

MGM := u (neue Iterierte)

end;

Gängige Werte für γ sind γ = 1 (sogenannter V-Zyklus) und γ = 2 (W-Zyklus). Obwohl bei γ = 2 eine Iteration auf der Stufe zu zwei Iterationen auf Stufe − 1, υier Iterationen auf Stufe − 2 usw. führt, nimmt der Rechenaufwand ab (im zweidimensionalen Fall und h−1 = 2h viertelt sich jeweils der Rechenaufwand für die Durchführung von 𝒮h, r und p.)

Der oben angegebene Algorithmus verwendet nur eine Vorglättung. Möglich ist auch die reine Nachglättung, d. h. u := 𝒮(u, f) nach der Grobgitterkorrektur u = u oder eine symmetrische Vor- und Nachglättung.

3.4 Geschachtelte Iteration

Bei einer diskretisierten Differentialgleichung ist es unnötig, solange zu iterieren, bis die letzte Dezimalstelle fixiert ist. Es reicht, wenn der Iterations-fehler \({u}_{\ell }-{u}_{\ell }^{exakt}\) die Größenordnung des ohnehin unvermeidlichen Diskretisierungsfehlers hat. Die Schwierigkeit bei diesem Abbruchkriterium ist, daß man oft den Diskretisierungsfehler nicht genau genug kennt. Hier bietet die geschachtelte Iteration eine elegante Lösung. Auch ohne Kenntnis des Diskretisierungsfehler liefert der Algorithmus eine Approximation der richtigen Güte.

\({u}_{0}:={L}_{0}^{-1}{f}_{0};\) (Lösung auf gröbstem Gitter)

for := 1 to max do begin u := pu−1; (Startwert auf Stufe )

for i := 1 to m do u := MGM(ℓ, u, f)

end;

Der entscheidende Punkt ist, daß der Startwert bereits einen Fehler in der Größenordnung des Diskretisierungsfehlers \({u}_{\ell }^{exakt}-p{u}_{\ell -1}^{exakt}\) besitzt. Als Iterationsanzahl reicht oft m = 1 aus! Im Prinzip kann die Mehrgitteriteration MGM durch jede andere ersetzt werden, wenn die Konvergenzrate nur unabhängig von der Dimension (d. h. von ) ist.

Die geschachtelte Iteration liefert Resultate für alle Stufen := 1, …, max. Trotzdem ist der Rechenaufwand für < max nur ein Bruchteil des ohnehin auftretenden Aufwandes für max.

4 Beispiel

Einfachstes Testbeispiel ist die Poisson-Gleichung \begin{eqnarray}-\Delta u:=-{u}_{xx}-{u}_{yy}=f{\quad}in\,\Omega =(0,1)\times (0,1)\end{eqnarray}

diskretisiert durch den 5-Punkt-Differenzenstern −Δhu := 4u(x, y) − u(xh, y) − u(x + h, y) − u(x, yh) − u(x, y + h) oder durch die FE-Methode mit stückweise linearen Funktionen auf einer regelmäßigen Triangulierung. Beide Verfahren führen bis auf einen Faktor zur gleichen Matrix in Lhuh = fh. Am Rand des Quadrates 5 werden Dirichlet-Werte vorgeschrieben. fh und die Randwerte seien so gewählt, daß sich uh(x, y) = x2 + y2 als diskrete Lösung von Lhuh = fh ergibt. Da Lh positiv definit ist, kann die gröbstmögliche Schrittweite h0 := 1/2 als Schrittweite der Stufe = 0 gewählt werden. Die weiteren Gitterweiten sind daher h = 2−1−. Die folgende Tabelle zeigt den Iterationsfehler \({e}_{m}:=||{u}_{\ell }^{(m)}-{u}_{\ell }^{exakt}|{|}_{\infty }\) nach m Mehrgitteriterationsschritten (Start mit \({u}_{\ell }^{(0)}=0\), W-Zyklus, 2 Vorglättungsschritte mit den Gauß-Seidel-Verfahren) auf der Stufe = 7 (entspricht h = 1/256 und 65025 Unbekannten).

Abbildung 1 zum Lexikonartikel Mehrgitterverfahren
© Springer-Verlag GmbH Deutschland 2017
 Bild vergrößern

Die letzte Spalte zeigt die Fehlerverbesserung, die der Konvergenzrate 0.067 entspricht. Ähnliche Raten ergeben sich für andere Schrittweiten. Die obigen Resultate werden nur zur Demonstration der Konvergenzgeschwindigkeit mit \({u}_{\ell }^{(0)}=0\) gestartet. Billiger ist die geschachtelte Iteration.

5 Nichtlineare Gleichungen

Die Kombination des Newton-Verfahrens mit dem oben beschriebenen Mehrgitterverfahren für das entstehende lineare System ist eine naheliegende Möglichkeit. Die Berechnung der Funktionalmatrix läßt sich aber sogar vermeiden, wenn man das nichtlineare System ℒ(u) = f mit dem nichtlinearen Mehrgitterverfahren löst. Sei \begin{eqnarray}{ {\mathcal L} }_{\ell }({u}_{\ell })={f}_{\ell }{\quad}f\ddot{u}r\,\ell =0,\cdots, {\ell }_{\max }\end{eqnarray}

die Hierarchie der diskreten Probleme. Die geschachtelte Iteration bestimmt neben den Näherungen \({\tilde{u}}_{\ell }\) auch deren Defekt \({\tilde{f}}_{\ell }:={ {\mathcal L} }_{\ell }({\tilde{u}}_{\ell })\):

löse \({ {\mathcal L} }_{0}({\tilde{u}}_{0})={f}_{0}\) approximativ; (zB mit Newton)

for := 1 to max do

begin \({\tilde{f}}_{\ell -1}:={ {\mathcal L} }_{\ell -1}({\tilde{u}}_{\ell -1});\) (Defekt von \({\tilde{u}}_{\ell -1}\)\({\tilde{u}}_{\ell }:=p{\tilde{u}}_{\ell -1};\) (Startwert auf Stufe )

for i := 1 to m do \({\tilde{u}}_{\ell }\) := NMGM( \({\tilde{u}}_{\ell }\), f)

end;

Die nachfolgend definierte Iteration NMGM verwendet \({\tilde{u}}_{\ell -1}{\tilde{f}}_{\ell -1}\) als Bezugspunkt der Stufe − 1.

function NMGM(, u, f): Gitterfunktion;

if = 0 then ”löse ℒ0(u)= f approximativ”

else begin for i := 1 to ν do u := 𝒮(u, f);

d := r(ℒ(u) − f); (Defektrestriktion)

ϵ := ϵ(d); (kleiner positiver Faktor)

\(\delta :={\tilde{f}}_{\ell -1}-\varepsilon * d;\)

\(\upsilon :={\tilde{u}}_{\ell -1};\) (Startwert für Korrektur)

for i := 1 to γ do v := NMGM( − 1, υ, δ);

\(u=u+p(\upsilon +{\tilde{u}}_{\ell -1})/\varepsilon;\);(Grobgitterkorrektur)

NMGM := u (neue Iterierte)

end;

Dabei ist 𝒮(u, f) eine nichtlineare Glättungsiteration für (u) = f. Das Analogon von (4) lautet \begin{eqnarray}{S}_{\ell }({u}_{\ell },{f}_{\ell })={u}_{h}-({ {\mathcal L} }_{\ell }({u}_{\ell })-{f}_{\ell })/||{ {\mathcal L} }_{\ell }||,\end{eqnarray}

wobei L(u)= ∂ℒ(u)/∂u. Der Faktor ϵ(d) kann z. B. als σ/||d|| mit kleinem σ gewählt werden.

Wenn L(u)Lipschitz-stetig ist und weitere technische Bedingungen erfüllt sind, läßt sich zeigen, daß die Iteration NMGM asymptotisch mit der Geschwindigkeit konvergiert, mit der die lineare Iteration MGM konvergiert, wenn sie auf das linearisierte Problem mit den Matrizen \({L}_{\ell }:=\partial {L}_{\ell }({u}_{\ell }^{exakt})/\partial {u}_{\ell }\) angewandt wird. Es sind auch andere Festsetzungen von \({\tilde{u}}_{\ell -1},{\tilde{f}}_{\ell -1},\varepsilon \) (wie im FAS-Verfahren) möglich (vgl. [1,§9]).

6 Eigenwertprobleme

Das kontinuierliche Eigenwertproblem zum Differentialoperator L aus (1) lautet Lu = λu, wobei u homogene Randbedingungen erfülle. Die Hierarchie diskreter Eigenwertaufgaben ist \begin{eqnarray}{L}_{\ell }{u}_{\ell }=\lambda {u}_{\ell }{\quad}f\ddot{u}r\,\ell =0,\ldots, {\ell }_{\max }\end{eqnarray}

(evtl. statt λI auch mit der Massematrix in λM). Wieder basiert das Zweigitterverfahren auf einer Glättung und einer Grobgitterkorrektur mit Hilfe des Defektes d = Luλu, nur ist die Interpretation von d als rechte Seite für die Bestimmung der Korrektur δu aus (LλI)δu = d problematisch, da LλI für den Eigenwert λ singulär ist. Trotzdem ist (LλI)δu = d lösbar, da die rechte Seite d im Bildraum liegt. Die Unbestimmtheit von δu ist harmlos, da sie gerade im Eigenraum liegt. Für die restringierte Ersatzgleichung (L − 1λI)υ − 1 = rd − 1 gilt diese Aussage nur näherungsweise, deshalb sind geeignete Projektionen erforderlich. Falls L nicht symmetrisch ist, können die Rechts- und Linkseigenvektoren simultan berechnet werden. In der Kombination mit dem Ritz-Verfahren kann eine Gruppe von Eigenpaaren gemeinsam behandelt werden (vgl. [1,§12]).

7 Lösung von Integralgleichungen

Fredholmsche Integralgleichungen zweiter Art haben die Gestalt λu = Ku + f (λ ≠ 0) mit dem Integraloperator \begin{eqnarray}(Ku)(x):=\displaystyle \mathop{\int }\limits_{D}k(x,y)u(y)dy{\quad}f\ddot{u}r\,x\in D,\end{eqnarray}

wobei der Kern k und die Inhomogenität f gegeben sind.

Die Picard-Iteration \(u\mapsto {u}^{neu}:={\displaystyle \frac{1}{\lambda }}(Ku-f)\) konvergiert nur für |λ| > ϱ(K), hat aber in vielen wichtigen Anwendungsfällen eine glättende Wirkung: Nichtglatte Funktionen e werden in nur einem Schritt in ein glattes \({\displaystyle \frac{1}{\lambda }}Ke\) abgebildet. Dies ermöglicht die folgende Mehrgitteriteration zweiter Art, wobei von der Hierarchie λu = Ku + f diskreter Gleichungen ausgegangen wird.

function MGM(, u, f): Gitterfunktion;

if = 0 then u := (λIK0)−1f else

begin \(u:={\displaystyle \frac{1}{\lambda }}({K}_{\ell }* u+f);\) (Picard-Iteration)

d := r(λuKuf); (Defektrestriktion)

υ := 0; (Startwert für Korrektur)

for i := 1 to 2 do υ := MGM( − 1, υ, d);

u = u; (Grobgitterkorrektur)

MGM := u (neue Iterierte)

end; {vgl. [1,§16]}

Wegen der starken Glättung zeigt diese Iteration Konvergenzraten \(O({h}_{\ell }^{\alpha })\) mit α > 0, die bei steigender Dimension (fallender Schrittweite h) immer schneller werden.

Der Operator K muß kein Integraloperator mit bekanntem Kern k sein. Die obige Iteration hat die gleichen Eigenschaften für die Fixpunktgleichung λu = Ku + f, solange K entsprechende glättende Wirkung besitzt.

Die nichtlineare Fixpunktgleichung λu = 𝒦(u) läßt sich mit dem Analogon des nichtlinearen Verfahrens aus Abschnitt 5 lösen.

8 Abschließende Bemerkungen

Es gibt eine reiche Literatur zur Mehrgitterbehandlung von Problemen, die von weiteren kritischen Parametern abhängen und mit speziellen Glättungen oder speziellen Grobgittern behandelt werden.

Verschiedene Mehrgittervarianten können (z. B. für positiv definite L) auch im Rahmen der Teilraum-Iterationen diskutiert werden. In diesem Falle sind die obigen Algorithmen die multiplikativen Entsprechungen der additiven Teilraum-Iterationen. Letztere haben deutlich andere Eigenschaften, was die Rolle der Glättung betrifft.

Mehrgitterverfahren lassen sich parallelisieren.

Im Falle lokaler (adaptiver) Gitterverfeinerungen läßt sich der Algorithmus anpassen.

Das erste Zweigitterverfahren wurde 1960 von Brakhage für Integralgleichungen beschrieben. Weiteres zur Geschichte der Mehrgitterverfahren findet sich in der Monographie [1] aus dem Jahr 1985. Der Band [3] zur ersten Mehrgitterkonferenz von 1981 enthält einen allgemeinen Einführungsteil. Die Monographie [4] geht auf strömungsdynamische Probleme ein. In [2] ist den Mehrgitterverfahren ein umfangreiches Kapitel gewidmet.

Literatur

[1] W. Hackbusch: Multi-Grid Methods and Applications. SCM 4. Springer-Verlag Berlin, 1985.

[2] W. Hackbusch: Iterative Lösung großer schwachbesetzter Gleichungssysteme, 2. Auflage. Teubner Stuttgart, 1993.

[3] W. Hackbusch und U. Trottenberg (Hrsg.): Multigrid Methods. Lecture Notes in Mathematics 960. Springer-Verlag Berlin, 1982.

[4] P. Wesseling: An Introduction to Multigrid Methods. Wiley Chichester, 1991.

Lesermeinung

Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.

  • Die Autoren
- Prof. Dr. Guido Walz

Partnervideos