Überblick Methode der finiten Elemente Beispiele Software im Internet Schritte für die Programmierung
Methode der finiten Elemente Bisher Finite Differenzen: Diskretisierung des Ortes und der Zeit Iterationsverfahren Untersuchung der Stabilität und der Konvergenzgeschwindigkeit FD nicht direkt anwendbar unregelmässig geformtes Grundgebiet Variationsaufgaben Methode der finiten Elemente allgemeiner analytischer Ansatz für die Näherungslösung der partiellen Differentialgleichung Methode der gewichteten Residuen: Differentialgleichungen Rayleigh-Ritz Verfahren: Variationsprobleme
Methode der gewichteten Residuen Ziel: Finde zu einer partielle Differentialgleichung eine System von gewöhnlichen Differentialgleichungen, oder ein algebraisches Gleichungssystem (zeitunabhängige Probleme) u( x, t) zb: Temperatur, soll vom Ort x und der Zeit t abhängen Feldvariable u( x, t) Differentialoperator L und dem Quellterm f(x,t) ist Lösung einer Differentialgleichung mit dem Lux [ (, t) ] = f( x, t) Beispiel: Poissongleichung u = ρ
Residuum Näherungslösung u( x, t) Residuum setze u in die Differentialgleichung ein Abweichung vom exakten Wert R( x, t) = Lux [ (, t) ] f( x, t) Ansatz für die Nährungslösung Residuum = 0 für die exakte Lösung Bestimme die Entwicklungskoeffizienten so, dass das Residuum klein ist.
Ansatz für die Näherungslösung Finite Differenzen ersetze x und t durch diskrete Variable Finite Elemente x und t bleiben kontinuierliche Variable Entwicklung der Näherungslösung u( x, t) a i ()ϕ t i ( x) i ϕ i ( x) a i (t)... Basisfunktionen... Entwicklungskoeffizenten
Bestimmung der Entwicklungskoeffizenten Kollokationsverfahren Die Differentialgleichung ist an N Stützstellen erfüllt R(x i ) = 0, (i=1,...,n) Methode der kleinsten Fehlerquadrate bestimme a i so, dass das Integral minimal wird ------ R( x) a [ ] 2 d x = 0 i Galerkin Verfahren multipliziere das Residuum mit N Gewichtsfunktionen w i R ( x )w d x = 0 i
Galerkin Verfahren Galerkin-Verfahren Für beliebige Gewichtsfunktionen folgt nicht, dass R klein ist spezielle Wahl Ansatzfunktionen = Gewichtsfunktionen w i ( x) u = ------- = ϕ a i ( x) i Methode der gewichteten Residuen ist unabhängig von finiten Elementen beliebige Basisfunktionen möglich analytische und numerische Methoden Beispiel: Fourier-Galerkin Verfahren der Konvektion in der Atmosphere führte auf die Lorenz Gleichungen
Finite Elemente Spezielle Wahl der Basisfunktionen Basisfunktion ϕ i 0 nur in kleinen Bereichen Entwicklungskoeffizenten a i entsprechen den Feldwerten an den Punkten x i Basisfunktionen interpolieren die Lösung zwischen den Punkten hat-function u u i-1 u i+1 u i 1 ϕ i-1 ϕ i ϕ i+1 x i-1 x i x i+1
1D stückweise lineare Funktionen u u i-1 u i+1 u i 1 ϕ i-1 ϕ i ϕ i+1 x i-1 x i x i+1 ϕ i = x x -------------------- i 1, x x i x i 1 x < x i i 1 x i + 1 x --------------------, x i x < x i + 1 x i + 1 x i 0, x< x i 1 or x x i + 1
Eigenschaften des FE-Ansatzes Entwicklungskoeffizenten entsprechen den Feldwerten es gilt: ϕ i ( x i ) = 1 ϕ j ( x i ) 0 und = für j i ux ( i ) = a i ϕ i ( x i ) = i a i Innerhalb eines Elementes linear interpoliert x i x < x i + 1 wird das Feld x i + 1 x x x ux ( ) u i -------------------- i = + u i + 1 -------------------- x i + 1 x i x i + 1 x i ϕ i ϕ i+1
Beispiel: 1D Transportgleichung u ----- = v u ----- t x für jede Basisfunktion ϕ i erhält ergibt sich eine Gleichung multipliziere Residuum mit Basisfunktion integriere über das Grundgebiet u ----- + v u ----- ϕj dx = 0 t x Einsetzen der Näherungslösung uxt, ( ) = a i ()ϕ t i ( x) i da iϕi dϕ i ϕ dt j + va i ϕ j dx = 0 dx i
Matrix-Schreibweise da iϕi dϕ i ϕ, i = 1,...,N dt j + va i ϕ j dx = 0 dx i A da + B a = 0 dt mit A ij und = ϕ i ϕ j dx dϕ i B ij = v ϕ j dx dx System von N gewöhnlichen Differentialgleichungen
2 ------- u t 2 v 2 u = -------- x 2 Beispiel: Wellengleichung im Intervall (0,1) Galerkin Verfahren: 1 2 da iϕi dt 2 ϕ j v 2 d ϕ i aiϕ j dx 2 dx = 0 i 0 partielle Integration 2 1 2 da i dt 2 ϕ i ϕ j dx a i v 2 dϕ i dϕ j dx v 2 dϕ i + ϕ dx dx j = 0 dx i 0 A ij i 1 0 B ij 1 0
Matrix-Schreibweise A d 2 d a t 2 + B a = 0 periodische Zeitabhängigkeit: Ansatz Eigenwertproblem ω 2 A a 0 = B a 0 a() t = a 0 e iωt
Finite element resources http://www.engr.usask.ca/%7emacphed/finite/fe_resources/fe_resources.html Internet Finite Element Resources Conferences and Courses Conferences Courses Newsgroups Particular Newsgroup Items Listservers and Bulletin Board Systems FE Homepages and FTP Sites Societies FE Links CFD Links Mesh Generation Links Public Domain FE Programs FREEWARE with source code Programs for the PC SHAREWARE or no source code Mesh Generators FE Visualisation Public Domain Mathematical Software and Miscellaneous Items. Books FE Code from Books
Gittererzeugung, Visualisierung: GID http://gid.cimne.upc.es/intro/index.html
User-Interface
Beispiel: Strömungsprobleme Aerodynamic analysis of the new large telescope facility in La Palma island, Islas Canarias, Spain.
Zusammenfassung Finite Element Links Software, Bücher, Vergleiche,... http://www.engr.usask.ca/%7emacphed/finite/ fe_resources/fe_resources.html GETDP / GMSH is a scientific computation software for the numerical solution of integro-differential equations, using finite element and integral type methods. http://www.geuz.org/getdp/ OFELI (Object Finite Element LIbrary) is a library of finite element C++ classes for multipurpose developement of finite element software. I http://sourceforge.net/projects/ofeli/ GID Modellierung, Gittererzeugung, Visualisierung http://gid.cimne.upc.es/intro/index.html
Beispiel: Getdp
Gebiete GROUP Gebiete und Regionen Group { /* The numbers correspond to physical regions defined in 'thermal.geo' (the input to the GMSH meshing tool) */ Hot = Region[10] ; Cold = Region[20] ; Domain = Region[100];
Funktionen FUNCTION Funktionen auf den Gebieten (groups) Function { alpha = 0.1 ; // Waermeleitfahigkeit
CONSTRAINT Randbedingungen, Anfangsbedingungen Randbedingungen Constraint { { Name Boundary; Case { { Region Hot; Value 200. ; { Region Cold ; Value 0. ;
FUNCTIONSPACE Funktionenraum FunctionSpace { { Name H1 ; Type Form0 ; BasisFunction { { Name wi ; NameOfCoef fi ; Function BF_Node ; Support Domain ; Entity NodesOf[ All ] ; Constraint { { NameOfCoef fi; EntityType NodesOf ; NameOfConstraint Boundary;
JACOBIAN geometrische Transformationen Geometrische Transformationen Randbedingungen im Unendlichen Jacobian { { Name JVol ; Case { { Region All ; Jacobian Vol ;
Integrale INTEGRATION Integrationsmethoden für Integrale über finite Elemente Integration { { Name I1 ; Case { { Type Gauss ; Case { { GeoElement Triangle ; NumberOfPoints 12 ;
FORMULATION Aufstellung der Gleichungen Eingabe der Gleichung in symbolischer Form Formulation { { Name HeatEquation; Type FemEquation ; Quantity { { Name temperature; Type Local ; NameOfSpace H1; Equation { Galerkin { [ alpha*dof{d temperature, {d temperature ] ; In Domain ; Jacobian JVol ; Integration I1 ;
RESOLUTION Beschreibung der Lösungsschritte Zeitabhängigkeit Lösen der Gleichungen Resolution { { Name HeatEquation; System { { Name HeatSys ; NameOfFormulation HeatEquation ; Operation { Generate[HeatSys] ; Solve[HeatSys] ; SaveSolution[HeatSys] ;
Beispiel: Zeitabhängigkeit FORMULATION Equation { Galerkin { Dt [ Dof{temperature, {temperature ] ; In Domain ; Jacobian JVol ; Integration I1 ; Galerkin { [ alpha*dof{d temperature, {d temperature ] ; In Domain ; Jacobian JVol ; Integration I1 ; theta Methode y t + 1 y t RESOLUTION dy dt = fyt (, ) -------------------- = f( ( 1 θ)y t t θy t + 1, t) Operation { InitSolution[HeatSys]; SaveSolution[HeatSys] ; TimeLoopTheta[tmin,tmax,dt,theta] { Generate[HeatSys] ; Solve[HeatSys] ; SaveSolution[HeatSys] ;
POSTPROCESSING Definition der Ausgabedaten (Integrale, Ableitungen der FE-Lösung) Ausgabedaten PostProcessing { { Name TemperaturePost ; NameOfFormulation HeatEquation ; Quantity { { Name Temp ; Value { Local { [ {Grad temperature ] ; In Domain;
Exportieren der Ausgabedaten POSTOPERATION wie werden die Postprocessing daten in files geschrieben? PostOperation { { Name TemperaturePlot; NameOfPostProcessing TemperaturePost; Operation { Print[ Temp, OnElementsOf Domain, File "thermaltime.pos"] ;