Beruflich Dokumente
Kultur Dokumente
Sommersemester 2022
Inhaltsverzeichnis
1 Einleitung 1
Literatur 163
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:
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.
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.
• 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
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
∂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)
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
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
δ = 0, (2.15)
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)
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
gebracht werden. Hierbei ist L ein elliptischer Differentialoperator, siehe Braess [6].
Definition von positiv definiten und semi-definiten Systemen:
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.
u : B ∪ ∂B → IR (3.1)
f : B → IR und g : ∂B → IR (3.2)
erfüllt.
Für die Diskretisierung wählen wir die konstante Schrittweite h > 0, so dass
Bh := {ih | i = 1, . . . , n − 1} (3.6)
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.
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
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
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).
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
u0 = 0 und un = 0 . (3.20)
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
gegeben. Die räumliche Diskretisierung erfolgt analog zu Abschnitt 3.1.1, d.h. mit der
konstanten Schrittweite h
Neben der räumlichen Diskretisierung ist eine Diskretisierung in der Zeit erforderlich,
hierzu wählen wir die Gitterschrittweite ∆t und erhalten mit
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
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
j +1
x
0 xi −1 xi xi +1 n
Abbildung 7: Visualisierung des expliziten Verfahrens.
ergibt sich aus dem Differenzenschema (3.35) für den Zeitpunkt t1 das Gleichungssystem
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
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
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
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α)
60
55
50
45
(x)
40
35
30
25
20
0 0.2 0.4 0.6 0.8 1
x
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
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.
∈ 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
für ξi ∈ [xi−1 , xi+1 ]. Analog erhalten wir mit dem Taylorpolynom für y an der Stelle yj
die zentrale Differenzenformel
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 )
und
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)
ϑ = 100◦C
l = 0.5m
y
x
l = 0.5m
Abbildung 13: Quadratische Platte mit vorgegebener Randtemperatur.
Gesucht ist die Lösung für nx = ny = 4. Vergleichen Sie die numerischen Ergebnisse mit
der exakten Lösung
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.
Werten wir Gleichung (3.67) für den Punkt 7 mit i = 1 und j = 1 aus, so folgt
bzw. bei einer einfach indizierten Durchnummerierung entsprechend obiger Abbildung mit
ϑ1,1 =: ϑ7 , ϑ1,2 =: ϑ8 , ϑ2,1 =: ϑ12 usw.
4.1 Vorbereitung
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,
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
u(x)
ub
ũ(x)
δu(x)
u(x)
ua
a b 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
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
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
In der letzteren Gleichung identifizieren wir das zweite Argument von f mit ũ und das
dritte Argument mit der Ableitung der Vergleichsfunktion
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′
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
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
Für die Variationsprobleme müssen wir mehrere Arten von Randbedingungen spezifizie-
ren. Wir unterscheiden zwischen Randbedingunen
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
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′
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
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
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
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
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
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
p(x)
11
00 1010
00
11
00
11
001010
x u
11 l
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
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.
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
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
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
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
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
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.
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
Z l Z l
′′
η(x)EAū (x) dx = − η ′ (x)EAū′ (x) dx. (4.95)
0 0
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
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
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.
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
Die Klasse der Wichtungsfunktionen (auch als Variationen oder virtuelle Verschiebung
bezeichnet) ist gegeben durch
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
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
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
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
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.
1
0
0
1
111 000
000
000 111
111
Abbildung 25: Physikalischer Bereich B einer ebenen Fachwerkstruktur.
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̃
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
F D = (F1 , F2 )T
D D
(5.18)
Lineare Finite Element Methode, c J. Schröder 44
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
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
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.
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
ũ′h (x̃) = IB T de .
Für die virtuellen Verschiebungsfelder δũ(x̃) wird dieselbe Interpolation verwendet wie für
das Verschiebungsfeld, d.h.,
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
D3 D7
D2 D6
D1 D5
❵❵❵
❵❵❵
❵❵❵ 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
T T
D (K D − P) = 0 ∀ D → K D = P, (5.30)
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)
K ∈ IRnumeq ×numeq .
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
wobei die Anzahl der Knoten des gesamten Systems als numnodes bezeichnet wird.
nodesele = 2
dofnodes = 2.
4
2 8 9 6
y 3 4 5 6 7
1 1 2 5
x 3
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
Das Randwertproblem wird in neun Fachwerkelemente, sechs Knoten und vier (Null-
)Verschiebungsrandbedingungen diskretisiert, d.h.,
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
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
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
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 ,
Die Schritte werden wiederholt, bis die Iteration über die Elemente abgeschlossen ist.
Lineare Finite Element Methode, c J. Schröder 52
❄
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
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
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
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
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:
Wie in den vorherigen Abbildungen gezeigt, wirkt auf den Knoten 2 ein lokaler Vektor F 2 , wobei
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.
Aus diesen Größen erhält man die Dehnungen der Stäbe ∆li = Si li /(EAi ):
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
1 kN 2 kN
l l l
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
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)
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
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.
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
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
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
Ü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
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
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
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].
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:
• 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.
d2 M (x)
= −p(x) . (5.76)
dx2
Die axialen Verschiebungen in Richtung der Stabachse über den Querschnitt ergeben sich aus
der Annahme des Ebenbleibens der Querschnitte zu
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
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
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
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
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
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
zu
w1
4 ϕ1
w′′ = N1,ξξ N̄1,ξξ N2,ξξ N̄2,ξξ e
(5.93)
l2 w2 = Bd
ϕ2
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 folgt
12 6l −12 6l
EI 6l 4l2 −6l 2l2
ke = 3 (5.95)
l −12 −6l 12 −6l
6l 2l2 −6l 4l2
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
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ϕ
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
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
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:
Anmerkung zu Lastfall 2:
Riz Rjz
Mi Mj
e
Rix Rjx
wi
wj
ui
ϕi
uj ϕj
e
l
!
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
= 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
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
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
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
(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◦
(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
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
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
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
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
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
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
√ √
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.
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
x, u
w,x
w
β γ
z, w
w,x
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)
κ := β,x (5.126)
Für die Schnittgrößen Moment und Querkraft gelten die konstitutiven Beziehungen
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
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
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
N1 N2
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
nele
e
K= A (k bb + kSe ) .
e = 1
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 )
β1 β2
ξǫ [0, 1]
w1 ξ w2
w1
w2 w(ξ) = (1 − ξ)w1 + ξw2
β1
β2 β(ξ) = (1 − ξ)β1 + ξβ2
(w2 − w1 ) /l − (β2 + β1 ) /2
(β2 − β1 ) /2
Abbildung 61: Graphische Analyse der Kinematen am Timoshenko-Balken.
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
−β
β
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.
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
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
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
N1 N2 N3
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
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.
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
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
Schnittgrößen im 1.Element
0 −1
0 −10
S 1 = k1 ·
9.4 = 1
(5.164)
3.75 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
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
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
t̄
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
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
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
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
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
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
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
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
KD = P , (5.187)
mit der globalen Steifigkeitsmatrix K, dem globalen Verschiebungsvektor D und dem globalen
Lastvektor P .
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.
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
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.
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 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
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
η η
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
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
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
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
ζ
P4
1
η
P3 1
P1
z y
x P2 1
ξ
a) b)
Abbildung 72: Tetraederelement und Einheitstetraeder
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)
(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.
η 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
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
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
end if ! isw=3
end do ! End Gauss Loop
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
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
! 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
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
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
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)
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
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
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
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
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
1
ξ1 ξ2 = − ; ξ1 + ξ2 = 0 . (5.280)
3
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
√
1/ 3
√
1/ 3 ξ
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
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:
• geeignete Biegeeigenschaften
• 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:
• Stabilisierungsmethoden
• hybride oder gemischte Variationsprinzipien, die auf der in den Belastungen formulierten
komplementären Energie (im Falle der Festkörpermechanik) basieren
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.
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.
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
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
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
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
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
X
numele
K Dp = R, (6.19)
nele nele
K= A ke , R= A (−re ) . (6.20)
e = 1 e = 1
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
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
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
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
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)
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
Folglich lassen sich Gl.(6.41) und Gl.(6.42) in die in Gl.(6.35) dargestellt Form übertragen.
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
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.
(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
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.
[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.
[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.
[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.
[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.
✛ 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
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)
(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
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
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
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 = 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
B.1 Vorbetrachtungen
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
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
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
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
v) impliziertes Eulerverfahren
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:
#############################################################
### 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:
#############################################################
### Fadelpendel Verbessertes Polygonzugverfahren
### 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 := 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:
end do:
#############################################################
### 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:
#############################################################
### 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:
#############################################################
### 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:
#############################################################
### Newton-Verfahren
#############################################################
restart:
with(linalg):with(plots):
x_i := 3.0:
max_iter := 15:
tol := 0.000001:
fp:=D(f);
NS:=solve(f(x)=0,x);