Ü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
© Copyright 2024 ExpyDoc