• Keine Ergebnisse gefunden

Adaptive Finite-Elemente-Methoden mit Anwendungen

N/A
N/A
Protected

Academic year: 2021

Aktie "Adaptive Finite-Elemente-Methoden mit Anwendungen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Zentrum für Technomathematik

Prof. Dr. Alfred Schmidt

Adaptive Finite-Elemente-Methoden mit Anwendungen

SS 2015 — 29.04.2015

Programmieraufgabe 1 (6 Punkte)

Zum Einarbeiten in das Programm–Paket ALBERTA sind folgende Unterprogramme f¨ur zwei- (und bei Interesse auch drei-) dimensionale Triangulierungen zu implementieren:

a) Schreiben Sie eine Funktionrandom refine(MESH *mesh, int k), die mit Hilfe der Funk- tion drand48()eine

”zuf¨allige“ Auswahl von Elementen des Gitters meshzum Verfeinern markiert. Verfeinern Sie dann das Gitter durch einen Aufruf

refine(mesh);

Dieses

”zuf¨allige“ Markieren und Verfeinern soll kmal durchgef¨uhrt werden.

Implementieren Sie auch eine Funktion random coarsen(MESH *mesh, int k), welche eine ”zuf¨allige“ Auswahl von Elementen des Gitters mesh zum Vergr¨obern markiert und dann das Gitter mit

coarsen(mesh);

zu vergr¨obern versucht. Dies soll auch kmal durchgef¨uhrt werden.

Schreiben Sie schließlich eine Funktion coarse to macro(MESH *mesh), die ein Gitter zur¨uck bis zur Makrotriangulierung vergr¨obert. Eine Triangulierung ist genau dann Ma- krotriangulierung, falls f¨ur alle Makroelemente macro el der Makrotriangulierung

macro_el->el->child[0] == nil

gilt. Die Makroelemente sind als verkettete Liste mit erstem Element mesh->first_macro_el

gespeichert. F¨uhren Sie nun mehrmaliges zuf¨alliges Verfeinern, gefolgt von zuf¨alligem Ver- gr¨obern und schließlich Vergr¨obern bis zur Makrotriangulierung durch. Geben Sie nach jedem Schritt die Anzahl der Elemente, Kanten und Knoten aus.

b) Implementieren Sie eine Funktion refine at origin(MESH *mesh, REAL dist), welche alle Dreiecke verfeinert, deren Schwerpunkt h¨ochstens den Abstand dist zum Ursprung haben.

Tip: Bedenken Sie dabei, daß Koordinateninformation auf den Dreiecken vorhanden sein muß, um den Schwerpunkt zu berechnen. Daher muß dasFILL FLAG, welches der Traverse–

Routine ¨ubergeben wird, CALL LEAF EL|FILL COORDSsein.

Rufen Sie diese Funktion mehrfach mit kleiner werdendem Abstanddistauf (halbiere z.B.

distnach jedem Aufruf).

c) Schreiben Sie eine Funktionmeasure omega(MESH *mesh), welches auf jedem Dreieck die Elementfl¨ache berechnet. Diese Werte sollen auf eine statische globale Variable aufaddiert werden. Nach dem Traverse enth¨alt diese Variable dann den Fl¨acheninhalt des zugrundelie- genden Rechengebiets.

(2)

In

http://www.math.uni-bremen.de/~schmidt/SS15/alberta1.tgz

befindet sich eine gezipte Tar-Datei, die Sie in ein eigenes ALBERTA-Verzeichnis kopieren k¨onnen und dort mit

gtar xovzf alberta1.tgz

entpacken. Damit werden im aktuellen Verzeichnis folgende Daten erzeugt:

Makefile 2d:

INIT/ Macro/ Makefile meshes.c@

3d:

INIT/ Macro/ Makefile meshes.c@

Common:

meshes.c

Die Datei meshes.c ist dimensionsunabh¨angig und daher nur in dem Unterverzeichnis Common gespeichert. Auf diese Datei ist jeweils in den 2d und 3d Verzeichnissen ein Verweis auf die Datei../Common/meshes.ceingetragen. Alle anderen Daten in diesen Unterverzeichnissen sind dimensionsabh¨angig und separat gespeichert.

F¨ur jeweils2d und 3d enth¨alt das UnterverzeichnisINIT eine Dateiinit.dat, in welcher Para- meter initialisiert werden. Das Verzeichnis Macro enth¨alt Daten zu verschiedenen Makrotriangu- lierungen.

Die Datei meshes.c enth¨alt den Quellcode f¨ur ein Demoprogramm und Makefile Informa- tion zum ¨Ubersetzen und Linken von ALBERTA Programmen. Wichtigste Variable dabei ist ALBERTA LIB PATH, welche den Pfad der ALBERTA–Lib enth¨alt, und ALBERTA INCLUDE PATH.

Ferner sind in dem Makefile die wesentlichen Konstanten, die die Triangulierung beschreiben, definiert: DIM,DIM OF WORLD. Im Makefile wird eine weitere Make–Datei eingef¨ugt, in dem rech- nerabh¨angige und ALBERTA–spezifische Variable gesetzt werden.

Das Demoprogramm kann dann jeweils in2d oder 3dmit dem Kommando make meshes

zum ausf¨uhrbaren Programm meshesubersetzt werden.¨

Zum Ausf¨uhren des Programms kann es notwendig sein, die Environment-Variable LD LIBRARY PATHauf ALBERTA LIB PATHzu setzen

(auf den FB3-Rechnern: /home/alberta/ALBERTA-1.2/pc-linux/lib).

FB3-Rechner-Pool: bitte per ssh auf ztm05 einloggen, nur auf den ZeTeM-Rechnern sind die ALBERTA-Bibliotheken intstalliert.

Bei Interesse ist auch eine Linux-Installation von ALBERTA f¨ur Ihreprivaten Rechnerverf¨ugbar:

Siehewww.alberta-fem.de

Referenzen

ÄHNLICHE DOKUMENTE

Collegare il cavo di rete alla porta WAN del router satellite e alla porta LAN del router principale: l'indicatore Internet inizierà a lampeggiare rapidamente (due lampeggi al

In the 1970s, gynecologists began using surgical mesh products indicated for hernia repair for abdominal repair of pelvic organ prolapse (POP), and in the 1990s, gynecologists

This thesis has presented and theoretically investigated local mesh refinement rou- tines for the Adaptive Isogeometric Method with Hierarchical B-splines, Truncated

• Wenn Sie das Gerät zum ersten Mal verwenden oder den Medikamentenbecher für längere Zeit nicht verwendet haben, müssen der Medikamentenbecher und die Maske

Automatic volumetric meshing algorithms on computerized tomography (CT) data have shown to be of great value for Finite Element (FE) modeling since they provide a fast and

Automatic volumetric meshing algorithms on computerized tomography (CT) data have shown to be of great value for Finite Element (FE) modeling since they provide a fast and

3.2 Evaluation of the message queue length and number of overloaded peers Figure 4 shows the simulation results regarding the average length of the message queue of all peers and

As soon as the generation of structured rows of anisotropic quadrilaterals is accomplished, the remaining triangular mesh is transformed into an isotropic quadrilateral mesh using