Übungsblatt 8 - Hu

Übungsblatt 8
22.06.2016 / B. Leder
Wissenschaftliches Rechnen III / CP III
Aufgabe 8.1: Spin-Modell: Update
Erweitern Sie ihr Programm zum Spin-Modell um den Metropolis Algorithmus. Zur Vorbereitung
beantworten Sie folgende Fragen:
a) Wie implementieren Sie die Akzeptanz eines Vorschlags Φx → Φ0x mit der Wahrscheinlichkeit
pacc = min(1, p(Φ0x )/p(Φx ))?
b) Wieviele Zufallszahlen in (0, 1] braucht man für das Update eines Spins = 1 x (Vorschlag +
Akzeptanzschritt)?
Anforderungen:
• Schreiben Sie C-Funktionen (falls noch nicht vorhanden) für alle wichtigen Teile: Exponent
des Boltzmann-Faktor S[Φ, h], lokale Verteilung p(Φx ), Magnetisierung M [Φ], Update eines
Spins.
• Stellen Sie Tests/Checks für alle genannten Funktionen zur Verfügung.
• Benutzen Sie das Update eines Spins, um ein vollständiges Update der Konfiguration zu
erreichen:
1 Sweep = for (all x ) do 10 x (Update Spin Φx ) done.
Empfehlungen:
• Erzeugen Sie die Zufallszahlen für einen Sweep auf der GPU und kopieren diese auf den
Host.
• Nutzen Sie eine modulare Implementierung, organisieren Sie ihr Programm-Code in mehrere
Dateien. Sie könnten vom Beispiel-Code des Übungsblatt 5 ausgehen. Erstellen Sie ein
executable für die Tests und eines zum Thermalisieren in Aufgabe 8.2.
• Messen Sie die Akzeptanzrate: (Anzahl akzeptierter Vorschläge) / (Anzahl der Vorschläge).
Im Laufe einer Simulation (mehrere Sweeps) wird diese immer genauer.
10 Punkte
1
Aufgabe 8.2: Monte-Carlo-Simulation: Thermalisierung
Messen Sie Exponent des Boltzmann-Faktor S[Φ, h] und die Magnetisierung M [Φ] entlang einer
Monte-Carlo Simulation. Starten Sie einmal von einer Konfiguration mit Φx = 0.5 ∀x und einmal
von einer zufälligen Konfiguration. Nehmen Sie für dieses Experiment 3-Dimensionen und 8
Punkte in alle Richtungen. Die Parameter setzen Sie λ = 1.0, κ = 0.1 und h = 0.5. Wiederholen
Sie das ganze mit h = 0. Plotten Sie S[Φ, h] und M [Φ] entlang der Simulation. Kennzeichnen Sie
den Bereich der Thermalisierung.
5 Punkte
2