Sie sind auf Seite 1von 188

Vorlesungsskript

Lineare Finite Elemente Methode

Prof. Dr.-Ing. habil. Jörg Schröder


Universität Duisburg-Essen
Fakultät für Ingenieurwissenschaften
Abteilung Bauwissenschaften
Institut für Mechanik

Sommersemester 2022

Prof. Dr.-Ing. habil. Jörg Schröder


Assistent: Yasemin Özmen, M.Sc.

Version: 11. Mai 2022


Lineare Finite Element Methode, c J. Schröder I

Inhaltsverzeichnis

1 Einleitung 1

2 Klassifizierung von partiellen Differentialgleichungen 2. Ordnung 2

3 Finite Differenzen Methode 6


3.1 Eindimensionale Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 Diskretisierung 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2 Differenzenquotienten 1D . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Beispiel: Stab mit konstantem Querschnitt. . . . . . . . . . . . . . . 9
3.1.4 Parabolische Probleme: Wärmeleitungsgleichung . . . . . . . . . . . 11
3.2 Zweidimensionale Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Diskretisierung 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2 Differenzenquotienten 2D . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Grundlagen der Variationsrechnung 21


4.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Klassische Methode, Euler-Lagrange-Gleichung . . . . . . . . . . . . . . . . 23
4.2.1 Randbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Zwangsbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Direkte Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1 Ritz’sche Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.2 Gewichtete Residualmethoden . . . . . . . . . . . . . . . . . . . . 33

5 Methode der Finiten Elemente: Verschiebungsmethode 39


5.1 Allgemeine Vorbetrachtungen . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 Illustration des Finite-Elemente-Konzepts . . . . . . . . . . . . . . . . . . . 42
5.2.1 Idealisierung des physikalischen Systems . . . . . . . . . . . . . . . 43
5.2.2 Das Assembly Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2.3 Bemerkungen zur Implementierung . . . . . . . . . . . . . . . . . . 49
5.3 Lineares 3D-Stabelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4 Balkentheorie für einfache Biegung . . . . . . . . . . . . . . . . . . . . . . 69
5.4.1 Balkentheorie nach Euler-Bernoulli . . . . . . . . . . . . . . . . . . 69
5.4.2 Vollständiges Stabelement/Balkenelement . . . . . . . . . . . . . . 77
5.4.3 Sonderfall: Schräges Auflager . . . . . . . . . . . . . . . . . . . . . 79
5.4.4 Balkentheorie nach Timoshenko . . . . . . . . . . . . . . . . . . . . 96
Lineare Finite Element Methode, c J. Schröder II

5.5 FEM in der linearen Elastizitätstheorie . . . . . . . . . . . . . . . . . . . . 115


5.5.1 Die Starke Form des Randwertproblems . . . . . . . . . . . . . . . 115
5.5.2 Die Schwache Form des Randwertproblems . . . . . . . . . . . . . . 115
5.5.3 FE-Diskretisierung im Rahmen der Verschiebungsmethode . . . . . 117
5.6 Elementformulierung der Elastostatik nach der Verschiebungsmethode . . . 118
5.6.1 Ebene Dreieckselemente mit linearen Ansätzen . . . . . . . . . . . . 118
5.6.2 Dreieckselemente mit quadratischem Verschiebungsansatz . . . . . . 120
5.6.3 Tetraederelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.7 Das isoparametrische Konzept . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.7.1 Ebenes Vierknoten-Element, Q1-Element . . . . . . . . . . . . . . . 130
5.7.2 Numerische Integration . . . . . . . . . . . . . . . . . . . . . . . . . 145

6 Gemischte FE-Methoden für das Darcy Problem 153


6.1 Grundlegender Gleichungssatz . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.2 Klassischer Ansatz: Ein-Feld-Formulierung . . . . . . . . . . . . . . . . . . 155
6.3 Primales Hellinger-Reissner Funktional . . . . . . . . . . . . . . . . . . . . 156
6.4 Duales (modifiziertes) Hellinger-Reissner Funktional . . . . . . . . . . . . . 159
6.5 Numerisches Beispiel zum Darcy Problem . . . . . . . . . . . . . . . . . . 160

Literatur 163

A Lösung linearer Gleichungssysteme 165


A.1 Matrix–Kalkül Reeller Matrizen, Definitionen . . . . . . . . . . . . . . . . 165
A.2 Lineare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
A.2.1 Gaußsches Eliminationsverfahren . . . . . . . . . . . . . . . . . . . 166
A.2.2 Gaußsches Eliminationsverfahren mit Pivotsuche . . . . . . . . . . . 170
A.2.3 Cholesky–Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

B Behandlung von Anfangswertproblemen 174


B.1 Vorbetrachtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
B.2 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
B.3 Lösungen zu den Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . 176
Lineare Finite Element Methode, c J. Schröder 1

1 Einleitung

Mit den rasanten Entwicklungen im Bereich der Computertechnologie und der Berech-
nungsverfahren hat der Einsatz numerischer Simulationsverfahren in allen Anwendungs-
bereichen des Ingenieurwesens und in der Forschung einen hohen Stellenwert eingenom-
men.
Bei der Behandlung von typischen Aufgabenstellungen der angewandten Mechanik gehen
wir im allgemeinen wie folgt vor:

1. Es wird eine geeignete mathematische Modellierung des Problems vorgenommen.


Das führt in der Regel auf eine kontinuierliche Problemstellung, die z.B. im Rahmen
der Kontinuumsmechanik aufgestellt wird. Sie wird durch ein System von (partiel-
len) Differentialgleichungen beschrieben.

2. Das kontinuierliche System wird ausschließlich durch ein geeignetes diskretes Pro-
blem approximiert. Die zu berechnenden Feldgrößen werden hierbei durch eine end-
liche Anzahl von Werten approximiert. Diesen Prozeß bezeichnen wir als Diskreti-
sierung, wobei wir zwischen der Diskretisierung des Gebiets und der Diskretisierung
des Differentialgleichungssystems unterscheiden.

3. Infolge des Diskretisierungsprozesses erhalten wir algebraische Gleichungssysteme,


die mit direkten oder iterativen Lösungsverfahren berechnet werden.

4. Nach der Lösung des diskreten Problems liegen als Ergebnis oft mehrere Millionen
Werte vor, die zur Interpretation der Ergebnisse visualisiert werden müssen.

Als Diskretisierungsverfahren kommen folgende Verfahren zur Anwendung:

• die Finite-Differenzen-Methode

• die Finite-Element-Methode

• die Finite-Volumen-Methode

• die Rand-Element-Methode.

In der Vorlesung „Numerische Methoden der Mechanik I” werden wir die Finite-
Differenzen-Methode und die Finite-Element-Methode für lineare Problemstellungen be-
handeln.
Im Bereich der Festkörpermechanik hat insbesondere die Finite-Element-Methode einen
besonderen Stellenwert eingenommen, da sie für die numerische Behandlung elliptischer
und parabolischer Probleme wegen ihrer Flexibilität die Behandlung komplizierter Auf-
gabenstellungen erlaubt.
Im Gegensatz zu den Differenzenverfahren und Finite-Volumen-Verfahren ist die Metho-
de der Finiten Elemente auf die Variationsformulierung der Differentialgleichungen zuge-
schnitten.
Lineare Finite Element Methode, c J. Schröder 2

2 Klassifizierung von partiellen Differentialgleichungen 2. Ord-


nung

In diesem Kapitel werden einige Grundlagen und Definitionen wiederholt, die für die
numerische Behandlung partieller Differentialgleichungen der Mechanik erforderlich sind.
Im folgenden wird eine Klassifizierung von partiellen Differentialgleichungen 2. Ordnung
vorgenommen, und es werden Prototypen zu den einzelnen Klassen vorgestellt.
Die lineare partielle Differentialgleichung in 2 Variablen x := (x1 , x2 )T und der unbekann-
ten Funktion u(x) lautet

A(x)u,11 +2B(x)u,12 +C(x)u,22 + · · · = F (x) (2.1)

für alle x im betrachteten Gebiet B.


Hierbei werden die partiellen Ableitungen durch

∂u ∂2u ∂2u
u,1 := ; u,11 := ; u,12 := ; ... (2.2)
∂x1 ∂x1 ∂x1 ∂x1 ∂x2

gekennzeichnet. Die Form der Lösung dieser Differentialgleichung hängt vom Vorzeichen
der Diskriminante
δ := AC − B 2 (2.3)

in dem betrachteten Gebiet ab. Man unterscheidet folgende 4 Fälle:



1. δ < 0 : hyperbolische DGL 


2. δ = 0 : parabolische DGL
(2.4)
3. δ > 0 : elliptische DGL 


4. δ ändert sein Vorzeichen: gemischter Typ

Das Vorzeichen der Diskriminante ist invariant gegenüber beliebigen Transformationen


der unabhängigen Variablen. Somit ist der Typ der Differentialgleichung eine Invariante
bzgl. der unabhängigen Variablen.
Bei der Klassifikation partieller Differentialgleichungen mit mehr als zwei unabhängigen
Variablen betrachten wir die Darstellung

X ∂ 2 u(x)
aik +··· = 0 (2.5)
i,k
∂xi ∂xk

mit der symmetrischen reellen Matrix A = (aik ). Sind die Koeffizienten aik keine Funk-
tionen des Ortes, so sprechen wir von einer linearen partiellen DGL zweiter Ordnung mit
konstanten Koeffizienten. Durch eine lineare Transformation kann die Gleichung (2.5) auf
die Gestalt
X ∂ 2 u(x)
κi +··· = 0 (2.6)
i
∂x2i

überführt werden, in der sämtliche Koeffizienten κi die Werte +1, −1 oder 0 annehmen.
Lineare Finite Element Methode, c J. Schröder 3

Den Vorzeichen entsprechend lassen sich folgenden Fälle unterscheiden:



1. Die DGL ist hyperbolisch, wenn alle Koeffizienten κi von null verschieden 



sind und ein κi ein entgegengesetztes Vorzeichen hat als die übrigen. 



2. Die DGL ist parabolisch, wenn einer der Koeffizienten κi verschwindet 


und die übrigen von null verschieden sind und das gleiche Vorzeichen aufweisen.
(2.7)
3. Die DGL ist elliptisch, wenn alle Koeffizienten von null verschieden sind 



und alle das gleiche Vorzeichen aufweisen. 



4. Eine Gleichung heißt parabolisch, hyperbolisch oder elliptisch, wenn sie 


für alle Punkte des Gebietes die entsprechende Eigenschaft aufweist.

Prototyp einer hyperbolischen Differentialgleichung: Wellengleichung


Die Bewegung einer Saite B mit B ∈ [0, l], die am rechten und linken Ende unverschieblich
gelagert ist, wird mit dem Gleichungssatz
1 
DGL : u,tt −u,11 = 0 x ∈ B , t ≥ 0 


c2 
Randbedingungen: u(0, t) = u(l, t) = 0 t ≥ 0 (2.8)
Anfangslage: u(x, 0) = u0 (x) x ∈ B 



Anfangsgeschwindigkeit u,t (x, 0) = v0 (x) x ∈ B

beschrieben. Der Parameter c > 0 charakterisiert hierbei die Ausbreitungsgeschwindigkeit


der Welle. Mit der Darstellung
c2 u,11 −u,tt = 0 (2.9)
identifizieren wir aus Gleichung (2.1) die Werte A = c2 , B = 0 und C = −1. Hiermit ist
die Diskriminante

δ = −c2 < 0 , (2.10)

d.h. die Wellengleichung ist hyperbolisch.


Prototyp einer parabolischen Differentialgleichung: Wärmeleitungsgleichung
Vereinfacht formuliert beschreiben parabolische Probleme Ausgleichsprozesse wie Diffusi-
on oder Wärmeleitung. Die Prozesse weisen mit der Zeit eine glättende Wirkung auf.
Es sei ϑ(x, t) die Temperaturverteilung in einem Punkt x = (x1 , x2 )T des Körpers B ⊂ IR2
mit dem Rand ∂B zur Zeit t. Der Wärmefluß h ergibt sich aus dem Fourierschen Gesetz
   
h1 ϑ,1
h = −κ grad ϑ(x, t) bzw. = −κ , (2.11)
h2 ϑ,2

wobei κ die Wärmeleitfähigkeitskonstante ist. Aus dem Energieerhaltungssatz erhalten


wir die klassische Wärmeleitungsgleichung (ohne thermomechanische Kopplung) in einem
Festkörper zu

ρcp ϑ,t = κ∇2 ϑ + ρr (2.12)

mit der konstanten Dichte ρ, der konstanten spezifischen Wärmekapazität cp , der vorhan-
P ∂2ϑ
denen Wärmequelle r und dem Laplaceoperator ∇2 ϑ = j 2 .
∂xj
Lineare Finite Element Methode, c J. Schröder 4

Bei parabolischen Problemen liegen Anfangsrandwertaufgaben vor. Das System wird voll-
ständig durch

DGL : ρcp ϑ,t = κ∇2 ϑ + ρr x ∈ B , t > 0 
Randbedingungen: ϑ(x, t) = ϑ0 (x) x ∈ ∂B , t ≥ 0 (2.13)

Anfangstemperatur: ϑ(x, 0) = ϑ1 (x) x ∈ B , t = 0

beschrieben. Betrachten wir o.E.d.A. den eindimensionalen Fall, so folgt aus der Gleichung
(2.13)1 die Darstellung

ρcp ϑ,t = κϑ,11 +ρr . (2.14)

Mit A = κ, B = 0 und C = 0 folgt aus Gleichung (2.3) die Diskriminante

δ = 0, (2.15)

d.h. die Diffusionsgleichung ist parabolisch.


Prototyp einer elliptischen Differentialgleichung: Potentialgleichung
Der klassische Vertreter elliptischer Differentialgleichungen ist die Potentialgleichung. Wir
betrachten ein Gebiet B ⊂ IR2 auf dem eine Funktion u(x) gesucht ist, die die Differenti-
algleichung 2. Ordnung
u,11 +u,22 = 0 (2.16)

erfüllt. Bei Problemen dieser Art sind entsprechende Randbedingungen für u zu formu-
lieren, z. B.
u=0 auf ∂B . (2.17)

Identifizieren wir wieder die Koeffizienten von Gleichung (2.1), so ist A = C = 1 und
B = 0. Die Diskriminante in Gleichung (2.3) ergibt sich zu

δ = 1 > 0, (2.18)

d.h. die Gleichung (2.16) ist elliptisch.


Anmerkung: Die Potentialgleichung ∇2 u = 0 ist ein Sonderfall der Poisson-Gleichung

∇2 u(x) = −f (x) . (2.19)

Zusammenfassung: Typeneinteilung bei linearen Differentialgleichungen zwei-


ter Ordnung in n Variablen
Die allgemeine DGL 2ter Ordnung hat die Form
n
X n
X
− aik (x)u,ik + bi (x)u,i +c(x)u = f (x) . (2.20)
i,k=1 i=1

Ist u(x) zweimal stetig differenzierbar, kann aus u,ik = u,ki auf die Symmetrie aik = aki
geschlossen werden. Die zugehörige Koeffizientenmatrix A ist symmetrisch.
Lineare Finite Element Methode, c J. Schröder 5

Es gelten folgende Klassifizierungen:



1. Die DGL in Gleichung (2.20) ist hyperbolisch im Punkt x, wenn A(x) 



einen negativen und n − 1 positive Eigenwerte hat. 



2. Die DGL in Gleichung (2.20) ist parabolisch im Punkt x, wenn A(x) 


positiv semidefinit ist.
(2.21)
3. Die DGL in Gleichung (2.20) ist elliptisch im Punkt x, wenn A(x) 



positiv definit ist. 



4. Die DGL hat die Eigenschaft 1., 2. oder 3., wenn sie für alle Punkte 


des Gebietes die Eigenschaft hat.

Die partiellen Differentialgleichungen können im allgemeinen auf die Darstellung



ü + L · u = f hyperbolischer Fall 
u̇ + L · u = f parabolischer Fall (2.22)

L·u = f elliptischer Fall

gebracht werden. Hierbei ist L ein elliptischer Differentialoperator, siehe Braess [6].
Definition von positiv definiten und semi-definiten Systemen:

xT · A · x > 0 ∀ x 6= 0 , so ist A positiv definit


(2.23)
xT · A · x ≥ 0 ∀ x 6= 0 , so ist A positiv semi-definit
Lineare Finite Element Methode, c J. Schröder 6

3 Finite Differenzen Methode

In diesem Kapitel betrachten wir die numerische Lösung gewöhnlicher und partieller Diffe-
rentialgleichungen mit dem Differenzenverfahren. Bei dieser Methode werden Näherungs-
werte der Lösung auf den Punkten eines Gitters bestimmt. Hierzu werden die Ableitungen
in den Differentialgleichungen durch Differenzenquotienten ersetzt. Dies liefert ein diskre-
tes Problem, welches auf ein algebraisches Gleichungssystem der Form Ax = f führt. Die
Lösung x ist die gesuchte Approximation des kontinuierlichen Problems an den Gitter-
punkten.

3.1 Eindimensionale Probleme

In diesem Abschnitt betrachten wir die Lösung einer gewöhnlichen Differentialgleichung


2. Ordnung mit der Finiten Differenzen Methode. Gesucht ist eine skalarwertige Funktion

u : B ∪ ∂B → IR (3.1)

auf dem Gebiet B ⊂ IR mit Rand ∂B, die bei gegebenem

f : B → IR und g : ∂B → IR (3.2)

die gegebene Differentialgleichung im Gebiet B mit Randbedingungen auf ∂B



u′′ (x) = −f (x) in B
(3.3)
u = g auf ∂B

erfüllt.

3.1.1 Diskretisierung 1D Bei den zunächst betrachteten eindimensionalen Problem-


stellungen (d = 1) ist das betrachtete Gebiet B ⊂ IR definiert durch

B := (0, l) mit l > 0. (3.4)

Für die Diskretisierung wählen wir die konstante Schrittweite h > 0, so dass

l=nh mit n ∈ IN (3.5)

gilt. Die Gitterpunkte im Gebiet B sind durch

Bh := {ih | i = 1, . . . , n − 1} (3.6)

definiert. Die Punkte auf dem Rand ∂B ergeben sich aus

∂Bh := {ih | i = 0 und i = n} . (3.7)


Lineare Finite Element Methode, c J. Schröder 7

1
0
0
1
11
00
h

00
11 0
1
00
11 0
1
1 2 3 x
0 n
Abbildung 1: Räumliche Diskretisierung des eindimensionalen Problems mit konstanter
Schrittweite h.

3.1.2 Differenzenquotienten 1D Für die Näherungen der Ableitungen betrachten


wir zunächst die Taylorreihenentwicklung einer eindimensionalen Funktion u(x + h) im
Punkt x,
1 1 1
u(x + h) = u(x) + u′ (x)h + u′′ (x)h2 + u′′′ (x)h3 + . . . (3.8)
1! 2! 3!
Für die erste Ableitung ergibt sich hieraus

u(x + h) − u(x) 1 ′′ 1 ′′′

u (x) = − u (x)h − u (x)h − . . . 
2 
h 2! 3! . (3.9)
′ u(x + h) − u(x) 

u (x) = + O(h)
h
Die Gleichung (3.9)2 wird als vorderer Differenzenquotient bezeichnet.

u(x)

zDQ
vDQ
hDQ

x−h x x+h x
Abbildung 2: Visualisierung des zentralen Differenzenquotienten (zDQ), hinteren Differen-
zenquotienten (hDQ) und vorderen Differenzenquotienten (vDQ) einer Funktion u(x).

Analog erhalten wir aus der Entwicklung von u(x − h) an der Stelle x die Darstellung
1 ′ 1 1
u(x − h) = u(x) − u (x)h + u′′ (x)h2 − u′′′ (x)h3 + . . . (3.10)
1! 2! 3!
Für die erste Ableitung erhalten wir

u(x) − u(x − h) 1 1 

u (x) = + u′′ (x)h − u′′′ (x)h2 + . . . 
h 2! 3! , (3.11)
′ u(x) − u(x − h) 

u (x) = + O(h)
h
wobei die Gleichung (3.11)2 als hinterer Differenzenquotient bezeichnet wird. Addieren
wir die Gleichungen (3.9) und (3.11), so erhalten wir den zentralen Differenzenquotienten
Lineare Finite Element Methode, c J. Schröder 8

als Approximation der ersten Ableitung von u(x)



u(x + h) − u(x − h) 1 

u (x) = − u′′′ (x)h2 + . . . 
2h 3! . (3.12)
u(x + h) − u(x − h) 

u′(x) = + O(h2)
2h
Für die Approximation der zweiten Ableitung addieren wir die Gleichungen (3.8) und
(3.10),

u(x + h) + u(x − h) = 2u(x) + u′′ (x)h2 + O(h4 ) (3.13)

und erhalten sofort


u(x + h) − 2u(x) + u(x − h)
u′′ (x) = + O(h2 ) . (3.14)
h2

Tabelle 1: Differenzenquotienten eindimensionaler Funktionen

u(x + h) − u(x)
1. vorderer DQ u′ (x) =
h
u(x) − u(x − h)
2. hinterer DQ ′
u (x) =
h
u(x + h) − u(x − h)
3. zentraler DQ u (x) =

2h
u(x + h) − 2u(x) + u(x − h)
4. 2te Ableitung u′′ (x) =
h2

Beispiel: Wir betrachten die Funktion u(x) = ex , siehe Abbildung 3. Die erste Ableitung
an der Stelle x = 0 berechnen wir mit einer Schrittweite h = 0.1. Die verschiedenen
Approximationen liefern

u′ (x = 0) = 1.05 vorderer DQ ,
u′ (x = 0) = 0.95 hinterer DQ ,
(3.15)
u′ (x = 0) = 1.0017 zentraler DQ ,
u′ (x = 0) = 1.0 exakter DQ .

u(x) = ex
u′ (x) = ex
6

Abbildung 3: Graphische Dar-


f (x)

4 stellung der Funktion u(x) = ex


und ihrer Ableitung.

0 0.5 1 1.5 2
x
Lineare Finite Element Methode, c J. Schröder 9

3.1.3 Beispiel: Stab mit konstantem Querschnitt. Als numerisches Beispiel be-
trachten wir einen beidseitig unverschieblich gelagerten Stab mit konstanter Querschnitts-
fläche A und konstantem Elastizitätsmodul E unter einer Streckenlast p(x) entsprechend
Abbildung 4.

p0 +∆p

11
00 p0

00
11
00
11 11
00
00
11 00
11
00
11 00
11 x

l
00
11
Abbildung 4: Modellproblem: Stab mit konstanter Steifigkeit EA und linear veränderlicher
Belastung p(x).

Das Modellproblem wird beschrieben durch eine gewöhnliche Differentialgleichung 2. Ord-


nung im Gebiet B und vorgegebenen Verschiebungen auf ∂B,

EAu′′ (x) = −p(x) 
u(x = 0) = 0 . (3.16)

u(x = l) = 0
Mit p(x) = p0 + ∆ p · x/l erhalten wir durch Integration von Gleichung (3.16)1 die
allgemeine Lösung
∆p 3 p0 2
u(x) = − x − x + c1 x + c2 (3.17)
6EAl 2EA
und nach Einarbeitung der Randbedingungen (3.16)2,3 die Lösung
 
∆p 3 p0 2 p0 l ∆pl
u(x) = − x − x + + x. (3.18)
6EAl 2EA 2EA 6EA
Im Rahmen der Finiten Differenzen Methode ist zunächst eine Diskretisierung des Pro-
blems durchzuführen. Bei der Einführung von n + 1 Gitterpunkten mit äquidistanter
Schrittweite h erhalten wir die Gebietsdiskretisierung Bh , siehe Abbildung 5.

1
0
0
1
11
00
h

00
11 0
1
00
11 0
1
1 2 3 x
0 n
Abbildung 5: Räumliche Diskretisierung des beidseitig unverschieblich gehaltenen Stabes.

Zunächst betrachten wir den Fall p(x) = p0 . Mit der Approximation der zweiten Ableitung
nach Tabelle 1 erhalten wir die Approximation der Feldgleichung für die individuellen
Gitterpunkte
ui+1 − 2ui + ui−1
EA = −p0 für i = 1, . . . , n − 1 (3.19)
h2
Lineare Finite Element Methode, c J. Schröder 10

und die diskreten Randverschiebungen lauten

u0 = 0 und un = 0 . (3.20)

Schreiben wir Gleichung (3.19) für jeden Gitterpunkt, so folgt


p0 2 
u0 − 2u1 + u2 = − h 
EA  
p0 2  
u1 − 2u2 + u3 = − h 
EA . (3.21)
.. 

. 
p0 2  

un−2 − 2un−1 + un = − h 
EA
Hieraus ergibt sich unter Berücksichtigung der Randbedingungen in Gleichung (3.20) das
lineare Gleichungssystem
    
2 −1 0 0 0 ... 0 u1 1
 −1 2 −1 0 0 . . . 0   u2   1 
    
 0 −1 2 −1 0 . . . 0   u3   1 
   h2  
 0 0 −1 2 −1 . . . 0     
   u4  = p0  1  . (3.22)
 .. ..   ..  EA  .. 
 . .     . 
  .   
 0 0 0 0 0 . . . −1   un−2   1 
0 0 0 0 0 ... 2 un−1 1
| {z } | {z } | {z }
A u f

Aufgabe: Berechnen Sie die Verschiebung u(x) des in Abb. 4 gezeigten Balkens für die
Lastbedingungen p0 = 1 und ∆p = 0. Zu diesem Zweck sind die Diskretisierungen n = 3,
n = 5, n = 11 zu berücksichtigen und die Ergebnisse mit der exakten analytischen Lösung
in Gleichung (3.18) zu vergleichen.
Die Lösung des Problems ist für verschiednene Diskretisierungen sind der Abbildung 6 zu
entnehmen. Die System- und Materialwerte sind hierbei: l = 1, A = 1, p0 = 1, E = 1.
● ●
0.12 ● ●
● ●
● ●

0.10 ● ●

0.08 ● ●
● ●
● n=3
(x)

u
0.06 ● n=5

● n=11
● ●
0.04
analytische Lösung

0.02

0.00● ●
0.0 0.2 0.4 0.6 0.8 1.0
x

Abbildung 6: Verschiebung u(x) des beidseitig unverschieblich gelagerten Stabs mit kon-
stantem Querschnitt für die Diskretisierungen n = 3, n = 5, n = 11 und Darstellung der
exakten Lösung.
Lineare Finite Element Methode, c J. Schröder 11

3.1.4 Parabolische Probleme: Wärmeleitungsgleichung In den vorangegange-


nen Abschnitten wurde eine elliptische Differentialgleichung betrachtet. Hier untersuchen
wir nun am Beispiel der Wärmeleitungsgleichung die approximative Lösung einer para-
bolischen Differentialgleichung,

ϑ,t (x, t) = c2 ϑ,xx (x, t) ∀ x ∈ B und t > 0 (3.23)

auf dem eindimensionalen Gebiet

B := (0, l) mit l > 0 . (3.24)

Die Temperatur–Randbedingungen sind

ϑ(0, t) = ϑ(l, t) = 0 für t > 0 (3.25)

und die Anfangstemperatur ist durch

ϑ(x, 0) = ϑ1 (x) für x ∈ B und t = 0 (3.26)

gegeben. Die räumliche Diskretisierung erfolgt analog zu Abschnitt 3.1.1, d.h. mit der
konstanten Schrittweite h

Bh := {ih | i = 1, . . . , n − 1} und ∂Bh := {ih | i = 0 und i = n} . (3.27)

Neben der räumlichen Diskretisierung ist eine Diskretisierung in der Zeit erforderlich,
hierzu wählen wir die Gitterschrittweite ∆t und erhalten mit

tj = j∆t für j = 0, 1, 2, . . . (3.28)

die diskreten Zeitpunkte tj . Bilden wir das Taylorsche Polynom in t zur diskreten Zeit tj ,
so folgt
∂ϑ(xi , tj ) ϑ(xi , tj + ∆t) − ϑ(xi , tj ) ∆t ∂ 2 ϑ(xi , µj )
= − (3.29)
∂t ∆t 2 ∂t2
mit µj ∈ (tj , tj+1). Ferner liefert das Taylorsche Polynom in x an der Stelle xi den Diffe-
renzenquotienten

∂ 2 ϑ(xi , tj ) ϑ(xi+1 , tj ) − 2ϑ(xi , tj ) + ϑ(xi−1 , tj ) h2 ∂ 4 ϑ(ξi , tj )


= − (3.30)
∂x2 h2 12 ∂x4
mit ξi ∈ (xi−1 , xi+1 ). Für die inneren Gitterpunkte erhalten wir schließlich unter Vernach-
lässigung des letzten Terms in Gleichung (3.29) und (3.30) mit (3.23) das Differenzen-
schema
ϑ(xi , tj+1 ) − ϑ(xi , tj ) ϑ(xi+1 , tj ) − 2ϑ(xi , tj ) + ϑ(xi−1 , tj )
− c2 = 0. (3.31)
∆t h2
Bezeichnen wir im folgenden ϑ(xi , tj ) mit ϑij , so ergibt sich durch Auflösen der Differen-
zengleichung (3.31) nach ϑi,j+1 die Form
 
2c2 ∆t c2 ∆t
ϑi,j+1 = 1 − ϑ ij + (ϑi+1,j + ϑi−1,j ) (3.32)
h2 h2
Lineare Finite Element Methode, c J. Schröder 12

für alle i = 1, . . . , (n − 1) und j = 1, 2, . . . . Zur Lösung des diskreten Problems gehen wir
wie folgt vor; mit der Vorgabe der Anfangstemperatur ϑ(x, 0) = ϑ1 (x) sind die Werte

ϑi0 = ϑ1 (xi ) ∀ i = 0, 1, . . . , n (3.33)

bekannt. Ferner ist durch die Randbedingung (3.25)

ϑ0j = ϑnj ∀ j = 1, 2, . . . (3.34)

gegeben. Mit α = c2 ∆t/h2 folgt für j = 0

ϑi1 = (1 − 2α)ϑi0 + α(ϑi+1,0 + ϑi−1,0 ) . (3.35)

j +1

x
0 xi −1 xi xi +1 n
Abbildung 7: Visualisierung des expliziten Verfahrens.

Mit dem Unbekanntenvektor für die diskreten Zeitpunkte tj mit j = 1, 2, ...

ϑ(j) := [ ϑ1j ϑ2j . . . ϑn−1,j ]T (3.36)

und dem gegebenen Startvektor infolge der Anfangstemperaturverteilung

ϑ(0) := [ ϑ1 (x1 ) ϑ1 (x2 ) . . . ϑ1 (xn−1 ) ]T (3.37)

ergibt sich aus dem Differenzenschema (3.35) für den Zeitpunkt t1 das Gleichungssystem

ϑ(1) = Aϑ(0) . (3.38)

Hierbei ist A ∈ IR(n−1)×(n−1) eine Tridiagonalmatrix der Form


 
(1 − 2α) α 0 ... 0
 α (1 − 2α) α ... 0 
 
 0 α (1 − 2α) . . . 0 
A= . (3.39)
 .. .. .. .. .. 
 . . . . . 
0 0 0 α (1 − 2α)
Lineare Finite Element Methode, c J. Schröder 13

Mit Gleichung (3.38) sind nun alle Lösungen zum Zeitpunkt t1 bekannt. Wiederholen wir
diesen Prozess für j = 2, so erhalten wir das Gleichungssystem

ϑ(j) = Aϑ(j−1) mit j = 2 . (3.40)

Eine wiederholte Auswertung von (3.40) für j = 3, 4, ... liefert die gesuchten Tempe-
raturen ϑ(j) an allen diskreten Punkten (xi , tj ). Die gesuchten Temperaturen berechnen
sich nur aus den bekannten Werten vorangegangener Berechnungsschritte. Dieses explizite
Verfahren wird auch als aufsteigendes Differenzenverfahren bezeichnet.
Anmerkung: Das aufsteigende Differenzenverfahren ist nur stabil, wenn der Spektralra-
dius
ρ(An ) ≤ 1 (3.41)
ist. Betrachten wir einen Fehler e(0) , den wir o.B.d.A. im Startschritt ansetzen, so ist

ϑ(1) = A(ϑ(0) + e(0) ) . (3.42)

In ϑ(1) hat sich demnach der Fehler mit Ae(0) fortgepflanzt. Im j−ten Zeitschritt ist der
Fehler
e(j) = A(j) e(0) . (3.43)
Das Verfahren ist also nur stabil, wenn sich die Fehler nicht mit j wachsen. Dies ist der
Fall, wenn Gleichung (3.41) gilt. Eine Auswertung dieser Bedingung liefert

∆t 1
c2 2
≤ , (3.44)
h 2
bei gegebener Schrittweite h ist die Zeitschrittweite ∆t somit beschränkt.
Implizites Verfahren: Stabilere Verfahren sind die sogenannten impliziten Differenzen-
verfahren. Solche Verfahren erhalten wir durch die Approximation

∂ϑ(xi , tj ) ϑ(xi , tj ) − ϑ(xi , tj−1)


≈ . (3.45)
∂t ∆t

j −1

x
0 xi −1 xi xi +1 n
Abbildung 8: Visualisierung Darstellung des impliziten Verfahrens.
Lineare Finite Element Methode, c J. Schröder 14

Setzen wir Gleichung (3.45) und (3.30) unter Vernachlässigung der Terme höherer Ord-
nung in die Differentialgleichung ein, so erhalten wir ein absteigendes Differenzenverfahren
der Form
ϑij − ϑi,j−1 ϑi+1,j − 2ϑij + ϑi−1,j
− c2 = 0, (3.46)
∆t h2
für alle i = 1, . . . , n − 1 und j = 1, 2, . . . . Die wiederholte Anwendung dieser Prozedur
liefert
Aϑ(j) = ϑ(j−1) (3.47)
mit der Tridiagonalmatrix
 
(1 + 2α) −α 0 ... 0
 −α (1 + 2α) −α ... 0 
 
 0 −α (1 + 2α) ... 0 
A= . (3.48)
 .. .. .. .. .. 
 . . . . . 
0 0 0 −α (1 + 2α)

Dies ist ein implizites Verfahren (absteigendes Differenzenverfahren).

Beispiel: Vergleich des expliziten und impliziten Lösungsverfahrens Wir be-


trachten den in Abbildung 9 dargestellten Körper der an seinem linken und rechten Ende
eine konstante Temperatur von 20◦ C hat. Die Initaltemperatur des Körpers wird mit
ϑ = 40◦ C beschrieben, während in der Mitte des Körpers eine Temperatur von ϑ = 60◦ C
angenommen wird. Es gelten c = 1 kJ/(kg · K) und L = 1 m. Für eine Diskretisierung mit
n = 10 Gitterpunkten erhalten wir hx = 0.1. Zu bestimmen ist die Temperaturverteilung
im Gebiet im zeitlichen Verlauf. Hierbei sollen das explizite und implizite Differenzenver-
fahren untersucht werden.

ϑ = 40◦ C ϑ = 60◦ C ϑ = 40◦ C


ϑ = 20◦ C ϑ = 20◦ C
= konst. = konst.
0 1 2 3 4 5 6 7 8 9 10
hx
x
l
Abbildung 9: Diskretisierung eines Körpers unter Temperaturbelastung

Lösung des Randwertproblems mit dem impliziten Zeitdiskretisierungsverfah-


ren Abbildung 10 zeigt die Lösung für das Randwertproblem zu unterschiedlichen Zeit-
punkten t im impliziten Verfahren mit einer Zeitschrittweite von ∆t = 0.01. Wir erhalten
wir eine gute Lösung für das Problem.
Lineare Finite Element Methode, c J. Schröder 15

60

55

50

45

(x)
40

35

30

25

20
0 0.2 0.4 0.6 0.8 1
x

Abbildung 10: Lösungen mit implizitem Verfahren mit ∆t = 0.01

Bedingung für ∆t im expliziten Verfahren Für das explizite Verfahren wurde mit
Gleichung (3.44) eine hinreichende Bedingung für die Wahl von ∆t in Abhängigkeit der
anderen gegebenen Größen angegeben

h2x 0.12
∆t ≤ 0.5 = 0.5 = 0.005 .
c2 12

10 46
60 6

55
4
50
2
45
(x)
(x)

40 0

35
-2
30
-4
25

20 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x x

(a) Explizites Verfahren mit ∆t = 0.005 (b) Explizites Verfahren mit ∆t = 0.01

Abbildung 11: Vergleich von Lösungen mit unterschiedlichen Zeitschrittweiten für das
explizite Lösungsverfahren

Lösung des Randwertproblems mit dem expliziten Zeitdiskretisierungsverfah-


ren In Abbildung 11 sind die Lösungen für das Randwertproblem mit unterschiedlichen
Zeitschrittweiten im expliziten Verfahren dargestellt. Wir erkennen deutlich, dass die Zeit-
schrittweite von ∆t = 0.01 im expliziten Verfahren zu einer unphysikalischen und falschen
Lösung führt, vergleiche Abb. 11b. Eine adäquate Lösung liefert das explizite Verfahren
jedoch für ∆t = 0.005, siehe Abb. 11a.

Übung: Leiten Sie das Differenzenverfahren für hyperbolische Differentialgleichungen am


Beispiel der Wellengleichung her.
Lineare Finite Element Methode, c J. Schröder 16

3.2 Zweidimensionale Probleme

Im Folgenden betrachten wir zunächst die Finite Differenzen Methode (FDM) anhand
der Poisson-Gleichung (elliptische Gleichung) auf einem zweidimensionalen, rechteckigen
Gebiet B. Der Rand des Gebietes wird mit ∂B bezeichnet. Die konkrete Aufgabenstellung
lautet: Bestimme eine Funktion
u : B ∪ ∂B → IR (3.49)
bei gegebenen Funktionen

g : ∂B → IR und f : B → IR , (3.50)

so dass

−∇2 u = f in B
(3.51)
u = g auf ∂B

gilt. Hierbei kennzeichnet ∇2 u = u,11 +u,22 den Laplaceoperator. Die gesuchte Funkti-
on u(x1 , x2 ) läßt sich als elektromagnetisches Potential, Verschiebung einer elastischen
Membran oder Gleichgewichts–Temperaturverteilung in der Ebene interpretieren. Ist bei-
spielsweise die stationäre Temperaturverteilung gefordert, so ist f = fˆ(x, y) = 0 und wir
erhalten die Laplacegleichung ∇2 u = 0. Die Randbedingung (3.51)1 schreibt die Tempera-
tur u(x, y) auf dem Rand ∂B des Gebiets B vor, diese Art der Randbedingung bezeichnen
wir als Dirichlet-Randbedingung.

3.2.1 Diskretisierung 2D Im Rahmen der FDM wird eine Näherungslösung der


Randwertaufgabe an endlich vielen Punkten, den Gitterpunkten, in B ∪ ∂B berechnet.
Hierzu werden die Ableitungen durch Differenzenquotienten in den diskreten Funktions-
werten an den Gitterpunkten angenähert. Hieraus ergibt sich ein algebraisches Gleichungs-
system für die Näherungslösungen in den diskreten Punkten. Dieser Vorgang wird als
Diskretisierung bezeichnet.

∈ Bh
∈ ∂Bh
randfern
randnah

hy

hx

Abbildung 12: Diskretisierung des Gebiets B = (0, lx )×(0, ly ) liefert Bh mit (nx +1)·(ny +1)
Gitterpunkten.
Lineare Finite Element Methode, c J. Schröder 17

Zunächst betrachten wir eine zweidimensionale Problemstellung (d = 2) und wählen für


die Diskretisierung Schrittweiten hx , hy > 0 in beide Richtungen. In Abbildung 12 ist ein
rechteckiges Gebiet
B := (0, lx ) × (0, ly ) mit lx , ly > 0 (3.52)
dargestellt. Der Einfachheit halber ist hier eine äquidistante Schrittweite hx in x-Richtung
und hy in y-Richtung gewählt, d.h.

lx = nx hx und ly = ny hy mit nx , ny ∈ IN . (3.53)

Die Gitterpunkte im Gebiet B sind über

Bh := {(ihx , jhy ) | i = 1, . . . , nx − 1; j = 1, . . . , ny − 1} (3.54)

und die Gitterpunkte auf dem Rand ∂B über

∂Bh := {(ihx , jhy ) | i ∈ {0, nx }, j ∈ {0, . . . , ny } oder i ∈ {0, . . . , nx }, j ∈ {0, ny }} (3.55)


S
definiert. Die Gesamtheit der Gitterpunkte ergibt sich aus Bh ∂Bh .

3.2.2 Differenzenquotienten 2D Die zentrale Differenzenformel für jeden Punkt im


Inneren des betrachteten Gebietes lautet für die Variable x bezüglich xi

∂ 2 u(xi , yj ) u(xi+1 , yj ) − 2u(xi , yj ) + u(xi−1 , yj ) h2x ∂ 4 u(ξi , yj )


= − (3.56)
∂x2 h2x 12 ∂x4

für ξi ∈ [xi−1 , xi+1 ]. Analog erhalten wir mit dem Taylorpolynom für y an der Stelle yj
die zentrale Differenzenformel

∂ 2 u(xi , yj ) u(xi , yj+1) − 2u(xi , yj ) + u(xi , yj−1) h2y ∂ 4 u(xi , ηj )


= − (3.57)
∂y 2 h2y 12 ∂y 4

für ηj ∈ [yj−1, yj+1]. Setzen wir Gleichung (3.56) und (3.57) in die Poisson-Gleichung ein,
so erhalten wir bei Vernachlässigung der Terme O(h2x ) und O(h2y )

u(xi+1 , yj ) − 2u(xi , yj ) + u(xi−1 , yj ) 


 (
h2x  i = 1, 2, . . . , (nx − 1)
u(xi , yj+1) − 2u(xi , yj ) + u(xi , yj−1) ∀ (3.58)
+ 
 j = 1, 2, . . . , (ny − 1).
h2y 


= f (xi , yj )

Für die Randbedingungen setzen wir

u(xi , y0) = g(xi , y0 ) und u(xi , ym) = g(xi , ym ) ∀ i = 1, 2, . . . , (nx − 1) (3.59)

und

u(x0 , yj ) = g(x0 , yj ) und u(xn , yj ) = g(xn , yj ) ∀ j = 0, 1, . . . , ny . (3.60)


Lineare Finite Element Methode, c J. Schröder 18

Bezeichnen wir im folgenden mit uij die Approximation von u(xi , yj ), so lautet die Diffe-
renzengleichung der zentralen Differenzenmethode:
"  #  2 
2
hx hx 
2 + 1 uij − (ui+1,j + ui−1,j ) − (ui,j+1 + ui,j−1) = −hx f (xi , yj ) 
2 

hy hy 



∀ i = 1, 2, . . . , (nx − 1) und j = 1, 2, . . . , (ny − 1) (3.61)
.


u0j = g(x0 , yj ) , unj = g(xn , yj ) , ui0 = g(xi , y0) , uim = g(xi , ym ) 





∀ i = 1, 2, . . . , (nx − 1) ; j = 1, 2, . . . , (ny − 1)

Für hx = hy = h erhalten wir den sogenannten Standard-Fünf-Punkte-Stern


 
0 −1 0
1 
−1 4 −1  . (3.62)
h2
0 −1 0

Beispiel: Berechnung der stationären Temperaturverteilung in einer dünnen, quadrati-


schen Metallplatte mit den Seitenlängen lx = ly = l = 0.5m. Die vorgegebenen Randtem-
peraturen sind der Abbildung 13 zu entnehmen.

ϑ = 100◦C

l = 0.5m

y
x

l = 0.5m
Abbildung 13: Quadratische Platte mit vorgegebener Randtemperatur.

Die Aufgabe wird durch die Laplace-Gleichung


∂2ϑ ∂2ϑ
(x, y) + (x, y) = 0 ∀ (x, y) ∈ B (3.63)
∂x2 ∂y 2
beschrieben. Das Gebiet B ist definiert über

B := {(x, y)|0 < x < 0.5 , 0 < y < 0.5} (3.64)

und die Randtemperaturen sind

ϑ(0, y) = 0 , ϑ(x, 0) = 0 , ϑ(x, 0.5) = 200x , ϑ(0.5, y) = 200y . (3.65)

Gesucht ist die Lösung für nx = ny = 4. Vergleichen Sie die numerischen Ergebnisse mit
der exakten Lösung

ϑ(x, y) = 400xy . (3.66)


Lineare Finite Element Methode, c J. Schröder 19

ϑ(x; 0.5) = 200x

21 22 23 24 25

16 17 18 19 20
ϑ=0 ϑ(0.5; y) = 200y
11 12 13 14 15

6 7 8 9 10

1 2 3 4 5
ϑ=0
Abbildung 14: Diskretisierung der Metallplatte mit 9 Gitterpunkten im Gebiet und 16
Randpunkten.

Die Metallplatte wird in 16 Felder eingeteilt, siehe Abbildung 14.


Die Temperaturen auf den Randknoten sind durch die vorgegebenen Randbedingungen
bekannt. Die restlichen 9 Gitterpunkte werden gemäß Abbildung 14 durchnummeriert.
Nach Gleichung (3.61)1 erhalten wir für hx = hy = h zunächst mit ϑ ≡ u den Ausdruck

4ϑi,j − (ϑi+1,j + ϑi−1,j ) − (ϑi,j+1 + ϑi,j−1) = −h2 f (xi , yj ) . (3.67)

Werten wir Gleichung (3.67) für den Punkt 7 mit i = 1 und j = 1 aus, so folgt

4ϑ1,1 − (ϑ2,1 + ϑ0,1 ) − (ϑ1,2 + ϑ1,0 ) = 0 (3.68)

bzw. bei einer einfach indizierten Durchnummerierung entsprechend obiger Abbildung mit
ϑ1,1 =: ϑ7 , ϑ1,2 =: ϑ8 , ϑ2,1 =: ϑ12 usw.

4ϑ7 − (ϑ8 + 0) − (ϑ12 + 0) = 0 . (3.69)

Das zu lösende Gleichungssystem ergibt sich durch Anwendung des Differenzenschemas


für alle inneren Gitterpunkte zu:
    
4 −1 0 −1 0 0 0 0 0 ϑ7 0
 −1 4 −1 0 −1 0 0 0  
0   ϑ8   0 
   
 0 −1 4 0 0 −1 0 0 0     
   ϑ9   25 
 −1 0 0 4 −1 0 −1 0 0 
   
  ϑ12   0 
 0 −1 0 −1 4 −1 0 −1 0   =  (3.70)
   ϑ13   0 
 0 0 −1 0 −1 4 0 0 −1  
   
  ϑ14   50 
 0 0 0 −1 0 0 4 −1 0 
   
  ϑ17   25 
 0 0 0 0 −1 0 −1 4 −1   ϑ18   50 
0 0 0 0 0 −1 0 −1 4 ϑ19 150
Lineare Finite Element Methode, c J. Schröder 20

Die Lösung dieses Gleichungssystems ist:


 
6, 25
 12, 5 
 
 18, 75 
 
 12, 5 
 
ϑ=
 25, 0 

 37, 5 
 
 18, 75 
 
 37, 5 
56, 25

Die Lösung ist exakt.


Lineare Finite Element Methode, c J. Schröder 21

4 Grundlagen der Variationsrechnung

4.1 Vorbereitung

Variationsmethoden können als die fundamentale Grundlage für die Finite-Elemente-


Methode und andere numerische Techniken angesehen werden. Darüber hinaus spielen
sie in der Physik eine große Rolle, z.B. ist es möglich, die grundlegenden Gleichungen der
Newtonschen Mechanik aus einem Variationsprinzip abzuleiten.
Bei den Variationsmethoden kann zwischen klassischen Methoden und direkten Metho-
den unterschieden werden. Die klassischen Methoden führen zu den sogenannten Euler-
Lagrange-Differentialgleichungen (Euler-Differentialgleichungen) als notwendige Voraus-
setzung für die Lösung des Variationsproblems. Exakte Lösungen der Differentialgleichun-
gen können nur in einigen einfachen Fällen konstruiert werden. Im Gegensatz dazu gehen
die direkten Methoden direkt vom Funktional aus. In der Regel werden für die Approxima-
tion der realen Lösung Ansatzfunktionen mit zunächst unbekannten Parametern gewählt.
Die Parameter können aus einigen für die Lösung des Variationsproblems notwendigen
Bedingungen berechnet werden. Eine beliebte Technik ist die bekannte Ritz-Methode.
Im Folgenden geben wir einen kurzen Überblick über einige klassische Teile der Variati-
onsrechnung. Die Hauptaufgabe besteht darin, Extremwerte eines funktionellen Variati-
onsproblems zu finden Z b
Π(u) = f (x, u(x), u′(x)) dx, (4.1)
a
wobei der Integrand von Π von der unbekannten Funktion u(x) und ihrer Ableitung u′ (x)
bestimmt wird. Für die Funktion und ihre Ableitungen müssen wir einige Rand- und
Nebenbedingungen definieren. Mögliche Randbedingungen für u(x) sind

u(a) = ua und u(b) = ub . (4.2)

Die Hauptaufgabe in der Variationsrechnung besteht also darin, eine Funktion u(x) zu
finden, für die die Funktion Π(u) ein Extremum hat, d.h,

Π(u) = extrem! . (4.3)

Die Funktionen u(x), die (4.3) erfüllen, sind die sogenannten Extremwerte. Im Folgenden
gehen wir davon aus, dass alle betrachteten Funktionen ausreichend glatt sind, d.h. alle
Operationen wie Differenzierung und teilweise Integration möglich sind und Ergebnisse
mit den erforderlichen Eigenschaften liefern.
Motiviert durch das von Johann Bernoulli (1696) formulierte Brachistochrone-Problem
entwickelte Euler ein Verfahren zur Lösung dieser Art von Problemen. Seine Grundidee
war also die Konstruktion einer Vergleichskurve (Vergleichsfunktion) ũ(x) für das Extre-
mal u(x) mit
ũ(x) = u(x) + ǫη(x), (4.4)
wobei ǫ ein kleiner Wert ist und die beliebige kontinuierliche Funktion η(x) an den Grenzen
verschwindet, siehe Abbildung 15.
Für alle zulässigen Funktionen ũ(x) hat die reale Funktion

Πǫ (ǫ) := Π(ũ(x)) = Π(u(x) + ǫη(x)) (4.5)


Lineare Finite Element Methode, c J. Schröder 22

u(x)

ub
ũ(x)
δu(x)
u(x)
ua

a b x

Abbildung 15: Randbedingungen ua und ub , Extremal u(x), Vergleichsfunktion ũ(x) und


Variation des Extremwertes δu(x)

d
ein Extremum für ǫ = 0, daher ist die notwendige Bedingung Πǫ (ǫ) = 0.
dǫ ǫ=0
Lassen Sie uns nun die Notation der ersten Variation oder der so genannten Gâteaux-
Ableitung einführen, definiert durch

d 1
Π(u + ǫη) = lim [Π(u + ǫη) − Π(u)] . (4.6)
dǫ ǫ=0
ǫ→0 ǫ

Eine notwendige Bedingung für die Lösung von (4.3) ist, dass für alle zulässigen Ver-
gleichsfunktionen ũ(x) die Gâteaux-Variation verschwindet,

d
δΠ(u; η) = 0 mit δΠ(u; η) = Π(u + ǫη) ǫ. (4.7)
dǫ ǫ=0

Bemerkung: Formal werden Variationen der k-ten Ordnung des Funktionalen bezeichnet
durch
dk
δ k Π(u; η) := k Π(u + ǫη) ǫk . (4.8)
dǫ ǫ=0
Lineare Finite Element Methode, c J. Schröder 23

4.2 Klassische Methode, Euler-Lagrange-Gleichung

Wie oben erwähnt, suchen wir Funktionen u(x), für die die Funktion Π(u) ein Extremum
hat. Im Folgenden folgen wir den Aussagen von Standardlehrbüchern über die Variations-
rechnung, z.B. [21], [18], [14]. Für die folgende Analyse definieren wir eine vergleichbare
Funktion (oder Testfunktion)
ũ(x) = u(x) + ǫη(x),
siehe (4.4) mit einem kleinen Parameter ǫ und der beliebigen Funktion η(x), die die
homogenen Randbedingungen erfüllt

η(a) = 0 und η(b) = 0. (4.9)

Als Variation des Extremals definieren wir

δu(x) := ũ(x) − u(x) = ǫη(x), (4.10)

wobei δu(x) als eine virtuelle Funktion interpretiert werden könnte, die die homogenen
Randbedingungen erfüllt
δu(a) = 0 und δu(b) = 0. (4.11)
Durch Einsetzen der Vergleichsfunktion ũ(x) in das Potential Π ergibt sich die Abhängig-
keit von Π(ũ) = Π(ǫ). Daraus folgt
Z b Z b

Π(ũ) = f (x, ũ, ũ )dx = f (x, u + ǫη, u′ + ǫη ′ )dx =: Πǫ (ǫ) . (4.12)
a a

Offensichtlich erhalten wir für ǫ = 0 das Extremum Πǫ (0) = Π(u). Eine Entwicklung der
Taylor-Reihe von Πǫ (ǫ) ergibt

dΠǫ 1 d2 Πǫ
Πǫ (ǫ) = Πǫ (0) + ǫ+ ǫ2 + . . . , (4.13)
dǫ ǫ=0 2! dǫ2 ǫ=0

oder in einer kompakteren Notation


1 2
Πǫ (ǫ) = Π(u, u′) + δΠ(u + ǫη) + δ Π(u + ǫη) + . . . . (4.14)
2!
Der Austausch von Integration und Differenzierung führt für die erste Variation zu
Z b
d
δΠ(u) = ǫ f (x, u + ǫη , u′ + ǫη ′ ) dx. (4.15)
a dǫ | {z } | {z }
ũ ũ′ ǫ=0

In der letzteren Gleichung identifizieren wir das zweite Argument von f mit ũ und das
dritte Argument mit der Ableitung der Vergleichsfunktion

ũ′ (x) = u′ (x) + ǫη ′ (x), (4.16)

also schreiben wir unter Anwendung der Kettenregel


Z b  Z b 
∂f ∂ ũ ∂f ∂ ũ′ ∂f ∂f ′
δΠ(u) = + ′ dx ǫ = η+ ′ η dx ǫ .
a ∂ ũ ∂ǫ ∂ ũ ∂ǫ ǫ=0 a ∂ ũ ∂ ũ ǫ=0
Lineare Finite Element Methode, c J. Schröder 24

Die Verwendung (4.10) und die Relation δu′ = ǫη ′ führt zu


Z b 
∂f ∂f ′
δΠ(u) = δu + ′ δu dx. (4.17)
a ∂u ∂u
Analog dazu ist die zweite Variation durch den expliziten Ausdruck
Z b 
2 ∂2f 2 ∂2f ′ ∂ 2 f ′2
δ Π(u) = η +2 ηη + η dx ǫ2
∂ ũ∂ ũ ∂ ũ∂ ũ′ ∂ ũ′ ∂ ũ′
a ǫ=0 (4.18)
Z b 2 2 2

∂ f ∂ f ∂ f
= δu2 + 2 ′
δuδu′ + ′ ′ δu′2 dx ,
a ∂u∂u ∂u∂u ∂u ∂u
gegeben. Berechnen wir nun die Differenz der Funktionale Π(ũ) und Π(u) unter Verwen-
dung von (4.14) mit Πǫ (ǫ) = Π(ũ), ergibt sich
1 2
Π(ũ) − Π(u) = δΠ(u) + δ Π(u) + . . . . (4.19)
2!
Die notwendige Bedingung für einen Extremwert des Variationsproblems ergibt
Z b 
∂f ′ ∂f
δΠ(u) = 0 → δu + δu ′ dx = 0. (4.20)
a ∂u ∂u

Lemma der Variationsrechnung: Für die Begründung der nächsten Schritte betrach-
ten wir das grundlegende Lemma der Variationsrechnung: Wenn eine stetige Funktion
φ : [a, b] → IR
Z b
φ(x) δu(x) dx = 0 (4.21)
a
erfüllt, mit einer zweifach differenzierbaren Funktion δu(x), die an den Grenzen verschwin-
det, d.h. δu(a) = δu(b) = 0, dann gilt φ(x) ≡ 0. ✷

φ(x)
η(x) φ(x)

η(x)

x
a b

Abbildung 16: Visualisierung der Funktionen φ(x) und η(x), die im fundamentalen Lemma
der Variationsrechnung vorkommen

Eine Veranschaulichung der in (4.21) auftretenden Größen ist in Abbildung (16) darge-
stellt. Der Beweis für dieses Lemma beruht auf der gegenteiligen Annahme, dass φ(x) 6= 0
während (4.21) gilt, was zu einem Widerspruch führt. In diesem Zusammenhang verweisen
wir auf Standardlehrbücher zur Variationsrechnung, siehe z.B. [14], [18].
Um die Euler-Lagrange-Differentialgleichung herzuleiten, müssen wir (4.20) so umformu-
lieren (4.20), dass
Z b
δΠ(u) = 0 → [ • ] δu dx = 0 → [ • ] = 0. (4.22)
a
Lineare Finite Element Methode, c J. Schröder 25

gilt. So führen wir zunächst eine partielle Integration des zweiten Terms in (4.20)2 durch
Z b Z b b Z b  
∂f ′ ∂f ∂f d ∂f
δu dx = dδu = δu − δu dx. (4.23)
a ∂u′ a ∂u ′ ∂u′ a a dx ∂u′

Unter Berücksichtigung der homogenen Randbedingungen (4.11) von δu, d.h,


b
∂f
δu = 0, da δu(a) = 0, δu(b) = 0, (4.24)
∂u′ a

wird (4.20) vereinfacht zu


Z b  
∂f d ∂f
δΠ(u) = − δu(x) dx = 0 . (4.25)
a ∂u dx ∂u′

Die Anwendung des fundamentalen Lemmas der Variationsrechnung führt zu der Euler-
Lagrange-Differentialgleichung

 
∂f d ∂f
− =0 (4.26)
∂u dx ∂u′

des Variationsproblems (4.3) mit (4.1), wobei die explizite Form von (4.26) gegeben ist
mit  
∂f d ∂f ∂f ∂2f ∂2f ′ ∂ 2 f ′′
− = − − u − u .
∂u dx ∂u′ ∂u ∂x∂u′ ∂u∂u′ ∂u′ ∂u′
Lineare Finite Element Methode, c J. Schröder 26

Anwendungsfall: Wir betrachten einen einfachen eindimensionalen Stab der Länge l.


Der Elastizitätsmodul E wird als konstant angenommen, die Querschnittsfläche A(x)
und die axiale Belastung p(x) sind Funktionen des Ortes.

p(x)

0110 1
0
0
1
0
1
10 x
0
1
10 0
1
l

Abbildung 17: Eindimensionales Fachwerk mit variabler Steifigkeit EA(x) und axialer
Belastung p(x)

Außerdem sind die Verschiebungen des betrachteten Systems an beiden Enden des Stabes
gehalten, d.h.
u(0) = 0 und u(l) = 0 . (4.27)
Lassen Sie uns vom Prinzip des Minimums der gesamten potentiellen Energie ausgehen
Π(u) = Πi (u) + Πe (u) → minimum!, (4.28)
wobei Π die gesamte potenzielle Energie bezeichnet, Πi die Verformungs- oder Dehnungs-
energie (innere Energie) und Πe das Potential der äußeren Lasten. Dieses Prinzip besagt,
dass ein belastetes elastisches System unter einigen geeigneten Randbedingungen einen
Gleichgewichtszustand darstellt, wenn die gesamte potentielle Energie einen stationären
Wert annimmt. Im Folgenden konzentrieren wir uns auf lineare elastische Systeme; in
diesem Fall erreicht das Potential ein Minimum. Die Dehnungsenergie ist gegeben durch
Z
i 1 l
Π (u) = EA(x)u′2 (x)dx (4.29)
2 0
und das Potential der äußeren Lasten hat die Form
Z l
e
Π (u) = − p(x)u(x)dx. (4.30)
0
Die Identifizierung des Integranden von (4.1) mit den letztgenannten Gleichungen ergibt
1
f (x, u, u′) = EA(x)u′2 (x) − p(x)u(x) . (4.31)
2
So sind die Ableitungen von f in Bezug auf u und u′ geben mit
∂f
= − p(x) (4.32)
∂u
und entsprechend
 
d ∂f d

= (EA(x)u′ (x)) = E(A(x)u′ (x))′ . (4.33)
dx ∂u dx
Die Auswertung von(4.26) ergibt die Euler-Lagrange-Differentialgleichung
− p(x) − E(A(x)u′ (x))′ = 0 (4.34)
für die axialen Verschiebungen eines axial belasteten Fachwerkstabes.
Lineare Finite Element Methode, c J. Schröder 27

4.2.1 Randbedingungen Der Rand ∂B eines betrachteten (eindimensionalen) Kör-


pers B = [a, b] wird aufgeteilt in Bu und Bt , mit
[ \
∂B = ∂Bu ∂Bt und ∂Bu ∂Bt = ∅. (4.35)

Für die Variationsprobleme müssen wir mehrere Arten von Randbedingungen spezifizie-
ren. Wir unterscheiden zwischen Randbedingunen

1ster Art: Dies sind die Dirichlet-Randbedingungen oder die


sogenannten wesentliche Randbedingungen. Hier be-
schreiben wir die Werte der unbekannten Funktio-
nen u an jedem Punkt der Grenze ∂Bu .
2ter Art: Randbedingungen für die normalen Ableitungen von
u angewandt auf die Punkte der Grenze ∂Bt wer-
den als Neumann-Randbedingungen oder natürliche
Randbedingungen bezeichnet.
3ter Art: Dies sind gemischte Randbedingungen,
Robin/Cauchy-artige Randbedingung; sie stel-
len Linearkombinationen der 1sten und 2ten Art der
Randbedingungen dar.

Die Randbedingungen der zweiten und dritten Art sind die natürlichen Randbedingun-
gen. Variationsprobleme, die den Dirichlet-Bedingungen unterliegen, wurden im letzten
Abschnitt diskutiert. Konzentrieren wir uns nun auf ein Variationsproblem mit Dirichlet-
und Neumann-Randbedingungen der Form
Z b
Π(u) = f (x, u, u′)dx + c · u(b) → extrem! (4.36)
a

mit der Konstanten c und

u(a) = ua → δu(a) = 0 und δu(b) 6= 0 . (4.37)

Die notwendige Bedingung für einen Extremwert ist δΠ = 0. Nach partieller Integration,
siehe (4.23), erhalten wir
Z b    
∂f d ∂f ∂f (b)
δΠ(u) = − δu dx + c + δu(b) . (4.38)
a ∂u dx ∂u′ ∂u′

Die Anwendung des Fundamentallemmas der Variationsrechnung ergibt für beliebige


δu(b) 6= 0 den Gleichungssatz
 
∂f d ∂f ∂f (b)
− ′
= 0 und c + = 0. (4.39)
∂u dx ∂u ∂u′

Gleichung (4.39)1 ist die Euler-Lagrange-Differentialgleichung und (4.39)2 stellt die na-
türliche Randbedingung der zweiten Art dar.
Lineare Finite Element Methode, c J. Schröder 28

Als Beispiel für ein Variationsproblem mit Neumann-Randbedingungen betrachten wir


einen eindimensionalen Stab der Länge l mit konstantem Elastizitätsmodul E, variierender
Querschnittsfläche A(x) und axialer Belastung p(x). Die Verschiebung des Systems ist am
linken Ende fixiert und eine externe Kraft F wird am rechten Ende des Stabes aufgebracht,
siehe Abbildung 18.

p(x)

11
00
00
11
00
11 F

00
11
x

00
11 l
Abbildung 18: Fachwerk-Stab mit Dirichlet (links) und Neumann (rechts) Randbedingung

Die erneute Anwendung des Prinzips des Minimums der gesamten potentiellen Energie
führt zu
Π(u) = Πi (u) + Πe (u) → minimum! (4.40)
mit dem inneren Teil Z l
i 1
Π (u) = EA(x)(u′ )2 (x) dx (4.41)
x=0 2
und dem äußeren Teil
Z l
e
Π (u) = −p(x)u(x) dx − F · u(l) (4.42)
x=0

mit der geometrischen Randbedingung u(0) = 0. Die Auswertung (4.39) mit c = −F


ergibt

−p(x) − E[A(x)u′ (x)]′ = 0


(4.43)
−F + EA(l)u′ (l) = 0.

Die Gleichung (4.43)1 stellt die Euler-Lagrange-Differentialgleichung des Variationspro-


blems dar. Die Neumann-Randbedingung wird durch (4.43)2 widergespiegelt; sie besagt,
dass die innere Kraft am rechten Ende des Balkens N(l) = EA(l)u′ (l) mit der aufgebrach-
ten äußeren Kraft F identisch sein muss.
Lineare Finite Element Methode, c J. Schröder 29

4.2.2 Zwangsbedingungen Eine Vielzahl von Anwendungen in der Variationsrech-


nung erfordert die Berücksichtigung von Randbedingungen, die den Raum möglicher Ex-
tremwerte reduzieren. Diese Zwänge sind Differentialgleichungen, algebraische Bedingun-
gen und Ungleichungen. Betrachten wir noch einmal ein Variationsproblem erster Ordnung
mit Dirichlet-Randbedingungen, gegeben durch
Z b
Π(u) = f (x, u(x), u′(x)) dx → extrem!, (4.44)
a

welches durch eine Nebenbedingung ergänzt wird, hier z.B. eine Differentialgleichung der
Form
g(x, u(x), u′(x)) = 0 . (4.45)
In dieser Situation können wir nicht das klassische Konzept verwenden, das auf der Ver-
gleichsfunktion ũ(x) basiert, siehe (4.4), weil es die Nebenbedingung nicht erfüllt. Eine
Möglichkeit zur Lösung des Problems ist die Einführung einer modifizierten Vergleichs-
kurve
˜
ũ(x) = u(x) + ǫ1 η1 (x) + ǫ2 η2 (x) .
Die Parameter ǫ1 und ǫ2 sind aufgrund der Nebenbedingung abhängig.
Eine Alternative basiert auf dem Lagrange-Multiplikator-Verfahren. Das Problem (4.44)
in Ergänzung mit (4.45) ist äquivalent zu
Z b
L(u, λ) = h(x, u(x), u′ (x), λ(x))dx → extrem!, (4.46)
a

wo wir die Abkürzung


h(x, u(x), u′ (x), λ) = f (x, u(x), u′(x)) + λ(x) g(x, u(x), u′(x)) (4.47)
benutzen. Die Menge der unabhängigen Variablen ist (u, λ) mit der unbekannten Ex-
tremvariablen u und dem Lagrange-Multiplikator λ. In diesem Ansatz erhalten wir die
Euler-Lagrange-Differentialgleichungen in der Form
 
∂h d ∂h
− = 0
∂u dx ∂u′
(4.48)
∂h
≡ g = 0.
∂λ

Als Anwendung eines Problems mit einer Differentialgleichung als Nebenbedingung be-
trachten wir einen eindimensionalen Balken mit homogenen Dirichlet-Randbedingungen,
wie in Abbildung 17. Wie bisher wenden wir das Prinzip des Minimums der gesamten
potentiellen Energie an
Z l 
1 2
Π(u, ε) = EA(x)ε (x) − p(x)u(x) dx → minimum!, (4.49)
0 2
wo wir ein unabhängiges Feld für die Dehnungen eingeführt haben. Zusätzlich berück-
sichtigen wir eine Nebenbedingung, die die Dehnungen ε mit der Ableitung des Verschie-
bungsfeldes u′ in Beziehung setzt, d.h. die Nebenbedingung lautet
g(x, u′ , ε) = u′ − ε = 0 . (4.50)
Lineare Finite Element Methode, c J. Schröder 30

Entsprechend dem Variationsproblem mit Nebenbedingung

Π(u, ε) → minimal! mit g(x, u′ , ε) = 0 (4.51)

ist die Forderung, dass


Z l
L(u, ε, λ) = l(x, u, ε, u′, λ) dx → extrem!. (4.52)
0

Hier hat der Integrand des neuen Funktionals die explizite Form
1
l(x, u, ε, u′, λ) = EAε2 − p u + λ(u′ − ε) (4.53)
2
mit dem Lagrange-Multiplikator λ. Die zugehörigen Euler-Gleichungen dieses Variations-
problems sind
 
∂l d ∂l
− = 0 → −p − λ′ = 0,
∂u dx ∂u′
∂l (4.54)
= 0 → EAε − λ = 0,
∂ε
∂l
= 0 → u′ − ε = 0.
∂λ
Die letzte Gleichung charakterisiert die Beziehung zwischen den Verschiebungen und den
Dehnungen. Eine Interpretation des Lagrange-Multiplikators λ ergibt sich aus der zweiten
Euler-Gleichung, es ist die innere Kraft in axialer Richtung N. Darüber hinaus kann die-
se Gleichung als das “Konstitutivgesetz” eines linear elastischen eindimensionalen Stabes
angesehen werden. Mit der Identifikation λ = N beobachten wir, dass 4.541 den Gleich-
gewichtszustand des axial belasteten Stabes darstellt.
Lineare Finite Element Methode, c J. Schröder 31

4.3 Direkte Methoden

Die direkten Methoden werden vornehmlich zur Lösung des Variationsproblems als zur
Lösung der zugehörigen Euler-Lagrange-Differentialgleichungen verwendet. Folglich gehen
wir direkt vom Variationsproblem aus, z.B. von (4.1). In diesem Rahmen ist es möglich,
Anforderungen an das Funktional zu spezifizieren, die für die Existenz von Lösungen
notwendig sind, und darüber hinaus ist es möglich, approximative numerische Methoden
zu entwerfen.

4.3.1 Ritz’sche Methode Die Grundidee der Ritz-Methode, auch bekannt als
Rayleigh-Ritz-Methode, besteht darin, das Variationsproblem der Minimierung der Funk-
tionale Z b
Π(u) = f (x, u(x), u′(x)) dx,
a
auf dem Raum aller möglichen Funktionen auf ein Problem zu reduzieren, das sich mit der
Minimierung desselben Funktionals auf einem endlichen Raum beschäftigt. Dazu wählen
wir eine Funktion n
X
ū(x) = N0 (x) + ci Ni (x) (4.55)
i=1
für eine Näherungslösung des Problems mit den noch unbekannten Parametern ci für
i = 1, ..., n. Jetzt müssen wir nach den Parametern suchen, die das Funktionale mi-
nimieren. Der Einfachheit halber konzentrieren wir uns zunächst auf reine Dirichlet-
Randbedingungen
u(a) = ua und u(b) = ub .
Um die Randbedingungen a priori zu erfüllen, wählen wir Funktionen, die
N0 (a) = ua und N0 (b) = ub , (4.56)
sowie
Ni (a) = Ni (b) = 0 für i = 1, ...n , (4.57)
erfüllen. Die letzteren Funktionen, die die homogenen Randbedingungen erfüllen, die so-
genannten Basisfunktionen, werden als linear unabhängig angenommen, d.h.
n
X
ci Ni (x) = 0 genau dann, wenn ci = 0 für i = 1, ..., n. (4.58)
i=1

Das Einfügen der endlichen Summe in das Variationsproblem führt zu der Approximation
Z b
Π(u) ≈ Π(ū) = f (x, ū, ū′ )dx → extrem! (4.59)
a

Die erste Variation des Näherungsproblems lautet


Z b 
∂f ∂f ′
δΠ(ū) = δū + ′ δū dx = 0 (4.60)
a ∂ ū ∂ ū
mit der Abkürzung
n
X
δū(x) = Ni (x)δci . (4.61)
i=1
Lineare Finite Element Methode, c J. Schröder 32

Ausschreiben von (4.60) ergibt mit Π(c1 , ..., cn ) = Π(ū)


Xn Z b 
∂f ∂f ′
δΠ(c1 , ..., cn ) = Ni + ′ Ni dx δci = 0. (4.62)
i=1 a
∂ ū ∂ ū

Alternativ können wir schreiben


Z b 
∂Π(c1 , ..., cn ) ∂f ∂f ′
= Ni + ′ Ni dx = 0 for i = 1, ..., n, (4.63)
∂ci a ∂ ū ∂ ū
weil die Werte δci für i = 1, ..., n in (4.62) beliebig sind. Der letztere Ausdruck stellt ein
System von n Gleichungen mit n Parametern ci für i = 1, ..., n dar. Es sei angemerkt, dass
das System linear ist, wenn f (•) eine quadratische Form in den unbekannten Variablen
ist.
Beispiel: Für eine detailliertere Betrachtung der Ritz-Methode nehmen wir einen axial
belasteten Stab mit konstanter axialer Steifigkeit EA an. Am linken Ende fixieren wir
den Stab und am rechten Ende geben wir eine Verschiebung vor, d.h.

u(0) = 0 und u(l) = ub , (4.64)

siehe Abbildung 19.

p(x)
11
00 1010
00
11
00
11
001010
x u
11 l

Abbildung 19: System und Randbedingungen

Das Gesamtpotenzial beträgt


Z l 
1 ′ 2
Π(u) = EA(u ) − pu dx → minimal! (4.65)
0 2
Um die wesentlichen Randbedingungen zu erfüllen, wählen wir die lineare Funktion
ub
N0 (x) = x. (4.66)
l
Nun werden wir eine Lösung in Form des Polynoms

ū(x) = N0 (x) + c1 N1 (x) (4.67)

in Betracht ziehen, mit der Basisfunktion

N1 (x) = x(x − l), (4.68)

die an den Grenzen verschwindet. So erhalten wir mit Π(c1 ) = Π(ū) die Näherungslösung
(4.69)
Z l 
1 ′ 2
Π(c1 ) = EA(ū (x)) − p0 ū(x) dx. (4.69)
0 2
Lineare Finite Element Methode, c J. Schröder 33

Die Auswertung von (4.63) ergibt


Z l
∂Π(c1 )
= (EAū′ N1′ − p0 N1 ) dx
∂c1 0 Z 
l  (4.70)
′ ′ ′ 1
= EA (N0 + c1 N1 )N1 − p0 N1 dx = 0.
0 EA

Nach einigen einfachen Manipulationen erhalten wir


Z l Z l Z l
′2 p0
c1 N1 dx = N1 dx − N0′ N1′ dx, (4.71)
0 EA 0 0

was zu    3
1 3 p0 l p0
c1 l = − −0 → c1 = − , (4.72)
3 EA 6 2EA
führt. Das Einfügen der Lösung für c1 in (4.67) ergibt die gesuchte Lösung
ub p0
ū(x) = x+ x(l − x). (4.73)
l 2EA
In diesem speziellen Fall erhielten wir die genaue Lösung des Variationsproblems.

4.3.2 Gewichtete Residualmethoden Die Ritz’sche Methode ist nur anwendbar,


wenn ein Variationsproblem besteht, das dem betrachteten Randwertproblem entspricht.
Für Probleme, die sich nicht in eine Variationsformulierung umformulieren lassen, benö-
tigen wir andere Methoden zur Berechnung von Näherungslösungen. Betrachten wir eine
Differentialgleichung der Ordnung 2k

f (x, u(x), u′(x), ..., u(2k) (x)) + p(x) = 0 , (4.74)

im Intervall [a, b]. Die zugehörigen 2k Randbedingungen werden auf die Werte der Funk-
tion u(x) und/oder deren Ableitungen an den Punkten a und b bezogen. Für die Nähe-
rungslösungen wählen wir eine Ansatzfunktion der Form
n
X
ū(x) = N0 (x) + ci Ni (x), (4.75)
i=1

die alle Randbedingungen erfüllt. Weiterhin sind die Funktionen N0 und N1 , ..., Nn sowie
deren Ableitungen der Ordnung 2k integrierbar. Das Einfügen der Ansatz-Funktion (4.75)
in (4.74) führt zum sogenannten Residuum

r(x) := f (x, ū(x), ū′ (x), ...ū(2k) (x)) + p(x) 6= 0. (4.76)

Nun müssen wir die freien Parameter c1 , ..., cn so suchen, dass das Residuum in gewis-
ser Weise klein ist. Dazu verteilen wir das Residuum insgesamt über das Intervall. Die
Grundidee ist, mit der Gewichtungsfunktion η(x) zu multiplizieren (4.76) und über den
betrachteten Bereich zu integrieren, d.h.
Z b Z b
η(x)r(ū)dx = η(x)(f (x, ū, ..., ū(2k) ) + p(x)) dx = 0 . (4.77)
a a
Lineare Finite Element Methode, c J. Schröder 34

Basierend auf unterschiedlichen Definitionen der Gewichtungsfunktionen erhalten wir ver-


schiedene Arten von Approximationsverfahren, z.B. die Punkt-Kollokationsmethode, die
Subdomänen-Kollokationsmethode, die Momentenmethode und die Galerkin-Methoden.
Die Gewichtungsfunktion wird gewählt durch
n
X
η(x) = c̄j N̄j (x) (4.78)
j=1

mit den beliebigen Parametern c̄j . Die Einfügung der Gewichtungsfunktion in die Grund-
gleichung für die Methode der gewichteten Residuen (4.77) führt zu einem Satz von n
Gleichungen
Z b
N̄1 (x) r(x) dx = 0
a
Z b
N̄2 (x) r(x) dx = 0
a (4.79)
...
Z b
N̄n (x) r(x) dx = 0,
a
die unter Berücksichtigung der freien Parameter c1 , ...., cn . zu lösen sind
Galerkin Methode Bei der Galerkin-Methode, die auch als Bubnov-Galerkin-
Methode bekannt ist, sind die Gewichtungsfunktionen die gleichen wie die Approxi-
mationsbasisfunktionen.

1, 0 Basisfunktion und
Gewichtungsfunktion

0, 0
j−1 j j+1
Element e Element e+1
Abbildung 20: Gewichtungsfunktion für die Standard-Galerkin-Methode

So erhalten wir mit


N̄i (x) = Ni (x) for i = 1, 2, ..., n (4.80)
der Satz von Gleichungen
Z b
N1 (x) r(x)dx = 0
a
Z b
N2 (x) r(x)dx = 0
a (4.81)
...
Z b
Nn (x) r(x)dx = 0 .
a
Lineare Finite Element Methode, c J. Schröder 35

Ein Vorteil dieser Methode besteht darin, dass eine äquivalente Variationsformulierung
des betrachteten Randwertproblems nicht erforderlich ist. Andererseits muss die Ansatz-
funktion sowohl die wesentlichen als auch die natürlichen Randbedingungen erfüllen. Au-
ßerdem müssen die Funktionen für eine Differentialgleichung der Ordnung 2k, (2k − 1) -
mal kontinuierlich differenzierbar sein. Dieser Nachteil, insbesondere im Hinblick auf die
Finite-Elemente-Methode, kann durch die Anwendung der partiellen Integration der Re-
siduenfunktion im allgemeinen vermieden werden. Danach können wir Approximations-
funktionen verwenden, die nur (k − 1)-mal kontinuierlich differenzierbar sein müssen und
nur die wesentlichen Randbedingungen erfüllen müssen.
Die letztgenannten Anmerkungen werden unter Berücksichtigung des am linken Ende
eingespannten Balkens mit einer Streckenlast p(x), der am anderen Ende einer vertikalen
Punktlast sowie einem Biegemoment ausgesetzt ist, näher erläutert, siehe Abbildung 21.

p(x)

11
00
00
11 x
Ml

00
11
00
11 w
l
Fl

Abbildung 21: System und Randbedingungen

Das Problem wird anhand des folgenden Randwertproblems beschrieben:

EIw ′′′′ (x) − p(x) = 0


w(0) = 0
w ′ (0) = 0 (4.82)
EIw ′′ (l) = −M(l) ; M(l) = Ml
EIw ′′′ (l) = −Q(l) ; Q(l) = Fl

Die wesentlichen Randbedingungen sind (4.82)2,3 und die natürlichen Randbedingungen


sind durch (4.82)4,5 gegeben. Führen wir nun eine Ansatz-Funktion w̃ ein, dann ist das
Residuum von (4.82)1 definiert durch

r(x) := EI w̃ ′′′′ (x) − p(x). (4.83)

Darüber hinaus sind die Residuen der Gleichungen (4.82)4,5

rM := EI w̃ ′′ (l) + Ml und rF := EI w̃ ′′′ (l) + Fl . (4.84)

Die Verwendung des Konzepts der Methode der gewichteten Residuen führt zu
Z l
r(x)η(x) dx + rM ηM + rF ηF = 0 (4.85)
0

mit der Gewichtungsfunktion η(x) und den Gewichten ηM sowie ηF . Weiterhin gehen wir
davon aus, dass η(x) die homogenen Randbedingungen η(0) = 0 und η ′ (0) = 0 erfüllt.
Lineare Finite Element Methode, c J. Schröder 36

Für die explizite Form dieser Gleichung erhalten wir


Z l
[EI w̃ ′′′′ (x) − p(x)]η(x) dx + [EI w̃ ′′ (l) + Ml ]ηM + [EI w̃ ′′′ (l) + Fl ]ηF = 0 (4.86)
0
Z l
Die teilweise Integration des Begriffs EI w̃ ′′′′ (x)η(x) dx ergibt
0
Z l l
Z l 
′′′′ ′′′
EI w̃ (x)η(x) dx = EI w̃ (x)η(x) − EI w̃ (x)η (x) dx 
′′′ ′ 


0 0 0 

l
′′′
= EI w̃ (x)η(x) . (4.87)
0 Z 

l l 

−EI w̃ ′′ (x)η ′ (x) + EI w̃ (x)η (x) dx 
′′ ′′ 
0 0

Nach Auswertung der Grenzbedingungen erhalten wir


Z l Z l
′′′′ ′′′ ′′ ′
EI w̃ (x)η(x) dx = EI w̃ (l)η(l) − EI w̃ (l)η (l) + EI w̃ ′′ (x)η ′′ (x) dx. (4.88)
0 0

Einfügen dieses Zwischenergebnisses in (4.86) ergibt


Z l
[EI w̃ ′′ (x)η ′′ (x) − p(x)η(x)] dx
0 (4.89)
+EI w̃ ′′′(l)[η(l) + ηF ] + ηF Fl + EI w̃ ′′(l)[ηM − η ′ (l)] + ηM Ml = 0.

Für die beliebigen Gewichte ηM und ηF wählen wir

ηM = η ′ (l) und ηF = −η(l), (4.90)

um (4.89) auf den endgültigen Ausdruck


Z l
[EI w̃ ′′ (x)η ′′ (x) − p(x)η(x)]dx − η(l)F + η ′ (l)Ml = 0 , (4.91)
0

zu reduzieren. Es ist zu erkennen, dass die Funktion w̃(x) nur die wesentlichen Randbe-
dingungen erfüllen muss und w̃(x) und η(x) nur (k − 1) mal kontinuierlich differenzierbar
sein müssen.
Wenn wir unterschiedliche Funktionen für die Gewichtung und die Approximationsbasis-
funktionen wählen, d.h.

N̄i (x) 6= Ni (x) für i = 1, 2, ..., n (4.92)

dann ist die Methode Petrov-Galerkin zugeordnet.

Veranschaulichung: Um die Standard-Galerkin-Methode zu erklären, betrachten wir


das in Abb. 22 gezeigte Modellproblem.
Ausgehend von (4.77) erhalten wir für unsere Situation
Z b Z b  
′′
η(x)r(x) dx = η(x) EAū (x) − k ū(x) + p(x) dx = 0 . (4.93)
a a
Lineare Finite Element Methode, c J. Schröder 37

01 1
0
p(x) k/2

1010 0
1
0
1 x, u

10 0
1
10 k/2
0
1
l

Abbildung 22: Axial belasteter Stab mit Dirichlet-Randbedingungen und elastischer La-
gerung

Wir können die letztere Gleichung direkt für die Berechnung der Näherungslösung ver-
wenden, aber angesichts des Standardverfahrens
Z in der Finite-Elemente-Methode lassen
l
Sie uns zunächst teilweise integrieren η(x)EAū′′ (x)dx:
0

Z l l
Z l
′′ ′
η(x)EAū (x) dx = η(x)EAū (x) − η ′ (x)EAū′ (x) dx . (4.94)
0 0 0

Ausnutzen der homogenen Bedingungen η(0) = 0 und η(l) = 0 führt zu

Z l Z l
′′
η(x)EAū (x) dx = − η ′ (x)EAū′ (x) dx. (4.95)
0 0

Die verbleibende Gleichung lautet also

Z l Z l Z l
′ ′
η (x)EAū (x) dx + η(x) k ū(x) dx = η(x)p(x) dx. (4.96)
0 0 0

Wie oben diskutiert, wählen wir für die Gewichtung und die Basisfunktionen die gleichen
Funktionen, d.h.

n
X n
X
η(x) = c̄j Nj (x) und ū(x) = N0 (x) + ci Ni (x) (4.97)
j=1 i=1

mit N0 = 0; die Ableitungen dieser Funktionen sind

n
X n
X

η (x) = c̄j Nj′ (x) ′
und ū (x) = ci Ni′ (x). (4.98)
j=1 i=1

Schließlich erhalten wir den Gleichungssatz für die beliebigen Parameter c1 , c2 , ..., cn
Lineare Finite Element Methode, c J. Schröder 38

Z l Z l Z l
N1′ (x)EAū′ (x)dx + N1 (x) k ū(x)dx = N1 (x)p(x)dx.
0 0 0
Z l Z l Z l
N2′ (x)EAū′ (x)dx + N2 (x) k ū(x)dx = N2 (x)p(x)dx.
0 0 0 (4.99)
...
Z l Z l Z l
Nn′ (x)EAū′ (x)dx + Nn (x) k ū(x)dx = Nn (x)p(x)dx.
0 0 0

Das Einfügen der Relationen (4.97)2 und (4.98)2 führt in Matrixnotation zum Ausdruck
(wobei die x-Abhängigkeiten entfallen)
 Z Z l    Z l 
l
 (N1′ N1′ + N1 k̃N1 ) dx · · · (N1′ Nn′ + N1 k̃Nn ) dx   c1   N1 p̃ dx 
 0 0    0 
 Z l Z l    Z l 
 ′ ′ ′ ′    
 (N2 N1 + N2 k̃N1 ) dx · · · (N2 Nn + N2 k̃Nn ) dx   c2   N2 p̃ dx 
 0  = 
 0    0 
 . . .   .   . 
 .. .. ..   ..   .. 
    
 Z l Z l    Z l 
 ′ ′ ′ ′
  
(Nn N1 + Nn k̃N1 ) dx · · · (Nn Nn + Nn k̃Nn ) dx cn Nn p̃ dx
0 0 0

mit den Abkürzungen


k p
k̃ = und p̃ = . (4.100)
EA EA
Lineare Finite Element Methode, c J. Schröder 39

5 Methode der Finiten Elemente: Verschiebungsmethode

Im vorangegangenen Kapitel wurden das Verfahren von Ritz und die Methode von Ga-
lerkin (allgemeiner: Methode der gewichteten Residuen) behandelt. Aus beiden Verfahren
läßt sich die Methode der Finiten Elemente begründen, wobei beim Verfahren von Ritz
ein Extremalprinzip zugrunde liegt.
Die Finite-Elemente-Methode (FEM) ist ein allgemeines Verfahren für die ingenieurmä-
ßige Analyse von Festkörpern und Strukturen sowie für Berechnungen der Wärmeüber-
tragung und der Strömungsmechanik usw. Der Vorläufer der Finite-Elemente-Methode
ist die Matrix-Strukturanalyse. Die ersten Formulierungen in der diskreten Aeroelastik
stammen aus den 1930er Jahren. Eine formale Vereinheitlichung der Kraft- und Verschie-
bungsmethoden wurde dann von Argyris und Kelsey (1954, 1955) vorgestellt. Die von
Turner (1959) vorgeschlagene direkte Steifigkeitsmethode kann als das erste Auftreten
der bis dahin unbenannten Finite-Elemente-Methode angesehen werden. Eine Arbeit von
Turner, Clough, Martin und Topp (1956), in der diese Methode auf die Schwingungsana-
lyse angewandt wurde, wird oft als die erste Erwähnung der FEM in der Geschichte.
Der Name “Finite Element” wurde jedoch erst in einer Arbeit von Clough (1960) etabliert,
die nur wenig Beachtung fand. Es gibt viele andere frühe Beiträge zur FEM, von denen
wir hier nur Zienkiewicz und Cheung (1967) zitieren. Beiträge zur Geschichte der Methode
finden sich z. B. in Felippa (2000) und Clough (2004).
Wir verweisen auf Zienkiewicz und Taylor (2000), Bathe (1996), Stein et al. (2004a,b),
Belytschko, Liu und Moran (2000), Oden (1972), Wriggers (2001), Cook, Malkus und
Plesha (1989), Dhatt, Touzot und Cantin (1985) und Hughes (1987) als Standardtexte
auf diesem Gebiet.

5.1 Allgemeine Vorbetrachtungen

Bevor wir uns speziellen Finite-Element-Formulierungen zuwenden, betrachten wir die


fundamentalen Konzepte der FEM an einem eindimensionalen Randwertproblem. Die
wesentlichen Bestandteile der Methode zur Behandlung von Randwertaufgaben sind:

(i) Variationsformulierung oder eine sogenannte schwache Form des Randwertproblems,

(ii) Diskretisierung des betrachteten Gebiets B mittels geeigneter Finiter Elemente Be ,

(iii) approximative Lösung der Variationsformulierung basierend auf Näherungsansätzen


der gesuchten Lösungsfunktionen in jedem Element Be .

Starke Form des Randwertproblems: Wir betrachten ein eindimensionales Modell-


problem, beschrieben durch eine gewöhnliche Differentialgleichung und eine natürliche
und eine restliche Randbedingung,

EAu,xx + p(x) = 0 in B 
u(l) = u0 . (5.1)

−EAu(0),x = F
Lineare Finite Element Methode, c J. Schröder 40

Die starke Form des Randwertproblems (5.1) lautet



Finde ein u : B̄ → IR , bei gegebenem p : B̄ → IR 



und gegebenen Konstanten u(l) und u(0),x , mit 

EAu,xx + p(x) = 0 ∀ x in B . (5.2)


u(l) = u0 



−EAu(0),x = F

Das Lösungsgebiet B̄ = [0, l] ist parametrisiert in x, d.h. x∈[0, l]. Die Bezeichnungsweise
B und B̄ charakterisiert ein offenes und ein geschlossenes Intervall, d.h. B :=]0, l[ und
B̄ := [0, l]. Beim offenen Intervall sind die Endpunkte nicht enthalten, siehe Abbildung 23.

B̄ = [ 0, l ] B = ] 0, l [

0 l 0 l
a) b)
Abbildung 23: Darstellung eines eindimensionalen a) geschlossenen Gebiets B̄ und eines
b) offenen Gebiets B.

Die Differentialgleichung des elastischen, axial belasteten Stabs (5.1)1 ergibt sich aus
der Impulserhaltung (statische Gleichgewichtsbedingung) bei der Vernachlässigung von
Beschleunigungstermen
p(x)
σ,x + = 0 in B (5.3)
A
unter der Berücksichtigung des Hookschen Gesetzes σ = Eε und der kinematischen Bezie-
hung ε = u,x nach Vorabintegration über die Fläche A des Stabes. Die einzelnen Größen
sind: 1. Spannungen σ, 2. Verzerrungen ε, 3. Verschiebungen u, 4. Axiallast p, und 5.
Elastizitätsmodul E.
Schwache Form des Randwertproblems: Es wird nun eine zu Gleichung (5.2) assozi-
ierte schwache Form (Variationsformulierung) des Randwertproblems angegeben. Hierzu
definieren wir zunächst zwei Klassen von Funktionen, die Klasse der Ansatzfunktionen
(trial functions) S und die Klasse der Wichtungsfunktionen V. Die Funktionen aus S
müssen die wesentlichen Randbedingungen u(l) = u0 erfüllen. Ferner müssen die Ansatz-
funktionen für u und deren Ableitungen quadratisch integrierbar sein, d.h. wir fordern
Z l Z l
2
u dx < ∞ und (u,x )2 dx < ∞ . (5.4)
0 0

Die Funktionen, die die Gleichung (5.4) erfüllen, sind sogenannte H 1 -Funktionen; wir
schreiben u ∈ H 1 bzw. u ∈ H 1 (B). Somit folgt

S = {u|u ∈ H 1 , u(l) = u0 }. (5.5)

Die Klasse der Wichtungsfunktionen (auch als Variationen oder virtuelle Verschiebung
bezeichnet) ist gegeben durch

V = {η|η ∈ H 1 , η(l) = 0}. (5.6)


Lineare Finite Element Methode, c J. Schröder 41

Folgen wir nun den Ausführungen in Kapitel 4.3 so erhalten wir mit der Methode der
gewichteten Residuen den Ausdruck
Z l Z l
η(x)EAu,xx dx + η(x)p(x) dx = 0. (5.7)
0 0

Die partielle Integration des ersten Integrals in Gleichung (5.7) liefert


Z l l
Z l
− η,x EAu,x dx + EAu,x η(x) + η(x)p(x) dx = 0 . (5.8)
0 0 0

Mit der homogenen Randbedingung η(l) = 0 ergibt sich dann


Z l Z l
− η,x EA u,x dx − EAu(0),x η(0) + ηp dx = 0 . (5.9)
0 0

Die zu Gleichung (5.2) gehörige schwache Formulierung des Randwertproblems lautet:



Finde ein u ∈ S , so daß für alle η ∈ V bei gegebenem 



p : B̄ → IR und gegebenen Konstanten u(l) und u(0),x 
folgende Gleichung erfüllt ist . (5.10)
Z l Z l 



η,x EA u,x dx = η pdx + η(0)F 
0 0

Formulierungen dieser Art werden auch als Prinzip der virtuellen Arbeit oder als Prinzip
der virtuellen Verschiebungen bezeichnet. Die Lösung u von Gleichung (5.10) wird als
schwache Lösung bezeichnet.
Diskretisierung: Zur approximativen Lösung des Randwertproblems wird das Gebiet B
in einfache Teilgebiete, die Finiten Elemente Be , zerlegt. Das Ausgangsgebiet wir somit
durch die Vereinigung aller Teilgebiete angenähert, d.h.
n
[ ele
h
B≈B = Be . (5.11)
e=1

So wird z.B. ein räumliches Fachwerk durch einzelne Stäbe, ein ebenes Gebiet durch
Dreiecke, Parallelogramme oder Vierecke und ein dreidimensionales Gebiet durch Volu-
menelemente angenähert. Die Diskretisierung eines eindimensionalen Gebiets B in 6 Finite
Elemente ist in Abbildung 24 visualisiert.

Be

0 h l

Abbildung 24: Diskretisierung des Gebietes B durch Finite Elemente B e .

Approximative Lösung: Zur Berechnung von Näherungslösungen der betrachteten


Randwertprobleme, basierend auf der schwachen Formulierung, konstruieren wir endlich
dimensionale Approximationen der Funktionenklassen S und V. Es sei

S h ⊂ S , d.h. uh ∈ S h ⇒ uh ∈ S
. (5.12)
V h ⊂ V , d.h. η h ∈ V h ⇒ η h ∈ V
Lineare Finite Element Methode, c J. Schröder 42

Der hochgestellte Index h stellt eine Assoziation zur Diskretisierung des Gebiets B dar,
welches parametrisiert ist mit einer charakteristischen Längenskale h. An die Ansätze
stellen wir die Forderungen

uh (l) = u0 und η h (l) = 0 . (5.13)

Im Rahmen der Galerkin Methode konstruieren wir zu jedem Element v h ∈ V h eine


Funktion uh ∈ S h entsprechend
uh = v h + uh0 . (5.14)
Hierbei ist uh0 eine Funktion, die die Gleichung (5.13)1 erfüllt. Somit erfüllt der Ansatz
(5.14) die wesentlichen Randbedingungen

uh (l) = v h (l) + uh0 (l) = 0 + u0 . (5.15)

Mit Gleichung (5.14) ist S h definiert. Schreiben wir nun die Variationsgleichung in Funk-
tionen der endlich-dimensionalen Ansatzräume, so ist
Z l Z l
h
η,x EA uh,x dx = η h pdx + η h (0)F (5.16)
0 0

in η h ∈ V h und uh ∈ S h . In Gleichung (5.16) beinhaltet die linke Seite noch bekannte


Terme, die Funktion uh0 . Setzen wir die Gleichung (5.14) in Gleichung (5.16) ein, erhalten
wir die Galerkin Form des Problems:

Gegeben sind p, u0 und F. Finde eine Lösung 


uh = v h + uh0 , mit v h ∈ V h , so daß für alle η h ∈ V h gilt
Z l Z l Z l . (5.17)
h h h h h 

η,x EA v,x dx = η pdx + η (0)F − η,x EA u0,x dx 
0 0 0

Die Gleichung (5.17) ist eine Darstellung von Gleichung (5.10) in endlich-dimensionalen
Funktionen der Klasse V h . Approximationsmethoden dieser Art sind Beispiele der Me-
thode der gewichteten Residuen.

5.2 Illustration des Finite-Elemente-Konzepts

In der Festkörper-, Struktur- und Strömungsmechanik der modernen Ingenieurtechnik


ist es aufgrund der Komplexität der ( Anfangs-) Randwertprobleme unmöglich, exak-
te (analytische) Lösungen zu berechnen. Aufgrund ihrer Komplexität ist es notwendig,
Näherungslösungen zu berechnen, die in irgendeiner Weise zu gegebenen (unbekannten)
analytischen Lösungen konvergieren. Zur Erläuterung der grundlegenden Schritte, die für
eine Finite-Elemente-Analyse verwendet werden, betrachten wir eine Fachwerkstruktur,
wie sie in Abbildung 25 dargestellt ist, und beschränken uns auf geometrische und physi-
kalische lineare Systeme.
Die typischen Schritte für eine Finite-Elemente-Analyse sind wie folgt:

i) Idealisierung des realen Systems,

ii) Aufteilung der idealisierten Struktur in endliche Elemente,


Lineare Finite Element Methode, c J. Schröder 43

1
0
0
1

111 000
000
000 111
111
Abbildung 25: Physikalischer Bereich B einer ebenen Fachwerkstruktur.

iii) Approximation der grundlegenden Feldgrößen (z.B. Verschiebungs-, Druck-, Tem-


peraturfeld) mit geeigneten Ansatzfunktionen,

iv) Berechnung der Elementmatrizen,

v) Zusammenbau der einzelnen Elemente unter Berücksichtigung der Dirichlet-


Randbedingungen;

vi) Berechnung der Lösung des endgültigen algebraischen Gleichungssystems.

5.2.1 Idealisierung des physikalischen Systems The actual physical system must
be idealized and described by a mathematical model. model. This model can be a set of
partial differential equations or a variational functional.

D
F2
F1
D
x̃ 11
00
00
11
D
00
11
C

x2 x̃

11
00
00
11 x1
111
000
B
A
00
11
Abbildung 26: Idealisierung des physikalischen Systems als ebene Fachwerkstruktur, glo-
bales Koordinatensystem x1 , x2 und Parametrisierung der einzelnen Fachwerke mit x̃.

Als Beispiel nehmen wir in diesem einfachen System die Existenz eines Gesamtfunktionals
der potentiellen Energie in der Form
Z
1 2
EA [ũ′ (x̃)] dx̃ − F1 u1 − F2 u2 ,
D D D D
Π(u) =
B 2

mit einigen zusätzlichen Dirichlet-Randbedingungen an den Punkten A, B und C (Ab-


bildung 26). Dabei kennzeichnet EA die axiale Steifigkeit des Stabes, ũ(x̃) das lokale
Verschiebungsfeld und ũ′ (x̃) die Ableitung der lokalen Verschiebungen nach der lokalen
Koordinate x̃ jedes einzelnen Stabes. Die letzten beiden Terme des oben genannten Ge-
samtpotentials stellen die Arbeit dar, die durch den Lastvektor

F D = (F1 , F2 )T
D D
(5.18)
Lineare Finite Element Methode, c J. Schröder 44

die am Punkt (Knoten) D wirkt. Im Gleichgewichtszustand muss Π minimal sein:


Z
EAũ′ (x̃)δũ′ (x̃) dx̃ − F1 δu1 − F2 δu2 = 0,
D D D D
δΠ(u, δu) = (5.19)
B

D D
wobei δũ das virtuelle Verschiebungsfeld der einzelnen Fachwerke ist und δu1 , δu2 die
horizontalen und vertikalen virtuellen Verschiebungen von Knoten D darstellen.

Aufteilung des Systems in finite Elemente: Der betrachtete Körper B wird durch Bh
angenähert. Bezeichnen wir mit numele die Anzahl der endlichen Elemente Be , so schreiben
wir
[ele
num
h
B≈B = Be .
e=1

Dies führt zu der folgenden Darstellung von (5.19)


X
numele Z
EAũ′ (x̃)δũ′ (x̃) dx̃ −F1 δu1 − F2 δu2 = 0,
D D D D
δΠ(u, δu) = (5.20)
e
e=1 |B {z }
e,int
=: δΠ
wobei δΠe,int der Beitrag eines typischen Elements zur ersten Variation der gesamten
potenziellen Energie ist. Die Aufteilung der Gesamtstruktur in einzelne Elemente ist in
Abbildung 27 dargestellt. Hier haben wir der Einfachheit halber drei zweiknodige finite
Elemente gewählt.

2 2 2 3 4

1 2

1 3

Abbildung 27: Unterteilung der Struktur in drei finite Elemente Be für e = 1,2,3.

Approximation der Basisvariablen Die einzelnen finiten Elemente spielen bei dieser Ap-
proximationsmethode eine wichtige Rolle. Über den Bereich Be interpolieren wir die in-
teressierende Variable, also führen wir für jedes einzelne finite Element Be mit der Länge
le das lokale Koordinatensystem x̃1 , x̃2 ein, wie in Abbildung 28 zu sehen ist. Die Approx-
imation der lokalen Verschiebungen für das gewählte zweikodige Element mit den linearen
Formfunktionen

1 x̃ le le
N 1 (x̃) = − → N 1 (− ) = 1, N 1 (+ ) = 0,
2 le 2 2
1 x̃ le le
N 2 (x̃) = + e → N 2 (− ) = 0, N 2 (+ ) = 1,
2 l 2 2

ist in Form der lokalen Knotenverschiebungen d̃ 1 und d̃ 2 gegeben als

ũh (x̃) = N 1 d̃ 1 + N 2 d̃ 2 = IN d̃e . (5.21)


Lineare Finite Element Methode, c J. Schröder 45

IN bezeichnet die Matrix der Formfunktionen und d̃e die Matrix der diskreten lokalen
Verschiebungen für ein typisches finites Element; diese Matrizen sind gegeben durch
 1 
e d̃
IN = [ N , N ] und d̃ =
1 2
.
d̃ 2

Außerdem benötigen wir die Ableitungen der Verschiebungsinterpolationen nach x̃, siehe
(5.20). Die formale Ableitung von (5.21) ergibt

dũh (x̃)
= ũ′h (x̃) = N,x̃ d̃ 1 + N,x̃ d̃ 2 .
1 2

dx̃
Bei der Anwendung der Finite-Elemente-Methode ist es üblich, die Ableitungen der Form-
funktionen in sogenannten IB-Matrizen anzuordnen, um Ausdrücke der folgenden Form
zu erhalten
ũ′h (x̃) = IB d̃e mit IB = [ N,x̃ , N,x̃ ].
1 2
(5.22)

N 1
+ d2
2

+ N 2 2 2
d1

x̃2 α x2
d̃ 1
d̃ 2
d2
1 x̃2 x̃1
x̃1 α
1 2 x1
e 1
d1
le le 1
2 2

Abbildung 28: Finite Elemente Be im lokalen (links) und globalen (rechts) Koordinaten-
system.

Wir transformieren nun die lokalen diskreten Knotenverschiebungen d̃e = (d̃ 1 , d̃ 2 )T in


die globalen Knotenverschiebungen de = (d1 , d2 , d1 , d2 )T , siehe Abbildung 28 für De-
1 1 2 2

tails. Diese Transformation wird mit Hilfe der Transformationsmatrix T wie unten gezeigt
erreicht
 
1
d
     1 
 1 
d̃ 1 cosα sinα 0 0  d2 
e
d̃ = T d e
→  =    (5.23)
 2  .
d̃ 2
0 0 cosα sinα  d1 
 
2
d2

Setzt man die Transformationsregel (5.23) in (5.22) ein, ergibt sich

ũ′h (x̃) = IB T de .

Für die virtuellen Verschiebungsfelder δũ(x̃) wird dieselbe Interpolation verwendet wie für
das Verschiebungsfeld, d.h.,

δũh (x̃) = N 1 δ d̃ 1 + N 2 δ d̃ 2 = IN δ d̃e , (5.24)


Lineare Finite Element Methode, c J. Schröder 46

wird die Gleichung für die Approximation von δũ′ in die Form
δu′h (x̃) = IB T δde ,
wobei δ d̃e und δde die Elementvektoren der diskreten virtuellen Verschiebungen im lokalen
bzw. globalen Koordinatensystem charakterisieren. Setzt man diese Beziehungen in δΠe,int
zusammen mit der elementweisen Konstantenmatrix T ein, so erhält man
Z
e,int eT T e e e
δΠh = δd T k̃ T d mit k̃ = IBT EAIB dx̃, (5.25)
| {z } B e
=: ke
wobei k̃e und ke die Steifigkeitsmatrizen der Elemente im lokalen bzw. globalen Koordi-
natensystem sind.

5.2.2 Das Assembly Verfahren Ein weiterer wichtiger Bestandteil der Finite-
Elemente-Methode ist das Montageverfahren. Für eine anschauliche Motivation dieses
Schrittes betrachten wir den algebraischen Ausdruck
X
numele

δdeT ke de − F1 δd1 − F2 δd2 = 0,


2 2 2 2
δΠh = (5.26)
e=1

über die Zuweisungen


{A, B, C, D} → {1, 3, 4, 2}
für die globalen Knoten, vgl. Abbildungen ?? und ??. Hier müssen wir die globalen Kno-
tennummern des diskretisierten Systems berücksichtigen, um das globale Gleichungssys-
tem zusammenzustellen:
δΠh = δDT (K D − P) = 0 (5.27)
wobei der globale Verschiebungsvektor
D = (D1 , D2, D3 , D4 , D5, D6 , D7, D8 )T ,
analog dazu definieren wir δD; der globale Lastvektor ist dann
P = (0, 0, F1 , F2 , 0, 0, 0, 0)T,
2 1

und die globale Steifigkeitsmatrix K muss zusammengesetzt werden.


D4 D8

D3 D7

D2 D6
D1 D5

Abbildung 29: Globale Freiheitsgrade D1 , D2 , D3, D4 , D5, D6 , D7 , D8.


.
Die Anordnung der tatsächlichen und virtuellen Knotenverschiebungen in den globalen
Vektoren D und δD steuert den Montageprozess. Zur weiteren Verdeutlichung führen wir
die Konnektivitätsmatrix
ein
Lineare Finite Element Methode, c J. Schröder 47

❵❵❵
❵❵❵
❵❵❵ Element 1 2 3
lokaler Knoten ❵❵❵❵❵❵

1 1 3 2

2 2 2 4

Die Konnektivitätsmatrix ordnet die lokalen Knoten den globalen Knoten zu (die in den
grau schattierten Kästen angesprochen werden). Zum Beispiel sind die lokalen Knoten 1
und 2 von Element 2 die globalen Knoten 3 und 2. Vernachlässigt man an dieser Stelle die
Randbedingungen der Verschiebung, so erhält man eine globale Steifigkeitsmatrix K ∈
IR8×8 , da wir 4 Globalknoten haben, von denen jeder mit 2 Freiheitsgraden ausgestattet
ist. Der Assemblierungsvorgang wird bezeichnet mit
nele
K= A ke , (5.28)
e = 1
nele
wobei A den Assemblierungsoperator darstellt.
e = 1

Für den in den Abbildungen 26 und 27 dargestellten einfachen Fall erhalten wir
die Elementsteifigkeitsmatrizen ke in Bezug auf das globale Koordinatensystem sowie
die Elementvektoren für die virtuellen δde und die tatsächlichen de Verschiebungen für
e = 1, 2, 3 in der Form
     
δD1 k✷1
k✷1
k✷1
k✷1
D
   11 12 13 14   1 
   ✷   
 δD2   k21 k✷
1 1 ✷ ✷
22 k23 k24 
1 1
 D2 

1
δd =    ✷
1   ✷1  ,
, k =  ✷ ✷ ✷ ✷ , d =  
 δD3   k31 k32 k33 k34 
1 1 1 1
 D3 
     
δD4 k✷1
41 k✷1
42 k✷1
43 k✷1
44 D 4

und      
δD5 0 0 0 0 D5
     
   ✷ ✷   
 δD6   0 k22 0 k24 
2 2
 D6 

2 
δd =  , ✷
2 
k = , ✷
2 
d = ,
  
 δD3   0 0 0 0   D3 
     
δD4 ✷2 ✷2
0 k42 0 k44 D4
und      
δD3 k✷3 ✷3
11 0 k13 0 D
     3 
     
 δD4   0 0 0 0   D4 
δd✷ = 
3

,
 k✷ = 
3
 ✷
,
 d✷ = 
3

.

 δD7   k31
3
0 ✷
k33 0 
3
 D7 
     
δD8 0 0 0 0 D8
Mit der Summierung in (5.26) mit
X
numele

δdeT ke de = δDT K D (5.29)


e=1
Lineare Finite Element Methode, c J. Schröder 48

ergibt sich die explizite Form


 
k✷1
11 k✷1
12 k✷1
13 k✷1
14
 
 
 k✷1
21 k✷1
22 k✷1
23 k✷1
24 
 
 
 k✷1
31 k✷1
32 k✷1 ✷3
33 + k11 k✷1
34 0 0 k✷3
13 0 
 
 
 k✷1
41 k✷1
42 k✷1
43 k✷1 ✷2
44 + k44 0 k✷2
42 0 0 
K=

.

 0 0 0 0 
 
 
 0 k✷2
24 0 k✷2
22 
 
 
 k✷3
31 0 k✷3
33 0 
 
0 0 0 0

Im nächsten Schritt berücksichtigen wir die Randbedingungen der Verschiebung (Dirich-


let). Wenn wir davon ausgehen, dass die Randverschiebungen an den Knoten 1, 3 und 4
gleich Null sind, müssen wir die Assemblierungs-Gleichungen ändern. Dazu löschen wir
die Zeilen und Spalten mit den Nummern 1, 2, 5, 6, 7, 8 (die mit D1 , D2 , D5 , D6, D7 bzw.
D8 verbunden sind) von K sowie die zugeordneten Zeilen in P . Das Ergebnis ist der
reduzierte Satz von Gleichungen

T T
D (K D − P) = 0 ∀ D → K D = P, (5.30)

mit den expliziten Formen der reduzierten Matrizen K, D, P :


     
2
k✷1 ✷3
33 + k11 k✷1
34 D3 F1
   =  (5.31)
2
k✷1
43 k✷1 ✷2
44 + k44 D4 F2

Lösen des Gleichungssystems: Wir lösen nun das reduzierte Gleichungssystem in Be-
zug auf (D3 , D4 ). In dieser einfachen Situation können wir die Inverse der Koeffizienten-
matrix direkt berechnen, wie unten gezeigt
     
2
D3 1  k✷1 ✷2
44 + k44 −k✷1
34 F1
 =    (5.32)
D4 det[K] −k✷1
43 k✷1 ✷3
33 + k11 F2
2

mit
det[K] = (k✷1 ✷3 ✷1 ✷2 ✷1 ✷1
33 + k11 )(k44 + k44 ) − k43 k34 . (5.33)

Zur Lösung des Gleichungssystems werden im Allgemeinen bewährte numerische Verfah-


ren eingesetzt. Wir unterscheiden zwischen direkten Methoden, wie der Gaußschen Di-
rektelimination und der Cholesky-Reduktion, und iterativen Methoden, wie konjugierten
Gradientenmethoden und Relaxationsschemata.
Lineare Finite Element Methode, c J. Schröder 49

5.2.3 Bemerkungen zur Implementierung Für eine effiziente Implementierung


müssen wir, wie oben erwähnt, anspruchsvollere Verfahren für den Zusammensetzungs-
prozess entwickeln. Wir führen daher ein ganzzahliges Array ein, das die Positionen der
Einträge der Elementsteifigkeitsmatrizen angibt
e e
ke ∈ IRkdim ×kdim

in der globalen Steifigkeitsmatrix

K ∈ IRnumeq ×numeq .

Die Dimension der Steifigkeitsmatrix des Elements wird bestimmt durch

kedim = nodesele ∗ dofnodes , (5.34)

wobei nodesele die Knoten pro Element bezeichnet und dofnodes die globalen Freiheits-
grade pro Knoten darstellt. Wenn numdbc die Anzahl der Dirichlet-Randbedingungen sind,
dann ist die Dimension der globalen Steifigkeitsmatrix gegeben als numeq × numeq , wobei

numeq = numnodes ∗ dofnodes − numdbc (5.35)

wobei die Anzahl der Knoten des gesamten Systems als numnodes bezeichnet wird.

Erläuterung des Assembly-Prozesses: Um den Assembly-Prozess zu erläutern, be-


trachten wir die in Abbildung 30 dargestellte ebene Fachwerkstruktur. Jedes einzelne
Fachwerkelement hat zwei Knotenpunkte

nodesele = 2

mit zwei Freiheitsgraden (die Verschiebungen in x- und y-Richtung)

dofnodes = 2.

4
2 8 9 6

y 3 4 5 6 7

1 1 2 5
x 3

Abbildung 30: Eine ebene Fachwerkstruktur mit neun finiten Elementen.

Die Konnektivitätsmatrix der Diskretisierung der neun Fachwerkelemente ist wie folgt

❤❤❤
❤❤❤❤ Element
❤❤❤❤ 1 2 3 4 5 6 7 8 9
Lokaler Knoten ❤❤❤
❤❤❤❤

1 1 3 1 2 3 4 5 2 4

2 3 5 2 3 4 5 6 4 6
Lineare Finite Element Methode, c J. Schröder 50

Für die Computerimplementierung verwenden wir die Form


 
131234524
[connectivity] =  . (5.36)
352345646

Das Randwertproblem wird in neun Fachwerkelemente, sechs Knoten und vier (Null-
)Verschiebungsrandbedingungen diskretisiert, d.h.,

numele = 9, numnodes = 6, numdbc = 4.

Die Auswertung von (5.34) und (5.35) ergibt

ke ∈ IR4×4 and K ∈ IR8×8 .

Der Assembly-Prozess wird mit einem Integer-Array durchgeführt

assembleid ∈ IRdofnodes ×numnodes

die die Lage der einzelnen Einträge aus der Elementsteifigkeitsmatrix [ke ]IJ in die globale
Steifigkeitsmatrix [K]KL überträgt. Für das in Abbildung 30 dargestellte Randwertproblem
erhalten wir
❤❤❤
❤❤❤❤ Globaler Knoten i
❤❤❤ 1 2 3 4 5 6
❤❤❤❤
dof ❤❤❤ ❤
i
d1 1 2 4 6 8 0 .

i
d2 0 3 5 7 0 0

Dazu führen wir ein Array assembleid für die Computerimplementierung ein
 
124680
[assembleid ] =  . (5.37)
035700

Zur Erläuterung der Assemblierung


nele
K= A ke (5.38)
e = 1

wird das Verfahren beschrieben, mit dem die Elemente der Konnektivitätsmatrix (5.36)
zusammengesetzt werden. Zunächst wird die globale Steifigkeitsmatrix K mit Nullen
vorbesetzt, d.h.,
KIJ = 0.0 for I, J = 1, ...8 .
Anschließend werden alle Elemente durchlaufen, um die (lokalen) Elementsteifigkeitsma-
trizen zu erstellen und die globale Steifigkeitsmatrix zu aktualisieren. Die Iteration über
das erste Element im Assembly-Prozess wird wie folgt bezeichnet

e
K= A k for e = 1 (5.39)
e
Lineare Finite Element Methode, c J. Schröder 51

mit der Elementsteifigkeitsmatrix

1 0 4 5 global dof
 
k✷1
k✷1 ✷1 ✷1
12 k13 k14 1
 11 
 ✷  .
 k21
1
k✷1 ✷1 ✷
22 k23 k24 
1
0

1 
k =  

 k✷1
k✷1 ✷1 ✷
32 k33 k34 
1
4
 31 
k✷1
41 k✷1 ✷1 ✷1
42 k43 k44 5
Die ersten beiden Zeilen und Spalten von k✷ 1
sind mit den vertikalen und horizontalen
Freiheitsgraden des globalen Knotens 1 verbunden; die dritte und vierte Zeile und Spalte
sind mit dem globalen Knoten 3 verbunden. Eine weitere Erläuterung findet sich in der
ersten Spalte der Konnektivitätsmatrix (5.36).
Um die globale Steifigkeitsmatrix zu aktualisieren, verwenden wir nun die Informationen,
die im assembleid -Array (5.37) enthalten sind, was zu folgender Aktualisierung führt

K11 ⇐=K11 + k✷1


11 , K14 ⇐=K14 + k✷1
13 , K15 ⇐=K15 + k✷1
14 ,

K41 ⇐=K41 + k✷1


31 , K44 ⇐=K44 + k✷1
33 , K45 ⇐=K45 + k✷1
34 ,

K51 ⇐=K51 + k✷1


41 , K54 ⇐=K54 + k✷1
43 , K55 ⇐=K55 + k✷1
44 .

Für das nächste Inkrement in der assembly Schleife, i.e.,


e
K= A k for e = 2, (5.40)
e
aktualisieren wir die globale Steifigkeitsmatrix durch Addition die Einträge der Element-
steifigkeitsmatrix

4 5 8 0 global dof
 
k✷2
k✷2 ✷2 ✷2
12 k13 k14 4
 11 
 ✷  .
 k21
1
k✷2 ✷2 ✷
22 k23 k24 
2
5

2 
k =  

 k✷2
k✷2 ✷2 ✷
32 k33 k34 
1
8
 31 
k✷2
41 k✷2 ✷2 ✷1
42 k43 k44 0
zum jeweiligen Zielspeicherplatz in K. Element 2 hat die globalen Knoten 3 und 5: siehe die
zweite Spalte in der Konnektivitätsmatrix (5.36). Außerdem ist der globale Knoten Num-
mer 3 mit dem vierten und fünften globalen Freiheitsgrad verbunden, während der globale
Knoten Nummer 5 nur einen Beitrag zum gesamten Gleichungssystem leistet, nämlich den
achten. Diese Information wird in der dritten und fünften Spalte des assembleid -Arrays
(5.37) gespeichert. Im Einzelnen führen wir die folgenden Aktualisierungen für das zweite
Element durch:
K44 ⇐=K44 + k✷2
11 , K45 ⇐=K45 + k✷2
12 , K48 ⇐=K48 + k✷2
13 ,

K54 ⇐=K54 + k✷2


21 , K55 ⇐=K55 + k✷2
22 , K58 ⇐=K58 + k✷2
23 ,

K84 ⇐=K84 + k✷2


31 , K85 ⇐=K85 + k✷2
32 , K88 ⇐=K88 + k✷2
33 .

Die Schritte werden wiederholt, bis die Iteration über die Elemente abgeschlossen ist.
Lineare Finite Element Methode, c J. Schröder 52

allgemeine Eigenschaften lesen


Knotenpunkte, Koordinaten und Steifigkeit (E and A)


Berechnung der Anzahl der Gleichungen


vollständige Assemblierungsmatrix

✲❄
r begin loop über alle Elemente e

Berechnung der lokalen Elementsteifigkeit ke

e
die globale Steifigkeitsmatrix zusammenstellen K = A k
e


r end loop, if e > nele

vollständiger globaler Kraftvektor (interaktiv)


Lösen von Gleichungssystemen zur Berechnung von Verlagerungen


Postprocessing
Abbildung 31: Workflow für PlaneTrussElementStiffness.m
Lineare Finite Element Methode, c J. Schröder 53

Ein einfacher FEM-Code für ebene Fachwerke: Um mit den wichtigsten Verfahren
fortzufahren, betrachten wir eine Programmliste eines rudimentären FEM-Programms für
ebene Fachwerkstrukturen, das in MATLAB geschrieben wurde:

% MAIN PROGRAM
%--------------------------------------------------------------------
% FEM for simple plane struss structures
%--------------------------------------------------------------------
clear all
close all
%-read general properties--------------------------------------------
num_ele = input(’give the total number of elements. num_ele = ’);
num_nodes = input(’give the total number of nodes. num_nodes = ’);
disp(’ ’);
%-define nodes, coordinates and stiffnes (E and A) for elements------
for i = 1:num_ele
fprintf(’element no.%g\n’,i);
connectivity(1,i) = input(’ global node for 1st local node = ’);
connectivity(2,i) = input(’ global node for 2nd local node = ’);
elementdata(i,:) = input(’ element data [ E A ] = ’);
disp(’ ’);
end
for i = 1:num_nodes
fprintf(’node no.%g\n’,i);
X(:,i) = input(’ global node coordinates [ x y ] = ’)’;
disp(’ ’);
end
%-compute number of equations----------------------------------------
disp(’give the total number of displacement boundary conditions’)
num_bc = input(’ num_bc = ’);
num_eq = num_nodes*2 - num_bc;
%-assemble matrix----------------------------------------------------
assembleid = -ones(2,num_nodes);
disp(’ input of global dofs with zero boundary displacements’)
disp(’ for i from 1 to num_bc’)
for i = 1:num_bc
node = ...
input(’ global node of constrained degree of freedom = ’);
dof = ...
input(’ degree of freedom to constrained (1=x,2=y) = ’);
assembleid(dof,node) = 0;
end
idof = 0;
for i = 1:num_nodes
for j = 1:2
if assembleid(j,i) ~= 0
idof = idof + 1;
assembleid(j,i) = idof;
end
end
end
Lineare Finite Element Methode, c J. Schröder 54

%-compute global stiffnes matrix-------------------------------------


K = zeros(num_eq,num_eq);
for i = 1:num_ele
k = PlaneTrussElementStiffness(elementdata(i,1), ...
elementdata(i,2),X(:,connectivity(1,i)),X(:,connectivity(2,i)));
I = assembleid(:,connectivity(1,i));
J = assembleid(:,connectivity(2,i));
IJ = find(( [ I J ] ) ~= 0);
K = PlaneTrussAssemble(K,k,I,J,IJ);
end
disp(’ ’);
%-global force vector------------------------------------------------
R = zeros(num_eq,1);
disp(’give the total number of nodes with non-zero load vectors’)
num_loads = ...
input(’ num_loads = ’);
disp(’ input of load vectors for i from 1 to num_loads’)
for i = 1:num_loads
lbc = input(’ no. of global node with non-zero load vector = ’);
if assembleid(2*lbc-1) ~= 0 & assembleid(2*lbc) ~= 0
R(assembleid(2*lbc-1)) = ...
input(’ force in global x-direction = ’);
R(assembleid(2*lbc)) = ...
input(’ force in global y-direction = ’);
elseif assembleid(2*lbc-1) ~= 0
R(assembleid(2*lbc-1)) = ...
input(’ force in global x-direction = ’);
elseif assembleid(2*lbc) ~= 0
R(assembleid(2*lbc)) = ...
input(’ force in global y-direction = ’);
elseif assembleid(2*lbc-1) == 0 & assembleid(2*lbc) == 0
disp(’all degrees of freedom in this node are constrained!’);
pause(1);
end
end
%-displacement computed by Gaussian elimination----------------------
u = K\R;
%-print the data-----------------------------------------------------
disp(’ ’);disp(’element connectivity table’);disp(’ ’);
disp(’ =============================’)
disp(’ | e | Node i | Node j |’)
disp(’ =============================’)
for i = 1:num_ele
fprintf(’ | %g | %g | %g |’, ...
i,connectivity(1,i),connectivity(2,i))
disp(’ ’);
end
disp(’ =============================’)
disp(’ ’);disp(’global stiffness matrix’); K
disp(’ ’);disp(’global force vector ’); R
disp(’ ’);disp(’displacement vector ’); u
Lineare Finite Element Methode, c J. Schröder 55

PlaneTrussElementStiffness.m ist die Unterroutine zur Berechnung der Elementsteifig-


keitsmatrix im globalen Koordinatensystem. Die Eingabewerte sind der Elastizitätsmodul
E, die Querschnittsfläche A und die Koordinaten

node_i(1) = x(1)
node_i(2) = y(1)
node_j(1) = x(2)
node_j(2) = y(2)

für die einzelnen Knoten i und j des Elements, siehe Abbildung 32.
j j
(xj , yj )
e
y i i α
(xi , yi )
x

Abbildung 32: Interpretation der im Unterprogramm vorkommenden Variablen


PlaneTrussElementStiffness.m

Die Ausgangsvariable ist die Elementsteifigkeitsmatrix


Z
e T e
k = T k̃ T mit k̃ = e
IBT EAIB dx̃
Be

im globalen x, y-Koordinatensystem.
function y = PlaneTrussElementStiffness(E,A,node_i,node_j)
%-compute element stiffnes matrix------------------------------------
L = sqrt((node_j(1) - node_i(1))^2 + (node_j(2) - node_i(2))^2);
if node_j(1) == node_i(1)
if node_i(2) > node_j(2)
alpha = -pi/2;
elseif node_i(2) < node_j(2)
alpha = pi/2;
end
else
alpha = atan((node_j(2) - node_i(2))/(node_j(1) - node_i(1)));
end
C = cos(alpha);
S = sin(alpha);
y = E*A/L*[ C*C C*S -C*C -C*S ;
C*S S*S -C*S -S*S ;
-C*C -C*S C*C C*S ;
-C*S -S*S C*S S*S ];
Die Subroutine PlaneTrussAssemble.m ist die Steuerroutine für den Assembly-Prozess
nele
K= A ke .
e = 1
Wenn das Element nur einen aktiven Freiheitsgrad hat, verwenden wir Assemble1.m,
wenn das Element zwei aktive Freiheitsgrade hat, verwenden wir Assemble2.m, und so
weiter.
Lineare Finite Element Methode, c J. Schröder 56

function y = PlaneTrussAssemble(K,k,I,J,IJ)
%--------------------------------------------------------------------
%Input: element stiffnes matrix
%Output: updated global stiffnes matrix
%--------------------------------------------------------------------
if size(find([ I’ J’ ] ~= 0),2) == 1
K = Assemble1(K,k,I,J,IJ);
elseif size(find([ I’ J’ ] ~= 0),2) == 2
K = Assemble2(K,k,I,J,IJ);
elseif size(find([ I’ J’ ] ~= 0),2) == 3
K = Assemble3(K,k,I,J,IJ);
elseif size(find([ I’ J’ ] ~= 0),2) == 4
K = Assemble4(K,k,I,J,IJ);
end
y = K;

function y = Assemble1(K,k,I,J,IJ)
%--------------------------------------------------------------------
% Assembly routine for element with one active dof
i = find([ I’ J’ ] ~= 0);
switch i
case 1, a = I(1);
case 2, a = I(2);
case 3, a = J(1);
case 4, a = J(2);
end
K(a,a) = K(a,a) + k(IJ,IJ);
y = K;

function y = Assemble2(K,k,I,J,IJ)
%--------------------------------------------------------------------
% Assembly routine for element with two active dofs
if size(find(I ~= 0),1) == 2
a = I(1);
b = I(2);
elseif size(find(J ~= 0),1) == 2
a = J(1);
b = J(2);
elseif (size(find(I ~= 0),1) == 1) & (size(find(J ~= 0),1) == 1)
a = I(find(I ~= 0));
b = J(find(J ~= 0));
end
i = IJ(1);
j = IJ(2);
K(a,a) = K(a,a) + k(i,i);
K(a,b) = K(a,b) + k(i,j);
K(b,a) = K(b,a) + k(j,i);
K(b,b) = K(b,b) + k(j,j);
y = K;
Lineare Finite Element Methode, c J. Schröder 57

function y = Assemble3(K,k,I,J,IJ)
%--------------------------------------------------------------------
% Assembly routine for element with three active dofs
if size(find(I ~= 0),1) == 1
a = I(find(I ~= 0));
b = J(1);
c = J(2);
elseif size(find(J ~= 0),1) == 1
a = I(1);
b = I(2);
c = J(find(J ~= 0));
end
K(a,a) = K(a,a) + k(IJ(1),IJ(1));
K(a,b) = K(a,b) + k(IJ(1),IJ(2));
K(a,c) = K(a,c) + k(IJ(1),IJ(3));
K(b,a) = K(b,a) + k(IJ(2),IJ(1));
K(b,b) = K(b,b) + k(IJ(2),IJ(2));
K(b,c) = K(b,c) + k(IJ(2),IJ(3));
K(c,a) = K(c,a) + k(IJ(3),IJ(1));
K(c,b) = K(c,b) + k(IJ(3),IJ(2));
K(c,c) = K(c,c) + k(IJ(3),IJ(3));
y = K;

function y = Assemble4(K,k,I,J,IJ)
%--------------------------------------------------------------------
% Assembly routine for element with four active dofs
a = I(1);
b = I(2);
c = J(1);
d = J(2);
K(a,a) = K(a,a) + k(1,1);
K(a,b) = K(a,b) + k(1,2);
K(a,c) = K(a,c) + k(1,3);
K(a,d) = K(a,d) + k(1,4);
K(b,a) = K(b,a) + k(2,1);
K(b,b) = K(b,b) + k(2,2);
K(b,c) = K(b,c) + k(2,3);
K(b,d) = K(b,d) + k(2,4);
K(c,a) = K(c,a) + k(3,1);
K(c,b) = K(c,b) + k(3,2);
K(c,c) = K(c,c) + k(3,3);
K(c,d) = K(c,d) + k(3,4);
K(d,a) = K(d,a) + k(4,1);
K(d,b) = K(d,b) + k(4,2);
K(d,c) = K(d,c) + k(4,3);
K(d,d) = K(d,d) + k(4,4);
y = K;
Lineare Finite Element Methode, c J. Schröder 58

Um die Handhabung des kleinen Programms zu verdeutlichen, gehen wir die einzelnen
Schritte durch und erläutern die relevanten Details. Im Folgenden betrachten wir ein
anschauliches Beispiel der ebenen Fachwerkstruktur, wie sie in Abbildung 33a dargestellt
ist, die mit zwei Elementen und drei globalen Knoten diskretisiert wird: siehe Abbildung
33b.

F 2
2
F2
2
F1
2
2 3
2
1
x2
1
2 2 x1

Abbildung 33: Ebenes Fachwerk: Abmessungen (in Metern) und Randbedingungen, (links)
Diskretisierung der Struktur (rechts).

Daher müssen wir nach dem Start des Programms die folgenden Eingaben vornehmen:

>> PlaneTruss
give the total number of elements. num_ele = 2
give the total number of nodes. num_nodes = 3

Im nächsten Schritt geben wir Informationen über die Konnektivität und Steifigkeit des Fach-
werks. Element 1 besteht aus den globalen Knoten 1 und 2, Element 2 aus den Knoten 2 und 3.
Die Konnektivitätsmatrix ist somit gegeben als

❤❤❤
❤❤❤❤ Element
❤❤❤ 1 2
Lokaler Knoten ❤❤❤❤❤


1 1 2 .

2 2 3

Für die numerische Analyse wird der Elastizitätsmodul auf E = 10000 kN/m2 und die Quer-
schnitte für die Elemente 1 und 2 werden wie folgt festgelegt

0.02 m2 and 0.015 m2 .

Dementsprechend werden die nächsten Einträge wie folgt eingegeben

element no.1
global node for 1st local node = 1
global node for 2nd local node = 2
element data [ E A ] = [10000 0.02]

element no.2
Lineare Finite Element Methode, c J. Schröder 59

global node for 1st local node = 2


global node for 2nd local node = 3
element data [ E A ] = [10000 0.015]

Als nächstes geben wir die (x1 , x2 ) Koordinaten aller Knoten ein: hier verwenden wir die Notation
x = x1 und y = x2 .

node no.1
global node coordinates [ x y ] = [0 0]

node no.2
global node coordinates [ x y ] = [2 2]

node no.3
global node coordinates [ x y ] = [4 2]

Die Gesamtzahl der Randbedingungen für die Verschiebung beträgt vier: Die horizontalen und
vertikalen Verschiebungen der Knoten 1 und 3 werden auf Null gesetzt. Wir wenden an
1 1 3 3
d1 = d2 = d1 = d2 = 0 ,

oder äquivalent
D1 = D2 = D5 = D6 = 0 .
Die Eingabewerte sind:

give the total number of displacement boundary conditions


num_bc = 4
input of global dofs with zero boundary displacements
for i from 1 to num_bc
global node of constrained degree of freedom = 1
degree of freedom to constrained (1=x,2=y) = 1
global node of constrained degree of freedom = 1
degree of freedom to constrained (1=x,2=y) = 2
global node of constrained degree of freedom = 3
degree of freedom to constrained (1=x,2=y) = 1
global node of constrained degree of freedom = 3
degree of freedom to constrained (1=x,2=y) = 2

Wie in den vorherigen Abbildungen gezeigt, wirkt auf den Knoten 2 ein lokaler Vektor F 2 , wobei

F 2 = [F1 , F2 ]T = [0.01 kN, −0.05 kN]T .


2 2

give the total number of nodes with non-zero load vectors


num_loads = 1
input of load vectors for i from 1 to num_loads
no. of global node with non-zero load vector = 2
force in global x-direction = 0.01
force in global y-direction = -0.05
Lineare Finite Element Methode, c J. Schröder 60

Die erste Ausgabe ist die Tabelle der Elementkonnektivität. Im Folgenden haben wir die Anord-
nung der Zeilen und Spalten geändert

=============================
| e | Node i | Node j |
=============================
| 1 | 1 | 2 |
| 2 | 2 | 3 |
=============================

Danach werden die globale Steifigkeitsmatrix K und der globale Kraftvektor P angezeigt
   
110.3553 35.3553 0.0100
K= , P =  
35.3553 35.3553 −0.0500

The solution vector u of the system of equations is obtained by using a Gaussian elimination:
   
D3 0.0008
 = .
D4 −0.0022

Um diese Lösung zu überprüfen, betrachten wir die Normalkräfte und die äußeren Lasten, die auf
den globalen Knoten 2 wirken, und bewerten die Gleichgewichtsbedingungen wie in Abbildung 34
dargestellt.
2
d1

2
2
|F1 | |∆l2 |
|F2 |
|∆l1 |
1
|F1 |
S2 45◦ d 2
S1
S1 F2
2 2
d2

0, 01kN

S2
a) b) c)

Abbildung 34: a) Normal forces S1 , S2 and load vector F acting on node 2; b) polygon of
forces for the free-body diagram; c) displacement of node 2.

Wie aus der Abbildung 34b ersichtlich, erhalten wir

S1 = −0.07071 kN S2 = −0.06 kN.

Aus diesen Größen erhält man die Dehnungen der Stäbe ∆li = Si li /(EAi ):

∆l1 = −0.001 m ∆l2 = −0.0008 m.

Die Auswertung dieser Beziehungen in Abbildung 34c, wobei ∆l1 und ∆l2 die Projektionen der
resultierenden Verschiebung d 2 des Knotens 2 auf die Mittellinien der einzelnen Stäbe sind,
ergibt die Verschiebungswerte
2 2
d1 = 0.0008 and d2 = −0.0022,
Lineare Finite Element Methode, c J. Schröder 61

die mit den numerischen Ergebnissen übereinstimmen.


♠ Übung zu 5.2.3
Berechnen Sie die globale Steifigkeitsmatrix, den globalen Lastvektor und die Verschiebungen
der in Abbildung (35) dargestellten ebenen Fachwerkstruktur. Die Abmessungen sind in Metern
angegeben, alle Stäbe haben eine Querschnittsfläche von 0, 02 m2 und der Elastizitätsmodul
beträgt 10000 kN/m2 . Für die Berechnung wird die in der Abbildung (36) gezeigte Diskretisierung
verwendet.

1 kN 2 kN

l l l

Abbildung 35: Eine ebene Fachwerkstruktur mit zwei vertikalen Lasten.

F 3
F 5

3 6 5

2 3 5 7 9

1 1 4 8 6
2 4

Abbildung 36: Diskretisierung der ebenen Fachwerkstruktur mit neun finiten Elementen
und sechs globalen Knotenpunkten.


Lineare Finite Element Methode, c J. Schröder 62

5.3 Lineares 3D-Stabelement

In diesem Abschnitt betrachten wir die dreidimensionale Formulierung eines axial belasteten
linearen Stabelementes. In dem Stab treten nur Normalkräfte und Spannungen in Richtung der
Stabachse auf. Die starke Form des Randwertproblems ist gegeben durch die lokale Impulsbilanz
unter Vernachlässigung von Beschleunigungstermen

σ11,1 + f1 = 0 in B (5.41)

und die Verschiebungsrandbedingungen und Spannungsrandbedingungen

u = ū auf ∂Bu und t = t̄ auf ∂Bσ . (5.42)

Die Impulsbilanz bezieht sich hier auf ein lokales Koordinatensystem x̃, wobei x̃ in Stabrichtung
verläuft. Im Rahmen des Galerkin-Verfahrens ergibt sich hieraus die schwache Form des Gleich-
gewichts, wobei die virtuellen Verschiebungen δu1 (x̃) := η(x̃) gleich den Testfunktionen sind. Die
schwache Form (Prinzip der virtuellen Verschiebungen) lautet
Z Z
σ11,1 δu1 dV + f1 δu1 dV = 0 . (5.43)
B B

Mit Hilfe der partiellen Integration läßt sich die schwache Form (5.43) umformen zu
Z Z
Aσ11 δu1 − σ11 δu1,1 dV + f1 δu1 dV = 0 . (5.44)
∂Bσ B B

Mit der Einzelkraft F1 = Aσ11 und der Streckenlast p = f1 A in Stabrichtung erhalten wir mit
dV = A dx̃ folgende Darstellung der schwachen Form
Z Z
G := Aσ11 δε11 dx̃ − p δu1 dx̃ − F1 δu1 = 0, (5.45)
l l ∂Bσ

mit der Definition der virtuellen Verzerrungen δε11 := δu1,1 . Das Gesamtgebiet B wird nun im
Rahmen der Methode der Finiten Elemente in einfache Teilgebiete B e aufgeteilt. Hier setzen wir
voraus, daß wir B exakt approximieren, d.h.
n[
ele
h
B=B = Be . (5.46)
e=1

Für die schwache Form (5.43) ergibt sich unter Berücksichtigung der Zerlegung des Gesamtge-
bietes in nele Teilgebiete B e die Darstellung
 

 

Z
nele 
X Z 
 XnF
h
G := Aδε11 σ11 dx̃ − δu1 p dx̃ − δui Fi = 0. (5.47)
 le  e
∂Bσ
e=1 
| {z } | le
{z } 

| i=1
{z }
=:Ge,int =:−Ge,ext
=:−GF,ext

Hierbei charakterisiert Ge,int die virtuelle Arbeit der inneren Kräfte, Ge,ext die virtuelle Arbeit
infolge p für ein Element B e und GF,ext die virtuelle Arbeit der äußeren Kräfte.
Für die räumliche Formulierung des Stabelementes sind die lokalen Verschiebungsgrößen, die
diskreten Verschiebungen d˜1 und d˜2 in Stabrichtung, durch die globalen Verschiebungen

dTI = (dI1 , dI2 , dI3 )|I = 1, 2 (5.48)


Lineare Finite Element Methode, c J. Schröder 63

auszudrücken. Der Index I charakterisiert die Knotennummer des entsprechenden Elements. Die
lokalen Verschiebungen in Stabrichtung ergeben sich durch die Projektion der 3D-Verschiebungen
mit Hilfe des Einheitsvektors t in Stabrichtung zu
2
X
u = tT u = NI (x̃) (tT dI ) (5.49)
| {z }
I=1
=:d˜I

1 x̃ 2
2
t
0 le
1 x2 d2
1 N1 (x̃)
x3 x1

d1 N2 (x̃) 1
e3

e2 x2
e1
x1
Abbildung 37: Konfiguration des 3D-Stabelementes mit linearen Verschiebungsansätzen.

Die Ansatzfunktionen im lokalen x̃-Koordinatensystem lauten


x̃ x̃
N1 (x̃) = 1 − und N2 (x̃) = . (5.50)
le le
∂u
Mit der Definition der Verzerrungen ε11 := folgt
∂ x̃
2
! 2
∂ X X
ε11 = NI (x̃)(tT dI ) = NI,x̃ (tT dI ) . (5.51)
∂ x̃
I=1 I=1

Die Ableitungen der Ansatzfunktionen ergeben sich zu


1 1
N1,x̃ = − und N2,x̃ = . (5.52)
le le
Typischerweise schreiben wir die Verzerrungen in der Form
2
X
ε11 = BI dI , mit BI = NI,x̃ tT . (5.53)
I=1

Mit der Einführung des Elementverschiebungsvektors deT = (dT1 , dT2 ) und der Element B-Matrix
B e ergibt sich
ε11 = B e de mit B e = [B1 , B2 ] = [−tT , tT ]/le . (5.54)
Analog gehen wir vor zur Berechnung der virtuellen Verschiebungen δu1 und der virtuellen
Verzerrungen δε11 , d.h. wir erhalten mit
2
X
δu1 = tT δu = NI (x̃)tT δdI (5.55)
I=1
Lineare Finite Element Methode, c J. Schröder 64

die Gleichung
δε11 = B e δde (5.56)
mit dem Elementvektor der virtuellen Verschiebungen

δdeT = (δdT1 , δdT2 ) . (5.57)

Setzen wir Gleichung (5.56) und Gleichung (5.54) in Ge,int ein, so folgt mit dem Hookschen
Werkstoffgesetz σ11 = Eε11
Z Z
e,int eT eT e e eT
G = δd B EAB d dx̃ = δd B eT EAB e dx̃ de . (5.58)
e
(l ) e
(l )
| {z }
=:ke

Zur Berechnung der Elementsteifigkeitsmatrix ist die Integration über die Stablänge durchzufüh-
ren. Mit den konstanten B-Matrizen ergibt sich die einfache Beziehung
 T   
e e eT e e B1 B1 B1T B2 EA ttT −ttT
k = EAl B B = EAl = e . (5.59)
B2T B1 B2T B2 l −ttT ttT

Zur Berechnung des Lastvektors betrachten wir nun den Ausdruck Ge,ext der äußeren virtuellen
Arbeit. Mit der Projektion der Kraftvektoren FI |I = 1, . . . , nF auf die Stabrichtung, FI1 := tT FI ,
und Gleichung (5.55)1 ergibt sich
Z
e,ext
G = p tT δu dx̃ , (5.60)
le

mit den Knotenkoordinaten xI . Werten wir die Gleichung mit Gleichung (5.55)2 aus, so ist
2
X Z
e,ext
G = δdTI ptNI (x̃)dx̃ . (5.61)
I=1 (le )

Nehmen wir p als konstant an, so erhalten wir für ein typisches Element
2
X  
e,ext l
G = δdTI p t = δdeT pe . (5.62)
2
I=1

Setzen wir die Ergebnisse (5.62) und (5.58) mit (5.59) in (5.47) ein, so folgt
nele
X nF
X
 eT e e
Gh = δd (k d − pe ) − δdTi Fi = 0 ∀ δd . (5.63)
e=1 i=1

Assemblieren wir den Ausdruck (5.63) über alle Elemente, so erhalten wir

Gh = δD T (KD − P ) = 0 ∀ δD , (5.64)

mit der globalen Steifigkeitsmatrix K, dem globalen Lastvektor P , dem globalen Verschiebungs-
vektor D und dem globalen virtuellen Verschiebungsvektor δD:
!
nele nele
K := A ke , P := Ap e
+ FG , (5.65)
e = 1 e= 1

wobei F G einen Spaltenvektor mit den Kraftkomponenten Fi assoziiert zu den globalen Knoten-
verschiebungen Di darstellt.
Lineare Finite Element Methode, c J. Schröder 65

|F |
2
2 3

l
y

1
x

i e j
l l
(a) Globales System mit globalen Knoten- (b) Lokales System
und Elementnummern

Abbildung 38: FE-Diskretisierung eines Stab-Elements

Anmerkung: Assemblierung der Gesamtsteifigkeitsmatrix eines einfachen ebenen Systems. Wir


betrachten zwei Stabelemente entsprechend nachstehender Abbildung
Die Elementsteifigkeitsmatrizen haben die Form
 1 1 1 1
  2 2 2 2

k11 k12 k13 k14 k11 k12 k13 k14
 k 1 k 1 k 1 k 1   2 2 2 2 
k1 =  21 22 23 24  und 2
=  k21 k22 k23 k24  (5.66)
 k31 k32 k33 k34 
1 1 1 1 k  k31
2 2
k32 2
k33 2 .
k34
1
k41 1
k42 1
k43 1
k44 2
k41 2
k42 2
k43 2
k44
Die innere virtuelle Arbeit ergab sich nach Gleichung (5.58) und Gleichung (5.63) zu
nele
X
Gint = Ge,int = δd1T k1 d1 + δd2T k2 d2 = δDT KD (5.67)
e=1

Führen wir nun die globalen Vektoren δD und D ein und ordnen die zugehörigen Einträge der
Steifigkeitsmatrizen k1 und k2 in die globale Steifigkeitsmatrix K ein, so folgt mit
D = [d1x , d1y , d2x , d2y , d3x , d3y ]T und δD = [δd1x , δd1y , δd2x , δd2y , δd3x , δd3y ]T (5.68)
die Matrix  
1
k11 1
k12 1
k13 1
k14 0 0
 1
k21 1
k22 1
k23 1
k24 0 0 
 
 1
k31 1
k32 1 + k2
k33 1 2
11 k34 + k12
2
k13 2
k14 
K=
 1 1 1 2 1 2 2 2
.
 (5.69)
 k41 k42 k43 + k21 k44 + k22 k23 k24 
 0 0 2
k31 2
k32 2
k33 2
k34 
0 0 2
k41 2
k42 2
k43 2
k44

Der Einbau der Randbedingungen


d1x = d1y = d3x = d3y = 0 ,
erfolgt über das Streichen der zu den homogenen Randbedingungen assoziierten Zeilen und Spal-
ten von K. Somit verbleibt das Gleichungssystem
" 1 2 1 + k 2 # " d2 # " #
k33 + k11 k34 12 x 0
= .
1 + k2 1 + k2 2
k43 21 k44 22 dy −F y
Lineare Finite Element Methode, c J. Schröder 66

Übung: Berechnen Sie für das in Abb. 38 dargestellte System die Verschiebungen und Stabkräfte
kN
N1 und N2 für l = 2 m, E = 21000 cm 2 , |F | = 80 kN und die Querschnittsflächen

a) A1 = 5 cm2 und A2 = A1

b) A1 = 5 cm2 und A2 = βA1 , mit β ≥ 1 .

Wie verändern sich die Knotenverschiebung d2 und die Stabkräfte N1 und N2 für
β = 10, β = 100, ... relativ zu β = 1? Begründen Sie das Ergebnis.

Beispiel: Wir betrachten ein räumliches Fachwerk, das durch eine horizontale und eine vertikale
Einzelkraft belastet wird. Das System und die Belastung sind der Abbildung 39 zu entnehmen.

FH
l2
l2

FV
l l

Abbildung 39: Räumliches 3D-Fachwerk mit 2 Einzellasten.

kN 2
Eingabeparameter: E = 21000 cm 2 und A = 5 cm , l = 1 m, l2 = 0.5 m, FV = 80 kN, FH = 80
kN. Die zugehörige FEAP Eingabekarte ist im folgenden dargestellt:
feap * * Gittermast ...
9 18 1 3 3 2 13 1 1 8 4
14 1 1 8 3
coor 15 1 1 2 8
1 0 0. 0. 0. 16 1 1 5 8
2 0 1. 0. 0. 17 1 1 4 9
3 0 2. 0. 0. 18 1 1 3 9
4 0 2. 0.5 0. boun
5 0 1. 0.5 0. 1 0 1 1 1
6 0 0. 0.5 0. 6 0 1 1 1
7 0 0. 0.25 0.5 7 0 1 1 1
8 0 1. 0.25 0.5
9 0 2. 0.25 0.5 forc
3 0 0. 0. -80.
elem 4 0 0. 0. 0.
1 1 1 1 2 9 0 80. 0. 0.
2 1 1 2 3
3 1 1 3 4 mate
4 1 1 2 4 user,1
5 1 1 4 5 210000000.0 0.05
6 1 1 2 5
7 1 1 5 6 end
8 1 1 2 6
9 1 1 1 8 inter
10 1 1 6 8
11 1 1 7 8 stop
12 1 1 8 9
...
Die deformierte Struktur ist in Abbildung 40 dargestellt.
In Tabelle 2 ist die Lösungsausgabe der Berechnung des 3D Stabwerks zu zusammengefasst. Die
Längenangaben für die Position der Knoten und deren Verschiebungen sind in cm gegeben.
Lineare Finite Element Methode, c J. Schröder 67

Abbildung 40: Deformierte Struktur des 3D-Fachwerkes, überhöht dargestellt.

Knoten 1 Coord 2 Coord 3 Coord 1 Displ 2 Displ 3 Displ


1 0.0E+00 0.0E+00 0.0E+00 0.0E+00 0.0E+00 0.0E+00
2 1.0E+00 0.0E+00 0.0E+00 -2.9470E-22 2.1296E-05 -1.3266E-04
3 2.0E+00 0.0E+00 0.0E+00 -1.5238E-05 7.4973E-05 -3.1200E-04
4 2.0E+00 5.0E-01 0.0E+00 -1.5238E-05 7.3068E-05 -1.4632E-04
5 1.0E+00 5.0E-01 0.0E+00 -7.6190E-06 2.1296E-05 -6.5543E-05
6 0.0E+00 5.0E-01 0.0E+00 0.0E+00 0.0E+00 0.0E+00
7 0.0E+00 2.5E-01 5.0E-01 0.0E+00 0.0E+00 0.0E+00
8 1.0E+00 2.5E-01 5.0E-01 3.8095E-05 -4.5826E-05 -9.9103E-05
9 2.0E+00 2.5E-01 5.0E-01 4.5714E-05 -9.1652E-05 -2.2868E-04
Tabelle 2: Lösungsausgabe zum Beispiel 3D Stabwerk-Problem mit Maßangaben in m

Anmerkung: Bei dem zuvor betrachteten Stabelement haben wir die Ansatzfunktion in den
lokalen Koordinaten x̃ formuliert. Bei verschiedenen Elementformulierungen bietet sich eine For-
mulierung in der natürlichen Koordinate ξ ∈ [−1, 1] des Elements an. Im Hinblick auf spätere
Anwendung führen wir nun das isoparametrische Konzept ein, hierbei werden sowohl die Geo-
metrie als auch die Verschiebung mit der gleichen Ansatzfunktion beschrieben. Für die Element-
Geometrie des zweiknotigen Stabelements erhalten wir
2
X
x̃(ξ) = N I (ξ)xI ∈ [0, l] (5.70)
I=1

mit den Knotenkoordinaten xI . Die Verschiebungen in Stabrichtung werden mit den gleichen
Ansatzfunktionen interpoliert
X2
u(ξ) = N I (ξ)dI (5.71)
I=1

wobei dI die diskreten Knotenverschiebungen in Stabrichtung sind. Die Idee des isoparametri-
schen Konzepts ist der Abbildung 41 zu entnehmen.
Die Verzerrungen ε11 sind die lokalen Verzerrungen in Stabachse, sie berechnen sich aus der
Ableitung der Verschiebungen u in Stabachse nach der lokalen Koordinate x in Stabrichtung mit
Anwendung der Kettenregel aus

∂u ∂u(ξ) ∂ξ
ε11 := = . (5.72)
∂x ∂ξ ∂x

Die Ableitung der Koordinate ξ nach der physikalischen Koordinate x läßt sich mit Hilfe des
Lineare Finite Element Methode, c J. Schröder 68

1 ξ 2
2
t
−1 0 1
1 x2 d2
1 N1 (ξ)
x3 x1

d1 N2 (ξ) 1
e3

e2 x2
e1
x1
Abbildung 41: Konfiguration des 3D-Stabelementes mit linearen Verschiebungsansätzen
im Paramterraum ξ = [−1, 1].

isoparametrischen Konzeptes aus der Geometrieabbildung berechnen


dx l dξ 2
= → = (5.73)
dξ 2 dx l
Damit erhalten wir für die Verzerrungen in Stabrichtung die Darstellung
2
X 2
X
2 I 2 2
ε11 = N (ξ),ξ t · dI = BI dI mit BI = N I (ξ),ξ t . (5.74)
l l l
I=1 I=1

Übung: Berechnen Sie die Elementsteifigkeitsmatrix ke und den Elementlastvektor pe im Rah-


men des isoparametrischen Konzepts.
Lineare Finite Element Methode, c J. Schröder 69

5.4 Balkentheorie für einfache Biegung

In diesem Abschnitt betrachten wir die Finite-Element-Formulierung für Biegebalken, also ohne
Normalkräfte. Ein Balken ist zunächst ein drei-dimensionaler Körper, der auf eine eindimensio-
nales Tragwerk reduziert werden kann. Dabei ist die Balkenachse definiert als die ungekrümmte
Verbindungslinie der Schwerpunkte der Querschnitte des Balkens. In diesem Abschnitt werden
wir zunächst die Theorie nach Euler-Bernoulli für schubfeste Balken und anschließend die Theorie
nach Timoshenko für schubweiche Balken behandeln.
Folgende Annahmen werden für beide Balkentheorien getroffen:

• Das Gleichgewicht des Balkens wird im unverformten Zustand beschrieben.

• Die Deformationen des Balkens werden durch die Biegelinie beschrieben.

• Die Durchbiegungen des Balkens sind kleiner als die Höhe des Balkens.

• Die Länge des Balkens ist sehr viel größer als die Höhe und Breite des Balkens.

5.4.1 Balkentheorie nach Euler-Bernoulli Kontinuierliche Formulierung: Die


Gleichgewichtsbedingungen können am infinitesimalen Balkenelement der Länge dx hergeleitet
werden. Es ergeben sich für die Normalkraft N (x), Querkraft Q(x) und das Moment M (x) die
bekannten Differentialgleichungen

N (x) := 0 



dQ(x) 
= −p(x) (5.75)
dx 

dM (x) 


Q(x) =
dx
mit der Belastungsfunktion p(x). Einsetzen von Gleichung (5.75)3 in (5.75)2 liefert die lineare,
inhomogene, gewöhnliche Differentialgleichung 2. Ordnung

d2 M (x)
= −p(x) . (5.76)
dx2

Die wesentlichen kinematischen Annahmen der Euler-Bernoulli Stabtheorie sind

1. das Ebenbleiben der Querschnitte und

2. Normale bleibt Normale.

Die axialen Verschiebungen in Richtung der Stabachse über den Querschnitt ergeben sich aus
der Annahme des Ebenbleibens der Querschnitte zu

u(x, z) = z · β(x) . (5.77)

Die zweite Bernoulli-Hypothese liefert

− β(x) = w′ (x) . (5.78)

Der Querschnitt ist im verformten Zustand um einen Winkel β gegenüber dem Ausgangszu-
stand verdreht. Dieser Winkel ist als Tangente an der Biegelinie zu verstehen. Somit lassen sich
Lineare Finite Element Methode, c J. Schröder 70

p(x)

M
x
N

z, w −β(x) w(x)
elastische Linie

dw(x)
−β(x) =
dx
Tangente

Abbildung 42: Balken nach Euler-Bernoulli-Theorie.

die Verzerrungen in Stabachsenrichtung aus den Ableitungen der Biegelinie berechnen. Mit der
du
Beziehung ε = erhält man die Dehnung in Balkenachsenrichtung aus
dx
εx = u,x = z · β ′ = −z · w,xx (5.79)
bzw. in vereinfachter Darstellung
εx = −zw′′ (x) . (5.80)
Hier untersuchen wir zunächst nur reine Biegeprobleme, also ohne den Einfluß von Normal-
kraftbeanspruchungen (in Stabachsenrichtung). Mit Hilfe des Hooke’schen Gesetz können die
Normalspannungen σx aus den Dehnungen bestimmt werden
d2 w
σx = E εx = −E z w,xx = −E z . (5.81)
dx2

Das Biegemoment My ergibt sich aus dem Integral der Spannungen über die Querschnittsfläche
A Z
My (x) = σx (x, z) · z dA . (5.82)
A

Es folgt mit den Gleichungen (5.80), (5.81) und (5.82)


Z Z
2 ′′ ′′
My (x) = −Ez w (x)dA = −Ew (x) z 2 dA = −EIw′′ (x) . (5.83)
A A

Die Querkraft erhalten wir aus der Gleichgewichtsforderung aus Gleichung (5.75)2 .
Das Potential des Bernoulli-Balkens lässt sich aus der allgemeinen Darstellung des Potentials
der Formänderungsarbeit herleiten. Es gilt für das innere Potential
Z
1
Πint = σ : ε dV . (5.84)
2 V
Für die getroffenen Annahmen des Balkens vereinfacht sich diese Gleichung zu
Z
int 1
Π = σ ε dV . (5.85)
2 V
Lineare Finite Element Methode, c J. Schröder 71

Setzen wir hier die Beziehungen für die Spannungen aus Gleichung (5.81) und Dehnungen aus
Gleichung (5.79) ein, erhalten wir
Z Z
int 1 1
Π = σ ε dV = (−E z w,xx )(−zw,xx ) dV
2 V 2 V
Z (5.86)
1
= E (w,xx )2 z 2 dV .
2 V
Das Volumentintegrarl wir überführt in dV = dA dx, so dass
Z Z Z
int 1 2 2 1
Π = E(w,xx ) z dA dx = EIy (w,xx )2 dx. (5.87)
2 l A 2 l
| {z }
Iy

Das nach Bernoulli zur Stabachse assoziierte Potential für einen Stab/ Biegebalken der Länge l
lautet also unter Berücksichtigung äußerer Belastungen p(x) (Streckenlast), sowie Einzellasten
F und Einzelmomente M
Z Z
1
Π= EIy (w (x)) dx − p(x) w(x) dx −F w(x) − M w′ (x) .
′′ 2
(5.88)
2 l l

Ansatzfunktionen: Für die FE-Diskretisierung betrachten wir ein typisches Element k mit den
Knotennummern i und j, siehe Abbildung 43.

i k j
x̃ x
w̃ w
wi
ϕi
wj

ϕj
l

Abbildung 43: Definition des Balkenelements.

In dem Funktional in Gleichung (5.88) treten die zweifachen Ableitungen der Durchbiegung w
auf, d.h. die Ansatzfunktion muß mindestens zweifach stetig differenzierbar sein. Wir wählen

w̃(x̃) = C0 + C1 x̃ + C2 x̃2 + C3 x̃3 . (5.89)

Dieser Ansatz ist

1. linear unabhängig (da in Potenzen von x̃)


2. zweifach stetig differenzierbar
3. geometrisch konform (die Erfüllung der geometrischen Randbedingungen, w und w′ , ist
möglich). Geometrisch konform bedeutet, daß die Verschiebungen und Neigungen zu den
Nachbarelementen kontinuierlich darstellbar sind. Die Ordnung der DGL in Gleichung
(5.83) ist 2n = 4, d.h. n = 2. Die Ordnung der Ableitungen der wesentlichen Rand- und
Übergangsbedingungen ist beim Ritzschen Verfahren n − 1 = 1.
Lineare Finite Element Methode, c J. Schröder 72

4. ausreichend zur Darstellung von mindestens konstanten Schnittgrößen


(M = −EIw′′ erfordert hierfür nur quadratische Ansätze für w)

5. ausreichend zur Beschreibung von Starrkörperverschiebungen


(Translation mit w̃ = c0 und Rotation mit w̃ = C0 + C1 x̃).

Betrachten wir die Ableitungen von w̃, so ist



w̃′ (x̃) = C1 + 2C2 x̃ + 3C3 x˜2 


w̃′′ (x̃) = 2C2 + 6C3 x̃
(5.90)
w̃′′′ (x̃) = 6C3 


w̃′′′′ (x̃) = 0

Aus der Abhängigkeit Q(x) ∼ w′′′ (x) erkennen wir, daß infolge (5.90)3 der Ansatz die exakte
Lösung liefert wenn keine Streckenlasten aufgebracht werden. Dieser Zusammenhang ist auch
wie folgt begründbar: Da der Ansatz (5.89) die homogene DGL w′′′′ = 0 erfüllt, stellt er eine
Gleichgewichtslösung dar und liefert in diesem Fall die exakte Lösung.

x ξ
le /2 le /2 1 1
Abbildung 44: Einführung natürlicher Koordinaten.

Als Ansatzfunktion verwenden wir sogenannte Hermitsche Polynome in der dimensionslosen Grö-
ße ξ. Der Ansatz erscheint in der Form

w(ξ) = N1 (ξ)w1 + N̄1 (ξ)ϕ1 + N2 (ξ)w2 + N̄2 (ξ)ϕ2 = N de

und muß die Randbedingungen



w(ξ = −1) = w1 w,x (ξ = −1) = ϕ1
(5.91)
w(ξ = 1) = w2 w,x (ξ = 1) = ϕ2

erfüllen. Hieraus ergibt sich



1 1 
N1 = (2 − 3ξ + ξ 3 ) , N2 = (2 + 3ξ − ξ 3 ) 
4 4 (5.92)
1 le 1 le 

N̄1 = (1 − ξ − ξ 2 + ξ 3 ) , N̄2 = (−1 − ξ + ξ 2 + ξ 3 )
4 2 4 2

Mit der Kettenregel


dw dw dξ 2 dw
w′ = = =
dx dξ dx l dξ
l dξ 2
erhalten wir, zusammen mit dem Zusammenhang x = ξ → =
2 dx l
2 2 2 2
w′ = N1,ξ w1 + N̄1,ξ ϕ1 + N2,ξ w2 + N̄2,ξ ϕ2 .
l l l l
Analog erhalten wir die zweiten Ableitungen mit
 
d2 w d2 w d2 ξ 2 dw ′ 2 d2 w dξ 4 d2 w
w′′ = (w′ )′ = = = = =
dx2 dξ 2 dx2 l dξ l dξ 2 dx l2 dξ 2
Lineare Finite Element Methode, c J. Schröder 73

1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6

0.5
N1 0.5
N2
0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

0.5

0.45 −0.05

0.4 −0.1

0.35 −0.15

0.3

N̄1 N̄2
−0.2

0.25 −0.25

0.2 −0.3

0.15 −0.35

0.1 −0.4

0.05 −0.45

0 −0.5
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

Abbildung 45: Hermite-Polynome – Ansatzfunktionen des zweiknotigen Balkenelementes


mit zwei Freiheitsgraden pro Knoten

zu  
w1
4    ϕ1 
w′′ = N1,ξξ N̄1,ξξ N2,ξξ N̄2,ξξ   e
(5.93)
l2  w2  = Bd
ϕ2

mit dem Elementverschiebungsvektor deT = [ w1 ϕ1 w2 ϕ2 ].


Diskrete Formulierung: Ausgehend vom Minimum des Gesamtpotentials (5.88) erhalten wir
als notwendige Bedingung
Z Z
δΠ = δw EIw dx − δw p dx −δwF − δw′ M = 0 .
′′ ′′
(5.94)
l l

nele
X
Bzw. für ein typisches Element aus δΠ = δΠ(e) −δwF − δw′ M , mit der Darstellung
e=1
Z Z
(e) ′′ ′′
δΠ = δw (x)EIw (x)dx − δw(x) p(x)dx .
le le

Die Transformation auf die natürliche Koordinate liefert mit Gleichung (5.93) und
l
δw′′ = Bδde und dx = dξ
2
Z 1 Z 1
l l
δΠ(e) = δdeT B T EIB dξde − δdeT N T p dξ .
−1 2 −1 2

Hieraus identifizieren wir die Elementsteifigkeitsmatrix ke und den Elementlastvektor f e , d.h.


Z 1 Z 1
l l
ke := B T EIB dξ und fe = N T p dξ .
−1 2 −1 2
Lineare Finite Element Methode, c J. Schröder 74

Hieraus folgt
 
12 6l −12 6l
EI  6l 4l2 −6l 2l2 
ke = 3   (5.95)
l  −12 −6l 12 −6l 
6l 2l2 −6l 4l2

und für p(ξ) = konstant erhalten wir


 
1
pl  l/6 
fe =  . (5.96)
2  1 
−l/6

Das diskrete Gesamtproblem ergibt sich aus


nele
X
δΠ = {δdeT ke de − δdeT f e } = 0 ∀ δde
e=1

zu
nele nele
KD = F mit K = A ke , und F = Af e
e = 1 e = 1

wobei K die globale Steifigkeitsmatrix, F den globalen Lastvektor aus einer Steckenlast p(x)
und D den globalen Verschiebungsvektor darstellt. Eine Einzellast F bzw. ein Einzelmoment M
werden an den angreifenden Knoten einbezogen und als abschließender Schritt der Assemblierung
in das Gesamtgleichungssystem eingebracht.
Berechnung der Schnittgrößen: Vergegenwärtigen wir uns noch einmal Gleichung (5.82),
und setzen die Diskretisierung für ein Element ein, so erhalten wir die Schnittgrößen am Element
aus dem Konstitutivgesetz mit

My (ξ) = −EIw(ξ),xx = −EIB(ξ)de , (5.97)

wobei die Auswertungsstelle zu berücksichtigen ist. Für ξ = −1 und ξ = 1 ergeben sich die
Momente für den Anfangs- und Endknoten eines Elements zu

EI
Mi = M (ξ = −1) = − 2 [−6, −4l, 6, −2l]de 


l
. (5.98)
EI 

Mj = M (ξ = 1) = − 2 [6, 2l, −6, 4l]de 
l

Die Querkraft Q ist nicht durch ein konstitutives Gesetz gegeben. Sie kann aus dem Moment My
mit Gleichung (5.75)3 bestimmt werden, so dass
dMy dMy dξ 1 dMy
Q= = = . (5.99)
dx dξ dx l dξ
Betrachten wir erneut ein diskretisiertes Element, so ist die Querkraft gegeben mit
1 dMy EI 2 EI
Q= = − 2 [6, 3l, −6, 3l]de = − 3 [12, 6l, −12, 6l]de . (5.100)
l dξ l l l

Die Querkraft-Funktion in der vorangehenden Gleichung ist unabhängig von ξ, d.h. die Querkraft
ist im Element konstant. Damit können die Querkräfte an den Elementgrenzen unstetig sein.
Lineare Finite Element Methode, c J. Schröder 75

Riϕ Rjϕ Ml Mr

a) Riz Rjz b) Ql Qr
Abbildung 46: Definition der Knotenreaktionen nach der a) Finiten-Element-Methode und
b) Statik.

Berechnung der Schnittgrößen mit dem Prinzip der virtuellen Arbeiten: Die Schnitt-
größendefinition des Balkenelements ist in Abbildung 48 dargestellt. Im Knoten i ist die Querkraft
positiv, wenn sie in positive z- Richtung zeigt. Das Moment ist am Knoten i positiv, wenn es
um die negative y-Koordinate dreht. Im Endknoten j ist es genau umgekehrt.
Die Auswertung der Knotenkräfte erhalten wir aus der elementweisen Rückrechnung
   
−Ql R1z
 M   R 
s(e) :=  l   1ϕ  = k(e) d(e) − f (e) . (5.101)
 Qr  =  R2z 
−Mr R2ϕ

Somit ergeben sich die Schnittgrößen am finiten Balkenelement zu


Ql = −Ri , Ml = Mi , Q r = Rj , Mr = −Mj . (5.102)

Beispiel: In Abbildung 47 ist ein Kragarm der Länge l unter einer konstanten Streckenlast q
(Lastfall 1) und einer angreifenden Einzellast F am freien Kragarm-Ende (Lastfall 2) dargestellt.
Das Flächenträgheitsmoment Iy und das E-Modul E des Balkens sind als gegeben anzunehmen.

x
l
z, w
Abbildung 47: Kragarm mit Lastfall 1 und Lastfall 2.

Gesucht sind für dieses Problem die Durchbiegung, sowie die Schnittgrößen des Balken.
Zur Lösung wird die FEM-Berechnung mit einem Element betrachtet. Das zu lösende Glei-
chungssystem ist demnach
hier
KD = F ⇔ k(1) d(1) = f (1) (5.103)
Hiermit ergibt sich unter Verwendung der Element-Steifigkeitsmatrix in Gleichung (5.95) und
des Element-Lastvektors in Gleichung (5.96) das folgende Gleichungssystem. Hier werden die
Lastfälle 1 LF1 und LF2 getrennt betrachtet.
      
12 6l −12 6l w1 1 0
EI   4l2 −6l 2l2     l  
  ϕ1  =  6  q l bzw. =  0  (5.104)

l 3  sym. 12 −6l   w2   1  2  F 
4l 2 ϕ2 l 0
−6
| {z } | {z } | {z } | {z }
K D F in LF1 F in LF2
Lineare Finite Element Methode, c J. Schröder 76

Die Einzellast am rechten Rand wird entsprechende der Variation des Potentials in Gleichung
(5.94) der Variation der Durchbiegung w bzw. Verschiebung in z-Richtung (hier w2 ) zugeordnet
und entsprechend im Lastvektor einsortiert.
Einbau der Randbedingungen: Das gegebene Problem hat die folgenden Dirichlet-
Randbedingungen

w(0) = 0 → w1 = 0 , (5.105)

w (0) = ϕ(0) = 0 → ϕ1 = 0 . (5.106)

Diese müssen in das Gleichungssystem eingebracht werden. Dazu werden entsprechenden Zeilen
und Spalten gestrichen werden. Hier sind also die 1. und 2. Zeile und Spalte zu streichen, so
ergibt sich
     
  w2 q 2l F
EI 12 −6l  =   bzw. =   (5.107)
l3 −6l 4l2 l2
ϕ2 −q 12 0
| {z } | {z }
LF1 LF2

Die Reduktion des Gleichungssystems liefert dann die Lösung für die beiden Lastfälle

ql4 ql3
w2 = ϕ2 = , für LF1 , (5.108)
8EI 6EI

F l3 F l2
w2 = ϕ2 = , für LF2 . (5.109)
3EI 2EI

Berechnung der Schnittgrößen mit dem Prinzip der virtuellen Arbeiten: Für Lastfall 1
(Streckenlast) folgt mit (5.101)
 
  0    
12 6l −12 6l   1 ql
    
 4l2 2l2   0   l   
 −6l     6   l
 2
 −q l2


       .
s(1) =   ql4 − q =
 sym. 12 −6l     1   2  0


   8EI     
 2
  
4l  ql3  l
−6 0
6EI

So ergeben sich die Auflagergrößen mit den Definitionen in Abbildung 48 zu

Riϕ Rjϕ Ml Mr

a) Riz Rjz b) Ql Qr
Abbildung 48: Schnittgrößendefinition im Rahmen der a) Finiten-Element-Methode und
b) Statik.

l2
Ql = −ql; Ml = −q ; Qr = 0; Mr = 0 .
2
Lineare Finite Element Methode, c J. Schröder 77

Berechnung der Schnittgrößen aus dem Stoffgesetz wie in Gleichung (5.98):


My (x = 0) =
EI 5l2 q
My (ξ = −1) = − 2
[−6, −4l, 6, −2l]D = − für LF1 , bzw. = −F l für LF2 ,
l 12

My (x = l) =
EI l2 q
My (ξ = 1) = − [6, 2l, −6, 4l]D =− für LF1 , bzw. = 0 für LF2 ,
l2 12

EI lq
Q =− [12, 6l, −12, 6l]D = für LF1 , bzw. = F für LF2 .
l3 2
Im Vergleich der FEM-Lösung mit der analytischen Lösung zeigen sich Unterschiede. Hierzu
einige Anmerkungen im Folgenden.
Anmerkung zu Lastfall 1:

• Exakte Lösung benötigt quartische Funktion für w.


• FE-Ansatz für die Durchbiegung w ist kubisch.
→ Die Schnittgrößen-Funktionen sind nicht exakt, auch die Schnittgrößen-Werte in den
Knoten sind nicht exakt.
→ Werten wir s(e) = k(e) d(e) − f (e) aus, so erhalten wir die Knotenreaktionen, also
2
FV = −ql und My = − ql2 .
→ Die Kinematen (Verdrehung, Verschiebung) an den Knoten sind exakt.

Anmerkung zu Lastfall 2:

• Exakte Lösung benötigt kubische Funktion für w.


• FE-Ansatz für w ist kubisch.
→ exakte Biegelinie und exakte Schnittgrößen.

5.4.2 Vollständiges Stabelement/Balkenelement Basierend auf den Überlegungen


zum Stabelement in Abschnitt 5.3 und der vorausgegangenen Beschreibung des Bernoulli-Balken-
Elements kann ein zweidimensionales Balken-Element hergeleitet werden. Abbildung 49 zeigt die
Freiheitsgrade eines solchen vollständigen ebenen Balkenelements. Sie setzen sich aus denen des
eindimensionalen Stabelements (u) und des eindimensionalen Balkens (w, ϕ) zusammen.
Die Dehnungen beim vollständigen, ebenen Balken werden durch Überlagerung (Superposition)
der Dehnungen des eindimensionalen Stabes (hier als εs gekennzeichnet) und des eindimensio-
nalen Balkens (hier als εb gekennzeichnet) bestimmt, so dass gilt
ε = εs + εb . (5.110)
Das zugehörige Potential kann durch Superposition formuliert werden, wobei wir Streckenlasten
qi (x) und Einzellasten Fi in x- und z-Richtung unterscheiden, so dass
Z Z
1 ′ 2
Π = EA (u (x)) dx − qx (x) u(x) dx − Fx u(x)
2 l l
Z Z (5.111)
1 ′′ 2 ′
+ EIy (w (x)) dx − qz (x) w(x) dx − Fz w(x) − My w (x) .
2 l l
Lineare Finite Element Methode, c J. Schröder 78

Riz Rjz
Mi Mj
e
Rix Rjx
wi
wj
ui
ϕi
uj ϕj
e
l

Abbildung 49: Vollständiges ebenes Stabelement/Balkenelement.

!
Die erste Variation des dargestellten Potentials führt auf das zu lösende Problem mit δΠ = 0.
Hier führen wir nun die oben beschriebenen Schritte zur FEM-Approximation durch. Die Ver-
schiebungen und Verdrehungen im Element lassen sich über die bekannten Ansatzfunktionen des
eindimensionalen Stabes und des eindimensionalen Balkens beschreiben. So ergibt sich f¸r den
ebenen Bernoulli Balken mit konstanter Streckenlast in x- und z-Richtung mit axialer Belas-
tung das folgende Gleichungssystem für ein Element. (Belastungen aus Einzellasten bleiben hier
zunächst unberücksichtigt.)
       
 Rix   A 0 0 −A 0 0   ui   qx 
       
       
   I I I I     
 Riz   0 12 2 6 0 −12 6   wi   qz 
   l l l2 l     
       
   I I     l 
 Mi  E −6 2I    l 
   0 6
l
4I 0
l   ϕi   qz 6 
  =     −  
  l     2 
 Rjx   −A 0 0 A 0 0   uj   qx 
       
       
   I     
 Rjz   0 −12 I −6
I
0 12
I
−6   
wj   qz 
   l2 l l2 l    
       
   I I     l 
Mj 0 6 2I 0 −6 4I ϕj −qz
L l l L L 6 L
(5.112)

⇒ rLe = kL
e e
dL − fLe . (5.113)

Die oben aufgezeigten Beziehungen gelten für Darstellungen in einem lokalen Koordinatensystem
L. Soll nun eine Balkenstruktur mit mehreren Elementen betrachtet werden, so müssen die
Steifigkeitsmatrizen in einem globalen Koordinatensystem G beschrieben werden. Dazu ist eine
Transformation der Elementbeziehungen erforderlich. Abbildung 50 zeigt die Drehung um die
y-Achse.

xG
γ

xL

zL zG
Abbildung 50: Koordinatentransformation.
Lineare Finite Element Methode, c J. Schröder 79

Damit folgt für die Beziehung zwischen einer Koordinate im globalen und dem lokalen Koordi-
natensystem     
xL cos γ sin γ xG
= . (5.114)
zL − sin γ cos γ zG
Analog gilt für die Transformation von u, w bzw. Rx und Rz zwischen dem globalen (G) und
lokalen (L) Koordinatensystem
     
ui c s 0 0 0 0 ui
 wi   −s c 0 0 0 0   wi 
     
 ϕi   0 0 1 0 0 0   ϕi 
  =    , (5.115)
 
uj   0 0 0 c s 0   uj 
    
 wj   0 0 0 −s c 0   wj 
ϕj L 0 0 0 0 0 1 ϕj G
| {z } | {z } | {z }
deL Te deG

mit den Abkürzungen


c := cos γ und s := sin γ .
Die Transformationsmatrix T e f¸r ein Element kann nun zur Transformation zwischen dem
lokalen und globalen Freiheitsgrad-Vektor genutzt werden, d.h.

deL = T e deG . (5.116)


P
Die globale Steifigkeitsmatrix folgt aus dem diskreten Potential Πint = Πe,int und unter Be-
e
rücksichtigung der zuvor eingeführten Transformation
nele
X
int 1 nP
ele
Π = Πe,int = deT ke de
e=1
2 e=1 L L L
nele
1X
= deT
G T k T de
eT e e
(5.117)
2 | {zL } G
e=1 e
kG
n
1X ele

= deT ke de .
2 e=1 G G G

So ergibt sich die globale Steifigkeitsmatrix K aus der Assemblierung der Element-
Steifigkeitsmatrizen im globalen Koordinatensystem mit

nele nele
e eT e e
K= A kG = AT kL T , (5.118)
e = 1 e = 1

und analog ergibt sich der globale Lastvektor F aus den Streckenlasten
 T
e l l l
pL = 2 qx qz qz qx qz −qz zu
6 6

nele nele
F = A fGe = AT eT
peL . (5.119)
e = 1 e = 1

5.4.3 Sonderfall: Schräges Auflager In der praktischen Anwendung von finiten Ele-
menten kommt es auch vor, dass man “schiefe Auflagerbedingungen” in ein Gleichungssystem
einbringen muss. Die Behandlung dieses Sonderfalls wird im Folgenden erläutert. Dazu gehen
Lineare Finite Element Methode, c J. Schröder 80

wir davon aus, dass das globale Gleichungssystem eines Randwertproblems bezogen auf ein glo-
bales Koordinatensystem vorliegt, gegeben mit
KD = F . (5.120)

Die Knotenfreiheitsgrade D (im Fall der vollständigen Balkens Verschiebungen und Verdre-
hungen) liegen also in Richtung der globalen Koordinaten (x, z)G vor. Von Interesse, und zur
Einbringung von schiefen Randbedingung notwendig, sind aber die Freiheitsgrade in einem ge-
drehten Koordinatensystem für den betrachteten Knoten. Am schiefen Auflager ist deshalb eine
Transformation der Knotenfreiheitsgrade auf ein knoten-lokales Koordinatensystem erforderlich.
Wir betrachten also dazu die Knoten des betroffenen Elements getrennt.

xL

α
A xG

zL
zG

Abbildung 51: Rotation der Achsen in einem Knoten um den mathematisch positiven
Winkel α

So ergibt sich für die Transformation der Knotenfreiheitsgrade vom globalen in ein knoten-lokales
Koordinatensystem mit den Darstellungen in Abb. 51 für einen Knoten (A) zu
     
(A) (A)
uL cos α − sin α 0 uG
     
 (A)     (A) 
 wL  =  sin α cos α 0   wG  . (5.121)
     
(A) (A)
ϕL 0 0 1 ϕG
| {z } | {z }
dA
L dA
G

Analog hatten wir eine solche Beziehung f¸r die Transformation des Elements bereits in Glei-
chung (5.115) hergeleitet. Zur Vereinfachung der Systematik können wir die Transformations-
matrix auch wieder elementweise beschreiben, so dass diese die an die Elementmatrix heran
multipliziert werden kann, wobei wir die inverse Darstellung benutzen wollen, um dG des be-
trachteten Knoten schlussendlich im globalen System ersetzen zu können. So ergibt sich aus der
inversen Betrachtung
    
(A) (A)
uG c(A) s(A) 0 0 0 0 uL
    
 (A)   (A) (A)   (A) 
 wG   −s c 0 0 0 0   wL 
    
 (A)     (A) 
 ϕG   0 0 1 0 0 0   ϕL 
     (5.122)
 (B)  =  (B) (B)   (B)  ,
 uG   0 0 0 c s 0   u 
    L 
 (B)   (B) (B)
  (B) 
 wG   0 0 0 −s c 0   
     wL 
(B) (B)
ϕG 0 0 0 0 0 1 ϕL
| {z } | {z } | {z }
deG Tbe deL
Lineare Finite Element Methode, c J. Schröder 81

mit den gegebenenfalls unterschiedlichen knoten-lokalen Winkeln α in Knoten (A) und β in


Knoten (B)

c(A) = cos α , s(A) = sin α , und c(B) = cos β, s(B) = sin β .

Durch einfaches Einsetzen der knotenweisen Transformation in das Gesamtsystem, sowohl für
die Freiheitsgrade sowie deren Variationen erhalten wir

Tb T K Tb DL = TbT F . (5.123)

Praktisch wird diese Multiplikation in Einzelgleichungen aufgelöst und die Multiplikation nur
für die Gleichungen des relevanten Knotens durchgeführt. Möchte man die Systematik für alle
Knoten des Gesamtsystems übernehmen muss die Transformationsmatrix Tb für alle Knoten auf-
gestellt werden, was faktisch bedeutet, dass sich für alle nicht schiefen Auflager die Einheitsmatrix
ergibt.
An den nachfolgenden Beispielen soll die Vorgehensweise f¸r ein schiefes Auflager (Beispiel 1)
und einen zusammengesetzten Träger mit schiefem Balken (Beispiel 2) dargestellt werden.

Beispiel 1: In Abbildung 52 ist ein Einfeldträger mit einer konstanten Streckenlast q0 dargestellt.
Das Flächenträgheitsmoment Iy , das E-Modul E und die Querschnittsfläche A des Balkens sind
als konstant und gegeben anzunehmen. Für dieses System sollen die Verformungen berechnet
werden.

q0

A B
x, u

z, w
l1

Abbildung 52: Einfeldträger mit konstanter Streckenlast

Einteilung in Elemente: Zur Lösung des Problems definieren wir ein finites Element mit dem
dieses Problem bestimmt werden soll. Dieses ist in Abbildung 53 dargestellt. Es ist hier nur ein
Koordinatensystem des Elements eingezeichnet, welches dem globalen Koordinatensystem des
Systems (vgl. Abbildung 52) entspricht, da der Balken im System nicht verdreht gegenüber der
x-Achse ist, d.h. hier ist T e = I.
Die Elementsteifigkeitsmatrix kann nun für das Element mit Hilfe von Gl. (5.112) aufgestellt
werden. Da hier nur ein Element betrachtet wird und keine Rotation der Elementsteifigkeitsma-
Lineare Finite Element Methode, c J. Schröder 82

(B) (B)
xL , uL
A (A)
xG , u (1) B
1 ξ, x , u (B)
xG , u
(B) (B)
zL , WL
(A) (B)
zG , w z (1) , w zG , w

Abbildung 53: Elementzuordnung am Einfeldträger mit den globalen KOS (blau) in beiden
Auflagern und dem lokalen KOS in Auflager B (orange)

trix notwendig ist, gilt k(1) = K bezogen auf das globale Koordinatensystem mit
 
A 0 0 −A 0 0
 
 Iy Iy Iy Iy 
 0 12 2 6 0 −12 2 6 
 l1 l1 l1 l1 
 
 I I 
 0 6
y
4Iy 0 −6
y
2Iy 
E  l1 l1 

K = k(1) =  .
l1  −A 0 0 A 0 0 
 
 
 Iy Iy Iy Iy 
 0 −12 2 −6 0 12 2 −6 
 l1 l1 l1 l1 
 
 Iy Iy 
0 6 2Iy 0 −6 4Iy
l1 l1

Die Belastung der Streckenlast q0 wird in den Lastvektor eingebracht, so dass


 
0
 
 1 
 
 l 
 1 
 6  l1
F = f (1) =  q .
 0  2
 
 
 1 
 
− l61

Als Zwischenlösung erhalten wir also das zu lösende Gleichungssystem bezogen auf das glo-
bale Koordinatensystem mit
 
A 0 0 −A 0 0  
(A)
uG  
  0
 Iy Iy Iy Iy  
 0 12 2 6 0 −12 2 6  (A)
  
 l1 l1 l1 l1  wG   1 
    
 Iy Iy    
 0 6 4Iy 0 −6 2Iy  (A)   l1 
E  l1 l1 
 ϕG  
  6
 l
 1
  =  q0 . (5.124)
l1  −A 0 0 A 0 0  (B)   0  2
  uG   
    
 I I Iy Iy    1 
 0 −12 2y −6 y 0 12 2 −6  (B)
wG   
 l1 l1 l1 l1    l 
   −
1
 Iy Iy  (B)
ϕG 6
0 6 2Iy 0 −6 4Iy
l1 l1
Lineare Finite Element Methode, c J. Schröder 83

Einbringen der Randbedingungen: Das zweiwertige, unverschiebliche Auflager A in Knoten


1 führt zu folgenden Randbedingungen

(A) (A)
uG = wG = 0 .

Die Lagerung in Knoten bzw. Auflager B muss bezüglich des lokalen Koordinatensystems (oran-
ge) im Knoten dargestellt werden.

(B) (B)
A B xL , uL
1 (B) (B)
xG , uG

(B) (B)
(B)
zG , wG
(B) zL , wL
30◦

Abbildung 54: Drehung der Lagerung in Auflager B

Wie in Abbildung 54 gezeigt, gilt im lokalen Koordinatensystem in Auflager B, dass

(B)
wL = 0.

Mit Gl. (5.122) bzw. dG = Tb dL erhalten √ wir die Transformationsmatrix Tb mit α = 0◦ und
β = 30◦ , c(A) = 1 , s(A) = 0 , und c(B) = 3/2 , s(B) = 1/2 , so dass

   
(A)
uG   (A)
uL
  1 0 0 0 0 0  
 (A)    (A) 
 wG   0 1 0 0 0 0  wL 
    
 (A)    (A) 
 ϕG   0 0 1 0 0 0  ϕL 
    
 = √  ,
 (B)
uG   0 0 0 3
1/2 0  (B)
uL 
   2  
   √  
 (B)   0 0 0 −1/2 3
0  (B) 
 wG   2  wL 
   
(B)
ϕG 0 0 0 0 0 1 (B)
ϕL

(A) (A) (A) (A) (A) (A) (B) (B)


wobei sich hier ergibt, dass uG = uL , wG = wL , ϕG = ϕL , und ϕG = ϕL .
Die folgenden Zahlenwerte sollen im Folgenden für das Beispiel angewendet werden

Lineare Finite Element Methode, c J. Schröder


kN kN
E = 21000 , Iy = 13333.3 cm4 , A = 400 cm2 , l1 = 250 cm, q0 = 20 .
cm2 cm
Damit ergibt sich das Gesamtgleichungssystem wie in Gleichung (5.123) dargestellt zu
    (A)

1 0 0 0 0 0 33600 0 0 −33600 0 0 1 0 0 0 0 0 uL
    
 0 1 0 0 0 0   0 1 0 0 0 0  (A) 
  0 215.04 26880 0 −215.04 26880
  wL 
    
 0 0 1 0 0 0  0 26880 4.48 · 106 0 −26880 2.24 · 106  0 0 1 0 0 0  (A) 
    ϕL 
 √   √  
 0 0 0 3
− 21 0   −33600 0 0 33600 0 0  0 0 0 3 1
0  
 2   2 2  (B)
uL 
 √   √  
 1 3  0 −215.04 −26880 0 215.04 −26880  0 0 0 − 21 3  
 0 0 0 0  
0  (B) 
 2 2
  2


wL 

0 0 0 0 0 1 0 26880 2.24 · 106 0 −26880 4.48 · 106 0 0 0 0 0 1 (B)
ϕL
  
1 0 0 0 0 0 0
  
 0 1 0 0 0 0 
  2500 
 


 0 0 1 0 0 0  104167
  
= √ 


 0 0 0 3
− 21 0  0
 2  
 √ 


 1 3
0  2500
 0 0 0  
 2 2
 
0 0 0 0 0 1 −104167

Nun können wir die genannten Randbedingungen in das finale Gleichungssystem einbringen. Es können die entsprechende Zeilen und Spalten
(hier Zeilen und Spalten 1, 2 und 5) gestrichen werden. So erhalten wir das zu lösende Gleichungssystem mit
    
(A)
4.48 · 106 13440 2.24 · 106 ϕL 104167
    
 13440 25253.8 13440   (B)   −1250 
   uL = .
 6 6
   
2.24 · 10 13440 4.48 · 10 (B) −104167
ϕL

84
Lineare Finite Element Methode, c J. Schröder 85

Als Lösung erhalten wir


(A)1879
ϕL = ≈ 0.0466 rad ≈ 2.670◦ ,
40320
(B) 25
uL = − ≈ −0.0496 cm ,
504
(B) 1871
ϕL = − ≈ −0.0464 rad ≈ −2.659◦ .
40320
Von Interesse sind die im globalen Koordinatensystem wirksamen Verformungen, welche aus
(B)
der R¸cktransformation dG = Tb dL bestimmt werden können. Aus der Lösung für uL und
(B)
wL = 0 ergibt sich
(B) 25 (B) 25
uG = − √ ≈ −0.0430 cm , wG = − ≈ −0.0248 cm .
336 3 1008

Hinweis zu den Vorzeichen der resultierenden Verdrehungen: Die Winkeldefinition für das Bal-
kenelement ist wie in Abbildung 49 dargestellt entgegen der mathematisch positiven Richtung
definiert. Die in diesem Beispiel berechnete positive Verdrehung in Auflager A ist also eine Verdre-
hung im Uhrzeigersinn und die berechnete negative Verdrehung in Auflager B ist eine Verdrehung
entgegen dem Uhrzeigersinn. Dies entspricht dem erwarteten Drehsinn in beiden Auflagern fà 14 r
die gezeigte Belastung des Systems.
Mit Hilfe von Gleichung 5.101 erhalten wir die Knotenkräfte und damit die Auflagergrößen, so
dass R = K ges D ges − F ges.
 (A) 
Rx  
1443.38 kN
 
 (A)   
 Rz   −2500 kN 
   
   
 M (A)   0 kNcm 
R=  (B)
=
 


 Rx   1443.38 kN 
   
 (B)   −2500 kN 
 Rz   
 
M (B) 0 kNcm

Die hier dargestellten Zahlen-Werte beziehen sich auf das globale Koordinatensystem in beiden
Knoten.
Die Überprüfung mit den Methoden aus Technischer Mechanik 1 bzw. 2 (Elastostatik) liefert das
gleiche Ergebnis.

1. Auflager:
AV = 2500 kN, BV = 2500 kN, AH = BH = 1443.376 kN .

2. Schnittgrößen:
N (x) = −AH = −1443.376 kN, My (x) = −10x2 + 2500x kNcm .

3. Verschiebung in x-Richtung:
Z Z Z
σ N (x)
u= εdx = dx = dx
E EA
l l l
Zl1
−1443.376
u(x = 0) = 0 cm , u(x = l1 ) = dx = −0.043 cm.
21000 · 400
0
Lineare Finite Element Methode, c J. Schröder 86

4. Verschiebung in z-Richtung: Die zweifache Integration der negativen Momentenfunktion


ergibt
5 1250 3
EIy w(x) = x4 + x + c1 x + c2 .
6 3
(B)
Die Integrationskonstanten ergeben sich aus w(x = 0) = 0, so dass c2 = 0, und wL (x =
l1 ) = 0 führt zur Lösung von c1 . Mit
!   !
(B) (B)
uL cos(30◦ ) − sin(30◦ ) uG
=
(B)
wL sin(30◦ ) cos(30◦ ) (B)
wG

erhalten wir
(B) (B) (B) !
wL (x = l1 ) = sin(30◦ ) uG (x = l1 ) + cos(30◦ ) wG (x = l1 ) = 0 .

Daraus folgt

(B) N (x = l1 ) −1443.376
wG (x = l1 ) = tan(30◦ ) · l1 = tan(30◦ ) · 250 = −0.0248 cm .
EA 21000 · 400
So ergibt sich
 
1 5 4 1250 3 N (x = l1 )
w(x = l1 ) = l1 + l1 + c1 l1 = tan(30◦ ) · l1
EIy 6 3 EA
N (x = l1 )Iy 5 1250 2
⇔ c1 = tan(30◦ ) − l13 − l = −3.9 · 107 .
A 6 3 1
Damit ist die Funktion der Durchbiegung gegeben mit
 
1 5 4 1250 3
w(x) = x + x − 3.9 · 107 x .
EIy 6 3

Beispiel 2: In Abbildung 55 ist ein Träger mit einer angreifenden Einzellast F dargestellt.
Das Flächenträgheitsmoment Iy , das E-Modul E und die Querschnittsfläche A des Balkens sind
als konstant und gegeben anzunehmen. Für dieses System sollen die Verformungen berechnet
werden.

F
x, u
A

z, w
l2

l1 l2

Abbildung 55: Träger mit Einzellast


Lineare Finite Element Methode, c J. Schröder 87

Das Problem soll unter der Annahme folgender Zahlenwerte gelöst werden

kN
E = 21000 , Iy = 13333.3 cm4 , A = 400 cm2 ,
cm2

l1 = 500 cm, l2 = 300/ 2 cm, F = 100 kN .

Einteilung in Elemente: Zur Lösung des Problems teilen wir das System zunächst in finite
Elemente ein. Die Elementaufteilung in zwei finite Elemente ist in Abbildung 56 dargestellt. Die
Vergabe der Element- und Knotennummern ist beliebig und in Tabelle 3 zusammengefasst. Es
ist jeweils das lokale Koordinatensystem eines jeden Elements eingezeichnet.

(1) (1)
1 1 ξ, xL , uL
2

(1) (1) 2
zL , wL
(2) (2)
ξ, xL , uL
(2) (2)
zL , wL
3
Abbildung 56: Elementeneinteilung am Träger mit lokalen KOS

Element Knoten i Knoten j γ sin(γ) cos(γ) l


1 1 2 0◦ 0 1 l1
1 1 √
2 2 3 45◦ √ √ l2 2
2 2
Tabelle 3: Element–Knoten Zuordnung

Die Elementsteifigkeitsmatrizen können nun f¸r die beiden Elemente mit Hilfe von Gl.
(5.112) unter Berücksichtigung der Transformation in Gl. (5.117)2 aufgestellt werden. Die Trans-
formationsmatrix von Element 1 ist gegeben mit

   
c s 0 0 0 0 1 0 0 0 0 0
 (1)   −s c 0 0 0 0   0 1 0 0 0 0 
T 0    
1  0 0 1 0 0 0   0 0 1 0 0 0 
T (1) =  = = ,
0 T
(1)  0 0 0 c s 0   0 0 0 1 0 0 
   
2  0 0 0 −s c 0   0 0 0 0 1 0 
0 0 0 0 0 1 0 0 0 0 0 1
Lineare Finite Element Methode, c J. Schröder 88

(1) (1)
welche sich folgerichtig auf die Einheitsmatrix reduziert. Damit ist kG = kL und

 
A 0 0 −A 0 0
 
 Iy Iy Iy Iy 
 0 12 6 0 −12 6 

 l12 l1 l12 l1 

 Iy Iy 
 0 6 4Iy 0 −6 2Iy 
(1) E  l1 l1 

kG =  
l1  −A 0 0 A 0 0 
 
 
 Iy Iy Iy Iy 
 0 −12 −6 0 12 −6 
 l12 l1 l12 l1 
 
 Iy Iy 
0 6 2Iy 0 −6 4Iy
l1 l1
 
16800 0 0 −16800 0 0
 
 0 26.8799 6719.98 0 −26.8799 6719.98 
 
 
 0 6719.98 2.23999 · 106 0 −6719.98 6
1.12 · 10 
 
= .
 −16800 0 0 16800 0 0 
 
 
 0 −26.8799 −6719.98 0 26.8799 −6719.98 
 
0 6719.98 1.12 · 106 0 −6719.98 2.23999 · 106

Die lokale Elementsteifigkeitsmatrix für Element 2 ist

 
28000 0 0 −28000 0 0
 
 0 124.444 18666.6 0 −124.444 18666.6 
 
 
 0 18666.6 3.73332 · 106 0 −18666.6 1.86666 · 106 
(2)  
kL = .
 −28000 0 0 28000 0 0 
 
 
 0 −124.444 −18666.6 0 124.444 −18666.6 
 
0 18666.6 1.86666 · 106 0 −18666.6 3.73332 · 106

Für Element 2 ergibt sich die Transformationsmatrix mit γ = 45◦ zu

   √ √ 
c s 0 0 0 0 1/ √2 1/√2 0 0 0 0
 (2)  −s c 0 0 0 0   −1/ 2 1/ 2 0 0 0 0 
T 0    
2  0 0 1 0 0 0   0 0 1 0√ 0√ 0 
T (2) =  = = .
0 T
(2)  0 0 0 c s 0   0 0 0 1/ √2 1/√2 0 
   
3  0 0 0 −s c 0   0 0 0 −1/ 2 1/ 2 0 
0 0 0 0 0 1 0 0 0 0 0 1

(2) (2)
Mit Hilfe von kG = (T (2) )T kL T (2) kann die globale Steifigkeitsmatrix des Elements bestimmt
Lineare Finite Element Methode, c J. Schröder 89

werden, so dass
 √ √ 
AE 6Iy E 6Iy E AE 3 2Iy E 6Iy E 6Iy E 3 2Iy E
2l2 + l23 l23
− 2l2 l22
− AE
2l2 − l23
AE
2l2 − l23 l22
 √ √

 6Iy E AE 6Iy E 3 2Iy E 6Iy E 6Iy E 3 2Iy E

 − 2l2 AE
+ AE
− − AE − 
 l23 2l2 l23 l22 2l2 l23 2l2 l23 l22 
 √ √ √ √ 
 3 2Iy E 3 2Iy E 4Iy E 3 2Iy E 3 2Iy E 2Iy E 
 − − 
 l22 l22 l2 l22 l22 l2 
(2)  √ √ 
kG =  AE 6Iy E AE 6Iy E 3 2I E AE 6Iy E 6Iy E AE 3 2I E 
 − 2l − 3 − − l2 y + − − l2 y 
 2 l2 2l2 l23 2
2l2 l23 l23 2l2 2 
 √ √ 
 AE 6Iy E 6Iy E 3 2Iy E 6Iy E 6Iy E 3 2Iy E 
 2l − l3 − AE
2l2 − − l2 − AE AE
+ − l2 
 2 2 l23 2 l23 2l2 2l2 l23 2 
 √ √ √ √ 
 3 2Iy E 3 2Iy E 2Iy E 3 2I E 3 2Iy E 4Iy E 
l22 l22 l2 − l2 y − l22 l2
2

 
14062.2 13937.8 −13199.3 −14062.2 −13937.8 −13199.3
 13937.8 14062.2 13199.3 −13937.8 −14062.2 13199.3 
 
 −13199.3 13199.3 3.73332 · 106 13199.3 −13199.3 1.86666 · 106 
=

.

 −14062.2 −13937.8 13199.3 14062.2 13937.8 13199.3 
 −13937.8 −14062.2 −13199.3 13937.8 14062.2 −13199.3 
−13199.3 13199.3 1.86666 · 106 13199.3 −13199.3 3.73332 · 106

Nun liegen die Elementsteifigkeiten für beide Elemente bezogen auf das globale Koordinatensys-
tem vor. Abbildung 57 veranschaulicht dies.

(1) (1)
1 1 xG , uG
2
(2) (2)
(1) (1) 2 xG , uG
zG , wG

(2) (2)
3
zG , wG (B) (B)
xL , uL
(B) (B)
zL , wL

Abbildung 57: Elementeneinteilung am Träger mit globalen KOS (blau) in den Elementen
und knoten-lokalem KOS (orange) in Auflager B bzw. in Knoten 3
Lineare Finite Element Methode, c J. Schröder
(1) (2)
Die Gesamtsteifigkeitsmatrix entsteht aus der Assemblierung von kG und kG , wobei die Summation der Elementenbeiträge am gemeinsamen
Knoten 2 zu beachten ist
 
16800 0 0 −16800 0 0 0 0 0
 
 0 26.8799 6719.98 0 −26.8799 6719.98 0 0 0 
 
 6 6 
 0 6719.98 2.23999 · 10 0 −6719.98 1.12 · 10 0 0 0 
 
 
 −16800 0 0 30862.2 13937.8 −13199.3 −14062.2 −13937.8 −13199.3 
 
 
K= 0 −26.8799 −6719.98 13937.8 14089.1 6479.31 −13937.8 −14062.2 13199.3  .
 
 
 0 6719.98 1.12 · 106 −13199.3 6479.31 5.97332 · 106 13199.3 −13199.3 1.86666 · 106 
 
 
 0 0 0 −14062.2 −13937.8 13199.3 14062.2 13937.8 13199.3 
 
 0 0 0 −13937.8 −14062.2 −13199.3 13937.8 14062.2 −13199.3 
 
 
0 0 0 −13199.3 13199.3 1.86666 · 106 13199.3 −13199.3 3.73332 · 106

Einbringen der Randbedingungen: Die Lagerung in Knoten 3 bzw. Auflager B muss bezüglich eines lokalen Koordinatensystems (orange) im
Knoten dargestellt werden, um die Randbedingung einbringen zu können. Entsprechend ist die Multiplikation mit Tb notwendig, hier dargestellt
für das Gesamtsystem  
1 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 
 
 0 0 1 0 0 0 0 0 0 
 
 0 0 0 1 0 0 0 0 0 
 
 0 
Tb =  0 0 0 0 1 0 0 0 .
 0 0 0 0 0 1 0 0 0 
 
 0 0 0 0 0 0 √1 − √1 0 
 2 2 
 
 0 0 0 0 0 0 √1 √1 0 
2 2
0 0 0 0 0 0 0 0 1

90
Lineare Finite Element Methode, c J. Schröder 91

Die angreifende Einzellast F = 100 kN wird in der Zeile zur Variation δw2 einsortiert. Mit dem
Lastvektor  T
F = 0 0 0 0 F 0 0 0 0 ,
und dem Freiheitsgradvektor
 T
D= u1G wG
1 ϕ1G u2G wG
2 ϕ2G u3L wL
3 ϕ3
L ,

ergibt sich das zu lösende Gesamtsystem aus TbT K TbD = TbF . Hierin können nun die Dirichlet
Randbedingungen eingebracht werden. Das dreiwertige, unverschiebliche Auflager A in Knoten
1 führt zu folgenden Randbedingungen

u1G = wG
1
= ϕ1G = 0 ,

sodass die ersten drei Zeilen und Spalten des Gesamtsystems gestrichen werden können. Ebenfalls
werden Zeile und Spalte acht gestrichen, da
3
wL = 0.

Das reduzierte Gleichungssystem ist damit gegeben mit


     
30862.2 13937.8 −13199.3 −19799 −13199.3 u2G 0
     
   2   
 13937.8 14089.1 6479.31 −19799 13199.3   wG   100 
     
 6 6
  2   
 −13199.3 6479.31 5.97332 · 10 0 1.86666 · 10     0 
   ϕG = .
     
 −19799 −19799 0 28000 0   3   0 
   uL   
     
   3   
−13199.3 13199.3 1.86666 · 106 0 3.73332 · 106 ϕL 0

Die Lösung des Gleichungssystems ergibt

u2G = 2.204 · 10−3 cm , 2 = 2.358 cm ,


wG ϕ2G = 5.917 · 10−4 rad ≈ 3.390◦ · 10−3 ,

u3L = 1.669 cm , ϕ3L = −8.357 · 10−3 rad ≈ −0.479◦ .

Durch die Rücktransformation DG = TbDL erhalten wir die globalen Verschiebungen in Auflager
B mit
u3G = 1.180 cm , wG
3
= 1.180 cm .
Lineare Finite Element Methode, c J. Schröder 92

subroutine elmt06(d,ul,xl,ix,tl,s,p,ndf,ndm,nst,isw)
c-----------------------------------------------------------------------
c elmt06 : Zweidimensionales Balkenelement
c
c Parameterliste
c d(1-2) Material- und Elementparameter
c d(1) = yo - Elastizitaetsmodul
c d(2) = moin - Flaechentraegheitsmoment
c ul(ndf,*) Loesungsvektor
c xl(ndm,nel) Knotenkoordinaten
c s(nst,nst) Steifigkeitsmatrix
c p(nst) Residuum
c ndf Anzahl der Freiheitsgrade
c ndm Dimensionen der Knoten
c nst Anzahl der Elementfreiheitsgrade
c isw Ausfuehrungsparameter
c-----------------------------------------------------------------------
implicit none
include ’bdata.h’
include ’cdata.h’
include ’debugs.h’
include ’eldata.h’
include ’iofile.h’
integer ix(*)
integer ndf,ndm,nst,isw
integer ll,i,j,l
real*8 d(*),ul(ndf,*),xl(ndm,*),tl(*),s(nst,nst),p(*)
real*8 bmat(nst),btc(nst)
real*8 sg(2),wg(2)
real*8 vl(4),momnod(2)
real*8 yo,moin,sl,dvol,dy,wxx,mom
logical errck,pinput
c
if(isw.eq.1) then
c-----------------------------------------------------------------------
c... Einlesen der Materialwerte
1 if(ior.lt.0) write(*,3000)
errck=pinput(d,2)
if(errck) go to 1
if(ior.lt.0) then
write(*,2000) d(1),d(2)
end if
write(iow,2000) d(1),d(2)
c
elseif(isw.eq.2) then
c-----------------------------------------------------------------------
c... Elementcheck auf Fehler
if(d(2) .le. 0.d0) then
write(*,*)’ flaechentraegheitsmoment .le. 0’
stop
endif
Lineare Finite Element Methode, c J. Schröder 93

c
elseif(isw.eq.3 .or. isw.eq.4) then
c-----------------------------------------------------------------------
c... Berechnung der Steifigkeitsmatrix und des Residuums
c... Material- und Elementparameter
yo = d(1)
moin = d(2)
c... Laenge
sl = xl(1,2) - xl(1,1)
dy = xl(2,2) - xl(2,1)
if (dy .gt. 1.e-9 .or. dy .lt. -1.e-9) then
write(*,*) ’In der Grundversion sind nur’
write(*,*) ’horizontale Balkenelemente zugelassen!’
stop
end if
c... Berechnung der lokalen Verschiebungen
call pzero(vl,4*1)
vl(1) = ul(1,1)
vl(2) = ul(2,1)
vl(3) = ul(1,2)
vl(4) = ul(2,2)
c... Anzahl der Gausspunkte und Berechnung der Stuetzstellen
ll = 2
sg(1) = - 1.d0/dsqrt(3.d0)
sg(2) = + 1.d0/dsqrt(3.d0)
wg(1) = 1.d0
wg(2) = wg(1)
c.... Gauss Schleife
do l = 1,ll
dvol = 0.5d0*sl*wg(l)
call pzero(bmat,nst)
call bmat06(bmat,sg(l),sl)
c... Berechnung von w’’(xi)
wxx = 0.d0
do j=1,nst
wxx = wxx + bmat(j)*vl(j)
end do
c... Berechnung der Schnittgroessen (Moment) (an Gausspunkten)
mom = yo*moin*wxx
if(isw .eq. 4)then
c.... Ausgabeanweisungen, Schnittgroessen (an Knoten) ins Ausgabefile,
c Schnittgroessenkonvention der Statik verwendet
if (l.eq.1) then
momnod(1) = -1.d0*(yo*moin/(sl*sl))*(-6.d0*vl(1) -
& 4.d0*sl*vl(2) + 6.d0*vl(3) - 2.d0*sl*vl(4))
momnod(2) = -1.d0*(yo*moin/(sl*sl))*(6.d0*vl(1) +
& 2.d0*sl*vl(2) - 6.d0*vl(3) + 4.d0*sl*vl(4))
write(*,100)
write(*,101)
write(iow,100)
write(iow,101)
Lineare Finite Element Methode, c J. Schröder 94

end if
write(*,103) ix(l),xl(1,l),xl(2,1),momnod(l)
write(iow,103) ix(l),xl(1,l),xl(2,1),momnod(l)
c
elseif(isw .eq. 3)then
c... Berechnung des Residuums
do i=1,nst
p(i) = p(i) - bmat(i)*mom*dvol
end do
c... Berechne B^T C
call pzero(btc,4*1)
do i = 1,nst
btc(i) = bmat(i)*yo*moin*dvol
enddo
c... Berechne B^T C B = Steifigkeitsmatrix
do i = 1,nst
do j = 1,nst
s(i,j) = s(i,j) + btc(i)*bmat(j)
enddo
enddo
endif ! Ende Berechnung lokaler STEMA
end do ! Gauss-Schleife
c
c
endif !isw=1,2,3,4,5,6,7,8
c
c----------------------------------------------------------------------
c... Formatanweisungen
100 format(15x, ’Schnittgroessen’)
101 format(4x,’Knoten’,3x,’x’,5x,’y’,8x,’M’)
103 format(5x,i3,2x,f5.2,1x,f5.2,1x,e12.5)
2000 format(5x,’Balkenelement:’//
& 5x,’Elastizitaetsmodul yo = ’,e12.5/
& 5x,’flaechentraegheitsmoment moin = ’,e12.5/)
3000 format(’ Input: Yo,moin’/’ >’,$)
end
c
c
c
subroutine bmat06(bmat,xi,sl)
c--------------------------------------------------------------------72
c Berechnung des B-Operators
c Paramterliste
c bmat(4) B-Operator
c xi Gausspunkt
c sl Elementlaenge
c----------------------------------------------------------------------
implicit none
real*8 bmat(4)
real*8 sl,xi
c
Lineare Finite Element Methode, c J. Schröder 95

c... Berechnung des B-Operators


bmat(1) = 6.d0*xi/(sl*sl)
bmat(2) = -1.d0/sl + 3.d0*xi/sl
bmat(3) = - 6.d0*xi/(sl*sl)
bmat(4) = 1.d0/sl + 3.d0*xi/sl
return
end
c
Lineare Finite Element Methode, c J. Schröder 96

5.4.4 Balkentheorie nach Timoshenko Im Folgenden betrachten wir Finite-Elemente


Formulierungen auf Basis von gemischten Variationsprinzipien. Den Zusammenhang mit der
reduzierten Integration am Beispiel von Balkenelementen betrachten wir in einem folgenden
Abschnitt. Wir leiten zunächst die Timoshenko-Balkentheorie her, die eine Erweiterung der
Bernoulli-Balkentheorie darstellt. Die kinematischen Annahmen der Bernoulli-Theorie sind:

1. Die Querschnitte bleiben bei Verformung eben.

2. Die Querschnitte stehen auch im verformten Zustand normal zur Stabachse.

Im Rahmen der Timoshenko-Balkentheorie wird die 2. Forderung aufgegeben. Die kinematischen


Beziehungen lassen sich somit wie folgt darstellen:

x, u

w,x
w
β γ
z, w

w,x

Abbildung 58: Kinematik beim Timoshenko-Balken.

Die Drehung des Querschnitts bzgl. seiner Ausgangslage wird mit dem Drehwinkel β bezeichnet.
Aus Abbildung 58 läßt sich der Schubwinkel γ ablesen,

γ := w,x − β (5.125)

Dir Krümmung κ des Querschnitts ergibt sich aus

κ := β,x (5.126)

Für die Schnittgrößen Moment und Querkraft gelten die konstitutiven Beziehungen

M = −EIβ,x , Q = GAS γ (5.127)

wobei EI die Biegesteifigkeit und GAS die Schubsteifigkeit des Balkens ist. AS ergibt sich aus
AS = κS A. Der Parameter κS bezeichnet den sogenannten Schubkorrekturfaktor, der bei Recht-
eckquerschnitten den Wert 5/6 hat. Der Übergang zur Bernoulli-Theorie erfolgt durch Vernach-
lässigung von γ, man erhält dann aus der ersten kinematischen Beziehung mit der Vorzeichen-
konvention der Technischen Mechanik für das Biegemoment

γ = 0 ⇒ w,x = β ⇒ w,xx = β,x ⇒ M = −EIw,xx .

Um eine Variationsformulierung der Timoshenko-Balkentheorie zu erhalten, betrachten wir das


Gesamtpotential, das sich aus dem inneren und dem äußeren Potenial zusammensetzt. Das innere
Lineare Finite Element Methode, c J. Schröder 97

Potential ist gleich der Formänderungsenergie der Querkraft und des Momentes. Das Gesamtpo-
tential lautet
Π(w, β) = Πint (w, β) + Πext (w) (5.128)
Das innere Potential lautet
Z Z
int 1 2 1
Π (w, β) = EI β,x dx + GAS (w,x − β)2 dx . (5.129)
2 l 2 l

Das äußere Potential ergibt sich aus der Querkraftbelastung


Z
ext
Π (w) = − q w dx (5.130)
l

Die unabhängigen Variablen sind dabei die Verschiebung w und die Verdrehung β. Da diese
Variablen nur in der ersten Ableitung auftreten, genügt für diese Variablen ein linearer Ansatz,
d.h. für w und β werden nur C 0 -stetige Ansätze gefordert.

5.4.4.1 „Shear Locking“-Effekt Im Folgenden zeigen wir, daß die Auswertung des Ver-
schiebungsfunktionals
Z Z Z
1 2 1 2
Π(w, β) = EI β,x dx + GAS (w,x − β) dx − qw dx
2 le 2 le le

mit linearen Ansätzen für die Verschiebung w und die Verdrehung β zu sogenannten “Locking“-
Effekten (Versteifungseffekten) führt. Die Variation des Funktionals liefert
Z Z Z
δΠ = EI δβ,x β,x dx + GAS (δw,x − δβ)(w,x − β) dx − δw q dx . (5.131)
le le le

w und β werden durch lineare Ansätze approximiert.

N1 N2

Abbildung 59: Lineare Ansatzfunktionen für die FE-Formulierung des Timoshenko-


Balkens: N1 = 1 − ξi ; N2 = ξi mit ξ ∈ [1, 0].

Die Interpolation der Unbekannten erfolgt entsprechend nach den Vorschriften



w = Nw · de mit Nw = [N1 , 0, N2 , 0, 0]
. (5.132)
β = Nβ · de mit Nβ = [0, N1 , 0, N2 , 0]
Die Variationen und Ableitungen der Funktionen ergeben sich damit zu

w,x = Nw,x de ; δw,x = Nw,x δde
. (5.133)
β,x = Nβ,x de ; δβ,x = Nβ,x δde
P ele e
Einsetzen in das Funktional liefert mit Gh = ne=1 G für ein typisches Element B e

hnZ Z o  

Ge =δdeT T
EI Nβ,x Nβ,x dx + GAS (Nw,x − Nβ )T (Nw,x − Nβ ) dx de 


l e l e 

| {z } | {z }
e
kbb e
kS . (5.134)


Z i 



− NwT q dx = 0 

le
Lineare Finite Element Methode, c J. Schröder 98

Durch exakte Integration erhält man die partielle Steifigkeitsmatrix und den Schubterm
 
le le
 1 −1
   2 2 
0 0 0 0  le2 le le2 
 − 
EI  0 1 0 −1  GAS  
e
kbb = e   kS = e 
e 3 2 6  (5.135)
l  0 0 0 0  l  l 
e

0 −1 0 1  sym. 1 − 
 2 
 
le2
3

Die Gauß-Integration mit n-Stützstellen ist exakt für ein Polynom (2n − 1)ten Grades, das
bedeutet für die einzelnen Terme

β,x : const. ⇒ 1 Punkt-Integration ist exakt 


β 2 : quadr. ⇒ 2 Punkt-Integration ist exakt
2 . (5.136)
w,x : const. ⇒ 1 Punkt-Integration ist exakt 

w,x β: linear ⇒ 1 Punkt-Integration ist exakt

Beispiel: Als Zahlenbeispiel betrachten wir einen Kragarm unter einer Einzellast, den wir mit 2
Finiten Elementen diskretisieren. Die Elementsteifigkeitsmatrizen für die Biegung und den

11
00
F

00
11 11
00
00
11
β1 β2

00
11 00
11
x
w1 w2
z, w
2l l l
Abbildung 60: Kragarm mit Einzellast, F = 1, l = 5, EI = 10, GAs = 200 .

Schubanteil lauten
   
0 0 0 0 40 100 −40 100
 0 2 0 −2   100 333.33 −100 166.67 
e
kbb =
 0
 , kSe =  .
0 0 0   −40 −100 40 −100 
0 −2 0 2 100 166.67 −100 333.33

Die Gesamtsteifigkeitsmatrix ergibt sich aus der Assemblierung

nele
e
K= A (k bb + kSe ) .
e = 1

und der Berücksichtigung der Randbedingungen


 
80 0 −40 100
 0 666.67 + 4 −100 166.67 − 2 
K =
 −40


−100 40 −100
100 166.67 − 2 −100 333.33 + 2

Die Lösung mit des Gleichungssystems ergibt


Lineare Finite Element Methode, c J. Schröder 99

FE-Lösung analytische Lösung Fehler


w1 = 0.2447 w1 = 10.44 −98%
β1 = 0.0879 β1 = 3.75 −98%
w2 = 0.7824 w2 = 33.38 −98%
β2 = 0.1172 β2 = 5 −98%

Der Vergleich mit der analytischen Lösung zeigt, daß die FE-Lösung erheblich zu kleine Werte für
die Verschiebung und die Verdrehung liefert. Dieses Phänomen wird als “Shear-Locking-Effekt“
bezeichnet.
Anmerkung: Die Schnittgrößen werden durch die FE-Lösung sehr gut wiedergegeben:
     
0 −0.998 −QF E (0)
 0   −9.996   MF E (0) 
S 1 := K 1 d1 = K 1     
 0.2447  =  0.998  =  QF E (le ) 

0.0879 5.006 −MF E (le )

Untersuchung des “Shear-Lockings“ am Timoshenko-Balken. Wie wir im letzten Zah-


lenbeispiel erkennen konnten, führte die Timoshenko-Balkentheorie beim 2-knotigen Element
basierend auf der Verschiebungsmethode zum “Shear-Locking“. Das Potential der inneren Kräfte
liefert Z Z
1 1
Πint = ΠB
int + ΠS
int = EI β 2
,x dx + GAS (w,x − β )2 dx (5.137)
2 le 2 le | {z }
=:γ

Für den zweiknotigen Timoshenko-Balken folgt

β1 β2
ξǫ [0, 1]
w1 ξ w2

w1
w2 w(ξ) = (1 − ξ)w1 + ξw2

β1
β2 β(ξ) = (1 − ξ)β1 + ξβ2

w,x = (w2 − w1 )/l

(w2 − w1 ) /l − (β2 + β1 ) /2

(β2 − β1 ) /2
Abbildung 61: Graphische Analyse der Kinematen am Timoshenko-Balken.

Hieraus ergibt sich das diskrete innere Potential


  "    #
1 β2 − β1 2 e 1 w2 − w1 β2 + β1 2 1 β2 − β1 2 e
Πint = EI l + GAS − + l . (5.138)
2 le 2 le 2 3 2

Für dünne Balken gilt


γ≈0 ⇒ ΠS → 0 (5.139)
Lineare Finite Element Methode, c J. Schröder 100

Dieser Grenzfall muß auch durch den Timoshenko-Balken wiedergegeben werden können, was
wir im folgenden untersuchen wollen.

a) Betrachten wir zunächst den ersten Term des Schubanteils (w2 − w1 )/le − (β2 + β1 )/2.
Wir fordern nun, daß dieser Anteil gleich Null ist, um im folgenden nur noch den “Offset“
(β2 − β1 )/2 untersuchen zu müssen. Aus dieser Forderung folgt, daß der Gleitwinkel γ
in Balkenmitte gleich Null ist, woraus wiederum folgt, daß die Bernoulli-Hypothese in
Balkenmitte erfüllt ist.
w2 − w1 β2 + β1
− =0 ⇒ γ = (w,x − β) =0
le 2 ξ=1/2 ξ=1/2 ξ=1/2

b) Betrachten wir den zweiten Term (β2 − β1 )/2. Wenn der gesamte Schubanteil gleich Null
sein soll, dann muß neben der ersten Forderung auch der zweite Term verschwinden, was
bedeutet, daß die Krümmung κ = (β2 − β1 )/le gleich Null sein muß und nicht konstant
sein darf, wie ursprünglich angesetzt. Dies ist aber eine unzulässige Zwangsbedingung, die
das “Shear-Locking“ hervorruft.

Anmerkung: Sind Elemente nicht in der Lage einen reinen Biegemode wiederzugeben, so treten
Locking-Phänomene auf. Ein reiner Biegezustand liefert

−β
β

Abbildung 62: Reiner Biegezustand eines Balkenelementes β1 = −β2 = β, w1 = w2 = 0.

somit ist die Formänderungsenergie gegeben durch


 2  
1 2β e 1 1 2 e
Πint = EI l + GAS β l
2 le 2 3

Der letzte Anteil ruft eine unzulässige Erhöhung der Biegesteifigkeit hervor, was der Grund für
das Locking ist.
Beispiel: Einfeldträger unter Einzellast: Studie zur Variation der Balkenhöhe

w
l
Abbildung 63: Einfeldträger unter Einzellast mit 16 Elementen.

5.4.4.2 Selektiv reduzierte Integration des Schubterms Auf den Schubanteil


der Steifigkeitsmatrix wird eine reduzierte Integration angewandt, also eine 1-Punkt Gauß-
Integration. Diese Integration liefert mit dem Gaußpunkt ξ = 1/2 und der Wichtung w = 1 den
Lineare Finite Element Methode, c J. Schröder 101

wF E 1000

wBernoulli
100 Schubaufweichung

10

0.1

0.01

0.001 Locking

0.0001
0.1 1 10 100 1000

l/h
Abbildung 64: Shear-Locking Verhalten beim Timoshenko-Balken

Schubanteil der Steifigkeitsmatrix


 
1 le /2 −1 le /2
GAS 
 le2 /4 −le /2 le2 /4 

kSe = (5.140)
le  sym. 1 −le /2 
le2 /4

Die reduzierte Integration liefert eine Steifigkeitsmatrix, die äquivalent ist zu der, die sich aus
dem zuvor diskutierten Variationsfunktional ergibt.
Lineare Finite Element Methode, c J. Schröder 102

5.4.4.3 Gemischtes Variationsfunktional Im Folgenden betrachten wir ein gemisch-


tes Variationsfunktional, in dem als zusätzliche Variable die Querkraft eingeführt wird. Der
Schubanteil der Formänderungsenergiedichte pro Längeneinheit des Balkens ist definiert als
Z
ψS = Q(γ) dγ , (5.141)
γ

mit der konstitutiven Gleichung (5.127)2 ergibt sich hieraus


Z
1
ψS = GAS γ dγ = GAS γ 2 . (5.142)
γ 2
Durch Integration über die Balkenlänge erhält man mit der Definition des Schubwinkels (5.125)
den Schubanteil der Formänderungsenergie
Z Z Z
1 1
ΠS (w, β) = ψS dx = GAS γ 2 dx = GAS (w,x − β)2 dx . (5.143)
l l 2 l 2
Die Komplementärenergiedichte ist entsprechend definiert zu
Z
ψS∗ = γ(Q) dQ , (5.144)
Q

mit der konstitutiven Gleichung (5.127)2 ergibt sich


Z
Q 1 Q2
ψS∗ = dQ = . (5.145)
Q GAS 2 GAS
Wir erkennen hieraus, daß sich der Schubanteil der Formänderungsenergiedichte als Funktion
der kinematischen Größe γ = w,x − β darstellen läßt, die Komplementärenergie hingegen in
der arbeitskonjugierten Größe der Querkraft Q. Um die Querkraft Q als zusätzliche Variable
im Rahmen einer gemischten Variationsformulierung in die Formänderungsenergie einzubringen,
wird im folgenden die Formänderungsenergiedichte durch die Komplementärenergiedichte darge-
stellt, dieses Vorgehen bezeichnet man auch als die Legendre-Transformation
1 Q2
ψS = Q γ − ψS∗ = Q γ − . (5.146)
2 GAS
Damit ergibt sich für den Schubanteil der Formänderungsenergie zu
Z  
1 Q2
ΠS (w, β, Q) = Q γ̂(w, β) − dx , (5.147)
l 2 GAS
bzw. mit Gleichung (5.125)
Z Z
1 Q2
ΠS (w, β, Q) = Q (w,x − β) dx − dx (5.148)
l l 2 GAS
mit den unabhängigen Variablen w, β und Q. Das Gesamtpotential ist damit gegeben durch
Z Z Z Z
1 2 1 Q2
Π(w, β, Q) = EI β,x dx + Q (w,x − β) dx − dx − q w dx . (5.149)
2 l l 2 l κ̄ GA l

Variation des gemischten Funktionals. Die Variation des gemischten Funktionals (5.149)
liefert
Z Z
G := δΠ(w, β, Q, δw, δQ, δβ) = EI β,x δβ,x dx + Q(δw,x − δβ)dx
l l
Z Z
Q (5.150)
+ δQ (w,x − β) dx − δQ dx
l l GAS
Z
− q δw dx .
l
Lineare Finite Element Methode, c J. Schröder 103

Die Stationaritätsbedingung ist δΠ = 0.


Gemischte FE-Formulierung. Ausgehend von dem variierten gemischten Funktional (5.150)
werden wir nun die Finite-Element- Formulierung ableiten. Dazu wählen wir lineare Ansätze
{N1 , N2 } für w und β,

N1 N2 N3

Abbildung 65: Ansatzfunktion bei gemischter FE-Formulierung des Timoshenko-Balkens.

da keine Ableitungen der Querkraft Q in Gl. (5.150) erscheinen, wird Q mittels {N3 } als konstant
angesetzt. Die Ansatzfunktionen sind N1 = 1 − ξi , N2 = ξi und N3 = 1. Der Vektor der
Unbekannten ist daher
de = [w1 , β1 , w2 , β2 , Q3 ]T . (5.151)
Die Interpolation der Unbekannten erfolgt entsprechend nach den Vorschriften

w = Nw · de mit Nw = [N1 , 0, N2 , 0, 0] 
β = Nβ · de mit Nβ = [0, N1 , 0, N2 , 0] . (5.152)

Q = NQ · de mit NQ = [0, 0, 0, 0, N3 ]
Die Variationen und Ableitungen der Funktionen ergeben sich damit zu

w,x = Nw,x de ; δw,x = Nw,x δde 
β,x = Nβ,x de ; δβ,x = Nβ,x δde . (5.153)
e e 
Q = NQ d ; δQ = NQ δd
Pnele e
Einsetzen von (5.153) in das Funktional (5.150) liefert mit Gh = e=1 G für ein typisches
Element B e

hnZ Z 


Ge =δdeT EI Nβ,x T
Nβ,x dx + (Nw,x T
− NβT )NQ dx 



| l e
{z } | l e
{z } 



e
kbb e
kbQ 



Z Z 

o 
T 1 T e
+ NQ (Nw,x − Nβ ) dx − NQ NQ dx d . (5.154)
e e GAS
|l {z }| l {z } 



e =keT
kQb
e
kQQ 

bQ 

Z i 



− T
Nw q dx = 0 



| l e
{z } 


pe

Für beliebige kinematisch zulässige virtuelle Knotenverschiebungen δde erhalten wir hieraus
schließlich das Gleichungssystem
 e e e e
 e
kbb + kbQ + kQb + kQQ d = pe . (5.155)
e ergibt mit N
Die Teilsteifigkeitsmatrix kbb e
β,x = [0, −1, 0, 1, 0]/l zu
 
0 0 0 0
EI  0 1 0 −1 
e
kbb = e  . (5.156)
l  0 0 0 0 
0 −1 0 1
Lineare Finite Element Methode, c J. Schröder 104

e
Die Matrix kQQ reduziert sich hier auf eine skalare Größe (die Querkraft war konstant über das
Elemente). Wir erhalten  e 
e l
kQQ =− . (5.157)
GAS
Die Matrix kbQ
e = k eT folgt mit (N w − N ) = [−1/le , −N , 1/le , −N , 0] zu
Qb ,x β 1 2

 
−1
 −le /2 
e
kbQ eT
= kQb =
 1 .
 (5.158)
−le /2

Wir erhalten somit die Elementsteifigkeitsmatrix


 
 0 0 0 0 −1 
 
 
   EI EI le 
 0 0 − − 
e e
 le le 2 
 kbb kbQ   
e
k = = 
. (5.159)
 
 0 0 0 0 1 
e
kQb e
kQQ  

 EI EI le 

 0 − 0 − 
 le le 2 
 le le le 
−1 − 1 − −
2 2 GAS
Das zu lösende Gleichungssystem zur Bestimmung der unbekannten Verschiebungen und der
Querkraft Q ist " #   e 
e
kbb e
kbQ d¯e p̄
e e = , (5.160)
kQb kQQ Q 0

wobei im Vektor d¯ die Knotenverschiebungen ohne Querkraft zusammengefaßt sind. Wir führen
nun die statische Kondensation durch, indem wir die Querkraft Q eliminieren. Aus der zweiten
Gleichung des Gleichungssystems (5.160) folgt
e
kQb d¯e + kQQ
e
Q=0.

Hieraus läßt sich die Querkraft Q ausdrücken als

Q = −kQQ kQb d¯e .


e−1 e
(5.161)

Durch Einsetzen in die erste Gleichung von (5.160) erhalten wir schließlich
e
(kbb e
−kbQ kQQ kQb ) d¯e = p̄e
e−1 e
(5.162)
| {z }
e
kS

mit  
le le
 1 −1 
 2 2 
 le2 le le2 
 − 
GAS  4 2 4

kS = e 
e . (5.163)
l  le 

 sym. 1 − 
 2 
 
le2
4
Lineare Finite Element Methode, c J. Schröder 105

e und einem Schubanteil k e


Die Steifigkeitsmatrix setzt sich damit aus einem Biegeanteil kbb S
zusammen. Die Darstellung (5.162) charakterisiert wieder eine Verschiebungsmethode.
Beispiel: Wir betrachten wieder den Kragarm unter einer Einzellast, den wir mit 2 Finiten
Elemente diskretisieren.

11
00
F 11
00
00
11 β1 β2
00
11 00
11
00
11 00
11
x
w1 w2
z, w
2l l l
Abbildung 66: Kragarm mit Einzellast, F = 1, l = 5, EI = 10, GAs = 200 .

Die Elementsteifigkeitsmatrizen des Biege- und des Schubanteils ergeben in diesem Fall
   
0 0 0 0 40 100 −40 100
 0 2 0 −2   250 −100 250 
e
kbb =  , kSe =  100 .
 0 0 0 0   −40 −100 40 −100 
0 −2 0 2 100 250 −100 250
Die Gesamtsteifigkeitsmatrix ergibt sich aus
nele
e
K= A (k bb + kSe )
e = 1
unter Berücksichtigung der wesentlichen Randbedingungen zu
 
80 0 −40 100
 0 500 + 4 −100 250 − 2 
K=  −40 −100
.

40 −100
100 250 − 2 −100 250 + 2
S ele e
Der globale Lastvektor P = ne=1 p̄ lautet
 
0
 0 
P = 
 1 .
0
Das zu lösende lineare Gleichungssystem ist
    
80 0 −40 100 w1 0
 0 504 −100 248   β1   0 
    .
 −40 −100 40 −100   w2  =  1 
100 248 −100 252 β2 0
Die analytische Lösung für die Durchbiegung und Verschiebung kann mit Hilfe des Prinzips der
virtuellen Kräfte (mit Berücksichtigung der Querkraft) berechnet werden:

5F l3 Fl 3F l2
w(x = l) = + β(x = l) =
6 EI GAS 2 EI
8F l3 2F l 2F l2
w(x = 2l) = + β(x = 2l) =
3 EI GAS EI

Der Vergleich der analytischen und der FE-Lösung ergibt


Lineare Finite Element Methode, c J. Schröder 106

FE-Lösung analytische Lösung Fehler


w1 = 9.4 w1 = 10.44 −10%
β1 = 3.75 β1 = 3.75 0
w2 = 31.3 w2 = 33.38 −6.2%
β2 = 5 β2 = 5 0

Schnittgrößen im 1.Element
   
0 −1
 0   −10 
S 1 = k1 ·   
 9.4  =  1 
 (5.164)
3.75 5

Die Lösung ist exakt.


Rückrechnung des Moments aus Stoffgesetz
 
−1
EI    −10 
M = −EIβ,x = − 0,−1,0,1  
 1  = −7.5 (5.165)
l
5

M ist konstant im Element. Lokales Gleichgewicht am Element liefert linearen Verlauf von M .
HA: Berechnen Sie das obige System für den Lastfall Querkraft q = 1 = konst. und stellen Sie
die FEM-Ergebnisse den TM-Ergebnissen gegenüber.
Lineare Finite Element Methode, c J. Schröder 107

subroutine elmt07(d,ul,xl,ix,tl,s,p,ndf,ndm,nst,isw)
c-----------------------------------------------------------------------
c H. Romanowski 08.07.2005
c
c elmt07 : Zweidimensionales Balkenelement nach Timoshenko
c
c Parameterliste
c d(1-4) Material- und Elementparameter
c d(1) = emodul - Elastizitaetsmodul
c d(2) = ftm - flaechentraegheitsmoment
c d(3) = schub - Schubmodul
c d(4) = area - Querschnittsflaeche
c d(5) = flagg - flagg=1 -> Zweifeldfunktional
c flagg=2 -> Dreifeldfunktional
c flagg=3 -> Reduzierte Integration
c ul(ndf,*) Loesungsvektor
c xl(ndm,nel) Knotenkoordinaten
c s(nst,nst) Steifigkeitsmatrix
c p(nst) Residuum
c ndf Anzahl der Freiheitsgrade
c ndm Dimensionen der Knoten
c nst Anzahl der Elementfreiheitsgrade
c isw Ausfuehrungsparameter
c-----------------------------------------------------------------------
implicit none
include ’bdata.h’
include ’cdata.h’
include ’debugs.h’
include ’eldata.h’
include ’iofile.h’
integer ix(*)
integer ndf,ndm,nst,isw
integer i,j,k,ll,flagg,gp,analy
real*8 d(*),ul(ndf,*),xl(ndm,*),tl(*),s(nst,nst),p(*)
real*8 emodul,ftm,schub,area,lle,EI,GAs
real*8 beta,betapx,wpx,dvol,mom,fact1,fact2
real*8 moml,momr,querl,querr,sn,cs
real*8 lv(6),sg(2),wg(2),bmat(4,4)
logical errck,pinput
c
if(isw.eq.1) then
c-----------------------------------------------------------------------
c... Einlesen der Materialwerte
1 if (ior.lt.0) write(*,3000)
errck=pinput(d,5)
if (errck) go to 1
flagg = dint(d(5))
write(*,2000) d(1),d(2),d(3),d(4),flagg
write(iow,2000) d(1),d(2),d(3),d(4),flagg
c
elseif(isw.eq.2) then
Lineare Finite Element Methode, c J. Schröder 108

c-----------------------------------------------------------------------
c... Elementcheck auf Fehler
if (d(2) .le. 0.d0) then
write(*,*)’ flaechentraegheitsmoment .le. 0’
stop
endif
c
elseif (isw.eq.3 .or. isw.eq.4) then
c-----------------------------------------------------------------------
c... Berechnung der Steifigkeitsmatrix und des Residuums
c
c... Material- und Elementparameter
emodul = d(1)
ftm = d(2)
schub = d(3)
area = d(4)
flagg = dint(d(5))
EI = emodul*ftm
GAs = 5.d0/6.d0*schub*area
c
c... Elementlaenge und Winkel
sn = xl(2,2) - xl(2,1)
cs = xl(1,2) - xl(1,1)
lle = dsqrt(cs*cs + sn*sn)
sn = sn/lle
cs = cs/lle
if (sn .gt. 1.e-9 .or. sn .lt. -1.e-9) then
write(*,*) ’In der Grundversion sind nur’
write(*,*) ’horizontale Balkenelemente zugelassen!’
stop
end if
c... Umspeicherung des Loesungsvektors -> d^e=[w1,beta1,w2,beta2]
lv(1) = ul(1,1)
lv(2) = ul(2,1)
lv(3) = ul(1,2)
lv(4) = ul(2,2)
c... Umspeicherung des Loesungsvektors bzgl des lokalen KO-systems
c d^e_L=[u1,w1,beta1,u2,w2,beta2]
c vl(1) = cs*ul(1,1) + sn*ul(2,1)
c vl(2) = -1.d0*sn*ul(1,1) + cs*ul(2,1)
c vl(3) = ul(3,1)
c vl(4) = cs*ul(1,2) + sn*ul(2,2)
c vl(5) = -1.d0*sn*ul(1,2) + cs*ul(2,2)
c vl(6) = ul(3,2)
c
c... Zeifeldfunktional
if (flagg .eq. 1) then
c... Stema analytisch analy = 1 oder numerisch analy = 0
analy = 1
c
if (analy .eq. 1) then
Lineare Finite Element Methode, c J. Schröder 109

c
c... Berechnung der Steifigkeitsmatrix
s(1,1)= GAs/lle
s(1,2)= GAs/2.d0
s(1,3)=-GAs/lle
s(1,4)= GAs/2.d0
s(2,1)= GAs/2.d0
s(2,2)= EI/lle+GAs*lle/3.d0
s(2,3)=-GAs/2.d0
s(2,4)=-EI/lle+GAs*lle/6.d0
s(3,1)=-GAs/lle
s(3,2)=-GAs/2.d0
s(3,3)= GAs/lle
s(3,4)=-GAs/2.d0
s(4,1)= GAs/2.d0
s(4,2)=-EI/lle+GAs*lle/6.d0
s(4,3)=-GAs/2.d0
s(4,4)= EI/lle+GAs*lle/3.d0
c... Berechnung des Residuums
do i = 1,nst
do j = 1,nst
p(i) = p(i) - s(i,j)*lv(j)
end do
end do
c... Ausgabe der Schnittgroessen aus Fehlkraftvektor
if (isw .eq. 4) then
write(*,100)
write(iow,100)
write(*,101)
write(iow,101)
write(*,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(iow,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(*,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
write(iow,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
end if
c
elseif (analy .eq. 0) then
c
c... Ausgabe der Schnittgroessen aus Stoffgesetz
if (isw .eq. 4) then
querl = (-1.d0/lle*lv(1)-lv(2)+1.d0/lle*lv(3))*GAs
moml = (1.d0/lle*lv(2)-1.d0/lle*lv(4))*EI
querr = (-1.d0/lle*lv(1)+1.d0/lle*lv(3)-lv(4))*GAs
momr = (1.d0/lle*lv(2)-1.d0/lle*lv(4))*EI
write(*,100)
write(iow,100)
write(*,101)
write(iow,101)
write(*,103) ix(1),xl(1,1),xl(2,1),moml,querl
write(iow,103) ix(1),xl(1,1),xl(2,1),moml,querl
write(*,103) ix(2),xl(1,2),xl(2,2),momr,querr
Lineare Finite Element Methode, c J. Schröder 110

write(iow,103) ix(2),xl(1,2),xl(2,2),momr,querr
c
elseif (isw .eq. 3) then
c... Anzahl der Gauspunkte und Berechung der Stuetzstellen
gp = 2
sg(1) = -1.d0/dsqrt(3.d0)
sg(2) = 1.d0/dsqrt(3.d0)
wg(1) = 1.d0
wg(2) = 1.d0
c... Gauss loop
do ll = 1,gp
dvol = 0.5d0*lle*wg(ll)
call pzero(bmat,4*4)
call bmat07(bmat,sg(ll),lle)
c... Berechnung von beta beta,x und w,x
beta = 0.d0
betapx = 0.d0
wpx = 0.d0
do i = 1,nst
beta = beta + bmat(3,i)*lv(i)
betapx = betapx + bmat(4,i)*lv(i)
wpx = wpx + bmat(2,i)*lv(i)
end do
c... Berechnung des Residuums
do i = 1,nst
p(i) = p(i) - bmat(4,i)*betapx*EI*dvol
& - bmat(2,i)*GAs*(wpx-beta)*dvol
& + bmat(3,i)*GAs*(wpx-beta)*dvol
end do
c... Berechnung der Steifigkeitsmatrix
do i = 1,nst
do j = 1,nst
s(i,j) = s(i,j) + bmat(4,i)*EI*bmat(4,j)*dvol
& + bmat(2,i)*GAs*bmat(2,j)*dvol
& - bmat(2,i)*GAs*bmat(3,j)*dvol
& - bmat(3,i)*GAs*bmat(2,j)*dvol
& + bmat(3,i)*GAs*bmat(3,j)*dvol
end do
end do
end do !Gauss loop
end if!stre or tang
end if !analy
c
c... Dreifeldfunktional
elseif (flagg .eq. 2) then
c... Berechnung der Steifigkeitsmatrix
fact1 = EI/lle
fact2 = GAs/lle
s(1,1) = 1.d0*fact2
s(1,2) = (lle/2.d0)*fact2
s(1,3) = -s(1,1)
Lineare Finite Element Methode, c J. Schröder 111

s(1,4) = s(1,2)
s(2,2) = fact1 + (lle*lle/4.d0)*fact2
s(2,3) = -s(1,2)
s(2,4) = -fact1 + (lle*lle/4.d0)*fact2
s(3,3) = s(1,1)
s(3,4) = s(2,3)
s(4,4) = s(2,2)
do i = 1,nst
do j = 1,nst
s(j,i) = s(i,j)
end do
end do
c... Berechnung des Residuums
do i = 1,nst
do j = 1,nst
p(i) = p(i) - s(i,j)*lv(j)
end do
end do
c... Ausgabe der Schnittgroessen
if (isw .eq. 4) then
write(*,100)
write(iow,100)
write(*,101)
write(iow,101)
write(*,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(iow,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(*,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
write(iow,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
end if
c
c... Reduzierte Integration
elseif (flagg .eq. 3) then
c
c... Anzahl der Gauspunkte und Berechung der Stuetzstellen
gp = 1
sg(1) = 0.d0
wg(1) = 2.d0
c... Gauss loop
do ll = 1,gp
dvol = 0.5d0*lle*wg(ll)
call pzero(bmat,4*4)
call bmat07(bmat,sg(ll),lle)
c... Berechnung von beta beta,x und w,x
beta = 0.d0
betapx = 0.d0
wpx = 0.d0
do i = 1,nst
beta = beta + bmat(3,i)*lv(i)
betapx = betapx + bmat(4,i)*lv(i)
wpx = wpx + bmat(2,i)*lv(i)
end do
Lineare Finite Element Methode, c J. Schröder 112

c... Berechnung des Residuums


do i = 1,nst
p(i) = p(i) - bmat(4,i)*betapx*EI*dvol
& - bmat(2,i)*GAs*(wpx-beta)*dvol
& + bmat(3,i)*GAs*(wpx-beta)*dvol
end do
c... Berechnung der Steifigkeitsmatrix
do i = 1,nst
do j = 1,nst
s(i,j) = s(i,j) + bmat(4,i)*EI*bmat(4,j)*dvol
& + bmat(2,i)*GAs*bmat(2,j)*dvol
& - bmat(2,i)*GAs*bmat(3,j)*dvol
& - bmat(3,i)*GAs*bmat(2,j)*dvol
& + bmat(3,i)*GAs*bmat(3,j)*dvol
end do
end do
c... Ausgabe der Schnittgroessen
if (isw .eq. 4) then
write(*,100)
write(iow,100)
write(*,101)
write(iow,101)
write(*,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(iow,103) ix(1),xl(1,1),xl(2,1),p(2),p(1)
write(*,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
write(iow,103) ix(2),xl(1,2),xl(2,2),p(4),p(3)
end if
end do !Gauss loop
c
else
write(*,*) ’flagg nicht richtig gesetzt’
stop
end if !flagg
c
end if !isw=1,2,3,4,5,6,7,8
c
return
c
c----------------------------------------------------------------------
c... Formatanweisungen
100 format(15x,’Schnittgroessen’)
101 format(4x,’Knoten’,3x,’x’,5x,’y’,8x,’M’,12x,’Q’)
103 format(5x,i3,2x,f5.2,1x,f5.2,1x,e12.5,1x,e12.5)
c
2000 format(//
& 5x,’Balkenelement nach Timoshenko:’//
& 5x,’Elastizitaetsmodul E = ’,e12.5/
& 5x,’flaechentraegheitsmoment I = ’,e12.5/
& 5x,’Schubmodul G = ’,e12.5/
& 5x,’Querschnittsflaeche A = ’,e12.5/
& 5x,’flagg = ’,i12/
Lineare Finite Element Methode, c J. Schröder 113

& 5x,’(1=Zweifeldfunkt. 2=Dreifeldfunkt. 3=red. Integration)’)


c
3000 format(’ Input: E,I,G,As’/’ >’,$)
end
c
c
subroutine bmat07(bmat,xi,lle)
c--------------------------------------------------------------------72
c Berechnung des B-Operators
c Paramterliste
c bmat(4,4) B-Operator
c
c |N_w | |-0.5*xi+0.5, 0, 0.5*xi+0.5, 0|
c B=|B_w |=| -1/le, 0, 1/le, 0|
c |N_beta| | 0, -0.5*xi+0.5, 0, 0.5*xi+0.5|
c |B_beta| | 0, -1/le, 0, 1/le|
c
c xi Gausspunktkoordinate
c lle Elementlaenge
c----------------------------------------------------------------------
implicit none
real*8 bmat(4,4)
real*8 lle,xi
c
c... Berechnung des B-Operators
bmat(1,1) = -0.5d0*xi+0.5d0
bmat(1,3) = 0.5d0*xi+0.5d0
bmat(2,1) = -1.d0/lle
bmat(2,3) = 1.d0/lle
bmat(3,2) = -0.5d0*xi+0.5d0
bmat(3,4) = 0.5d0*xi+0.5d0
bmat(4,2) = -1.d0/lle
bmat(4,4) = 1.d0/lle
return
end
c
subroutine trans07(a,n,m,cs,sn,k,iswl)
c-----------------------------------------------------------------------
c Transformation einer Matrix
c a(n,m) Matrix
c n,m Zeilen,Spalten
c cs Cosinus
c sn Sinus
c k Schrittweite der Schleife
c iswl Steuerungsvariable
c-----------------------------------------------------------------------
implicit none
c
integer i,j,n,m,k,iswl
real*8 t,cs,sn
real*8 a(n,m)
Lineare Finite Element Methode, c J. Schröder 114

c
c... S * T
if (iswl.eq.1) then
do i=1,m,k
do j=1,n
t = a(j,i)*cs - a(j,i+1)*sn
a(j,i+1) = a(j,i)*sn + a(j,i+1)*cs
a(j,i) = t
end do
end do
c
c... T^T * S * T
elseif (iswl.eq.2) then
do i=1,n,k
do j=1,m
t = a(i,j)*cs - a(i+1,j)*sn
a(i+1,j) = a(i,j)*sn + a(i+1,j)*cs
a(i,j) = t
end do
end do
end if
c
return
end
Lineare Finite Element Methode, c J. Schröder 115

5.5 FEM in der linearen Elastizitätstheorie

In diesem Abschnitt werden wir die Finite Elemente Methode im Rahmen der linearen Elas-
tostatik diskutieren. Zunächst werden dazu die starke Form des Randwertproblems betrachtet
und die zugehörige schwache Form hergeleitet. Anschließend betrachten wir Dreieckselemente
mit linearen und höheren Ansätzen und Tetraederelemente sowie das isoparametrische Konzept.

5.5.1 Die Starke Form des Randwertproblems Im Rahmen der linearen Elastostatik
betrachten wir den elastischen Körper B ∈ IR3 , der durch die Koordinaten x ∈ B parametrisiert
ist. Mit den Spannungen σ und der gegebenen Volumenkraft f¯ erhalten wir die Impulsbilanz
(die statische Gleichgewichtsbedingung)

div σ + f¯ = 0 ∀ x ∈ B . (5.166)

Aus dem Verschiebungsfeld u erhalten wir die linearen Verzerrungen per Definition als den
symmetrischen Anteil des Verschiebungsfeldgradienten,
1
ε := [∇u + ∇T u] . (5.167)
2


u(x)

x f̄ (x)

∂Bu
∂Bσ
Abbildung 67: Körper B ⊂ IR3 mit Verschiebungsrand ∂Bu und Spannungsrand ∂Bσ .

Zur Berechnung der Spannungen gehen wir vom Hookschen Werkstoffgesetz aus. Sie ergeben sich
aus der Ableitung der freien Energiefunktion Ψ = Ψ̂(ε) nach den Verzerrungen

σ = ∂ε Ψ̂(ε) = C : ε , (5.168)

hierbei charakterisiert C den vierstufigen Elastizitätstensor der sich aus der partiellen Ableitung
der Spannungen nach den Verzerrungen ergibt, C := ∂ε σ̂(ε). Zur vollständigen Beschreibung des
Randwertproblems benötigen wir noch die wesentlichen und restlichen Randbedingungen

u = ū auf ∂Bu und t = σ · n = t̄ auf ∂Bt , (5.169)

mit
∂Bu ∪ ∂Bt = ∂B und ∂Bu ∩ ∂Bt = ∅ . (5.170)

5.5.2 Die Schwache Form des Randwertproblems Zur Formulierung der schwachen
Form des Randwertproblems betrachten wir zwei Funktionsklassen, die Klasse der Lösungs- und
der Testfunktionen. Hierbei sind die Verschiebungen u ∈ H 1 Elemente der Klasse der Lösungs-
funktionen,
S = {u|u ∈ H 1 und u = ū auf ∂Bu } . (5.171)
Lineare Finite Element Methode, c J. Schröder 116

Die Funktionen δu ∈ H 1 werden als virtuelle Verschiebungen oder Testfunktionen bezeichnet,


sie sind Elemente der Klasse der Testfunktionen,

V = {δu|δu ∈ H 1 und δu = 0 auf ∂Bu } . (5.172)

Folgen wir der oben erwähnten Vorgehensweise zur Herleitung der schwachen Form, so ist im
Rahmen der Methode der gewichteten Residuen (hier das Galerkin-Verfahren) die Impulsbilanz
(5.166) mit der Testfunktion δu zu multiplizieren und der verbleibende Ausdruck über das Gebiet
B zu integrieren, d.h. Z
Gu := − [div σ + f¯] · δu dv = 0 . (5.173)
B
Zur Umformung des Ausdrucks div σ · δu verwenden wir die Beziehung

σij,j δui = (σij δui ),j − σij δui,j (5.174)

Setzen wir dieses Ergebnis in Gleichung (5.173) ein, so erhalten wir den Ausdruck
Z Z Z
Gu = − div[δu · σ]dv + ∇δu : σdv − δu · f¯dv = 0 . (5.175)
B B B

Die Anwendung des Gaußschen Integralsatzes auf den ersten Term von (5.175) liefert mit σ·n = t
den Ausdruck
Z Z Z
− div[δu · σ]dv = − δu · (σ · n)da = − δu · t da .
B ∂B ∂B

Somit ergibt sich die gesuchte Darstellung mit δε anstelle ∇δu zu


Z Z Z
Gu = ¯
δε : σdv − δu · f dv − δu · t̄ da = 0 . (5.176)
| B {z } |B {z ∂Bt }
Gint Gext

Gleichung (5.176) ist die schwache Formulierung des Gleichgewichts, die wir auch als Prinzip der
virtuellen Verschiebungen oder als Prinzip der virtuellen Arbeit bezeichnen. Es gilt

Gu = Gint − Gext = 0, (5.177)

wobei Gint die virtuelle innere Arbeit und Gext die virtuelle äußere Arbeit bezeichnet.
Das Prinzip der virtuellen Verschiebungen gilt auch bei inelastischen Problemen der Mechanik
als Ausgangspunkt für die Methode der Finiten Elemente, d.h. (5.168) kann durch ein inelas-
tisches Materialgesetz ersetzt werden. Im Fall der Elastizität läßt sich die schwache Form auch
aus einem Variationsprinzip herleiten, dem Prinzip vom Minimum des Gesamtpotentials. Das
Gesamtpotential lautet
Z Z Z
Π̂(u) = ¯
ψ(ε) dv − u · f dv − u · t̄ da → Min. (5.178)
| B {z } | B {z ∂Bt
}
=:Πi =:−Πa

Das Variationsprinzip besagt, daß in einem elastischen Festkörper unter Beanspruchung sich die
Deformation so einstellt, daß die totale potentielle Energie Π = Πi − Πa einen minimalen Wert
annimmt. Die Variation des Potentials liefert
Z Z Z
δΠ = δψ̂ dv − δu · f¯ dv − δu · t̄ da = 0 . (5.179)
B B ∂Bt
Lineare Finite Element Methode, c J. Schröder 117

Mit der Variation der freien Energiefunktion


∂ψ
δψ̂ = : δε = δε : σ (5.180)
∂ε
erhalten wir also den Ausdruck
Gu = δΠ (5.181)

Diese Beziehung gilt nur im Fall elastischen Materialverhaltens.

5.5.3 FE-Diskretisierung im Rahmen der Verschiebungsmethode Wir führen


nun die Diskretisierung des Lösungsgebiets durch, indem wir es durch Finite Elemente approxi-
mieren, d.h.
n[ele

B ≈ Bh = Be . (5.182)
e=1

Be t̄
uh (x)
xh
dI f̄ (x)

∂Buh
∂Bth
Abbildung 68: Diskretisierung von B ⊂ IR3 mit Finiten Elementen B e .

Im Rahmen der Verschiebungsmethode wählen wir im Elementgebiet B e Ansätze für die aktuellen
uh und virtuellen Verschiebungen δuh . Die Interpolation der Verschiebungen lautet
nX
node
h
u (x) = N I (x)dI für x ∈ B e (5.183)
I=1

und für die virtuellen Verschiebungen


nX
node
h
δu (x) = N I (x)δdI für x ∈ B e . (5.184)
I=1

Mit diesen Ansätzen erhalten wir für die Verschiebungs–Verzerrungsbeziehung die Approximation
des Verzerrungstensors und analog die Darstellung der virtuellen Verzerrungen zu
nX
node nX
node
h e e h
ε = BI dI = B d und δε = BI δdI = B e δde , (5.185)
I=1 I=1

mit den Elementverschiebungsvektoren de und δde . Mit der Annahme des Hookeschen Gesetzes
σ = C : ε ergibt sich aus (5.176) die Darstellung
nele 
X Z Z Z 
Ghu = δdeT B eT CB e dvde − N T f¯dv − N T t̄da = 0 . (5.186)
e=1 Be Be ∂Bt
Lineare Finite Element Methode, c J. Schröder 118

Hieraus ergibt sich das zu lösende lineare Gleichungssystem

KD = P , (5.187)

mit der globalen Steifigkeitsmatrix K, dem globalen Verschiebungsvektor D und dem globalen
Lastvektor P .

5.6 Elementformulierung der Elastostatik nach der Verschiebungsmethode

In diesem Abschnitt stellen wir einige Finite Elementformulierungen im Rahmen der Verschie-
bungsmethode vor. Zunächst werden wir ebene Dreieckselemente mit linearen und höheren An-
satzfunktionen, sowie Tetraeder Elemente betrachten. Anschließend diskutieren wir das isopara-
metrische Konzept und leiten das vierknotige Standardverschiebungselement (Q1-Element) her.

5.6.1 Ebene Dreieckselemente mit linearen Ansätzen Die linearen Dreiecksele-


mente gehören mit zu den ersten Entwicklungen im Rahmen der Finiten Elemente. Sie werden
oft auch als „constant stress/strain triangle, CST“ bezeichnet. In der Abbildung 69 ist ein li-
neares dreiknotiges Element dargestellt. Die Knotennummern I = 1, 2, 3 verlaufen gegen den
Uhrzeigersinn und jeder Knotenverschiebungsvektor dI hat die Komponenten (dIx , dIy ).

3 3
λ3 = 1
A1
A2
P

y
2
λ3 = 0
ey 1 A3 1 2

ex x λ2 = 0 ξ1 = 1 λ2 = 1 λ1 = 0

Abbildung 69: Dreieckselement mit linearen Ansatzfunktionen in Flächenkoordinaten λ.

Bei Dreieckselementen werden beliebige Punkte P im Elementgebiet mit den sogenannten Flä-
chenkoordinaten (natürlichen Koordinaten) beschrieben, siehe auch Kapitel ??. Die Definition
der Flächenkoordinaten ist
AI
λI = , (5.188)
A
wobei A die Gesamtfläche des Dreiecks und AI die zugehörige Teilfläche entsprechend Abbildung
69 sind. Aus der Summe der Teilflächen A1 + A2 + A3 = A folgt

λ1 + λ2 + λ3 = 1 . (5.189)

Der Mittelpunkt des Dreiecks liegt bei λ1 = λ2 = λ3 = 1/3. Die Interpolation der Ver-
schiebungen wird also in den natürlichen Koordinaten parametrisiert. Für die Verschiebungs–
Verzerrungsbeziehung benötigen wir jedoch die Ableitungen des Verschiebungsfeldes nach den
Lineare Finite Element Methode, c J. Schröder 119

kartesischen Koordinaten. Die Verknüpfung der Flächenkoordinate (λI ) mit den kartesischen
Koordinaten (x, y) ist durch
   
1 λ1
 x  = A  λ2  bzw. λ = A−1 x (5.190)
y λ3
gegeben, mit der Matrix
   
1 1 1 x2 y 3 − x3 y 2 y 2 − y 3 x3 − x2
1 
A =  x1 x2 x3  ⇒ A−1 = x2 y 1 − x1 y 2 y 3 − y 1 x1 − x3  . (5.191)
2A
y1 y2 y3 x1 y 2 − x2 y 1 y 1 − y 2 x2 − x1
Der doppelte Flächeninhalt des Dreiecks entspricht gerade der Determinate von A, d.h.

detA = 2A = (x2 − x1 )(y3 − y1 ) − (x3 − x1 )(y2 − y1 ) . (5.192)

Wie bereits oben erwähnt werden bei der Berechnung der Elementmatrizen die Ableitungen der
Ansatzfunktionen nach den kartesischen Koordinaten benötigt. Beispielsweise ergibt sich für die
Ableitung eines Skalarfeldes ϑ = ϑ̂(λ) nach den kartesischen Koordinaten mit Anwendung der
Kettenregel 
∂ϑ ∂ϑ ∂λ1 ∂ϑ ∂λ2 ∂ϑ ∂λ3 

= + + 
∂x ∂λ1 ∂x ∂λ2 ∂x ∂λ3 ∂x . (5.193)
∂ϑ ∂ϑ ∂λ1 ∂ϑ ∂λ2 ∂ϑ ∂λ3 


= + +
∂y ∂λ1 ∂y ∂λ2 ∂y ∂λ3 ∂y
Mit der Beziehung λ = A−1 x folgt sofort
 
0 0
∂λ
= A−1  1 0  . (5.194)
∂x
0 1
Für die einzelnen Ableitungen erhalten wir somit die Komponenten

∂λ1 1 ∂λ2 1 ∂λ3 1 

= (y2 − y3 ); = (y3 − y1 ); = (y1 − y2 ) 
∂x 2A ∂x 2A ∂x 2A . (5.195)
∂λ1 1 ∂λ2 1 ∂λ3 1 

= (x3 − x2 ); = (x1 − x3 ); = (x2 − x1 ) 
∂y 2A ∂y 2A ∂y 2A
Betrachten wir nun ein Dreieckselement mit den linearen Ansatzfunktionen in den natürlichen
Koordinaten, d.h.
NI = λI für I = 1, 2, 3 , (5.196)
so lautet die Interpolationsvorschrift des Verschiebungsfeldes
 
h e N1 0 N2 0 N3 0
u = N d mit N = , (5.197)
0 N1 0 N2 0 N3

mit dem Elementverschiebungsvektor de = [d1x , d1y , d2x , d2y , d3x , d3y ]T . Somit ergeben sich
die Verzerrungen ε = [ε11 , ε22 , 2ε12 ]T zu

ε = B e de , (5.198)

mit der B–Matrix


 
y2 − y3 0 y3 − y1 0 y1 − y2 0
1 
Be = 0 x3 − x2 0 x1 − x3 0 x2 − x1  . (5.199)
2A
x3 − x2 y 2 − y 3 x1 − x3 y 3 − y 1 x2 − x1 y 1 − y 2
Lineare Finite Element Methode, c J. Schröder 120

Die Elementsteifigkeitsmatrix erhalten wir wieder in der bekannten Darstellung zu


Z
e
k = B eT CB e dV . (5.200)
Be

Mit der Dicke h = const, dem konstanten Elastizitätstensor C und den linearen Verschiebungs-
ansätzen und somit konstanten B–Matrizen ergibt sich

ke = h Ae B eT C B e . (5.201)

5.6.2 Dreieckselemente mit quadratischem Verschiebungsansatz Bei den qua-


dratischen Verschiebungsansätzen betrachten wir ein dreieckige Scheibenelement mit 12 Knoten-
verschiebungen, mit je 2 Verschiebungen (dx, dy) je Knoten. Das Element hat 3 Eckknoten und
3 Seitenmittenknoten entsprechend Abbildung 70.

5
6

2
y 4
1

x
Abbildung 70: Dreieckselment mit quadratischen Verschiebungsansätzen

 
dIx
dI = , I = 1, ..., 6 (5.202)
dIy
Als Ansatz wählen wir ein drehinvariantes Polynom 2.Grades, gemäß dem Schema

1 
x y . (5.203)

x2 xy y 2

Der Ansatz für uh = [ux , uy ]T lautet in den kartesischen Termen



ux (x, y) = α1 + α2 x + α3 y + α4 x2 + α5 y 2 + α6 xy 
. (5.204)
uy (x, y) = β1 + β2 x + β3 y + β4 x2 + β5 y 2 + β6 xy 

Mit den Ansatzfunktionen NI |I = 1, ...6 formuliert in den Flächenkoordinaten λ1 , λ2 , λ3 schrei-


ben wir 
6
X 
ux (λ1 , λ2 , λ3 ) = NI (λ1 , λ2 , λ3 )dxI 



I=1
6 , (5.205)
X 

uy (λ1 , λ2 , λ3 ) = NI (λ1 , λ2 , λ3 )dyI 


I=1
Lineare Finite Element Methode, c J. Schröder 121

mit den Ansatzfunktionen



N1 = λ1 (2λ1 − 1) N2 = λ2 (2λ2 − 1) N3 = λ3 (2λ3 − 1)
. (5.206)
N4 = 4λ1 λ2 N5 = 4λ2 λ3 N6 = 4λ3 λ1
Führen wir nun den Elementverschiebungsvektor
deT = [d1x , d1y , d2x , d2y , ..., d6y ] (5.207)
ein, so ergibt sich für die Interpolation der Verschiebungen die Matrizendarstellung uh = N · de
mit  
N1 0 N2 0 N3 0 N4 0 N5 0 N6 0
N= . (5.208)
0 N1 0 N2 0 N3 0 N4 0 N5 0 N6
Im Gegensatz zum linearen Dreieckselement sind die Ableitungen der höheren Ansatzfunktionen
nicht mehr konstant. Der Verlauf der Ansatzfunktionen N1 und N6 eines sechsknotigen Dreiecks-
elements sind in Abbildung 71 dargestellt.

η η
3 3

1
6
5 5
1

1 4 2 ξ 1 4 2 ξ
a) b)
Abbildung 71: Ansatzfunktion N1 und N6

Für die Berechnung der Ableitungen der Ansatzfunktionen nach den kartesischen Koordinaten
6
X
ergibt sich für eine Funktion f (λ1 , λ2 , λ3 ) = NI (λ1 , λ2 , λ3 )dI mit λ = (λ1 , λ2 , λ3 )T
I=1

3

∂f X ∂f ∂λi 

= 

∂x ∂λi ∂x  ∂f ∂f −1 ∂f
i=1
3 = ∂λ J = J −T ∂λ (5.209)
∂f X ∂f ∂λi 
 ∂x
= 

∂y ∂λi ∂y 
i=1

Setzen wir für f die Ansatzfunktionen NI |I = 1, ..., 6 ein, so erhalten wir die gesuchten Ab-
leitungen nach den kartesischen Koordinaten. Für die Interpolation der Verzerrungen schreiben
wir wieder ε = Bde . Die B-Matrix enthält die Ableitungen der Ansatzfunktionen nach den
kartesischen Koordinaten. Die Elementsteifigkeitsmatrix für ein Element der Dicke h ergibt sich
aus Z
e
k =h B eT (λ)CB e (λ)dA . (5.210)
Be
Die Integration kann alternativ

(i) basierend auf der geschlossenen Integralformel


Z
h! l! m!
λh1 λl2 λm
3 dA = 2A (5.211)
Be (h + l + m + 2)!
Lineare Finite Element Methode, c J. Schröder 122

(ii) basierend auf der Gaußpunkt-Integration


Z ng
X
eT e
B CB dA = B eT (ξl )CB e (ξl )j wl (5.212)
Be l=1

ausgeführt werden. Für die Herleitung der Formel (5.211) siehe [17]. In (5.212) bezeichnen die
ξl die sogenannten Gaußpunkte, wl die Wichtungen, ng die Anzahl der Gaußpunkte. j ist die
Determinante der Jakobi-Matrix, die die Transformation des infinitesimalen Flächenelementes
beschreibt.
Lineare Finite Element Methode, c J. Schröder 123

subroutine elmt03(d,ul,xl,ix,tl,s,p,ndf,ndm,nst,isw)
c-----------------------------------------------------------------------
c elmt03 : Lineares Verschiebungs-Dreieckselement
c
c Parameterliste
c d(1) = yo E-Modul
c d(2) = nu Querdehnzahl
c ul(ndf,*) Loesungsvektor
c xl(ndm,nel) Knotenkoordinaten
c s(nst,nst) Steifigkeitsmatrix
c p(nst) Last-Vektor, Residuum
c ndf Anzahl der Freiheitsgrade
c ndm Dimensionen der Knoten
c nst Anzahl der Elementfreiheitsgrade
c isw Execution flag
c Plot-Befehle
c stre,1 Plotten von Sigma_xx
c stre,2 Plotten von Sigma_yy
c stre,3 Plotten von Sigma_xy
c-----------------------------------------------------------------------
implicit none
include ’bdata.h’
include ’cdata.h’
include ’debugs.h’
include ’eldata.h’
include ’iofile.h’
include ’prstrs.h’
integer ix(*)
integer ndf,ndm,nst,isw
integer i,j,kk
real*8 d(*),ul(ndf,*),xl(ndm,*),tl(*),s(nst,nst),p(*)
real*8 bmat(3,6),aa(3,3),vl(6),eps(3),sig(3),btc(6,3)
real*8 det,yo,nu
real*8 hr(1000)
common hr
logical errck,pinput
c
if(isw.eq.1) then
c-----------------------------------------------------------------------
c... Einlesen der Materialwerte
1 if(ior.lt.0) write(*,3000)
errck=pinput(d,2)
if(errck) go to 1
if(ior.lt.0) then
write(*,2000) d(1),d(2)
end if
write(iow,2000) d(1),d(2)
c
elseif(isw.eq.2) then
c-----------------------------------------------------------------------
c... Elementcheck auf Fehler
Lineare Finite Element Methode, c J. Schröder 124

if(d(1) .le. 0.d0) then


write(*,*)’ E-Modul .le. 0’
stop
end if
c
elseif(isw.eq.3 .or. isw.eq.4 .or. isw.eq.8) then
c-----------------------------------------------------------------------
c... Berechnung der Steifigkeitsmatrix und des Residuums
c... Material- und Elementparameter
yo = d(1)
nu = d(2)
c... Berechnung der doppelten Flaeche (Determinante)
det = (xl(1,2) - xl(1,1))*(xl(2,3) - xl(2,1))
& -(xl(1,3) - xl(1,1))*(xl(2,2) - xl(2,1))
c... Berechnung der B-Matrix
call pzero(bmat,3*6)
call bmat03(bmat,xl,det)
c... Berechnung der Verzerrungen
c... eps(1) = eps_11 , eps(2) = eps_22 , eps(3) = 2*eps_12
vl(1) = ul(1,1)
vl(2) = ul(2,1)
vl(3) = ul(1,2)
vl(4) = ul(2,2)
vl(5) = ul(1,3)
vl(6) = ul(2,3)
call pzero(eps,3*1)
do i = 1,3
do j = 1,6
eps(i) = eps(i) + bmat(i,j)*vl(j)
end do
end do
c... Berechnung des Stoffgesetzes
call pzero(aa,3*3)
call dmat03(yo,nu,aa)
c... Berechnung der Spannungen
call pzero(sig,3*1)
do i=1,3
do j=1,3
sig(i) = sig(i) + aa(i,j)*eps(j)
end do
end do
if (isw .eq. 4) then
c... Ausgabe der Spannungen Sigma_xx, Sigma_yy, Sigma_xy
write(*,100)
write(*,105) n, sig(1), sig(2), sig(3)
write(iow,100)
write(iow,105) n, sig(1), sig(2), sig(3)
c... Graphische Ausgabe der Spannungen
elseif(isw.eq.8) then
call stcn03(ix,sig,hr(nph),hr(nph+numnp),
& nel,numnp,ndf)
Lineare Finite Element Methode, c J. Schröder 125

elseif(isw.eq.3) then
c... Berechnung des Residuums
do i=1,nst
do j=1,3
p(i) = p(i) - 0.5d0*det*bmat(j,i)*sig(j)
end do
end do
c... Berechne B^T C
call pzero(btc,6*3)
do i = 1,nst
do j = 1,3
do kk = 1,3
btc(i,j) = btc(i,j) + bmat(kk,i)*aa(kk,j)
end do
end do
end do
c... Berechne B^T C B = Steifigkeitsmatrix
do i = 1,nst
do j = 1,nst
do kk = 1,3
s(i,j) = s(i,j) + 0.5d0*det*btc(i,kk)*bmat(kk,j)
end do
end do
end do
c
end if ! isw=3,4,8
end if !isw=1,2,3,4,5,6,7,8
c
c----------------------------------------------------------------------
c... Formatanweisungen
100 format(5x,’Elementnr.’, 3x,’Sigma x’,6x,’Sigma y’,6x,’Sigma xy’)
105 format(7x,i3.1,4x,e12.5,1x,e12.5,1x,e12.5)
2000 format(5x,’Lineares Dreieckselement:’//
& 5x,’E-Modul yo = ’,e12.5/
& 5x,’Querdehnzahl nu = ’,e12.5/)
3000 format(’ Input: yo, nu ’/’ >’,$)
end
c
c
subroutine bmat03(bmat,xl,fakt)
c--------------------------------------------------------------------72
c Berechnung des B-Operators
c Paramterliste
c bmat(3,6) B-Operator
c xl Knotenkoordinaten
c fakt Faktor (hier: Determinante von A)
c----------------------------------------------------------------------
implicit none
real*8 bmat(3,6),xl(2,3)
real*8 fakt
c
Lineare Finite Element Methode, c J. Schröder 126

bmat(1,1) = (xl(2,2) - xl(2,3))/fakt


bmat(1,3) = (xl(2,3) - xl(2,1))/fakt
bmat(1,5) = (xl(2,1) - xl(2,2))/fakt
bmat(2,2) = (xl(1,3) - xl(1,2))/fakt
bmat(2,4) = (xl(1,1) - xl(1,3))/fakt
bmat(2,6) = (xl(1,2) - xl(1,1))/fakt
bmat(3,1) = bmat(2,2)
bmat(3,2) = bmat(1,1)
bmat(3,3) = bmat(2,4)
bmat(3,4) = bmat(1,3)
bmat(3,5) = bmat(2,6)
bmat(3,6) = bmat(1,5)
c
return
end
c
c
subroutine dmat03(yo,nu,aa)
c----------------------------------------------------------------------
c Berechnung des Stoffgesetzes
c Parameterliste
c yo E-Modul
c nu Querdehnzahl
c aa(3,3) Materialgesetz
c----------------------------------------------------------------------
implicit none
real*8 yo,nu,lambda,mue
real*8 aa(3,3)
c
lambda = yo*nu/((1.d0 + nu)*(1.d0 - 2.d0*nu))
mue = yo/(2.d0*(1+nu))
aa(1,1) = lambda + 2.d0*mue
aa(2,2) = aa(1,1)
aa(1,2) = lambda
aa(2,1) = aa(1,2)
aa(3,3) = mue
c
return
end
c
c
subroutine stcn03(ix,sig,dt,st,nel,numnp,ndf)
c---------------------------------------------------------------------
c Graphische Ausgabe der Spannungen
c Resulate werden direkt in den blank common hr geschrieben
c Parameterliste
c ix(nel) Globale Knotennummern
c sig(3) Spannungen
c st(numnp,1) Projizierte Temperaturwerte
c nel Anzahl der Knoten pro Element
c numnp Anzahl der Knoten des Systems
Lineare Finite Element Methode, c J. Schröder 127

c ndf Anzahl der Elementfreiheitsgrade


c---------------------------------------------------------------------
implicit none
integer nel,numnp,nod,gnod,ndf
integer ix(nel)
real*8 dt(numnp),st(numnp,3),sig(3)
c
do nod=1,nel
gnod = ix(nod)
if (gnod.gt.0) then
dt(gnod) = 1.d0
st(gnod,1) = sig(1)
st(gnod,2) = sig(2)
st(gnod,3) = sig(3)
end if
end do
c
return
end
Lineare Finite Element Methode, c J. Schröder 128

5.6.3 Tetraederelemente Das räumliche Gegenstück zum zweidimensionalen Dreieck


stellt das Tetraederelement mit vier Eckknoten dar. Die Eckknoten P1 , P2 , P3 , P4 sind so ange-
ordnet, daß die drei Richtungen (P1 P2 ), (P1 P3 ), (P1 P4 ) ein Rechtssystem bilden. Sind die Koordi-
naten der Eckpunkte Pi (xi , yi , zi ), so läßt sich das allgemeine Tetraeder auf ein Einheitstetraeder
in ξ, η, ζ–System abbilden. Die Transformation lautet

x = x1 + (x2 − x1 )ξ + (x3 − x1 )η + (x4 − x1 )ζ 
y = y1 + (y2 − y1 )ξ + (y3 − y1 )η + (y4 − y1 )ζ (5.213)

z = z1 + (z2 − z1 )ξ + (z3 − z1 )η + (z4 − z1 )ζ

Die Jakobideterminate von (5.213) ist gleich dem sechsfachen des Volumens des Tetraeders. Eine
Formulierung der Anstazfunktionen kann auch hier, analog zum Dreieckselement, in natürlichen
Koordinaten vorgenommen werden. Statt der Flächenkoordinaten (λ1 , λ2 , λ3 ), werden jetzt Vo-
lumenkoordinaten (λ1 , λ2 , λ3 , λ4 ) angesetzt. Die Volumenkoordinaten sind definiert zu
vol(Pi P2 P3 P4 )
λi = (5.214)
vol(P1 P2 P3 P4 )
für alle Punkte Pi ∈ Ωe . Somit lassen sich die Volumenkoordinaten λi als Verhältnis des Vo-
lumens des Teiltetraeders vol(Pi P2 P3 P4 ) zum Gesamtvolumen des Tetraeders vol(P1 P2 P3 P4 )
interpretieren. In diesen Koordianten ergibt sich die Präsentation eines Punktes x ∈ Ωe zu

x = λ1 x1 + λ2 x2 + λ3 x3 + λ4 x4 
y = λ1 y1 + λ2 y2 + λ3 y3 + λ4 y4 (5.215)

z = λ1 z1 + λ2 z2 + λ3 z3 + λ4 z4

Ferner gilt die Bedingung λ1 + λ2 + λ3 + λ4 = 1. In den natürlichen Koordinaten ergeben sich


die Formfunktionen zu
N1 = λ1 ; N2 = λ2 ; N3 = λ3 ; N4 = λ4 . (5.216)
Jede dieser Funktionen ist Null auf einer Ebene und hat den Wert 1 am gegenüberliegenden
Knoten. Die weiter Vorgehensweise ist analog zu der bei den oben diskutierten Dreieckelementen.

ζ
P4
1
η
P3 1

P1
z y

x P2 1
ξ
a) b)
Abbildung 72: Tetraederelement und Einheitstetraeder

Eine nützliche Integrationsformel in diesem Zusammenhang lautet


Z
h! l! m! n!
λh1 λl2 λm n
3 λn dV = 6V . (5.217)
Ω e (3 + h + l + m + n)!
Lineare Finite Element Methode, c J. Schröder 129

5.7 Das isoparametrische Konzept

Das isoparametrische Konzept trägt maßgelich zur Leistungsfähigkeit der Methode der Finiten
Elemente bei. Das Konzept basiert auf der Approximation der primären Variablen (z.B. der
Verschiebungen) und der Geometrie des Elementbereichs mit den gleichen Ansatzfunktionen. Die
Approximation der Geometrie ist mit den Knotenkoordinaten xI |I = 1, ...nele gegeben durch
nele
X
x(ξ) = NI (ξ)xI , (5.218)
I=1
hierbei bezeichnet nele die Anzahl der Knoten pro Element. In gleicher Art und Weise wird auch
das Verschiebungsfeld u ∈ B e approximiert, es lautet
nele
X
u(ξ) = NI (ξ)dI (5.219)
I=1

Elemente die die Bedingungen (5.218) und (5.219) erfüllen werden als isoparametrische Elemente
bezeichnet. Mit dem isoparametrischen Konzept lassen sich komplizierte geometrische Körper
diskretisieren. Für ein Stabelement mit linearen Ansatzfunktionen N1 = 21 (1 − ξ) und N2 =
1 e
2 (1 + ξ) ist in Abbildung 73 der Übergang vom Parameterraum Ω des finiten Elementes in den
e
physikalischen Raum B dargestellt.

Be

x1 x2 Ωe ξ
y
−1 0 1
x̂(ξ)
x
a) b)

Abbildung 73: Transformation vom Parameterraum in den physikalischen Raum

Wesentliche Konvergenzkriterien für finite Elementformulierungen sind,

(i) daß x : Ωe 7→ B e eine Eins–zu–Eins–Abbildung ist, d.h. für jedes Paar ξ1 , ξ2 ∈ Ωe mit
ξ1 6= ξ2 gilt x(ξ1 ) 6= x(ξ2 ). Es dürfen also nicht zwei unterschiedliche Punkte aus Ωe auf
den gleichen Punkt von B e abgebildet werden.
(ii) Die Abbildung x : Ωe 7→ B e muß der Art sein, daß jeder Punkt aus B e ein Gegenstück in
Ωe aufweist.
(iii) Die Determinate der Jakobimatrix j := det(∂x/∂ξ) muß für jedes ξ ∈ Ωe größer Null sein.

Diese Konvergenzkriterien sind für isoparametrische Elemente erfüllt.


Anmerkung: Das isoparametrisches Konzept läßt sich auch als (fiktive) finite Deformation eines
regulären Gebietes im Sinne der Kontinuumsmechanik verstehen, wobei die Deformationsabbil-
dung dem Geometrieansatz entspricht,
∂ x̂ ∂ ∂
x = x̂(ξ) ⇒ J(ξ) = ⇒ (·) = J −T (·) . (5.220)
∂ξ ∂x ∂ξ
Dies ist eine Konsequenz aus dem isoparametrischen Ansatz, wobei Ωe die Referenzkonfiguration
und B e die aktuelle Konfiguration charakterisiert.
Lineare Finite Element Methode, c J. Schröder 130

5.7.1 Ebenes Vierknoten-Element, Q1-Element Wir betrachten ein 4-Knoten-


isoparametrisches Element mit der Geometrieabbildung
4
X
x(ξ) = NI (ξ)xI . (5.221)
I=1

η 3
(−1, 1) η (1, 1)
4 3 x = x̂(ξ) ξ
x
ξ
4 2
Ωe ξ
y
1 2
1 Be
(−1, −1) (1, −1)
x
Abbildung 74: Abbildung x = x̂(ξ) des Parameterraums Ωe (Bildraum) auf den physika-
lischen Raum B e , d.h. x̂(Ωe ) : Ωe → B e bzw. x̂(ξ) : ξ → x für ein ebenes 4 Knotenelement.

Die bilinearen Ansatzfunktionen für die Knoten I = 1, ...4 des Elements ergeben sich aus

1
NI = (1 + ξξI )(1 + ηηI ) , (5.222)
4

mit den Koordinaten (ξI , ηI ), den Knotenwerten im Parameterrraum. Im Detail ergeben sich die
Ansatzfunktionen zu
1 1
N1 = (1 − ξ)(1 − η); N2 = (1 + ξ)(1 − η); · · · (5.223)
4 4
Die Ansatzfunktionen sind im Sinne der Konstruktion im Pascalschen Dreieck unvollständig.
Die Verschiebungen werden in gleicher Weise interpoliert wie die Geometrie. Der zugehörige
Interpolationsansatz für die Verschiebungen ist

P4
u = û(ξ) = I=1 NI (ξ)dI (5.224)

Aus diesem Ansatz bestimmen wir wieder die Verschiebungs–Verzerrungsbedingung, der Verzer-
rungstensor ε ergibt sich aus dem symmetrischen Anteil des Verschiebungsfeldgradienten ∇u,
d.h. ε := 12 (∇u + ∇T u). Für eine Matrizendarstellung setzen wir
   
εxx ux,x
ε =  εyy  =  uy,y  (5.225)
γxy ux,y + uy,x

mit den γxy = 2εxy . Die sogenannten Ingenieurgleitungen entsprechen also den doppelten tenso-
riellen Verzerrungen. Hier legen wir die Annahme des Hookschen Werkstoffgesetzes zugrunde,

σ=C:ε. (5.226)
Lineare Finite Element Methode, c J. Schröder 131

Abbildung 75: Ansatzfunktionen beim Viereckselement mit linearen Ansatzfunktionen

Die Spannungs–Dehnungsbeziehung läßt sich mit der Elastizitätsmatrix C in Matrix-Form wie


folgt angeben  
  1 ν 0 
σxx εxx
 σyy  = E  ν 1 0 
  εyy  . (5.227)
(1 + ν)(1 − 2ν) 1 − 2ν
σxy 0 0 2εxy
2
Die Verzerrungen werden aus dem Verschiebungsansatz durch Ableitung bestimmt
P4
ε = ε̂(ξ) = I=1 BI (ξ)dI (5.228)

mit der den Knoten zugeordneten B-Matix


 
NI,x 0
BI (ξ) =  0 NI,y  . (5.229)
NI,y NI,x
Zur Bestimmung der Verzerrungen benötigen wir wieder die Ableitungen des Verschiebungsfeldes
u nach den physikalischen Koordinaten x. Hierzu bedienen wir uns der Jacobi-Transformation.
Da die Ansatzfunktionen in den Elementparametern ξ, η gegeben sind, muß die Kettenregel
angewandt werden. Es ist
∂NI ∂NI ∂x
= bzw. ∇ξ NI = ∇x NI J . (5.230)
∂ξ ∂x ∂ξ
Dabei ist J die Jacobi-Matrix, die auch als Deformationsgradient interpretiert werden kann.
Damit die Geometrieabbildung eindeutig ist, muß j := det J > 0 gelten, ferner gilt ist j 6= 0
Lineare Finite Element Methode, c J. Schröder 132

so ist die Abbildung eindeutig, ist j > 0 gibt es keine Durchdringung. Die Reformulierung von
(5.230) liefert
 ∂x ∂y  
  
NI,ξ  ∂ξ ∂ξ  NI,x .
∇ ξ NI = J T ∇ x NI bzw. =  ∂x ∂y  NI,y (5.231)
NI,η
∂η ∂η
Die Inversion liefert das gesuchte Ergebnis für die Bestimmung der partiellen Ableitungen des
Verschiebungsfeldes nach den Koordianten x. Es ist
   
NI,x NI,ξ
∇x NI = J −T ∇ξ NI bzw. = J −T . (5.232)
NI,y NI,η

Die partiellen Ableitungen der gegeben bilinearen Ansätzen ergeben mit den Knotenwerten ξI =
(ξI , ηI )T im Parameterraum zu
 
  1
NI,ξ  ξI (1 + ηηI ) 
=  41 . (5.233)
NI,η ηI (1 + ξξI )
4
Die Jacobi-Matrix lautet konkret
∂ x̂ ∂ hP4 i
J= = I=1 N I (ξ)x I
∂ξ ∂ξ  
P4 P4 (5.234)
xI NI,ξ xI NI,η
= I=1 xI ⊗ ∇ξ NI = I=1 yI NI,ξ yI NI,η

Somit sind alle Größen bekannt, die für die Austellung der Elementsteifigkeitsmatrizen erforder-
lich sind. Sie kann mit Hilfe der Gaußschen–Integration berechnet werden

Z
e
k = B T CBdV (5.235)
Be

Bei isoparametrischen Elementen wird ausschließlich eine numerische Integration ausgeführt, die
wesentlich zur Stärke der FE-Formulierung beiträgt.
Im Rahmen des isoparametrischen Konzepts berechnen wir die Steifigkeitsmatrix durch Inte-
grationen über den isoparametrischen Unterraum Ωe . Somit lautet die substituierte Form zur
Berechnung der Elementsteifigkeitsmatrix
Z 1Z 1
e
k = B T (ξ)CB(ξ) det[J(ξ)] dξ dη (5.236)
−1 −1

Mit Anwendung der 4-Punkt Gaußintegration erhalten wir schließlich

4
X
ke ≈ B T (ξl )CB(ξl ) det[J(ξl )] wl . (5.237)
l=1
Lineare Finite Element Methode, c J. Schröder 133

subroutine elmt04(d,ul,xl,ix,tl,s,p,ndf,ndm,nst,isw)
c---------------------------------------------------------------------72
c 4-NODE-QUADRILATERAL ELEMENT
c LINEAR ELASTIC MATERIAL MODEL: HOOKES LAW
c SMALL-PLANE-STRAIN STANDARD DISPLACEMENT FORMULATION
c Parameters:
c d(1-ndoff) ! general element informations
c d(ndoff+1->ndoff+ndele) ! individual element informations
c d(ndoff+ndele+1) ! material parameters
c---------------------------------------------------------------------72
implicit none
include ’bdata.h’ ! o,head(20)
include ’cdata.h’ ! numnp,numel,nummat,nen,neq,ipr
include ’comblk.h’ ! hr(1),mr(1000)
include ’eldata.h’ ! dm,n,ma,mct,iel,nel
! nel - Anzahl der Knoten je Element
include ’iofile.h’ ! ior,iow
include ’pdata6.h’ ! inord(50),ipord(30,50)
include ’prstrs.h’ ! nph,ner,erav
include ’tdata.h’ ! ttim,dt,c1,c2,c3,c4,c5, chi
c
integer l,k,i,j,i1,ii,jj,j1,kk ! Zaehler
integer iii,jjj
integer ix(*) ! globale Knotennummer
integer ndf ! Anzahl der Freiheitsgrade pro Knoten
integer ndm ! Dimensionen des Netzes (1D, 2D, 3D)
integer nst ! Anzahl der Elementfreiheitsgrade
integer isw ! Execution flag (Steuerungsparameter)
real*8 d(*) ! Material- und Elementparamenter -> aus Eingabefile
real*8 ul(ndf,*) ! Verschiebungsfeld, Loesungsvektor
real*8 xl(ndm,*) ! Knotenkoordinaten
real*8 tl(*) ! Temperaturen (wird hier nicht benutzt!)
real*8 p(*) ! Residuum
real*8 s(nst,nst) ! globale Steifigkeitsmatrix
integer lint ! Anzahl der Gausspunkte
real*8 eps(3) ! lineare totale Verzerrungen
real*8 s3d(24) ! Spannungen
real*8 aa3d(6,6) ! Elastizitaetstensor
real*8 detj ! Jakobideterminante
real*8 dvol ! Elementvolumen
real*8 eg(2,4) ! Gausspunktkoordinaten
real*8 wg(4) ! Wichtungsfaktoren
real*8 shp(3,4) ! Ansatzfunktionen und deren Ableitungen
real*8 sig(3) ! Spannungen * Volumen(Element)
real*8 aa(3,3) ! Moduli * Volumen(Element)
real*8 bbd(nst,3) ! B^T*C*dv
real*8 bbar(3,nst) ! B-Matrizen bzgl. der Knoten
real*8 sigp(24,9) ! Projektionen fuer Plotausgabe
real*8 pmat(4,4) ! Koeffizientenmatrix
real*8 y0 ! Elastizitaetsmodul, E-Modul
real*8 nu ! Querkontraktionszahl
Lineare Finite Element Methode, c J. Schröder 134

c
logical errck,pinput
c
c---------------------------------------------------------------------72
if(isw.eq.1) then
c Einlesen der Materialparameter (Vektor d(*))
c---------------------------------------------------------------------72
c
1 if(ior.lt.0) write(*,3000)
errck=pinput(d,2)
if(errck) go to 1
write(*,4000) d(1),d(2)
write(iow,4000) d(1),d(2)
y0 = d(1)
nu = d(2)
c
c.... set plot sequence
if(nen.eq.4) then
inord(iel) = 5
ipord( 1,iel) = 1
ipord( 2,iel) = 2
ipord( 3,iel) = 3
ipord( 4,iel) = 4
ipord( 5,iel) = 1
else
write(*,*) ’wrong nen =’,nen
stop
endif
return
c
c---------------------------------------------------------------------72
elseif(isw.eq.3 .or. isw.eq.4 .or. isw.eq.8) then
c 3: Berechnung der Steifigkeitsmatrix und des Residuums
c 4: Ausgabe der Elementvariablen
c 8: Graphische Ausgabe
c---------------------------------------------------------------------72
c
c.... Einlesen der Materialparameter
y0 = d(1)
nu = d(2)
c
c... Berechnung der Steifigkeitsmatrix und des Residuums
c
c... Gausspunkte
if(nen.eq.4) lint = 4
call gauss04(nen,lint,eg,wg)
c
c.... Anfang der Schleife ueber alle Gasspunkte
do l = 1,lint ! Begin Gauss Loop
c
c.... Ansatzfunktionen und deren Ableitungen
Lineare Finite Element Methode, c J. Schröder 135

call shape04(nen,eg(1,l),xl,shp,detj)
dvol = detj*wg(l)
c
c.... Berechnung der linearen totalen Verzerrungen
c | e_xx |
c eps(3)= | e_yy |
c | 2 * e_xy |
c
call pzero(eps,3*1)
do k = 1,nen
eps(1) = eps(1) + ul(1,k) * shp(1,k)
eps(2) = eps(2) + ul(2,k) * shp(2,k)
eps(3) = eps(3) + ul(2,k) * shp(1,k) + ul(1,k) * shp(2,k)
end do
c
c.... Berechnung der Spannungen und Moduli
call pzero(aa3d,6*6)
call pzero(s3d,24)
call hooke04(y0,nu,eps,s3d,aa3d)
c
c.... Spannungen ins Plotfeld
if (isw.eq.4 .or. isw.eq.8) then
do i = 1,24
sigp(i,l) = s3d(i)
end do
c
c... Ausgabe der Spannungen im Gausspunkt
if(isw.eq.4) then
mct = mct - 2
if(mct.le.0) then
write(iow,2001) o,head
if(ior.lt.0) write(*,2001) o,head
mct = 50
endif
write(iow,2002) n,ma,l,(sigp(i,l),i=1,4)
write(*,2002) n,ma,l,(sigp(i,l),i=1,4)
c
c.... Berechnung der Spannungen an den Knoten
elseif (isw.eq.8) then
call smooak4(shp,nen,l,lint,xl,pmat)
if(l.eq.lint) then
call stcntq4(numnp,nen,lint,xl,ix,sigp,hr(nph),
& hr(nph+numnp),pmat,1,24)
endif
endif
c
elseif (isw.eq.3) then
c.... Multiplikation der Spannungen und Moduli mit Teilvolumen
do i = 1,3
ii = i
if(i.eq.3) ii = 4
Lineare Finite Element Methode, c J. Schröder 136

sig(i) = s3d(ii)*dvol
do j=1,3
jj = j
if(j.eq.3) jj = 4
aa(i,j) = aa3d(ii,jj)*dvol
end do
end do

c
c.... Berechnung B-Matrix B^e
call bmat04(shp, bbar,nen)

c
c.... Berechnung des Residuums p:= - B^T*sigma*dv

do i = 1,nst
do jj = 1,3
p(i) = p(i) - bbar(jj,i)*sig(jj)
end do
end do

c
c.... Berechnung von B^T*C*dv
call pzero(bbd,3*8)
do ii = 1,nst
do jj = 1,3
do kk = 1,3
bbd(ii,jj) = bbd(ii,jj) + bbar(kk,ii)*aa(kk,jj)
end do
end do
end do

c.... Berechnung der Steifigkeitsmatrix k:= B^T*C*B*dv


do ii = 1,nst
do jj = 1,nst
do kk = 1,3
s(ii,jj) = s(ii,jj)+ bbd(ii,kk)*bbar(kk,jj)
end do
end do
end do

end if ! isw=3
end do ! End Gauss Loop

! Schreibe die Steifigkeitsmatrix vom ersten Element auf die Konsole


if (n.eq.1)then
do i=1,nst
write(*,*) (s(i,j),j=1,nst)
Lineare Finite Element Methode, c J. Schröder 137

end do
endif
c
end if ! isw: 1,3,4,8
c
return
c
c.... formats for input-output
c
2001 format(a1,20a4/’ element stresses’/’ elmt matl gpt’,
& ’ 11-stress 22-stress 33-stress 12-stress ’)
c
2002 format(5x,3i5,4e11.4)
c
3000 format(’ Input kappa mu’,$)
c
4000 format(//
& 5x,’2D SMALL-PLANE-STRAIN ELEMENT ’,/
& 5x,’SMALL-STRAIN-HOOKES-LAW ’,/
& 5x,’ELEMENT 04 (4-NODE-QUADRIATERAL) ’,/
& 5x,’[01] [ y0] Elastizitaetsmodul.................’,e12.5/
& 5x,’[02] [ nu] Querkontraktionszahl ............’,e12.5)
c
c----------------------------------------------------------------------
end
c----------------------------------------------------------------------
c
c
c
c----------------------------------------------------------------------
subroutine gauss04(nel,lint,eg,wg)
c----------------------------------------------------------------------
c Berechnung der Gausspunkte und deren
c Wichtungsfaktoren fuer Viereckselemente
c Parameter:
c nel Knotenanzahl des Elements
c wg(4) Wichtungsfaktoren
c lint Anzahl der Gausspunkte
c eg(2,4) Koordinaten der Gausspunkte
c----------------------------------------------------------------------
implicit none
integer lint,i,nel
real*8 eg(2,4),wg(4),lr(4),ls(4)
data lr/-1,1,1,-1/,ls/-1,-1,1,1/
c
c.... 2x2-Punkt-Gauss-Integration
do i = 1,lint
eg(1,i) = 1.d0/dsqrt(3.d0)*lr(i)
eg(2,i) = 1.d0/dsqrt(3.d0)*ls(i)
wg(i) = 1.d0
end do
Lineare Finite Element Methode, c J. Schröder 138

c
return
end
c
c
c----------------------------------------------------------------------
subroutine shape04(nel,eg,xl,shp,detj)
c----------------------------------------------------------------------
c Berechnung der Ansatzfunktionen
c Parameter
c nel Knoten pro Element
c eg Gausspunktkoordinaten
c xl Knotenkoordinate
c shp(3,4) Ansatzfunktionen
c detj Jacobi-Determinante
c----------------------------------------------------------------------
implicit none
integer nel ! Knoten pro Element
integer i,j,k ! Zaehler
real*8 eg(2) ! Gausspunktkoordinaten
real*8 xl(2,4) ! Knotenkoordinaten
real*8 shp(3,4) ! Ansatzfunktionen und deren Ableitungen nach x und y
real*8 sh0(2,4) ! Ableitungen der Ansatzfunktionen nach xi und eta
real*8 xj(2,2) ! Jacobi-Matrix
real*8 detj ! Determinante der Jacobi-Matrix
real*8 xjinv(2,2) ! Inverse der Jacobi-Matrix
c
c... Ansatzfunktionen
call pzero(shp,3*4)
c
c | N^I,x | | N^I,Ksi |
c shp(3,4)= | N^I,y | = J^-T | N^I,Eta |
c | N^I | | N^I |
c
shp(3,1) = 0.25d0*(1.d0 - eg(1))*(1.d0 - eg(2))
shp(3,2) = 0.25d0*(1.d0 + eg(1))*(1.d0 - eg(2))
shp(3,3) = 0.25d0*(1.d0 + eg(1))*(1.d0 + eg(2))
shp(3,4) = 0.25d0*(1.d0 - eg(1))*(1.d0 + eg(2))
c
c... Ansatzfunktionen abgeleitet nach xi und eta
c | N^I,xi | | N^I,eg(1) |
c sh0(2,4)= | N^I,eta | = | N^I,eg(2) |
c Ableitungen nach xi
sh0(1,1) = - 0.25d0 * ( 1.d0 - eg(2) )
sh0(1,2) = + 0.25d0 * ( 1.d0 - eg(2) )
sh0(1,3) = + 0.25d0 * ( 1.d0 + eg(2) )
sh0(1,4) = - 0.25d0 * ( 1.d0 + eg(2) )
c Ableitungen nach eta
sh0(2,1) = - 0.25d0 * ( 1.d0 - eg(1) )
sh0(2,2) = - 0.25d0 * ( 1.d0 + eg(1) )
sh0(2,3) = + 0.25d0 * ( 1.d0 + eg(1) )
Lineare Finite Element Methode, c J. Schröder 139

sh0(2,4) = + 0.25d0 * ( 1.d0 - eg(1) )


c
c.... Jacobi-Matrix
c | x_I*N^I,xi x_I*N^I,eta | | x_I |
c J = summe(I=1-4) | | mit xl = | |
c | y_I*N^I,xi y_I*N^I,eta | | y_I |
do i = 1,2
do j = 1,2
xj(i,j) = 0.d0
do k = 1,nel
xj(i,j) = xj(i,j) + xl(i,k) * sh0(j,k)
end do
end do
end do
c.... Determinante der Jacobi-Matrix
detj = xj(1,1)*xj(2,2) - xj(1,2)*xj(2,1)
c.... Inverse der Jacobi-Matrix
xjinv(1,1) = xj(2,2)/detj
xjinv(2,2) = xj(1,1)/detj
xjinv(2,1) = - xj(2,1)/detj
xjinv(1,2) = - xj(1,2)/detj
c
c... Ansatzfunktionen abgeleitet nach x und y
do i = 1,2
do j = 1,nel
do k = 1,2
shp(i,j) = shp(i,j) + xjinv(k,i)*sh0(k,j)
! shp(1,j) = xjinv(1,1)*sh0(1,j) + xjinv(2,1)*sh0(2,j)
! shp(2,j) = xjinv(1,2)*sh0(1,j) + xjinv(2,2)*sh0(2,j)
end do
end do
end do
c
return
end
c
c
c----------------------------------------------------------------------
subroutine bmat04(shp,b,nen)
c----------------------------------------------------------------------
c Berechnung der B-Matrix
c Parameter
c shp(3,nen) Ansatzfunktionen
c b(3,8) B-Matrix
c----------------------------------------------------------------------
implicit none
integer nen,i,j
real*8 shp(3,4),b(3,8)

c
c.... B-Matrix fuer ebene Verzerrungen
Lineare Finite Element Methode, c J. Schröder 140

c
c | N^I,x 0 |
c B^I = | 0 N^I,y |
c | N^I,y N^I,x |
c
c | N^1,x 0 N^2,x 0 N^3,x 0 N^4,x 0 |
c B^e = | 0 N^1,y 0 N^2,y 0 N^3,y 0 N^4,y |
c | N^1,y N^1,x N^2,y N^2,x N^3,y N^3,x N^4,y N^4,x |
c
do i=1,nen
b(1,2*i-1) = shp(1,i)
b(2,2*i-1) = 0.0d0
b(3,2*i-1) = shp(2,i)
b(1,2*i) = 0.0d0
b(2,2*i) = shp(2,i)
b(3,2*i) = shp(1,i)
end do

c do i=1,3
c write(*,*) (b(i,j),j=1,8)
c end do

return
end
c
c
c----------------------------------------------------------------------
subroutine smooak4(shp,nel,l,lint,xl,p)
c----------------------------------------------------------------------
c Glaettung der Spannungen
c Paramater
c shp(3,nel) Ansatzfunktionen
c nel Knotenanzahl der Elemente
c l Gausspunkt
c lint Anzahl der Gausspunkt
c xl(2,*) Knotenkoordinaten
c p(4,4) Smoothing Matrix
c----------------------------------------------------------------------
implicit none
integer nel,l,i,lint
real*8 shp(3,nel),xl(2,*),p(4,4)
real*8 gx,gy
c
c.... compute P matrix for error interpolation
if (lint.eq.1) then
p(l,1) = 1.d0
return
endif
c
c.... compute global coordinates of gauss points
gx = 0.d0
Lineare Finite Element Methode, c J. Schröder 141

gy = 0.d0
do i=1,nel
gx = gx + shp(3,i)*xl(1,i)
gy = gy + shp(3,i)*xl(2,i)
end do
p(l,1) = gx
p(l,2) = gy
p(l,3) = gx*gy
p(l,4) = 1.d0
c
end
c
c
c----------------------------------------------------------------------
subroutine stcntq4(numnp,nel,lint,xl,ix,sigp,dt,st,pmat,istb,iste)
c-----------------------------------------------------------------------
c Berechnung der Spannungen an den Knoten
c Parameter
c numnp Anzahl der Knoten des Systems
c nel Anzahl der Elementknoten
c lint Anzahl der Gausspunkte
c xl(2,*) Knotenkoordinaten
c ix(*) Knotennummerierung
c sigp(12,*) Projektionen fuer Plotausgabe
c st(numnp,*) Projizierte Daten
c dt(*) Wichtungskoeffizienten
c pmat(4,4) Koeffizientenmatrix
c istb,iste ID fuer Projektionsfeld
c-----------------------------------------------------------------------
implicit none
integer numnp, nel, lint, ix(*), i, j, k, iste, istb
real*8 xl(2,*), sigp(24,*), st(numnp,*), dt(numnp),pmat(4,4)
real*8 xmat(6,4), xpmat(6,4), xpm
c
c.... compute nodal stresses for quads with 4 gauss points
call invert(pmat,4,4)
do i=1, nel
xmat(i,1) = xl(1,i)
xmat(i,2) = xl(2,i)
xmat(i,3) = xl(1,i)*xl(2,i)
xmat(i,4) = 1.d0
end do
c
do i=1, nel
do j=1, lint
xpm = 0.d0
do k=1, lint
xpm = xpm + xmat(i,k)*pmat(k,j)
end do
xpmat(i,j) = xpm
end do
Lineare Finite Element Methode, c J. Schröder 142

end do
do i=1, nel
dt(ix(i)) = dt(ix(i)) + 1.d0
do k=istb, iste
do j=1, lint
st(ix(i),k) = st(ix(i),k) + xpmat(i,j)*sigp(k,j)
end do
end do
end do
end
c
c
c----------------------------------------------------------------------
subroutine hooke04(y0,nu,eps,s3d,aa3d)
c---------------------------------------------------------------------72
c Lineares elastisches Materialmodell: Hookesches Gesetz
c... INPUTS
c y0 Elastizitaetsmodul
c nu Querkontraktionszahl
c---------------------------------------------------------------------72
implicit none
include ’iofile.h’
integer i,j
real*8 y0 ! Elastizitaetsmodul
real*8 nu ! Querkontraktionszahl
real*8 eps(3) ! linearen totalen Verzerrungen
real*8 s3d(24) ! Spannungen (6*1)
real*8 aa3d(6,6) ! Elastizitaetstensor (6*6)
real*8 fact,CC(3,3) ! Elastizitaetstensor (3*3)
real*8 sigma(3) ! Spannungen (3*1)
c---------------------------------------------------------------------72
c
c... Elastizitaetstensor (3*3)
call pzero(CC,3*3)
fact = y0 / ( ( 1.d0 + nu ) * ( 1.d0 - 2.d0 * nu ) )
CC(1,1) = fact * (1.d0 - nu)
CC(1,2) = fact * nu
CC(2,1) = fact * nu
CC(2,2) = fact * (1.d0 - nu)
CC(3,3) = fact * ( 1.d0 - 2.d0 * nu ) / 2.d0
c
c... Spannungen (3*1)
call pzero(sigma,3*1)
do i = 1,3
do j = 1,3
sigma(i) = sigma(i) + CC(i,j) * eps(j)
end do
end do
c
c.... Spannungen ins s3d-Feld (6*1)
c s3d(24) = [sig_11 sig_22 sig_33 sig_12 sig_23 sig_13 ...]
Lineare Finite Element Methode, c J. Schröder 143

s3d(1) = sigma(1)
s3d(2) = sigma(2)
s3d(3) = 0.d0
s3d(4) = sigma(3)
s3d(5) = 0.d0
s3d(6) = 0.d0
c
c.... Elastizitaetstensor ins aa3d-Feld (6*6)
c 11 22 33 12 23 13
c 11 C_1111 C_1122 C_1133 C_1112 C_1123 C_1113
c 22 C_2211 C_2222 C_2233 C_2212 C_2223 C_2213
c 33 C_3311 C_3322 C_3333 C_3312 C_3323 C_3313
c aa3d(6,6) = 12 C_1211 C_1222 C_1233 C_1212 C_1223 C_1213
c 23 C_2311 C_2322 C_2333 C_2312 C_2323 C_2313
c 13 C_1311 C_1322 C_1333 C_1312 C_1323 C_1313
do i = 1,3
do j = 1,3
aa3d(i,j) = CC(1,2)
end do
aa3d(i,i) = CC(1,1)
end do
aa3d(4,4) = CC(3,3)
aa3d(5,5) = CC(3,3)
aa3d(6,6) = CC(3,3)

c
return
end

! c.... Lame-Konstante, Kompressionsmodul, Schubmodul


! lambda = y0 * nu / ( (1.d0 + nu) * (1.d0 - 2.d0 * nu) )
! kappa = y0 / ( 3.d0 * (1.d0 - 2.d0 * nu) )
! mue = y0 / ( 2.d0 * (1.d0 + nu) )
! c
! c... trace(eps)
! tr_eps = eps(1,1) + eps(2,2) + eps(3,3)
! c
! c.... Spannungen
! s3d(1) = kappa * tr_eps + 2.d0 * mue * (eps(1,1) - tr_eps/3.0d0)
! s3d(2) = kappa * tr_eps + 2.d0 * mue * (eps(2,2) - tr_eps/3.0d0)
! s3d(3) = kappa * tr_eps + 2.d0 * mue * (eps(3,3) - tr_eps/3.0d0)
! s3d(4) = mue * eps(1,2)
! s3d(5) = mue * eps(2,3)
! s3d(6) = mue * eps(1,3)
! c
! c.... Stoffgesetz
! do i = 1,3
Lineare Finite Element Methode, c J. Schröder 144

! do j = 1,3
! aa3d(i,j) = lambda
! end do
! aa3d(i,i) = lambda + 2.d0 * mue
! end do
! aa3d(4,4) = mue
! aa3d(5,5) = mue
! aa3d(6,6) = mue
Lineare Finite Element Methode, c J. Schröder 145

5.7.2 Numerische Integration Bei der oben diskutierten isoparametrischen Finite-


Elemente-Formulierung ist eine numerische Integration der Systemmatrizen erforderlich. Zur Be-
stimmung der Steifigkeitsmatrizen und der Lastvektoren ist die Integration über die Stablänge,
Elementfläche bzw. das Elementvolumen erforderlich. Wir benötigen also Integralausdrücke der
Form Z Z Z Z Z Z
F (ξ)dξ , F (ξ, η)dξdη , F (ξ, η, ζ)dξdηdζ . (5.238)

Zur numerischen Berechnung der Integralausdrücke werden die Funktionen an den Stützstellen
ξi , ηi , ζi ausgewertet und mit Wichtungsfunktionen wi multipliziert, es folgt
R P 
RFR (ξ)dξ wi F (ξi ) + Rn
= Pi P 



F (ξ, η)dξdη = i j wi wj F (ξi , ηj ) + Rn 

P P
RRR =
Pi Pj P
w ij F (ξ i , ηj ) + Rn , (5.239)


F (ξ, η, ζ)dξdηdζ = i j k wi wj wk F (ξi , ηj , ζk ) + Rn 

P P P 

= i j k wijk F (ξi , ηj , ζk ) + Rn

mit dem jeweiligen Restglied Rn . Im Folgenden betrachten wir zunächst den eindimensionalen
Fall für ein Element f (ξ) der Matrix F (ξ), d.h. wir untersuchen Integrale der Form
Z b
I := f (ξ)dξ . (5.240)
a

Im isoparametrischen Konzept ist z.B. im eindimensionalen Fall a = −1 und b = 1. Die grundle-


gende Idee zur Approximation eines bestimmten Integrals f (ξ) im Intervall [a, b] ist, ein Interpo-
lationspolynom p(ξ) zu bestimmen, das f (ξ) approximiert, und anschließend p(ξ) zu integrieren.
Von grundlegender Bedeutung für die Konstruktion von Interpolationspolynomen ist der

Weierstraßsche Approximationssatz: 


Ist f (ξ) eine auf dem Intervall [a, b] definierte, 

stetige Funktion, dann gibt es zu jedem ǫ > 0 . (5.241)


ein auf [a, b] definiertes Polynom p(ξ) mit 


|f (ξ) − p(ξ)| < ǫ ∀ ξ ∈ [a, b]
Für die Konstruktion der Interpolationspolynome kommen z.B. die sogenannten Taylorpolynome,
Lagrangepolynome und die Methode der dividierten Differenzen zur Anwendung. Die verschie-
denen Integrationsvorschriften werden als Quadraturformeln bezeichnet. Zunächst werden einige
einfache Quadraturverfahren mit äquidistanter Teilung des betrachteten Intervalls angegeben.
Lagrangesche Interpolationspolynome: Bei der Interpolation einer Funktion f (ξ) wird ent-
sprechend einer geeigneten Vorschrift aus gegebenen Funktionswerten f (ξi ) die Funktion rekon-
struiert. Die Interpolierende ist im Allgemeinen eine Näherung dieser Funktion, die hier durch
Polynome beschrieben wird. Als Interpolationspolynom wählen wir ein eindeutig bestimmtes
Polynom n-ten Grades pn (ξ), mit
pn (ξi ) = f (ξi ) für i = 0, 1, ...n . (5.242)
Ein geeignetes Verfahren zur Bestimmung der Interpolierenden basiert auf den Lagrangeschen
Interpolationspolynomen ln (ξ) := pn (ξ), es ist gegeben durch
n
X Y (ξ − ξi )
ln (ξ) = f (ξk )Ln,k (ξ) mit Ln,k (ξ) = . (5.243)
(ξk − ξi )
k=0 i=0:n\k

Ln,k (ξ) charakterisiert das n-te Lagrangepolynom, es lautet ausgeschrieben


(ξ − ξ0 )(ξ − ξ1 )...(ξ − ξk−1 )(ξ − ξk+1 )...(ξ − ξn )
Ln,k (ξ) = (5.244)
(ξk − ξ0 )(ξk − ξ1 )...(ξk − ξk−1 )(ξk − ξk+1 )...(ξk − ξn )
Lineare Finite Element Methode, c J. Schröder 146

und hat die Eigenschaften


Ln,k (ξi ) = 0 für i 6= k; Ln,k (ξk ) = 1 . (5.245)
Der Fehler Rn der Lagrangeschen Interpolationspolynome für ausreichend stetige Funktionen
f (ξ) im betrachteten Intervall [a, b] lautet
f (n+1) (ξ̃)
f (ξ) − p(ξ) = (ξ − ξ0 )(ξ − ξ1 )...(ξ − ξn ), (5.246)
(n + 1)!
mit ξ̃ ∈ [a, b].
Dividierte Differenzen: Zur Ableitung der Fehlerordnung des Restglieds und zur Herleitung
von Methoden höherer Ordnung betrachten wir die Newtonschen Formeln mit aufsteigenden
dividierten Differenzen. Mit der Methode der dividierten Differenzen werden sukzessiv Polynome
erzeugt, die die Funktionen interpolieren. Als nullte dividierte Differenz der Funktion f an der
Stelle ξi bezeichnen wir den Wert f (ξi ) und schreiben
f [ξi ] = f (ξi ) . (5.247)
Die erste dividierte Differenz von f bezüglich ξi und ξi+1 ist
f [ξi+1 ] − f [ξi ]
f [ξi , ξi+1 ] = . (5.248)
ξi+1 − ξi
Sind die (k − 1)-ten dividierten Differenzen
f [ξi , ξi+1 , ..., ξi+k−1 ] und f [ξi+1 , ξi+2 , ..., ξi+k−1 , ξi+k ] (5.249)
bestimmt, so erhalten wir die k-te dividierte Differenz bezüglich ξi , ξi+1 , ξi+2 , ... , ξi+k aus
f [ξi+1 , ..., ξi+k ] − f [ξi , ..., ξi+k−1 ]
f [ξi , ..., ξi+k ] = . (5.250)
ξi+k − ξk
Mit diesen Beziehungen erhalten wir das Interpolationspolynom

pn (ξ) = f [ξ0 ] + f [ξ0 , ξ1 ](ξ − ξ0 ) 
+f [ξ0 , ξ1 , ξ2 ](ξ − ξ0 )(ξ − ξ1 ) + ... . (5.251)

+f [ξ0 , ..., ξn ](ξ − ξ0 )(ξ − ξ1 )...(ξ − ξn−1 )
Das Newtonsche Interpolationspolynom der dividierten Differenzen lautet in Summenschreibwei-
se
n
X n
X k−1
Y
pn (ξ) = f [ξ0 ] + f [ξ0 , ...ξk ](ξ − ξ0 )...(ξ − ξk−1 ) = f [ξ0 , ...ξk ] (ξ − ξi ) . (5.252)
k=1 k=0 i=0

Für den Fehler gilt wieder (5.246). Die dividierten Differenzen (d. Diff.) ergeben sich bis zur
Ordnung 3 aus dem Schema:
ξ 0. d. Diff. 1. d. Diff. 2. d. Diff. 3. d. Diff.
ξ0 f [ξ0 ]
f [ξ0 , ξ1 ]
ξ1 f [ξ1 ] f [ξ0 , ξ1 , ξ2 ]
f [ξ1 , ξ2 ] f [ξ0 , ξ1 , ξ2 , ξ3 ]
ξ2 f [ξ2 ] f [ξ1 , ξ2 , ξ3 ]
f [ξ2 , ξ3 ] f [ξ1 , ξ2 , ξ3 , ξ4 ]
ξ3 f [ξ3 ] f [ξ2 , ξ3 , ξ4 ]
f [ξ3 , ξ4 ] f [ξ2 , ξ3 , ξ4 , ξ5 ]
ξ4 f [ξ4 ] f [ξ3 , ξ4 , ξ5 ]
f [ξ4 , ξ5 ]
ξ5 f [ξ5 ]
Lineare Finite Element Methode, c J. Schröder 147

Mit f [ξi ] nach (5.247) erhält man die 1., 2. und 3. dividierte Differenz aus (5.250) zu

f [ξi+1 ] − f [ξi ] 
f [ξi , ξi+1 ] = 

ξi+1 − ξi 

f [ξi , ξi+1 ] − f [ξi−1 , ξi ] 
f [ξi−1 , ξi , ξi+1 ] = . (5.253)
ξi+1 − ξi−1 

f [ξi , ξi+1 , ξi+2 ] − f [ξi−1 , ξi , ξi+1 ] 



f [ξi−1 , ξi , ξi+1 , ξi+2 ] =
ξi+2 − ξi−1
Das Interpolationspolynom p(ξ) der Funktion f (ξ) kann mit der Newtonschen Formel der auf-
steigenden dividierten Differenzen (5.252) ausgedrückt werden, dies entspricht gerade dem n-ten
Lagrangepolynom (5.243).
Mittelpunktsregel: Hierbei ist der einzige Interpolationspunkt der Mittelpunkt ξ0 des Inter-
valls, d.h.
ξ0 = (a + b)/2 . (5.254)
Die Mittelpunktsregel, ohne Angabe des Fehlerglieds, lautet

I ≈ (b − a)f (ξ0 ) . (5.255)

f
p1 (ξ) f (ξ)
p0 (ξ)

a ξ0 b ξ
Abbildung 76: Mittelpunktsregel

Zur Ableitung der Mittelpunktsregel nähern wir f (ξ) durch ein konstantes Interpolationspolynom
p0 (ξ0 ) an, es folgt
Z b Z b
I= f (ξ)dξ = p0 (ξ0 )dξ + Rn = f [ξ0 ](b − a) + Rn . (5.256)
a a

Zur Abschätzung des Fehlers werten wir Gleichung (5.246) aus. Im Allgemeinen gilt, je höher der
Grad der Approximation ist, desto höher ist die Ordnung des Fehlerterms. Würden wir (5.246)
für n = 0 auswerten, so erhält man einen Fehler proportional zu f (0+1) = f ′ . Dies ist in diesem
Fall jedoch falsch, da ein lineares Interpolationspolynom bezüglich ξ0 und einem beliebigen ξ1
keinen weiteren Beitrag zur numerischen Integration liefert. Die Auswertung des linearen Glieds
ergibt mit (5.254)
Z b
f [ξ0 , ξ1 ] 2
f [ξ0 , ξ1 ](ξ − ξ0 )dξ = (ξ − 2ξ0 ξ)|ba = 0 . (5.257)
a 2
Wählen wir nun |ξ1 −ξ0 | < ε mit ε → 0, so folgt aus diesem Grenzübergang die Mittelpunktsregel
mit Angabe des Fehlerterms zu

Z b
a+b f ′′ (ξ)
I= f (ξ)dξ = (b − a)f ( )+ (b − a)3 . (5.258)
a 2 24
Lineare Finite Element Methode, c J. Schröder 148

Trapezregel: Bei der Trapezregel wird ein lineares Interpolationspolynom mit den Knoten

ξ0 = a und ξ1 = b (5.259)

gewählt. Die Integration des zugehörigen Interpolationspolynoms p1 (ξ) liefert


Z b Z b
f (a) + f (b)
p1 (ξ)dξ = (f [ξ0 ] + f [ξo , ξ1 ](ξ − ξ0 ))dξ = (b − a) . (5.260)
a a 2

f
p1 (ξ) f (ξ)

a b ξ
Abbildung 77: Trapezregel

Den Fehler bei der Trapezregel erhalten wir aus der Integration des Fehlerterms, mit (5.259)
folgt
Z b
f (a) + f (b) f ′′ (ξ̃)
I= f (x)dx = (b − a) − (b − a)3 . (5.261)
a 2 12

Die hier angegebenen Fehler für die Mittelpunktsregel und die Trapezregel sind jeweils vom Grad
3, d.h. das Restglied ist von der Ordnung O([b − a]3 ).
Simpsonregel: Konstruieren wir ein Interpolationspolynom p2 (ξ) mit quadratischen Ansätzen
und wählen
a+b
ξ0 = a , ξ1 = , ξ2 = b , (5.262)
2
so erhalten wir die Simpsonregeln entsprechend der oben aufgezeigten Vorgehensweise bei der
Mittelpunktsregel zu

Z b
b−a a+b f (4) (ξ̃)
I= f (x)dx = [f (a) + 4f ( ) + f (b)] − (b − a)5 , (5.263)
a 6 2 2880

mit einem Wert ξ̃ in dem betrachteten Intervall [a, b].


Anmerkung: Zur Erzielung einer ausreichenden Genauigkeit werden im Allgemeinen zusam-
mengesetzte Quadraturformeln verwandt. Hierzu ist das Intervall [a, b] in n Teilabschnitte zu
unterteilen und die Integration über die Teilintervalle durchzuführen.
Gaußsche Quadratur: Bei den zuvor diskutierten Quadraturverfahren wurden Integrale von
Funktionen f (ξ) durch die Integration von Interpolationspolynomen p(ξ) approximiert. Bei einem
Interpolationspolynom vom Grad n tritt in dem Fehlerglied die (n + 1)-te Ableitung der anzunä-
hernden Funktion auf. Ist die Funktion f (ξ) vom Grad kleiner oder gleich n, so ist die (n + 1)-te
Ableitung null und das Integrationsergebnis mit den zuvor beschriebenen Verfahren ist exakt.
Idee der Gaußschen Quadratur ist es, die Wichtungsfaktoren wi und die Stützstellen ξi derart zu
Lineare Finite Element Methode, c J. Schröder 149

f
p2 (ξ)
f (ξ)

ξ0 = a ξ1 ξ2 = b ξ
Abbildung 78: Simpsonregel

bestimmen, daß der Approximationsfehler minimal wird. Zur Bestimmung der 2n-Unbekannten
wi |i = 1, ...n und ξi |i = 1, ...n betrachten wir zunächst exakt integrierbare Funktionen mit
Z b n
X
f (ξ) dξ = wi f (ξi ) . (5.264)
a i=1

Fassen wir die Koeffizienten eines Polynoms als Parameter auf, so besitzt ein Polynom vom Grad
2n − 1 ebenfalls 2n Parameter. Dies liefert auch anschaulich die größte Klasse von Polynomen,
die mit dem zu entwickelnden Verfahren exakt integriert werden können.
Motivation der Vorgehensweise für die Gaußsche Integration: Betrachte kubisches Polynom

f (ξ) = a0 + a1 ξ + a2 ξ 2 + a3 ξ 3 (5.265)

Dies soll im Rahmen einer 2-Punkt-Gauß-Integration über das Gebiet ξ ∈ [−1, 1] integriert
werden. Aus (5.264) folgt
Z 1 
a0 + a1 ξ + a2 ξ 2 + a3 ξ 3 dξ = w1 f (ξ1 ) + w2 f (ξ2 ) . (5.266)
−1

Bestimmungsgleichungen für w1 , w2 und ξ1 , ξ2

i.) a0 = 1, Rest ( ai | i = 1, 2, 3) = 0
Z 1
1 dξ = 2 = w1 · 1 + w2 · 1 (5.267)
−1

ii.) a1 = 1, Rest ( ai | i = 0, 2, 3) = 0
Z 1
ξ dξ = 0 = w1 · ξ1 + w2 · ξ2 (5.268)
−1

iii.) a2 = 1, Rest ( ai | i = 0, 1, 3) = 0
Z 1
2
ξ 2 dξ = = w1 · ξ12 + w2 · ξ22 (5.269)
−1 3

iv.) a3 = 1, Rest ( ai | i = 0, 1, 2) = 0
Z 1
ξ 3 dξ = 0 = w1 · ξ13 + w2 · ξ23 (5.270)
−1
Lineare Finite Element Methode, c J. Schröder 150

Lösung der Gleichungen (5.267) bis (5.270) liefert


1 1
w1 = w2 = 1 und ξ1 = − √ ; ξ2 = √ (5.271)
3 3
Für die systematische Herleitung der Gewichte und Stützstellen sind insbesondere orthogonale
Polynome geeignet. Als Interpolationspolynom betrachten wir die in (5.243) eingeführten La-
grangepolynome, es sei
n
X
ln (ξ) = f (ξk )Ln,k (ξ) . (5.272)
k=1

Zur Berechnung der Stützstellen führen wir eine Funktion ϕ(ξ) vom Grad n ein, d.h.
n
Y
ϕ(ξ) = (ξ − ξi ) . (5.273)
i=1

Sie hat die Eigenschaft ϕ(ξi ) = 0, wobei ξi die gesuchten Stützstellen sind. Nun schreiben wir

X
f (ξ) = ln (ξ) + ϕ(ξ) (βj ξ j ) . (5.274)
j=0

Die Integration von (5.274) liefert


Z b n
X Z b ∞
X Z b
f (ξ) dξ = f (ξj ) Ln,j (ξ) dξ + βj ξ j ϕ(ξ) dξ . (5.275)
a j=1 a j=1 a

Mit der Orthogonalitätsbedingung


Z b
ξ j ϕ(ξ) dξ = 0 für j = 0, 1, ..., n − 1 (5.276)
a

lassen sich nun die Stützstellen bestimmen. Da das Interpolationsplynom ln (ξ) an den Stützstel-
len die Werte von f (ξ) annimmt und ϕ(ξ) an diesen Stellen verschwindet, besagt (5.276), daß
Rb
das Integral a f (ξ) dξ durch die Integration eines Polynoms vom Grad (2n − 1) approximiert
wird.
Die Stützstellen ξi | i = 1, ..., n sind die Wurzeln des Lagrangeschen Polynoms vom Grad n. Sind
die Stützstellen bekannt, so können die Gewichte über
Z 1 Z 1 n
Y (ξ − ξi )
wi = Ln,i (ξ) dξ = dξ (5.277)
−1 −1 (ξi − ξj )
j=1
j6=i

bestimmt werden.
Beispielhaft berechnen wir die Stützstellen für eine 2-Punkt-Gauß-Integration im Intervall [−1, 1].
Mit
ϕ(ξ) = (ξ − ξ1 )(ξ − ξ2 ) (5.278)
folgt aus (5.276) 
Z 1 Z 1

ξ 0 ϕ(ξ) dξ = (ξ − ξ1 )(ξ − ξ2 ) dξ =0 


−1 −1
Z 1 Z 1 (5.279)

1
ξ ϕ(ξ) dξ = ξ(ξ − ξ1 )(ξ − ξ2 ) dξ = 0 


−1 −1
Lineare Finite Element Methode, c J. Schröder 151

bzw. durch Ausführung der Integration

1
ξ1 ξ2 = − ; ξ1 + ξ2 = 0 . (5.280)
3

Die Lösung von (5.280) ist


1 1
ξ1 = − √ und ξ2 = √ . (5.281)
3 3
Die Wichtungsfaktoren ergeben sich aus (5.277)

R 1 (ξ − ξ2 ) 
w1 = −1 (ξ − ξ ) dξ = 1, 0


1 2
. (5.282)
R 1 (ξ − ξ1 ) 

w2 = −1 dξ = 1, 0 
(ξ2 − ξ1 )

Anmerkung: Bei der Trapezregel, Simpsonregel oder allgemeiner den Newton-Cotes-Formeln


wird ein Polynom n-ten Grades exakt mit (n + 1)-Stützstellen integriert. Die Gauß-Quadratur,
auch als Gauß-Lagrange-Formeln bezeichnet, integriert ein Polynom (2n − 1)-ten Grades exakt
mit n-Stützstellen.
Ergänzung: Bei mehrdimensionalen Integralen, z.B. einem Flächenintegral erhalten wir bei der
Integration über den isoparametrischen Unterraum die Darstellung
Z 1Z 1 Z 1 X ng1



f (ξ, η) dξdη ≈ f (ξl1 , η)w̃l1 dη  

−1 −1 −1 l =1 

1 

ng1 ng2 

XX
≈ f (ξl1 , ηl2 )w̃l1 w̃l2 (5.283)


l1 =1 l2 =1 

Xng 



= f (ξl )wl 


l=1

mit ξl = [ξl , ηl ]T . Hierbei ist ng = ng1 ng2 die Anzahl der Gaußpunkte und die Stützstellen sind
durch
ξl = ξl1 und ηl = ηl1 (5.284)

bestimmt. Die Wichtungsfunktionen wl im letzten Term von (5.283) ergeben sich aus

wl = w̃l1 w̃l2 . (5.285)

Für eine 2 × 2-Punkt-Gauß-Integration erhalten wir


1/ 3

1/ 3 ξ

Abbildung 79: Gaußsche Quadratur Ωe ∈ [−1, 1] × [−1, 1]


Lineare Finite Element Methode, c J. Schröder 152


ng = 2 · 2 = 4 


        


1 1 1 1 1 1 1 −1
ξ1 = − √ ; ξ2 = √ ; ξ3 = √ ; ξ4 = √ (5.286)
3 1 3 −1 3 1 3 1 





und w = w = w = w = 1 .
1 2 3 4
Lineare Finite Element Methode, c J. Schröder 153

6 Gemischte FE-Methoden für das Darcy Problem

Die wesentliche Idee des gemischten Finite-Elemente-Ansatzes wird durch eine sinnvolle Erset-
zung eines beispielsweise problembehafteten Teils der starken Form dargestellt. Die Substitution
führt zur Einführung einer zusätzlichen unbekannten Feldgröße und einer zusätzlichen Gleichung,
die die Grundlage für den Variationsansatz bilden. In den folgenden Abschnitten werden verschie-
dene gemischte Ansätze im Detail diskutiert. Die Motivation für die Formulierung von gemischten
Finiten Elementen beruht z.B. auf:

• ‘locking’-freies Verhalten bei Inkompressibilität oder für dünne Elemente

• geeignete Biegeeigenschaften

• hohe Approximationsgenauigkeit für degenerierte Netze

• hohe Genauigkeit für grobe Diskretisierungen

• Effizienz

Für nichtlineare Berechnungen erweisen sich Elemente niedrigerer Ordnung als besonders robust.
Darüber hinaus führen diese Elemente zu Tangenten- bzw. Steifigkeits-Matrizen, diese effizienter
gelöst werden können. Für die Konstruktion von Elementen mit Ansatzfunktionen niedriger
Ordnung, die sich zudem durch ein robustes und effizientes Verhalten auszeichnen, gibt es mehrere
Möglichkeiten:

• reduzierte oder selektiv reduzierte Integration

• Stabilisierungsmethoden

• hybride oder gemischte Variationsprinzipien, die auf der in den Belastungen formulierten
komplementären Energie (im Falle der Festkörpermechanik) basieren

• gemischte Variationsprinzipien im Sinne von Hu-Washizu

Ein Überblick über die oben genannten Methoden findet sich in [22].
In diesem Kapitel wird die gemischte FEM-Theorie und ihre Anwendung auf das Darcy’sche
Gesetz der Strömung durch ein poröses Medium diskutiert. Neben dem bekannten Gebiet der
Geomechanik (vgl. [19]) treten Strömungsprobleme auch bei biomechanischen Fragestellungen
auf, wobei die Gewebe als poröse Medien fungieren, vgl. [10] und bei technischen Konstruk-
tionen wie der Filtration von z.B. Wasser in Kläranlagen, vgl. [11]. Im vorliegenden Kapitel
hingegen dient die Diskussion des Darcy’schen Gesetzes zur Veranschaulichung der gemischten
FEM-Theorie, wie sie für die strukturell identische Wärmeleitungsgleichung in [3] gezeigt wird.
Gemischte Variationsformulierungen stellen geeignete Ansätze zur Approximation von Rand-
wertproblemen dar, in denen die Standard-Methoden nicht gut gestellt sind etwa unter Berück-
sichtigung von Zwangsbedingungen z.B. für die Berücksichtigung von inkompressiblem Mate-
rialverhalten. Dazu werden zwei verschiedene gemischte Ansätze diskutiert. Zunächst wird die
Hellinger-Reissner-Variationsmethode untersucht. Sie ist als Zweifeldformulierung konstruiert,
und geht auf die Arbeiten von Hellinger (1914), [9] und Reissner (1950), [15] zurück.
Unter anderem wird die gemischte FEM auch verwendet, um einen Genauigkeitsverlust bei der
Berechnung einer von der primalen Variablen abhängigen Größe, in diesem Fall der Durchflussrate
q w , zu vermeiden. Auf diese Weise wird der algebraische Aufbau von einem Minimierungsproblem
Lineare Finite Element Methode, c J. Schröder 154

zu einem Sattelpunktproblem modifiziert, vergleiche [5]. Allerdings rechtfertigt die gute Leistung
der gemischten FEM-Theorie auch den Einsatz in anderen Anwendungen.
Zurückgehend auf die Veröffentlichungen von [9], [15] und [16] werden die hier verwendeten In-
terpretationen der gemischten FEM als “Hellinger-Reissner’-Formulierungen bezeichnet. Da diese
Formulierungen in den letzten Jahrzehnten im Mittelpunkt mehrerer Untersuchungen standen,
wird hier nur auf einige fundamentale Werke und die darin enthaltenen Referenzen verwiesen:
[7], [8], [1], [2], [20] und [4].
Die Wahl der “Hellinger-Reissner”-Formulierungen als einführende Beispiele für die gemischte
FEM-Theorie liegt in ihrer zugänglichen Struktur und den breit gefächerten Anwendungsmög-
lichkeiten.

6.1 Grundlegender Gleichungssatz


Der Körper wird als B ⊂ IR3 eingeführt, parametrisiert in x, die Oberfläche von B wird durch
∂B bezeichnet. Letztere ist unterteilt in einen Teil ∂Bq , in dem der Fluss über die Oberfläche
vorgegeben wird, und einen restlichen Teil ∂Bp , in dem der Druck vorgegeben wird. Die Zerlegung
des Rands erfüllt die Beziehungen

∂B = ∂Bq ∪ ∂Bp und ∂Bq ∩ ∂Bp = ∅ . (6.1)

Betrachtet man ein poröses Medium, bei dem der gesamte Porenraum von einer flüssigen Phase
eingenommen wird, ist die Sättigung gleich 1. Dann ergibt sich der Massenerhaltungssatz zu

div(ρ q w ) = −f ∗ , (6.2)

mit der Dichte ρ, der Massenquellendichte f ∗ und der Durchflussrate q w1 . Für eine konstante
Dichte ρ erhalten wir aus Gl.(6.2) das Darcy’sche Gesetz, welches für die Näherungslösung von
laminaren, stationären Strömungen geeignet ist, zu
k
div q w + f = 0 mit q w = − ∇p und f = f ∗ /ρ . (6.3)
µ

Hier wird die räumlich konstante Permeabilität µk eingeführt, wobei k die intrinsische Permeabi-
lität und µ die Flüssigkeitsviskosität bezeichnet. Die auftretenden Größen und die physikalischen
Einheiten sind in Tab. 4 aufgeführt.

Parameter Symbol Einheit


Druck p Pa = N/m2
Durchflussrate qw m/s
dynamische Viskosität µ Ns/m2
intrinsische Permeabilität k m2

Tabelle 4: Liste der Variablen, Symbole und Einheiten

Zusammengefasst sind die maßgeblichen Feldgleichungen gegeben mit


k
div q w + f = 0 , qw = g, g = −∇p ∀ x ∈ B . (6.4)
µ
1 w
q wird auch als Darcy-Geschwindigkeit bezeichnet, ist aber nicht die Geschwindigkeit des Partikels,
sondern der volumetrische Fluss des Fluidstroms. Die Geschwindigkeit des Fluids wird mit der Darcy-
1
Geschwindigkeit (Darcy-Fluss) durch die Porosität φ in Beziehung gesetzt, d.h. v = q w .
φ
Lineare Finite Element Methode, c J. Schröder 155

Außerdem müssen wir die Randbedingungen festlegen

qw · n = q0 auf ∂Bq und p = p0 auf ∂Bp , (6.5)

wobei n die nach außen gerichtete Normale auf ∂B ist.

6.2 Klassischer Ansatz: Ein-Feld-Formulierung


In der klassischen Finite-Elemente-Formulierung wird nur das Druckfeld als Basisvariable ver-
wendet. Daher ersetzen wir (6.4)3 und (6.4)2 in (6.4)1 , so dass

k
− div[ ∇p] + f = 0 . (6.6)
µ

Die Multiplikation dieser Gleichung mit der Testfunktion δp und Integration über B, d.h.
Z  
k
G(p, δp) = − div[ ∇p] + f δp dv = 0 , (6.7)
B µ

führt nach Anwendung der Produktregel, des Gauß’schen Satzes und q0w = − µk ∇p auf ∂Bq zur
schwachen Form des Problems
Z Z Z
k
G(p, δp) = ∇δp · ∇p dv + δp f dv + δp q0w · n da . (6.8)
B µ B ∂Bq | {z }
q0

Die konformen Finite-Element-Räume für p sind gegeben mit

p ∈ H 1 (B h ) with B h = ∪num
e=1
ele
Be ≈ B , (6.9)

wobei B h die Diskretisierung von B mit numele finiten Elementen B e bezeichnet. Der Finite-
Elemente-Raum H 1 (B) ist ein Hilbert-Raum, der definiert ist mit

∂p
H 1 (B) = {p ∈ L2 (B)| ∈ L2 (B), j = 1, ..., d} , (6.10)
∂xj

wobei der Lebesgue-Raum L2 (B) definiert ist als


Z
2
L (B) = {p : B → IR | p messbar, |p|2 dx < ∞} . (6.11)
B

Für die Approximation des Drucks p und der Testfunktion δp werden die Matrix der Ansatz-
funktionen N sowie die Freiheitsgrade des Elements dp und die Testfunktionen des Elements δdp
eingeführt, so dass
p ≈ ph = N dp δp ≈ δph = N δdp . (6.12)
Die Gradienten von p und δp sind definiert durch

∇p ≈ ∇ph = B dp , ∇δp ≈ ∇δph = B δdp , (6.13)

mit der Matrix B, die die Ableitungen der Ansatzfunktionen enthält. Das diskrete Gegenstück
der schwachen Form in Gl.(6.8) ist also

X
numele

Gh (p, δp) = Ge (p, δp) , (6.14)


e=1
Lineare Finite Element Methode, c J. Schröder 156

mit dem Beitrag eines typischen finiten Elements

Ge (p, δp) = Ge,int (p, δp) + Ge,ext (δp) . (6.15)

Die expliziten Ausdrücke für Ge,int (p, δp) und Ge,ext (δp) sind
Z
e,int T k
G (p, δp) = δdp BT B dv dp =: δdTp ke dp (6.16)
Be µ

und !
Z Z
Ge,ext(δp) = δdTp NTp q0 da + NTp f dv =: δdTp re . (6.17)
∂Bqe Be

Der letzte Satz algebraischer Gleichungen ergibt sich zu

X
numele

Gh (p, δp) = δdTp (ke dp + re ) , (6.18)


e=1

und führt auf das globale Gleichungssystem

K Dp = R, (6.19)

mit der globalen Steifigkeitsmatrix K und der globalen rechten Seite R

nele nele
K= A ke , R= A (−re ) . (6.20)
e = 1 e = 1

Der globale Vektor der Freiheitsgrade wird mit Dp bezeichnet.


Dirichlet-Potential: Das klassische Einfeld-Potential zu dieser Formulierung ist das Dirichlet-
Potential gegeben mit
Z Z Z
1 k
Π(p) = ∇p · ∇p dv + p f dv + p q0 da , (6.21)
2 B µ B ∂Bq

mit zusätzlichen wesentlichen (Dirichlet) Randbedingungen für p.

6.3 Primales Hellinger-Reissner Funktional


Im Folgenden werden zwei Wege zur Herleitung der primalen Helliner-Reissner-Formulierung
aufgezeigt. Der erste Ansatz modifiziert das Potential in Gl.(6.21) unter Berücksichtigung der
zwei unten dargestellten Hilfsintegralkonstruktionen
Z g Z q
w ⋆
χ= q · dg und χ = g · d qw . (6.22)
0 0

Mit Gl.(6.4)2 können diese umformuliert und ausgewertet werden, so dass


Z g Z qw
k 1 k ⋆ µ w 1 µ
χ= g · dg = g · g und χ = q · d qw = qw · qw . (6.23)
0 µ 2 µ 0 k 2 k

Die grafische Interpretation von Gl.(6.23) ist in Abb.80 gegeben und hilft zu verstehen, dass

|q w ||g| = χ + χ⋆ (6.24)
Lineare Finite Element Methode, c J. Schröder 157

qw

χ⋆

g = −∇p

Abbildung 80: Schematische Visualisierung von χ und χ∗

gilt, da χ und χ∗ zwei Dreiecke sind und ihre Summe identisch ist mit dem Rechteck, das sich
durch die Multiplikation von |q w | mit |g| ergibt. Jetzt wird ∇p durch −g in Gl.(6.21) ersetzt
und Gl.(6.23)1 eingefügt. So ergibt sich
Z Z Z
1 k
Π(p) = ∇p · ∇p dv + p f dv + p q0 da
B 2 µ B ∂Bq
Z Z Z
1 k
⇔ Π(p) = g · g dv + p f dv + p q0 da (6.25)
B 2 µ B ∂Bq
Z Z Z
⇔ Π(p) = χ dv + p f dv + p q0 da .
B B ∂Bq

Schließlich wird eine abgeänderte, allgemeine Version von Gl.( 6.24), (χ = g ·q w − χ⋆ ) verwendet,
um ein von qw und p abhängiges Potential aufzubauen, das als das primale Hellinger-Reissner-
Potential bezeichnet wird
Z Z Z
Π(p) = χ dv + p f dv + p q0 da ,
B B ∂Bq
Z Z Z
w ⋆
⇔ Π(p) = g · q − χ dv + p f dv + p q0 da ,
B B ∂Bq
Z Z Z
w ⋆ (6.26)
⇔ Π(p) = −∇p · q − χ dv + p f dv + p q0 da ,
B B ∂Bq
| {z }
Πext
Z
1 w k w
⇔ Π(p) = − ∇p · qw + q · q dv + Πext .
B 2 µ
Das gezeigte Potential wird durch wesentliche und natürliche Randbedingungen ergänzt. Unter
der Voraussetzung der Stationarität des Potentials in Gl.(6.26) ergeben sich die Variationen
bezüglich p und q w zu
Z Z
w w w µ
HR
δq Π (∇p, q , δq ) = − δq · ∇p dv − δqw · qw dv = 0 ∀ δq w ,
B B k
Z Z Z (6.27)
HR w w
δp Π (∇p, q , δp) = −∇δp · q dv + δp f dv + δp q0 da = 0 ∀ δp.
B B ∂Bq

Der Körper B wird mit numele finiten Elementen B e diskretisiert, d.h. B ≈ ∪num
e=1
ele
B e und die
für die FE-Implementierung gewählten konformen Interpolationsräume sind
p ∈ H 1 (∪ B e ) qw ∈ L2 (∪ B e ) . (6.28)
e e
Lineare Finite Element Methode, c J. Schröder 158

Die folgenden Approximationen sind definiert als


X X
− δq ΠHR ≈ Geq und − δp ΠHR ≈ Gep mit (6.29)
e e

Z Z
µ w
Geq= δq w
· q dv + δqw · ∇p dv , (6.30)
e k Be
ZB Z Z
e w
Gp = ∇δp · q dv − δp f dv − δp q0 da . (6.31)
Be Be ∂Bqe

Mit der Diskretisierung

p ≈ ph = Np dp , δph = Np δdp ,
h h
qw ≈ qw = Nq dq , δqw = Nq δdq , (6.32)
∇p ≈ ∇ph = B dp , δ∇ph = B δdp ,

sind die schwachen Formen für ein typisches Element gegeben mit
 
Z µ
Z 
 
Geq = δdTq  NTq Nq dv dq + NTq B dv dp  (6.33)
 Be k e 
| {z } | B {z }
Keqq beqp
 
Z Z Z 
 
Gep δdTp  T T
Np q0 da
T
(6.34)
=  e B Nq dv dq − e Np f dv − .
| B {z } B ∂Bqe 
e
| {z }
bpq rpe

Die klassische Zwei-Feld-Matrix-Darstellung lautet


 T    
Keqq bepq dq 0
= . (6.35)
bepq 0 dp −rpe

Eine alternative Möglichkeit, Gl.(6.27) zu erhalten, ist im Folgenden dargestellt. Unter Verwen-
dung von Gl.(6.4)1 , sowie einer neu formulierten Kombination von Gl.(6.4)2 und Gl.(6.4)3 ergibt
sich
µ
− q w − ∇p = 0 in B , (6.36)
k
div qw + f = 0 in B . (6.37)

Unter Anwendung der Standard-Galerkin-Methode mit geeigneten Testfunktionen δq w und δp


ergibt sich
Z Z
µ w w
− q · δq dv − ∇p · δq w dv = 0, (6.38)
B k B
Z Z
w
div q δp dv + f δp dv = 0 . (6.39)
B B
Lineare Finite Element Methode, c J. Schröder 159

Um zu einem äquivalenten Ausdruck zu Gl.(6.27) zu gelangen, werden die Produktregel und der
Gauß’sche Satz auf Gl.(6.39) angewendet, dies führt zu
Z Z
w
div q δp dv + f δp dv
BZ B Z
w w
= div (q δp) − q · ∇δp dv + f δp dv
ZB Z B (6.40)
= (−q w · ∇δp + f δp) dv + qw · n δp da
B ∂B
Z Z q
= (−q w · ∇δp + f δp) dv + q0 δp da .
B ∂Bq

Zusammen mit Gl.(6.38) ist die Äquivalenz zu Gleichungssatz (6.27) zu erkennen


Z Z
µ w
− q · δqw dv − ∇p · δqw dv = 0 ∀δq w ∈ L2 (B) , (6.41)
B k BZ
Z Z
w
−q · ∇δp dv + f δp dv + q0 δp da = 0 ∀δp ∈ H 1 (B) . (6.42)
B B ∂Bq

Folglich lassen sich Gl.(6.41) und Gl.(6.42) in die in Gl.(6.35) dargestellt Form übertragen.

6.4 Duales (modifiziertes) Hellinger-Reissner Funktional


Eine weitere Formulierung kann, wieder beginnend mit Gl.(6.36) und Gl.(6.37), durch Multi-
plikation mit geeigneten Testfunktionen δqw und δp hergeleitet werden. Suche nach (qw , p) ∈
H(div, B) × L2 (B), so dass
Z Z
µ w w
− q · δq dv − ∇p · δqw dv = 0 ∀ δq w ∈ H(div, B) (6.43)
B k B
Z Z
div qw δp dv + f δp dv = 0 ∀ δp ∈ L2 (B) , (6.44)
B B
erfüllt ist. Durch Reformulierung von Gl.(6.43) und unter Annahme reiner Druck-Nullränder
kann die so genannte duale Hellinger-Reissner-Formulierung erhalten werden. Hierzu wird die
partielle Integration des zweiten Terms in Gl.(6.43) ausgewertet
Z Z Z
− ∇p · δqw dv = − p δq w · n da + div δqw p dv . (6.45)
B ∂Bp B

Folglich können Gl.(6.43) und Gl.(6.44) zu dem Problem umformuliert werden, das nach (qw , p) ∈
H(div, B) × L2 (B) sucht, mit
Z Z
µ w w
− q · δq dv + div δqw p dv = 0 ∀δq w ∈ H(div, B) (6.46)
B k Z B Z
div q w δp dv + f δp dv = 0 ∀δp ∈ L2 (B) . (6.47)
B B
Das zugehörige duale Hellinger-Reissner-Funktional ist gegeben mit
Z Z Z
HRd w 1 µ w w w
Π (q , p) = − q · q dv + div q p dv + f p dv → stat. . (6.48)
2 Bk B B
Die für die FE-Implementierung gewählten konformen Interpolationsräume sind
p ∈ L2 (∪ B e ) qw ∈ H(div, ∪ B e ) . (6.49)
e e

Der Hilbert-Raum H(div, B) wird eingeführt durch



H(div, B) = qw ∈ (L2 (B))3 ∧ div qw ∈ L2 (B) . (6.50)
Lineare Finite Element Methode, c J. Schröder 160

6.5 Numerisches Beispiel zum Darcy Problem

Die gezeigten Formulierungen sind in der Finite-Elemente-Software AceGen/AceFEM imple-


mentiert, siehe [12] und [13]. Im Folgenden werden die Einfeld-Formulierung und die primale
Hellinger-Reissner-Formulierung für zwei zweidimensionale Randwertprobleme untersucht. Das
numerische Problem ist ein akademisches Beispiel für eine einfache Geometrie mit einem zentrier-
ten Einschluss. Hierzu werden zwei verschiedene Randbedingungs-Fälle betrachtet. Das Rand-
wertproblem ist ein Quadrat der Seitenlänge l = 1 mit einem zentrierten kreisförmigen Einschluss
mit einem Radius von r = 0, 25. Die Materialparameter werden so gewählt, dass die Permea-
bilität k des Einschlusses 10-mal geringer ist als die Permeabilität der Matrix. Die dynamische
Viskosität µ ist auf dem gesamten Gebiet gleich eins. Das Netz mit den beiden Materialien ist
in Abb.81 dargestellt.

Abbildung 81: Netzgeometrie des Beispiels


Lineare Finite Element Methode, c J. Schröder 161

a) In einer ersten Untersuchung wird ein Druckgradient auf dem gesamten Gebiet (von links nach
rechts) angegeben. Der Druck auf der linken Seite wird mit p(x = 0) = 1 angegeben, während
auf der rechten Seite p(x = 1) = 0 bestimmt wird. Die unteren und oberen Grenzen werden mit
Neumann-Nullbedingungen beschrieben, d.h. q0w = 0. Diese Randbedingungen gelten sowohl für
die Ein-Feld-Formulierung als auch für das primale Hellinger-Reissner Zwei-Feld-Problem. Die
folgende Abbildung 82 zeigt die Ergebnisse für die Flussrate und die Druckverteilung auf dem
Gebiet.

Abbildung 82: Lösung des akademischen RWP mit Randbedingungen(a)

(b) Im zweiten Teil des Tests wird eine Flussrate vordefiniert. Zu diesem Zweck werden Neumann-
Randbedingungen an der linken Z und rechten Grenze angegeben, so dass sich ein positiver Fluß
von links nach rechts einstellt q w · n da = ±1. Zusätzlich muss eine Druckrandbedingung
∂Bq
eingestellt werden, um den verbleibenden Null-Eigenwert aus dem Gleichungssystem zu entfer-
nen. Daher wird der Druck an einem Punkt (bzw. Knoten) in der Mitte des Gebiets auf Null
p(x = 0.5, y = 0.5) = 0 gesetzt. Auf diese Weise wird das Druckniveau in der Berechnung entspre-
chend den Strömungsrandbedingungen um diesen Punkt herum eingestellt. Die restlichen Kanten
sind Neumann-Nullränder. Diese Randbedingungen gelten sowohl für die Ein-Feld-Formulierung
als auch für das primale Hellinger-Reissner Zwei-Feld-Problem. Die Ergebnisse zu diesem Problem
sind in Abbildung 83 dargestellt. Deutlich zu erkennen sind in beiden Randwertproblemen die
Sprünge der Flußgröße an der Materialgrenze zwischen Matrixmaterial und Einschluss, während
sich ein kontinuierlicher Druckgradient auf dem gesamten Gebiet einstellt.
Lineare Finite Element Methode, c J. Schröder 162

Abbildung 83: Lösung des akademischen RWP mit Randbedingungen (b)


Lineare Finite Element Methode, c J. Schröder 163

Literatur

[1] D. N. Arnold. Mixed finite element methods for elliptic problems. Computer Methods in
Applied Mechanics and Engineering, 82:291–300, 1990.

[2] D.N. Arnold and R. Winther. Mixed finite elements for elasticity. Numerische Mathematik,
92:401–419, 2002.

[3] F. Auricchio, F. Brezzi, and C. Lovadina. Mixed Finite Element Methods. In E. Stein,
R. de Borst, and T. Highes, editors, Encyclopedia of Mechanics, pages 237–278. John Wiley
& Sons, Ltd, 2004.

[4] K.-J. Bathe. The inf–sup condition and its evaluation for mixed finite element methods.
Computers and Structures, 79(2):243–252, 2001.

[5] D. Boffi, F. Brezzi, and M. Fortin. Mixed Finite Element Methods and Applications. Springer,
Heidelberg, 2013.

[6] D. Braess. Finite Elemente. 1992.

[7] D. Braess. Finite Elemente. Springer-Verlag, Berlin, 5th edition, 2013.

[8] S. Dunham and K. Pister. A finite element application of the Hellinger-Reissner variational
theorem. Air Force Flight Dynamics Laboratory, pages 471–487, 1968.

[9] E. Hellinger. Die allgemeinen Ansätze der Mechanik der Kontinua. In Encyklopädie der
mathematischen Wissenschaften, Mechanik, Teil vier von vier, chapter 30, pages 601–694.
Akademien der Wissenschaft zu Göttingen, Leipzig, München und Wien, 1914.

[10] J. Humphrey and S. O’Rourke. An Introduction to Biomechanics. Springer-Verlag, New


York, 2nd edition, 2015.

[11] M. Kendouci, B. Kharroubi, R. Khelfaoui, A. Bendida, B. Dennai, and A. Maazouzi. Simu-


lation of water filtration in porous zone based on Darcy’s law. Energy Procedia, 2013.

[12] J. Korelc. Automatic generation of finite-element code by simultaneous optimization of


expressions. Theoretical Computer Science, 187(1):231–248, 1997.

[13] J. Korelc. Multi-language and Multi-environment Generation of Nonlinear Finite Element


Codes. Engineering with Computers, 18:312–327, 2002.

[14] L.P. Lebedev and M.J. Cloud. The calculus of variations and functional analysis: With
optimal control and applications in mechanics, volume 12. World Scientific, 2003.

[15] E. Reissner. On a variational theorem in elastictiy. Journal of Mathematical Physics, Vol.


29:90–95, 1950.

[16] E. Reissner. On variational principles in elastictiy. Proceeding of Symposia in Applied


Mathematics, Vol. 8:1–6, 1958.

[17] H.R. Schwarz. FORTRAN-Programme zur Methode der finiten Elemente, volume 3. Sprin-
ger, 1991.

[18] B. van Brunt. The Calculus of Variations. Universitext. Springer New York, 2003.

[19] A. Verruijt. An Introduction to Soil Mechanics. Springer-Verlag, 1st edition, 2017.


Lineare Finite Element Methode, c J. Schröder 164

[20] N. Viebahn, K. Steeger, and J. Schröder. A simple and efficient Hellinger-Reissner type
mixed finite element for nearly incompressible elasticity. Computer Methods in Applied
Mechanics and Engineering, 340:278–295, 2018.

[21] R. Weinstock. Calculus of variations: with applications to physics and engineering. Courier
Corporation, 1974.

[22] P. Wriggers. Nichtlineare Finite-Element-Methoden. Springer-Verlag, 2013.


Lineare Finite Element Methode, c J. Schröder 165

A Lösung linearer Gleichungssysteme


A.1 Matrix–Kalkül Reeller Matrizen, Definitionen
Eine Matrix ist eine Anordnung von (m × n) reellen Zahlen. Sie besitzt m Zeilen und n Spalten
und hat die Ordnung (m × n). Das geordnete Schema der Koeffizienten Aij einer Matrix A ist
z.B.

✛ n ✲
✲j
 
✻ A11 A12
 A21 A22 
 
 .. 
❄ . 
A =m i 


 ∈ Rm × Rn . (A.1)
 Aij 
 .. 
 . 
❄ Amn

Wir bezeichnen i als Zeilenindex (i = 1, ..., m) und j als Spaltenindex (j = 1, ..., n). Die Koeffizi-
enten Aij werden auch als Elemente, Einträge oder Komponenten der Matrix A bezeichnet. Sind
alle Elemente der Matrix A identisch Null, heißt A Nullmatrix der Ordnung (m×n). Eine Matrix
mit gleicher Anzahl von Zeilen und Spalten heißt Quadratmatrix der Ordnung m. Spezielle qua-
dratische Matrizen sind Diagonalmatrizen. Diese Matrizen haben nur auf der Hauptdiagonalen
von Null verschiedene Elemente, es gilt

 
D11 0 ... 0
 0 D22 
 
 .. 
 . 
 
D = diag[Dii ] =  . ..  ∈ Rm × Rm (A.2)
 .. Dii . 
 
 .. 
 . 
0 ... Dmm

mit Dij = 0 für i 6= j. Besondere Diagonalmatrizen sind die sogenannten Einheitsmatrizen der
Ordnung (m × m), sie werden wie folgt dargestellt

 
1
 1 
 
 .. 
 . 
1=


 ∈ Rm × Rm , (A.3)
 δij 
 .. 
 . 
1

mit dem Kronecker–Symbol



1 für i = j
δij := (A.4)
0 sonst.

Im folgenden werden wir auch Vektoren als Matrizen auffassen, und zwar als Matrizen mit nur
Lineare Finite Element Methode, c J. Schröder 166

einer Spalte oder einer Spalte. Als Spaltenmatrix bezeichnen wir eine Matrix der Ordnung (m×1)
 
a1
 a2 
 
a= ..  ∈ Rm . (A.5)
 . 
am

Diese Matrix enthält ein m–Tupel des m–dimensionalen Raumes Rm . Als Zeilenmatrix oder
Vektorwird eine Matrix der Ordnung (1 × n) bezeichnet,
 
a= a1 a2 · · · an ∈ Rn . (A.6)

A.2 Lineare Gleichungssysteme


Bei der Berechnung von Problemen aus dem Bereich der Strukturmechanik mit Hilfe numerischer
Verfahren (z.B. der Methode der Finiten Elemente) entstehen lineare Gleichungssysteme der
Struktur
Ax = b (A.7)

mit der quadratischen nicht singulären Koeffizientenmatrix A ∈ Rn × Rn , det A 6= 0, mit einer


gegebenen rechten Seite b ∈ Rn und dem gesuchten Lösungsvektor x ∈ Rn . Diese können sehr
viele Unbekannte enthalten. Häufig ist die dabei auftretende Koeffizientenmatrix schwach besetzt,
d.h. sie weist von Null verschiedene Elemente nur in der Nähe der Hauptdiagonalen auf. Bei
den Lösungsmethoden für lineare Gleichungssysteme unterscheidet man grundsätzlich zwischen
direkten Lösungsmethoden und iterativen Verfahren. In den folgenden Abschnitten werden wir im
Rahmen der direkten Lösungsmethoden den Gaußschen Algorithmus und das Cholesky-Verfahren
betrachten. Bei den iterativen Verfahren werden wir gängige Gesamt- und Einzelschrittverfahren
aufzeigen.

A.2.1 Gaußsches Eliminationsverfahren Mit dem Gaußschen Algorithmus sollen


Gleichungssysteme der Art (A.7) gelöst werden. Hierbei wird die reguläre Koeffizientenmatrix A
auf die Form
A = LR . (A.8)
gebracht, wobei L eine (linke) untere Dreiecksmatrix ist deren sämtliche Hauptdiagonalelemente
aus der Zahl ′′ 1′′ bestehen. R ist eine (rechte) obere Dreiecksmatrix. Die Elementanordnung in
den Dreiecksmatrizen ist somit
   
1 0 0 0 ··· a11 a12 a13 ···
 l21 1  (1) (1) 
0 0 ···   0 a22 a23 ··· 
L=  l31 l32 1 0 · · · 
 ; R =  (2)  . (A.9)
 0 0 a33 ··· 
··· ···

(k)
Die Einträge lij sind Quotienten der Koeffizientenmatrix und die Einträge aij , k > 0, erge-
ben sich aus Äquivalenztransformationen der Koeffizientenmatrix. Auf das Koeffizientenschema
(A.7) dürfen folgende drei Äquivalenzoperationen angewandt werden: Vertauschung von Zeilen,
Multiplikation einer ganzen Zeile mit einer Zahl ungleich Null und die Addition eines Vielfa-
chen einer Zeile zu einer anderen. Diese Transformationen verändern die im Gleichungssystem
(A.7) enthaltenen Informationen nicht. Basierend auf dieser Zerlegung (A.8) wird das zu lösende
Gleichungssystem in der Form
LRx = b (A.10)
Lineare Finite Element Methode, c J. Schröder 167

geschrieben. Durch Linksmultiplikation von (A.10) mit L−1 erhält man die Darstellung

Rx = L−1 b . (A.11)

Die Idee des Gaußschen Algorithmus ist nun die folgende. Basierend auf der Produktzerlegung
von A definieren wir das System
Lc = b , (A.12)
woraus durch Vorwärtseinsetzen der Vektor c ermittelt wird. Ist dieser bekannt, kann anschlie-
ßend aus
Rx = c (A.13)
durch Rückwärtseinsetzen der Lösungsvektor x ermittelt werden. Der Gaußsche Algorithmus
besteht damit aus den drei Lösungsschritten

1. Faktorisierung A = LR
2. Vorwärtseinsetzen Lc = b ,
3. Rückwärtseinsetzen Rx = c

(1) (2)
wobei wir hier davon ausgegangen sind, daß die Pivotelemente (a11 , a22 , a33 ) von Null verschie-
den sind.
Zur algorithmischen Aufbereitung des Gaußschen Algorithmus schreiben wir zunächst das zu
lösenden Gleichungssystem in Indexschreibweise, aus (A.7) folgt
n
X
aik xk = bi für i = 1, . . . , n . (A.14)
k=1

Im ersten Eliminationsschritt wird nun die Unbekannte x1 aus der zweiten bis n-ten Gleichung
eliminiert, indem von der i-ten Gleichung das (ai1 /a11 )-fache der ersten Gleichung subtrahiert
wird. Nach dieser ersten Reduktion lautet das modifizierte Gleichungssystem
n
X (1) (1)
aik xk = bi (A.15)
k=2

mit
(1) (1)
aik = aik − li1 a1k und bi = bi − li1 b1 . (A.16)
und den Faktoren
ai1
li1 = für i = 2, . . . , n . (A.17)
a11
Damit läßt sich die erste Gleichung in (A.14) in der Form
n
X b1
x1 + lk1 xk = c1 mit c1 = (A.18)
a11
k=2

angeben. Aus (A.18) läßt sich nun x1 bei bekannten Werten {xk }k=2,...,n berechnen. Aus dieser
Darstellung wird deutlich, daß die Faktoren li1 beim Rückwärtseinsetzen wieder benutzt werden
können, weshalb sie an der Stelle der entsprechenden ai1 -Werte abgespeichert werden. Analog
dazu erfolgt eine Speicherung des Wertes c1 an der Stelle b1 . Mit dem reduzierten Gleichungs-
system verfährt man nun analog, wobei die erste Gleichung des modifizierten Gleichungssystems
unverändert bleibt. Nach (n − 1) Eliminationsschritten lautet das reduzierte Gleichungssystem

a(n−1)
nn xn = b(n−1)
n , (A.19)
Lineare Finite Element Methode, c J. Schröder 168

woraus xn bestimmbar ist. Zur Verdeutlichung der Vorgehensweise betrachten wir ein Zahlen-
beispiel mit A ∈ R4 × R4 , x ∈ R4 und b ∈ R4 . Das Gleichungssystem lautet in analytischer
Schreibweise
    
a11 a12 a13 a14 x1 b1
 a21 a22 a23 a24   x2   
   =  b2  ,
 a31 a32 a33 a34   x3   b3 
a41 a42 a43 a44 x4 b4
und ist wie folgt besetzt
    
9.000 3.000 2.000 0.000 x1 21.000
 3.000 12.000 1.000 4.000   x2   46.000 
     .
 2.000 1.000 14.000 3.000   x3  =  58.000 
0.000 4.000 3.000 10.000 x4 57.000
Die Durchführung des ersten Eliminationsschrittes liefert mit den Koeffizienten li1 , den modifi-
(1) (1)
zierten Elementen aik des reduzierten Systems und der rechten Seite bi ,
(1) (1)
li1 = ai1 /a11 , aik = aik − li1 a1k und bi = bi − li1 b1

die analytische Darstellung


    
a11 a12 a13 a14 x1 b1
 l (1) (1) (1)   (1) 
 21 a22 a23 a24   x2 
 =  b2 
    ,
 l31 a(1)
32
(1) (1)
a33 a34  x3   b(1)
3 
(1) (1) (1) x4 (1)
l41 a42 a43 a44 b4
bzw. die Zahlenwerte
    
9.000 3.000 2.000 0.000 x1 21.000
 0.333 11.000 0.333 4.000   x2   39.000 
     .
 0.222 0.333 13.556 3.000   x3  =  53.000 
0.000 4.000 3.000 10.000 x4 57.000
Im zweiten Eliminationsschritt betrachten wir nur noch das reduzierte Gleichungssystem
n
X (1) (1)
aik xk = bi .
k=2

Hieraus ergibt sich mit den Faktoren


(1) (1) (2) (1) (1) (2) (1) (1)
li2 = ai2 /a22 , aik = aik − li2 a2k und bi = bi − li2 b2

das zweite reduzierte Gleichungssystem


    
a11 a12 a13 a14 x1 b1
 l (1) (1) (1)   (1) 
 21 a22 a23 a24   x2 
  b2 
  =  (2)  ,
 l31 l32 a(2)33
(2)
a34  x3   b3 
(2) (2) x4 (2)
l41 l42 a43 a44 b4
mit den numerischen Einträgen
    
9.000 3.000 2.000 0.000 x1 21.000
 0.333 11.000 0.333 4.000   x2   39.000 
     .
 0.222 0.030 13.545 2.879   x3  =  52.152 
0.000 0.364 2.879 8.545 x4 42.818
Lineare Finite Element Methode, c J. Schröder 169

Der dritte Eliminationsschritt liefert schließlich die Darstellung


   
a11 a12 a13 a14  x1  b1
 l (1) (1) (1)   (1) 
 21 a22 a23 a24    x2   b2 
   x3  =  
 l31 l32 a(2) 33 a
(2)
34   (2)
b3 
(3) x (3)
l41 l42 l43 a44 4 b4

mit
    
9.000 3.000 2.000 0.000 x1 21.000
 0.333 11.000 0.333 4.000   x2   
   =  39.000  .
 0.222 0.030 13.545 2.879   x3   52.152 
0.000 0.364 0.219 7.934 x4 31.734

Hiermit ist die LR-Zerlegung der Koeffizientenmatrix abgeschlossen. Die Lösung des Gleichungs-
systems ergibt sich nun durch Rückwärtseinsetzen, woraus wir in der angegebenen Reihenfolge
die Lösungen
x4 = 4, x3 = 3, x2 = 2 und x1 = 1 .
erhalten.

subroutine gauss(a,b,n,dim)
c
c Gauss-Verfahren fuer ein nichtsymmetrisches lineares
c Gleichungssystem der Dimension n
c
c Uebergabeparameter: a(dim,dim) Koeffizientenmatrix
c b(dim) rechte Seite
c n Anzahl der Gleichungen
c dim Dimensionierung von a(dim,dim)
c
c Rueckgabewerte : b Loesungsvektor
c
implicit none
integer n, dim, i, j, k
double precision a(dim,*), b(*), s

do 40 i=1, n
do 30 j=1, n
c.... Elimination
if (j.ge.i) then
c.... Berechnung der reduzierten Koeffizientenmatrix a(i,j)
do 10 k=1, i-1
10 a(i,j) = a(i,j) - a(i,k)*a(k,j)
endif
if (i.gt.j) then
c.... Berechnung der Faktoren l, abspeichern in der Matrix a
c unterhalb der Hauptdiagonalen
s = 0.d0
do 20 k=1, j-1
20 s = s + a(i,k)*a(k,j)
a(i,j) = (a(i,j)-s)/a(j,j)
Lineare Finite Element Methode, c J. Schröder 170

endif
30 continue
c.... Berechnung der modifizierten rechten Seite
do 40 k=1, i-1
40 b(i) = b(i) - a(i,k)*b(k)
c.... Rueckwaertseinsetzen
do 60 i=n, 1, -1
s = 0.d0
do 50 k=i+1, n
50 s = s + a(i,k)*b(k)
60 b(i) = (b(i)-s)/a(i,i)
end

Aufgrund ihrer Definition läßt sich die rechte Dreiecksmatrix R in ein Produkt einer Diagonal-
matrix D und einer rechten Dreieckmatrix U zerlegen, die auf der Hauptdiagonalen den Wert
′′ 1′′ hat, es gilt die Zerlegung

R = DU (A.20)
mit den Matrizen
 
a11  
 (1)  1 u12 u13 ···
 a22   0 1 u23
 (2)   ··· 

D= 
a33 
 ; U = ..  (A.21)
 ..   0 0 . ··· 
 . 
(n−1)
1
ann

Hiermit läßt sich der Gaußsche Algorithmus in den folgenden vier Rechenschritten zusammen-
fassen
1. Faktorisierung A = LDU
2. Vorwärtseinsetzen Ly = b
.
3. Kehrwerte bilden Dc = y
4. Rückwärtseinsetzen Ux = c

Für symmetrische Matrizen AT = A gilt U = LT .

A.2.2 Gaußsches Eliminationsverfahren mit Pivotsuche Mit dem Gaußschen Al-


gorithmus sollen Gleichungssysteme der Art

subroutine gausspivot(a,b,x,nmax,n)
c---------------------------------------------------------------------72
c Gauss- Gleichungsloeser mit Pivotstrategie
c Loesung des linearen Gleichungssystems A * x = b nach x
c LR-Zerlegung mit Zeilentausch P*A=L*R
c
c Programmiert von J. Loeblein, 04.10.2000
c
c Literatur: Schwarz, H. R., Numerische Mathematik, Teubner
c
c Parameter Liste:
c... uebergabeliste
c a(nmax,nmax) : Koeffizientenmatrix
Lineare Finite Element Methode, c J. Schröder 171

c b(nmax) : Rechte Seite


c x(nmax) : Loesungsvektor
c nmax : Maximale Feldgroesse
c n : Anzahl der Gitterpunkte
c... Lokale Felder
c ip(nmax) : Vektor fuer Zeilenvertauschungen
c c(nmax) : Modifizierte rechte Seite
c---------------------------------------------------------------------72
implicit none
integer nmax,i,j,k,n
integer ip(100)
real*8 max,sum,dabs,q,h
real*8 a(nmax,nmax),b(nmax), c(nmax),x(nmax)
c
if(nmax .gt. 100) then
write(*,*)’ Falsche Dimensionierung von ip(100)’
stop
endif
c
c... Pivotsuche
do k = 1,n-1
max = 0.d0
ip(k) = 0
do i = k,n
sum = 0.d0
do j = k,n
sum = sum + dabs(a(i,j))
end do
q = dabs(a(i,k))/sum
if (q .gt. max) then
max = q
ip(k)= i
endif
end do
if (dabs(max) .lt. 1.d-16) stop
c
c... Zeilen vertauschen
if (ip(k) .ne. k) then
do j = 1,n
h = a(k,j)
a(k,j) = a(ip(k),j)
a(ip(k),j) = h
end do
end if
c
c... Bildung der rechten oberen Dreiecksmatrix
do i = k+1,n
a(i,k)= a(i,k)/a(k,k)
do j = k+1,n
a(i,j) = a(i,j) - a(i,k)* a(k,j)
end do
Lineare Finite Element Methode, c J. Schröder 172

end do
end do
c
c... Aufbau der rechten Seite, Vorwaertseinsetzen, Komponenten von
c... b vertauschen
do k = 1,n-1
if (ip(k) .ne. k) then
h = b(k)
b(k) = b(ip(k))
b(ip(k)) = h
endif
end do
do i = 1,n
c(i) = b(i)
do j = 1,i-1
c(i) = c(i) - a(i,j)*c(j)
end do
end do
c
c... Rueckwaertseinsetzen
do i = n,1,-1
sum = c(i)
do k = i+1,n
sum = sum - a(i,k)*x(k)
end do
x(i) = sum/a(i,i)
end do
c
return
end

A.2.3 Cholesky–Verfahren Das Verfahren von Cholesky kommt für positiv–definite,


symmetrische Koeffizientenmatrizen A zur Anwendung. Es läßt sich aus dem Gaußschen Al-
gorithmus ableiten. Die Zerlegung lautet

A = Lc LTc , (A.22)

wobei Lc eine untere Dreiecksmatrix ist. Damit lauten die erforderlichen Schritte des Cholesky–
Algorithmus mit dem Hilfsvektor c = LT x,

1. Faktorisierung A = Lc LTc
2. Vorwärtseinsetzen Lc c = b .
3. Rückwärtseinsetzen LTc x = c

Der Vergleich der unteren Dreiecksmatrix Lc des Cholesky–Verfahrens mit der Matrix L des
Gauß–Verfahrens liefert
1
Lc = LD 2 . (A.23)
Die Diagonalelemente von Lc sind also gleich den Quadratwurzeln der Diagonalelemente der
Diagonalmatrix D. Diese lassen sich natürlich nur berechnen, wenn diese Elemente positiv sind,
d.h. die Matrix D muß positiv definit sein.
Lineare Finite Element Methode, c J. Schröder 173

Beispiel: Gegeben sei die symmetrische, positiv definite Matrix


 
9 −5 −3
A =  −5 3 1 
−3 1 6

Dann ist die Cholesky-Zerlegung dieser Matrix gleich


 
3 0

0
Lc =  − 35 2  .
√3 √0
−1 − 2 3
Lineare Finite Element Methode, c J. Schröder 174

B Behandlung von Anfangswertproblemen

B.1 Vorbetrachtungen

Bevor wir verschiedene Näherungsverfahren zur numerischen Berechnung von Anfangswertpro-


blemen betrachten, scheint es sinnvoll, einige Grundlagen der Theorie von Anfangswertproblemen
aufzuzeigen. Insbesondere interessiert uns die Frage, ob kleine Änderungen des Problems, z.B.
der Anfangsbedingungen, kleine Änderungen der Anwort zur Folge haben. Dies ist im Hinblick
auf immer vorhandene Rechenungenauigkeiten von Bedeutung.
Definition: Eine Funktion f (x, z) erfüllt die Lipschitz-Bedingung in der Variablen y auf einem
Gebiet D ⊂ IR, falls eine Konstante L mit der Eigenschaft
|f (y1 , t) − f (y2 , t)| ≤ L|y1 − y2 | ∀ (y1 , t), (y2 , t) ∈ D (B.1)
existiert. L ist die sogenannte Lipschitz-Konstante von f .
Definition: Ein Gebiet D ⊂ IR2 ist konvex, wenn für jedes (y1 , t), (y2 , t) ∈ D auch
[(1 − λ)t1 + λt2 , (1 − λ)y1 + λ2 y2 ] ∈ D (B.2)
ist, mit λ ∈ [0, 1].
Theorem: Sei f (x, z) definiert auf dem konvexen Gebiet D ⊂ IR2 . Existiert eine Lipschitz-
Konstante L > 0 mit
∂f
(y, t) ≤ L ∀ (y, t) ∈ D , (B.3)
∂y
dann erfüllt f die Lipschitz-Bedingung auf D in der Variablen y mit der Konstanten L.
Theorem: Sei D = (y, t)| − ∞ < y < ∞, ta ≤ t ≤ te und f (y, t) kontinuierlich auf D. Erfüllt f
die Lipschitz-Bedingung auf D in der Variablen y, dann hat das Anfangswertproblem
dy
= ẏ(t) = f (y, t) , ta ≤ t ≤ te , y(ta ) = y0 (B.4)
dt
eine eindeutige Lösung y(t) für ta ≤ t ≤ te .
Definition: Ein Anfangswertproblem
dy
= f (y, t) , ta ≤ t ≤ te , y(ta ) = y0 (B.5)
dt
ist „gut gestellt“ (well posed), wenn

1. Eine eindeutige Lösung y(t) existiert.


2. Für jedes ǫ > 0 und eine Konstante k(ǫ) > 0 existiert eine eindeutige Lösung z(t). Für das
gestörte Problem
dz
= f (z, t) + δ(t) , ta ≤ t ≤ te , z(ta ) = α + ǫ0 (B.6)
dt
existiert mit |δ(t)| < ǫ und |ǫ0 | < ǫ und
|z(t) − y(t)| < k(ǫ)ǫ ∀ ta ≤ t ≤ te . (B.7)

Jedes numerische Verfahren ist allein durch Rundungsfehler mit der Problematik gestörter Pro-
bleme befasst.
Theorem: Sei D = (y, t)| − ∞ < y < ∞, ta ≤ t ≤ te und f kontinuierlich. Erfüllt f die Lipschitz-
Bedingung in y auf D, dann ist das Anfangswertproblem
dy
= f (y, t) , ta ≤ t ≤ te , y(ta ) = y0 (B.8)
dt
gut gestellt.
Lineare Finite Element Methode, c J. Schröder 175

B.2 Runge-Kutta-Verfahren

Wir gehen davon aus, dass die Lösung eines Anfangswertproblems an der Stelle x bekannt ist.
Die Lösung an der Stelle x + △x ist
Z 1
y(x + △x) = y(x) + △x y ′ (x + λ△x)dλ . (B.9)
0

Das Integral in (B.9) berechnen wir numerisch durch Auswertung mittels eines numerischen
Quadraturverfahrens, d.h.
Z 1 m
X
gλdλ ≈ wi g(ξi ). (B.10)
0 i=1

Hierbei sind die wi sogenannte Wichtungsfaktoren und ξi Stützstellen. Es folgt


m
X
y(x + △x) = y(x) + △x wi (x + ξi △x, y(x + ξi △x)), (B.11)
i=1

wobei die y(x+ξi △x) für ξi 6= 0 jedoch unbekannt sind. Zur Berechnung dieser Werte betrachten
wir Z ξi
y(x + ξi △x) = y(x) + y ′ (x + λ△x)dλ für i = 1, . . . m. (B.12)
0

Aus Effizienzgründen fordern wir, dass die Stützstellen für eine numerische Quadratur von dem
Intergral in (B.12) die gleichen sind wie in (B.11). Hieraus folgt
Z ξi m
X
g(λ)dλ ≈ βij g(ξj ) für i = 1, . . . m, (B.13)
0 i=1

wobei die vorgegebenen Knoten ξi nicht notwendigerweise alle im Integrationsbereich [0, ξi ] liegen
müssen. Allerdings gilt
Xm
ξi = βij für i = 1, . . . m. (B.14)
i=1

Bezeichnen wir mit ki die Näherungen für y ′ (x + ξi △x) , so ist



P 
ỹ(x + △x) = y(x) + △x m w k
i=1 i i
P (B.15)
ki = (x + ξi △x, y(x) + △x m j=1 βij kj ) , i = 1...m 
.

Hieraus erhalten wir die Klasse der m-stufigen Runge-Kutta-Verfahren, es ist

i) m = 1 das Euler-Chauchy-Verfahren für


ξ1 = 0 , β11 = 0 , w1 = 1

ii) m = 2 das verbesserte Polygonzugverfahren für


1
ξ1 = 0 , β11 = β12 = 0 , ξ2 = 1 , β21 = 1 , β22 = 0 , w1 = w2 = 2

iii) m = 2 das verbesserte Polygonzugverfahren für


ξ1 = 0 , β11 = β12 = 0 , ξ2 = 12 , β21 = 12 , β22 = 0 , w1 = 0 , w2 = 1

Anmerkung: Für ξ1 = 0 und βij = 0 für j ≥ i ist (B.15) so geartet, dass k2 explizit aus
k1 = (x, y) berechnet werden kann, k3 aus k2 , usw. In diesem Fall liegen die sogenannten
Lineare Finite Element Methode, c J. Schröder 176

expliziten Runge-Kutta-Verfahren vor. In der Literatur findet man oft die Koeffizientenschemata

ξ1 β11 β12 β13 · · · β1m


.. ..
ξ2 . .
.. ..
ξ3 . . (B.16)
.. .. ..
. . .
ξm βm1 ··· ··· · · · βmm
w1 w2 w3 · · · wm

Das klassische Runge-Kutta-Verfahren 4.Ordnung ist charakterisiert durch

0 0 0 0 0
1 1
2 2 0 0 0
1 1
2 0 2 0 0 (B.17)
4 0 0 1 0
1 1 1 1
6 3 3 6

Somit ist
1
φ(xi , ỹi ; △x) = (k1 + 2k2 + 2k3 + k4 ) (B.18)
6
mit 
k1 = (xi , ỹi ) 


k2 = (xi + △x 2 , ỹi +
△x
k1 )
2 (B.19)
k3 = (xi + △x 2 , ỹi +
△x
2 k2 ) 

△x △x 
k4 = (xi + 2 , ỹi + 2 k3 ) .
Aufgabe: Fadenpendel mit

i) Polygonzugverfahren

ii) verbessertes Polygnzugverfahren

iii) modifiziertes Polygonzugverfahren

iv) Runge-Kutta-Verfahren 4. Ordnung

v) impliziertes Eulerverfahren

B.3 Lösungen zu den Übungsaufgaben


Aufgabe: Fadenpendel
########################################################
### Fadelpendel Euler explizit
### Schwingungsdifferentialgleichung phi’’ + g/l phi = 0
########################################################
restart:
with(linalg):with(plots):

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 6:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

n := 50:
delta_t := (t_e - t_a)/n:
z1[1] := phi_0:
z2[1] := 0.0:
t[1] := t_a:
Lineare Finite Element Methode, c J. Schröder 177

for k from 1 to n do
z1[k+1] := z1[k] + z2[k]*delta_t:
z2[k+1] := z2[k] - g/l*z1[k]*delta_t:
t[k+1] := t[k] + delta_t:
end do:

n_1 := 80:
delta_t_1 := (t_e - t_a)/n_1:
z1_1[1] := phi_0:
z2_1[1] := 0.0:
t_1[1] := t_a:
for k from 1 to n_1 do
z1_1[k+1] := z1_1[k] + z2_1[k]*delta_t_1:
z2_1[k+1] := z2_1[k] - g/l*z1_1[k]*delta_t_1:
t_1[k+1] := t_1[k] + delta_t_1:
end do:

n_2 := 800:
delta_t_2 := (t_e - t_a)/n_2:
z1_2[1] := phi_0:
z2_2[1] := 0.0:
t_2[1] := t_a:
for k from 1 to n_2 do
z1_2[k+1] := z1_2[k] + z2_2[k]*delta_t_2:
z2_2[k+1] := z2_2[k] - g/l*z1_2[k]*delta_t_2:
t_2[k+1] := t_2[k] + delta_t_2:
end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
ngon1 := n_1 -> [seq([ t_1[k], z1_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ t_2[k], z1_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3]);

ngon := n -> [seq([ z1[k], z2[k] ], k = 1..n+1) ]:


ngon1 := n_1 -> [seq([ z1_1[k], z2_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ z1_2[k], z2_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3]);
Lineare Finite Element Methode, c J. Schröder 178

#############################################################
### Fadelpendel Euler explizit
### Schwingungsdifferentialgleichung phi’’ + g/l sin(phi) = 0
#############################################################
restart:
with(linalg):with(plots):

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 90:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

n := 70:
delta_t := (t_e - t_a)/n:
z1[1] := phi_0:
z2[1] := 0.0:
t[1] := t_a:
for k from 1 to n do
z1[k+1] := z1[k] + z2[k]*delta_t:
z2[k+1] := z2[k] - g/l*sin(z1[k])*delta_t:
t[k+1] := t[k] + delta_t:
end do:

n_1 := 200:
delta_t_1 := (t_e - t_a)/n_1:
z1_1[1] := phi_0:
z2_1[1] := 0.0:
t_1[1] := t_a:
for k from 1 to n_1 do
z1_1[k+1] := z1_1[k] + z2_1[k]*delta_t_1:
z2_1[k+1] := z2_1[k] - g/l*sin(z1_1[k])*delta_t_1:
t_1[k+1] := t_1[k] + delta_t_1:
end do:

n_2 := 1000:
delta_t_2 := (t_e - t_a)/n_2:
z1_2[1] := phi_0:
z2_2[1] := 0.0:
t_2[1] := t_a:
for k from 1 to n_2 do
z1_2[k+1] := z1_2[k] + z2_2[k]*delta_t_2:
z2_2[k+1] := z2_2[k] - g/l*sin(z1_2[k])*delta_t_2:
t_2[k+1] := t_2[k] + delta_t_2:
end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
ngon1 := n_1 -> [seq([ t_1[k], z1_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ t_2[k], z1_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3]);

ngon := n -> [seq([ z1[k], z2[k] ], k = 1..n+1) ]:


ngon1 := n_1 -> [seq([ z1_1[k], z2_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ z1_2[k], z2_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3]);
Lineare Finite Element Methode, c J. Schröder 179

#############################################################
### Fadelpendel Verbessertes Polygonzugverfahren
### Schwingungsdifferentialgleichung phi’’ + g/l sin(phi) = 0
#############################################################
restart:
with(linalg):with(plots):

cc1 := 0.0000001: # Euler Cauchy Verfahren


cc2 := 0.5: # Verbessertes Polygonzugverfahren
cc3 := 1.0: # Modifiziertes Polygonzugverfahren

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 90:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

n := 80:
delta_t := (t_e - t_a)/n:
f1 := (z1,z2,t) -> z2:
f2 := (z1,z2,t) -> -g/l*sin(z1):
z1[1] := phi_0: z1_1[1] := phi_0: z1_2[1] := phi_0:
z2[1] := 0.0: z2_1[1] := 0.0: z2_2[1] := 0.0:
t[1] := t_a:
for k from 1 to n do

k11 := f1(z1[k],z2[k],t[k]):
k12 := f1(z1[k]+delta_t/2/cc1*k11,z2[k]+delta_t/2/cc1*k11,
t[k]+delta_t/2/cc1):
z1[k+1] := z1[k] + ((1-cc1)*k11 + cc1*k12)*delta_t:
k21 := f2(z1[k],z2[k],t[k]):
k22 := f2(z1[k]+delta_t/2/cc1*k21,z2[k]+delta_t/2/cc1*k21,
t[k]+delta_t/2/cc1):
z2[k+1] := z2[k] + ((1-cc1)*k21 + cc1*k22)*delta_t:

k11 := f1(z1_1[k],z2_1[k],t[k]):
k12 := f1(z1_1[k]+delta_t/2/cc2*k11,z2_1[k]+delta_t/2/cc2*k11,
t[k]+delta_t/2/cc2):
z1_1[k+1] := z1_1[k] + ((1-cc2)*k11 + cc2*k12)*delta_t:
k21 := f2(z1_1[k],z2_1[k],t[k]):
k22 := f2(z1_1[k]+delta_t/2/cc2*k21,z2_1[k]+delta_t/2/cc2*k21,
t[k]+delta_t/2/cc2):
z2_1[k+1] := z2_1[k] + ((1-cc2)*k21 + cc2*k22)*delta_t:

k11 := f1(z1_2[k],z2_2[k],t[k]):
k12 := f1(z1_2[k]+delta_t/2/cc3*k11,z2_2[k]+delta_t/2/cc3*k11,
t[k]+delta_t/2/cc3):
z1_2[k+1] := z1_2[k] + ((1-cc3)*k11 + cc3*k12)*delta_t:
k21 := f2(z1_2[k],z2_2[k],t[k]):
k22 := f2(z1_2[k]+delta_t/2/cc3*k21,z2_2[k]+delta_t/2/cc3*k21,
t[k]+delta_t/2/cc3):
z2_2[k+1] := z2_2[k] + ((1-cc3)*k21 + cc3*k22)*delta_t:

t[k+1] := t[k] + delta_t:

end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
ngon1 := n -> [seq([ t[k], z1_1[k] ], k = 1..n+1) ]:
ngon2 := n -> [seq([ t[k], z1_2[k] ], k = 1..n+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3]);
Lineare Finite Element Methode, c J. Schröder 180

#############################################################
### Fadelpendel Euler implizit (mit Gleichungssystem)
### Schwingungsdifferentialgleichung phi’’ + g/l sin(phi) = 0
#############################################################
restart:
with(linalg):with(plots):

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 90:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

maxiter := 10:
tol := 0.0000001:

n := 50:
delta_t := (t_e - t_a)/n:
z1[1] := phi_0:
z2[1] := 0.0:
t[1] := t_a:
g1 := z1[k+1]-z1[k]-z2[k+1]*delta_t:
g2 := z2[k+1]-z2[k]+g/l*sin(z1[k+1])*delta_t:
g1p1 := diff(g1,z1[k+1]):
g1p2 := diff(g1,z2[k+1]):
g2p1 := diff(g2,z1[k+1]):
g2p2 := diff(g2,z2[k+1]):
#Schleife ueber die Anzahl der Zeitinkremente
for k from 1 to n do
z1[k+1] := z1[k];
z2[k+1] := z2[k];
#Schleife der Newton Iteration
for i from 1 to maxiter do
RS := array(1..2,[-g1,-g2]);
AA := array(1..2,1..2,[[g1p1,g1p2],[g2p1,g2p2]]);
invAA := inverse(AA);
delta_z := multiply(invAA,RS);
z1[k+1] := z1[k+1] + delta_z[1];
z2[k+1] := z2[k+1] + delta_z[2];
if (sqrt(g1*g1+g2*g2) < tol) then
i:=maxiter:
fi:
end do:
t[k+1] := t[k] + delta_t:
end do:

k := ’k’:
n_1 := 200:
delta_t_1 := (t_e - t_a)/n_1:
z1_1[1] := phi_0:
z2_1[1] := 0.0:
t_1[1] := t_a:
g1_1 := z1_1[k+1]-z1_1[k]-z2_1[k+1]*delta_t_1:
g2_1 := z2_1[k+1]-z2_1[k]+g/l*sin(z1_1[k+1])*delta_t_1:
g1p1_1 := diff(g1_1,z1_1[k+1]):
g1p2_1 := diff(g1_1,z2_1[k+1]):
g2p1_1 := diff(g2_1,z1_1[k+1]):
g2p2_1 := diff(g2_1,z2_1[k+1]):
#Schleife ueber die Anzahl der Zeitinkremente
for k from 1 to n_1 do
z1_1[k+1] := z1_1[k];
z2_1[k+1] := z2_1[k];
#Schleife der Newton Iteration
for i from 1 to maxiter do
RS := array(1..2,[-g1_1,-g2_1]);
AA := array(1..2,1..2,[[g1p1_1,g1p2_1],[g2p1_1,g2p2_1]]);
invAA := inverse(AA);
delta_z := multiply(invAA,RS);
z1_1[k+1] := z1_1[k+1] + delta_z[1];
z2_1[k+1] := z2_1[k+1] + delta_z[2];
if (sqrt(g1_1*g1_1+g2_1*g2_1) < tol) then
i:=maxiter:
fi:
end do:
t_1[k+1] := t_1[k] + delta_t_1:
end do:

k := ’k’:
n_2 := 1000:
delta_t_2 := (t_e - t_a)/n_2:
z1_2[1] := phi_0:
z2_2[1] := 0.0:
t_2[1] := t_a:
g1_2 := z1_2[k+1]-z1_2[k]-z2_2[k+1]*delta_t_2:
g2_2 := z2_2[k+1]-z2_2[k]+g/l*sin(z1_2[k+1])*delta_t_2:
g1p1_2 := diff(g1_2,z1_2[k+1]):
g1p2_2 := diff(g1_2,z2_2[k+1]):
g2p1_2 := diff(g2_2,z1_2[k+1]):
g2p2_2 := diff(g2_2,z2_2[k+1]):
#Schleife ueber die Anzahl der Zeitinkremente
for k from 1 to n_2 do
z1_2[k+1] := z1_2[k];
z2_2[k+1] := z2_2[k];
#Schleife der Newton Iteration
for i from 1 to maxiter do
Lineare Finite Element Methode, c J. Schröder 181

RS := array(1..2,[-g1_2,-g2_2]);
AA := array(1..2,1..2,[[g1p1_2,g1p2_2],[g2p1_2,g2p2_2]]);
invAA := inverse(AA);
delta_z := multiply(invAA,RS);
z1_2[k+1] := z1_2[k+1] + delta_z[1];
z2_2[k+1] := z2_2[k+1] + delta_z[2];
if (sqrt(g1_2*g1_2+g2_2*g2_2) < tol) then
i:=maxiter:
fi:
end do:
t_2[k+1] := t_2[k] + delta_t_2:
end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
ngon1 := n_1 -> [seq([ t_1[k], z1_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ t_2[k], z1_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p4 := plot(phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
p5 := plot(-phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3,p4,p5]);
Lineare Finite Element Methode, c J. Schröder 182

#############################################################
### Fadelpendel Euler implizit (ohne Gleichungssystem)
### Schwingungsdifferentialgleichung phi’’ + g/l sin(phi) = 0
#############################################################
restart:
with(linalg):with(plots):

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 90:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

maxiter := 10:
tol := 0.0000001:

n := 40:
delta_t := (t_e - t_a)/n:
z1[1] := phi_0:
z2[1] := 0.0:
t[1] := t_a:
#Schleife ueber die Anzahl der Zeitinkremente
for k from 1 to n do
z2[k+1] := z2[k];
#Schleife der Newton Iteration
for i from 1 to maxiter do
g1 := z2[k+1] - z2[k] +g/l*sin(z1[k]+z2[k+1]*delta_t)*delta_t:
g1p := 1.0 + g/l*cos(z1[k]+z2[k+1]*delta_t)*delta_t*delta_t:
z2[k+1] := z2[k+1] - g1/g1p:
if (sqrt(g1*g1) < tol) then
i:=maxiter:
fi:
end do:
z1[k+1] := z1[k] + z2[k+1]*delta_t:
t[k+1] := t[k] + delta_t:
end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
#ngon1 := n_1 -> [seq([ t_1[k], z1_1[k] ], k = 1..n_1+1) ]:
#ngon2 := n_2 -> [seq([ t_2[k], z1_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
#p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
#p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p4 := plot(phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
p5 := plot(-phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p4,p5]);
Lineare Finite Element Methode, c J. Schröder 183

#############################################################
### Fadelpendel Runge Kutta
### Schwingungsdifferentialgleichung phi’’ + g/l sin(phi) = 0
#############################################################
restart:
with(linalg):with(plots):

t_e := 4.0:
t_a := 0.0:
g := 10.0:
l := 1.0:

winkel := 90:
xpi := 4.0*arctan(1.0):
phi_0 := winkel/180.0*xpi:

n := 10:
delta_t := (t_e-t_a)/n:
f[1]:=(z1,z2,t) -> z2:
f[2]:=(z1,z2,t) -> -g/l*sin(z1):
z1[1] := phi_0:
z2[1] := 0.0:
t[1] := t_a:
for i from 1 to n+1 do
for j from 1 to 2 do
kk[j,1]:=f[j](z1[i],z2[i],t[i]):
od:
for j from 1 to 2 do
kk[j,2]:=f[j](z1[i]+delta_t/2*kk[1,1],z2[i]+delta_t/2*kk[2,1],
t[i]+delta_t/2):
od:
for j from 1 to 2 do
kk[j,3]:=f[j](z1[i]+delta_t/2*kk[1,2],z2[i]+delta_t/2*kk[2,2],
t[i]+delta_t/2):
od:
for j from 1 to 2 do
kk[j,4]:=f[j](z1[i]+delta_t*kk[1,3],z2[i]+delta_t*kk[2,3],
t[i]+delta_t):
od:
z1[i+1]:=z1[i] + 1/6*(kk[1,1] + 2*kk[1,2] + 2*kk[1,3] + kk[1,4])*delta_t:
z2[i+1]:=z2[i] + 1/6*(kk[2,1] + 2*kk[2,2] + 2*kk[2,3] + kk[2,4])*delta_t:
t[i+1]:=t[i] + delta_t:
end do:

n_1 := 15:
delta_t_1 := (t_e-t_a)/n_1:
z1_1[1] := phi_0:
z2_1[1] := 0.0:
t_1[1] := t_a:
for i from 1 to n_1+1 do
for j from 1 to 2 do
kk_1[j,1]:=f[j](z1_1[i],z2_1[i],t_1[i]):
od:
for j from 1 to 2 do
kk_1[j,2]:=f[j](z1_1[i]+delta_t_1/2*kk_1[1,1],z2_1[i]
+delta_t_1/2*kk_1[2,1],t_1[i]+delta_t_1/2):
od:
for j from 1 to 2 do
kk_1[j,3]:=f[j](z1_1[i]+delta_t_1/2*kk_1[1,2],z2_1[i]
+delta_t_1/2*kk_1[2,2],t_1[i]+delta_t_1/2):
od:
for j from 1 to 2 do
kk_1[j,4]:=f[j](z1_1[i]+delta_t_1*kk_1[1,3],z2_1[i]
+delta_t_1*kk_1[2,3],t_1[i]+delta_t_1):
od:
z1_1[i+1]:=z1_1[i] + 1/6*(kk_1[1,1] + 2*kk_1[1,2] + 2*kk_1[1,3]
+ kk_1[1,4])*delta_t_1:
z2_1[i+1]:=z2_1[i] + 1/6*(kk_1[2,1] + 2*kk_1[2,2] + 2*kk_1[2,3]
+ kk_1[2,4])*delta_t_1:
t_1[i+1]:=t_1[i] + delta_t_1:
end do:

n_2 := 30:
delta_t_2 := (t_e-t_a)/n_2:
z1_2[1] := phi_0:
z2_2[1] := 0.0:
t_2[1] := t_a:
for i from 1 to n_2+1 do
for j from 1 to 2 do
kk_2[j,1]:=f[j](z1_2[i],z2_2[i],t_2[i]):
od:
for j from 1 to 2 do
kk_2[j,2]:=f[j](z1_2[i]+delta_t_2/2*kk_2[1,1],z2_2[i]
+delta_t_2/2*kk_2[2,1],t_2[i]+delta_t_2/2):
od:
for j from 1 to 2 do
kk_2[j,3]:=f[j](z1_2[i]+delta_t_2/2*kk_2[1,2],z2_2[i]
+delta_t_2/2*kk_2[2,2],t_2[i]+delta_t_2/2):
od:
for j from 1 to 2 do
kk_2[j,4]:=f[j](z1_2[i]+delta_t_2*kk_2[1,3],z2_2[i]
+delta_t_2*kk_2[2,3],t_2[i]+delta_t_2):
od:
z1_2[i+1]:=z1_2[i] + 1/6*(kk_2[1,1] + 2*kk_2[1,2] + 2*kk_2[1,3]
+ kk_2[1,4])*delta_t_2:
z2_2[i+1]:=z2_2[i] + 1/6*(kk_2[2,1] + 2*kk_2[2,2] + 2*kk_2[2,3]
+ kk_2[2,4])*delta_t_2:
t_2[i+1]:=t_2[i] + delta_t_2:
Lineare Finite Element Methode, c J. Schröder 184

end do:

# Plot der Loesungen


ngon := n -> [seq([ t[k], z1[k] ], k = 1..n+1) ]:
ngon1 := n_1 -> [seq([ t_1[k], z1_1[k] ], k = 1..n_1+1) ]:
ngon2 := n_2 -> [seq([ t_2[k], z1_2[k] ], k = 1..n_2+1) ]:
p1 := plot([(ngon(n))], color= red, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p2 := plot([(ngon1(n_1))],color= green, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p3 := plot([(ngon2(n_2))],color= blue, style=line,
linestyle=1, thickness=5, axes=NORMAL):
p4 := plot(phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
p5 := plot(-phi_0,t=0..t_e,color= black, style=line,
linestyle=4, thickness=3, axes=NORMAL):
plotsetup(default,plotoptions=‘noborder,colour=gray,
width=3in,height=2.25in‘);
#plotsetup(ps,plotoutput=‘pendel1.eps‘,plotoptions=‘noborder,
colour=gray,width=3in,height=2.25in‘);
display([p1,p2,p3,p4,p5]);
Lineare Finite Element Methode, c J. Schröder 185

#############################################################
### Newton-Verfahren
#############################################################
restart:
with(linalg):with(plots):

x_i := 3.0:
max_iter := 15:
tol := 0.000001:

f:=x -> x^2;

fp:=D(f);
NS:=solve(f(x)=0,x);

for i from 1 to max_iter do


a[i] := fp(x_i);
b[i] := f(x_i)-a[i]*x_i;
t[i] := a[i]*tx+b[i];
c[i] := solve(t[i]=0,tx);
d[i] := x_i;
if (fp(x_i) = 0) then
print(‘Division durch Null‘);
break:
end if:
delta_x := -f(x_i)/fp(x_i):
x_i := x_i + delta_x:
print(i,f(x_i),x_i);
if (abs(f(x_i)) < tol) then
print(‘Iteration erfolgreich - Nullstelle bei:
‘,x_i,‘nach‘,i,‘Iterationen‘):
i := max_iter:
end if:
end:

# Plot der Loesungen


pl1:=plot(f(x),x=-3..3,color = red,scaling=CONSTRAINED):
pl2:=plot(fp(x),x=-3..3,color = green):
pl3:=PLOT(CURVES([[c[1],0],[d[1],f(d[1])]]),COLOUR(RGB,0.,0.,1.00000000)):
pl4:=PLOT(CURVES([[c[1],0],[d[2],f(d[2])]]),COLOUR(RGB,0.,0.,1.00000000)):
pl5:=PLOT(CURVES([[c[2],0],[d[2],f(d[2])]]),COLOUR(RGB,0.,0.,1.00000000)):
pl6:=PLOT(CURVES([[c[2],0],[d[3],f(d[3])]]),COLOUR(RGB,0.,0.,1.00000000)):
pl7:=PLOT(CURVES([[c[3],0],[d[3],f(d[3])]]),COLOUR(RGB,0.,0.,1.00000000)):
pl8:=PLOT(CURVES([[c[3],0],[d[4],f(d[4])]]),COLOUR(RGB,0.,0.,1.00000000)):
display([pl1,pl3,pl4,pl5,pl6,pl7,pl8]);

Das könnte Ihnen auch gefallen