Einführung in Simulationen mit Monte Carlo und Brownscher Dynamik Martin Oettel Johannes Bleibel Die Monte Carlo-Methode 1. Beispiel Bestimmung von π π = 1 1 1 ∫−1 dx∫−1 dy G (x , y ) G (x , y) = θ(1− √ x2 + y 2) (physikalische Größe) { θ(x) = 1 (x>0) 0 (sonst) Würfeln x j = RANDOM_NUMBER ([−1,1]) y j = RANDOM_NUMBER ([−1,1]) π ≈ 1 M M ∑ j =1 θ(1− √ x2j + y 2j ) Übersetzung: Welcher Anteil der Zufallspunkte liegt im Kreis? −1 −1 1 Die Monte Carlo-Methode 1. Beispiel - Programmieraufgabe im VM Physik für Nanoscience ● Schreiben Sie ein MC-Programm für π ● Unterteilen Sie die Gesamtzahl der “Messungen”: N = N samples⋅N meas In jedem “sample” haben Sie Nmeas Messungen, bilden Sie den Mittelwert in jedem “sample”. Berechnen Sie den Mittelwert über alle “samples”. Berechnen Sie die Standardabweichung und die Unsicherheit des Mittelwertes über alle “samples”. ● Veranschaulichen Sie dies entsprechend, vor allem als Funktion von Nsamples N samples N meas = 1000, Fehlerbalken: σ mean = ∑i=1 (π i − ̄π ) √ N samples ( N samples−1) π × 100 = N samples , πi = 1 N meas N meas ∑ j=1 πij Statistische Theorie der physikalischen Eigenschaften (Statistische Mechanik) Beispiel: Verteilung der Moleküle in einer Flüssigkeit N Teilchen ● ● ● jedes Teilchen kann sich im gesamten Raum aufhalten, ist aber mit allen anderen Teilchen “korreliert” Verteilung wird beschrieben durch eine Verteilungsfunktion = Wahrscheinlichkeitsdichte f ( r⃗1 ,... , r⃗N ) Integral über alle Teilchenpositionen ist 1: Verteilungfunktion ist normiert ∫ d 3 r 1 ...∫ d 3 r N ● f ( r⃗1 , ... , r⃗N ) = 1 Eine physikalische Größe sei Funktion der Teilchenkoordinaten: Der Erwartungswert dieser Größe ist dann: 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N Einfaches Beispiel: Schwerpunkt G = G (⃗ ri) G (⃗ r i ) f ( r⃗1 ,... , r⃗N ) 1 G ( r⃗i ) → N N ∑i=1 r⃗i Selbst wenn f bekannt ist, dann erfordert die Berechnung des Erwartungswert einer physikalischen Größe (wie der Schwerpunkt) im Prinzip eine 3N-dimensionale Integration ! Statistische Theorie der physikalischen Eigenschaften Strategien zur Lösung des Integrals 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G (⃗ r i ) f ( r⃗1 ,... , r⃗N ) N Teilchen zum Zeitpunkt t 1. Molekulardynamik Man löst die Bewegungsgleichungen von N r i (t ) Teilchen näherungsweise numerisch, erhält also ⃗ Dann: 〈G 〉 ≈ limT →∞ 1 T T ∫0 dt G ( r⃗i (t)) Was steckt dahinter? Für lange Zeiten strebt ein System ins Gleichgewicht. N Teilchen zum Zeitpunkt t+Δt Ergodenhypothese: Die zeitlich gemittelte Verteilung der Teilchen im Raum (aufgrund der r i (t ) ), strebt der Gleichgewichtsverteilung f eq ( r⃗1, ... , r⃗N ) zu. Lösung ⃗ 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G (⃗ r i ) f eq ( r⃗1 , ... , r⃗N ) ≈ M Zeitschritte, 1 M t j = j Δt M ∑ j=1 G ( ⃗ri (t j )) Statistische Theorie der physikalischen Eigenschaften Strategien zur Lösung des Integrals 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G (⃗ r i ) f ( r⃗1 ,... , r⃗N ) 2. Monte Carlo “Boltzmann-Faktor”: Die Gleichgewichtsverteilung ist bekannt und lautet 1 − f eq ( r⃗1 ,... , r⃗n ) = e Z E pot ( r⃗1 ,... , r⃗n ) kT −23 k ≈ 1.38⋅10 J/K Boltzmann-Konstante Z heißt Konfigurationsintegral und normiert feq Z = ∫d 3 3 r 1 ...∫ d r N e − E pot ( r⃗1 ,... , r⃗n ) kT Epot ist die gesamte potentielle Energie der Moleküle Beispiel: Flüssigkeit an einer Wand Paarpotential u externes Potential (Wand) E pot = N ∑i=1 ∑ j <i u (⃗ri − r⃗j ) + N ∑i=1 V ext (⃗r i ) Statistische Theorie der physikalischen Eigenschaften Strategien zur Lösung des Integrals 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G (⃗ r i ) f ( r⃗1 ,... , r⃗N ) 2. Monte Carlo (MC) Anstatt 3N Integrale zu lösen, “würfeln” wir auf eine geschickte Art und Weise M mal unsere Koordinaten: ⃗ r i → ⃗r i , j ( j =1 ... M ) 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G (⃗ r i ) f eq ( r⃗1 , ... , r⃗N ) ≈ 1 M M ∑ j=1 G (⃗r i , j ) Man beachte die formale Ähnlichkeit zu Molekulardynamik: r i (t j ) ⃗ MD: Lösen der Bewegungsgleichung in M Schritten → ⃗r i , j MC: “Würfeln” der Koordinaten M mal Die genauen “Würfel”regeln (importance sampling) kommen später. Die Monte Carlo-Methode 1. Beispiel noch einmal Bestimmung von π π = 1 1 1 ∫−1 dx∫−1 dy f ( x , y) G ( x , y) f ( x , y) = 1 (Gleichverteilung) G (x , y) = θ(1− √ x2 + y 2) (physikalische Größe) { θ(x) = 1 (x>0) 0 (sonst) Würfeln x j = RANDOM_NUMBER ([−1,1]) y j = RANDOM_NUMBER ([−1,1]) π ≈ 1 M M ∑ j =1 θ(1− √ x2j + y 2j ) Übersetzung: Welcher Anteil der Zufallspunkte liegt im Kreis? −1 −1 1 Die Monte Carlo-Methode 2. Ein Beispiel von Daan Frenkel: Durchschnittstiefe des Nils 〈 Niltiefe〉 = Nil ∫ dx ∫ dy f ( x , y) G (x , y ) { f ( x , y) = 1 (Punkt im Nil) 0 (sonst) G (x , y) = z ( x , y) Naives Monte Carlo: Zufallspunkte auf quadratischer Karte 〈 Niltiefe〉 = 1 M M ∑ j=1 f (x j , y j )G (x j , y j ) ist meistens 0! Das ist nicht das, was wir wollen! Die Monte Carlo-Methode 3. “Importance sampling” und Metropolis-Algorithmus Wir wollen: 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N G ( ⃗ri ) f eq ( r⃗1 , ... , r⃗N ) ≈ 1 〈G 〉 ≈ M und nicht: ( M ∑ j=1 1 M M ∑ j=1 G (⃗r i , j ) G ( ⃗r i , j ) f eq ( ⃗r 1, j , ... , ⃗r N , j ) 1 − f eq ( r⃗1 ,... , r⃗n) = e Z E pot ( ⃗ r 1 , ... , r⃗n ) kT ) Wir wollen also Zufallszahlen ⃗r i , j erzeugen, deren Verteilung mit dem Boltzmann-Faktor f eq gewichtet sind. Die Monte Carlo-Methode 3. “Importance sampling” und Metropolis-Algorithmus Der Algorithmus: 1. Starte mit einer beliebigen Anfangskonfiguration: 2. Für jedes Teilchen: Berechne potentielle Energie vor Verrückung r i = ⃗r i , 0 ⃗ E pot,vor = E pot (⃗r 1 ,... ,⃗r N ) x'i xi r1 y ' i = yi + Δ x r2 z 'i zi r3 ( ) () () Verrücke Position zufällig: r 1, r 2, r 3 ... Zufallszahlen zwischen -1 und 1 Berechne Energieänderung: Δ E pot = E pot (⃗r 1 , ... , ⃗r ' i ,... ,⃗r N )−E pot,vor Akzeptiere oder verwerfe die neuen Koordinaten: Δ E pot < 0 : ⃗r i = ⃗r ' i Δ E pot > 0 : ⃗r i = ⃗r ' i nur mit Wahrscheinlichkeit e − Δ E pot kT Wiederhole die Schritte unter 2. für jedes Teilchen. Benutze immer die aktuellen Koordinaten der Teilchen. 3. Berechne die physikalische Größe G 1 = G (⃗r 1 ,... , ⃗r N ) 4. Wiederhole Schritte 2 und 3 M-1 mal 5. Endresultat: 〈G 〉 = 1 M M ∑ j=1 G j Die Monte Carlo-Methode 3. “Importance sampling” und Metropolis-Algorithmus Warum funktioniert dieser Algorithmus? Der Monte Carlo-Schritt (2.) würfelt uns eine neue Konfiguration. Minimale Bedingung: Haben wir schon Konfigurationen erreicht, die mit f eq verteilt sind, so bleiben die neuen Konfigurationen auch mit f eq verteilt. Gedankenexperiment: - Konfigurationen seien numerierbar: (z.B. durch Diskretisierung des Raumes) c k = {⃗r 1 ,... , ⃗r N }k - sehr viele Monte Carlo-Schritte, angewandt auf sehr viele Konfigurationen - Monte Carlo-Schritt definiert uns eine Übergangsrate = Übergangswahrscheinlichkeit pro Schritt zwischen den Konfigurationen p k →l = p(c k → cl ) - Gleichgewicht: Es gilt für alle Konfigurationen ∑k ≠l f eq (cl ) p l → k = Rate, mit der cl verlassen wird “balance” ∑k≠l f eq (ck ) p k →l Rate, mit der cl erreicht wird cl Die Monte Carlo-Methode 3. “Importance sampling” und Metropolis-Algorithmus Warum funktioniert dieser Algorithmus? Gedankenexperiment: - Gleichgewicht, stärkere Bedingung: Es gilt für alle Paare von Konfigurationen f eq (c l ) p l →k = f eq (c k ) p k →l c k , cl “detailed balance” Wenn “detailed balance”, dann auch “balance”! - Also: p l →k f (c ) = eq k = e p k →l f eq (c l ) E pot,l −E pot , k kT - Check Metropolis-Algorithmus: dies wird genau erfüllt! Entwicklung zum Gleichgewicht: Wir haben gesehen, dass Metropolis uns im Gleichgewicht lässt. Aber kommen wir auch dahin, wenn wir mit einer beliebigen Konfiguration beginnen? Das ist nicht einfach zu beantworten, muss in jedem Fall praktisch getestet werden. Die Monte Carlo-Methode 4. Praktische Hinweise zur Implementierung von Metropolis ● ● ● ● Harte Potentiale und “MC move” (Verrückung) : kein Überlapp mit anderen Teilchen → Akzeptanz Überlapp → Ablehnung periodische Randbedingungen: bei “move” und Überlappsbestimmung beachten! “acceptance ratio”: 0.1 ... 0.9 (Bedingung an Δ x !) Observable (Messgrößen) als unabhängige Funktionen definieren. Maximal einmal pro “sweep” (“attempted move for all particles”) messen! Die Monte Carlo-Methode 5. Eine Observable: Paarkorrelationsfunktion r g (r) = lim Δ V → 0 ΔV N ΔV 1 ⋅ ΔV ( N /V ) ( ) normierte Wahrscheinlichkeit dafür, im Abstand r zu einem Testteilchen andere Teilchen zu finden Monte-Carlo Mehode Beispiel: Paarkorrelationsfunktionen für harte Kugeln Programmieraufgabe im VM Physik für Nanoscience Bestimmen Sie die Paarkorrelationsfunktion mit Fehlerbalken für harte Kugeln: ● ● Teilchenzahlen N = O(100) Dichten ρ* = 0.2 , 0.5 und 0.94 ( ρ* = ρσ3, σ = 2 R: Hartkugeldurchmesser ) N= 340, 10 samples mit 100 sweeps ρ σ ∗ = 0.2 2σ 3σ N= 340, 10 samples mit 100 sweeps ρ σ 2σ ∗ = 0.5 3σ Part II Brownian Dynamics Reminder: Statistical Mechanics Beispiel: Verteilung der Moleküle in einer Flüssigkeit N Teilchen ● ● ● jedes Teilchen kann sich im gesamten Raum aufhalten, ist aber mit allen anderen Teilchen “korreliert” Verteilung wird beschrieben durch eine Verteilungsfunktion = Wahrscheinlichkeitsdichte f ( r⃗1 ,... , r⃗N ) Integral über alle Teilchenpositionen ist 1: Verteilungfunktion ist normiert ∫ d 3 r 1 ...∫ d 3 r N ● f ( r⃗1 , ... , r⃗N ) = 1 Eine physikalische Größe sei Funktion der Teilchenkoordinaten: Der Erwartungswert dieser Größe ist dann: 〈G 〉 = ∫ d 3 r1 ...∫ d 3 r N Einfaches Beispiel: Schwerpunkt G = G (⃗ ri) G (⃗ r i ) f ( r⃗1 ,... , r⃗N ) 1 G ( r⃗i ) → N N ∑i=1 r⃗i Selbst wenn f bekannt ist, dann erfordert die Berechnung des Erwartungswert einer physikalischen Größe (wie der Schwerpunkt) im Prinzip eine 3N-dimensionale Integration ! Die Molekulardynamik-Methode 1. Übersicht Ziel: Berechnung von gemittelten physikalischen Größen: 〈G 〉 ≈ lim T →∞ 1 T T ∫0 dt G ( r⃗i (t)) → man benötigt ⃗r i (t ) d.h. ausgehend von einer Anfangsverteilung der Teilchen im Raum, werden die Bewegungsgleichungen integriert: m r⃗¨i = F⃗ i gesamte Kraft auf Teilchen i 2. zeitliche Ableitung → 2 mal integrieren! Schwierigkeiten: - F⃗ i : im allgemeinen schwierig zu bestimmen (WW zwischen N Teilchen!) → Ansatz: berücksichtige nur paarweise Wechselwirkungen N F⃗ i =∑ j=1, j≠i F⃗ij mit F⃗ij =∇ V ( r⃗i , r⃗j ) - zweifache numerische Integration Die Molekulardynamik-Methode 2. Integration mittels Euler-Verfahren Betrachte x-Komponente eines Teilchens: ẍ=F x / m bzw. dv x =F x/ m dt Taylor-Entwicklung der Geschwindigkeit: v x (t )=v x , 0 + dv x dt v x (t )−v x , 0 = Δ v x= | t =t 0 dv x dt ∗(t −t 0 ) | t =t 0 F Δt m Δt diskreter Zeitschritt Änderung der Geschwindigkeit des Teilchens (zweite Integration für die Position analog) Vorteile: - einfaches Verfahren - unaufwendige Implementierung Nachteile: - benötigt kleine Zeitschritte - Stabilität Die Molekulardynamik-Methode 3. Der Algorithmus (Prinzip) Berechnug der Kräfte Integration der Bewegungsgleichungen (neue Position, neue Geschwindigkeit) Ende Berechnung von Observablen integriere n Zeitschritte, mittle über m Durchläufe ein Zeitschritt ein Durchlauf Initialisierung (Position, Geschwindigkeit) Die Molekulardynamik-Methode 4. Brown'sche Dynamik (Teilchen in Flüssigkeiten) Moleküle der Flüssigkeit sind klein gegen die Teilchengröße Explizite Beschreibung aller Flüssigkeitsmoleküle und Teilchen ist aufwändig - viele Stöße pro Zeitintervall - im Prinzip deterministisch, praktisch aber zufällig - Brown'sche Bewegung - Idee: Füge eine zufällige Kraft in die Bewegungsgleichungen ein Newton'sche Dynamik Langevin Dynamik Die Molkulardynamik-Methode 5. Überdämpfte Bewegung kleine Reynoldszahl ρv d Re= η Verhältnis von Trägheitskräften zu Zähigkeitskräften Starke Dämpfung (hohe Reibungskraft) Trägheit wird vernachlässigbar d.h. Teilchen bewegen sich nur unter Einwirkung einer Kraft! Die Dynamik wird reversibel! Bewegungsgleichung (übergedämpfter Grenzfall): sehr einfache Bewegungsgleichung nur eine Integration nötig v⃗i =Γ F⃗ i Mobilität Γ= 1 6 π ηd Die Molekulardynamik-Methode 5. Überdämpfte Bewegung Bewegungsgleichung (übergedämpfter Grenzfall): v⃗i =Γ F⃗ i Gesamtkraft enthält Zufallskraft: F⃗ i =−∇ V + F⃗rand v⃗i =Γ(−∇ V )+Γ F⃗rand zufällige Geschwindigkeit konservative Kräfte Mit Euler Verfahren: Δ r⃗i =(Γ(−∇ V )+Γ F⃗rand )Δ t Δ r⃗i =Γ (−∇ V )Δ t + r rand ⃗ Änderung der Position Position-Langevin Gleichung: zufällige Verschiebung konservative Kräfte (Drift) ⃗ + r rand ⃗r˙ =Γ F ⃗ 〈r 2 〉 Die Molekulardynamik-Methode 6. Mittleres Verschiebungsquadrat - Diffusion D=Γ k B T Einstein (1905) und Smoluchowski (1906): Boltzmann Konstante Diffusionskonstante Messung der Diffusion: Mittleres Verschiebungsquadrat 2 〈r (t )〉= 〈 ⃗r (t )−⃗r (t=0) 〉 damit: D= 1 2 〈 r (t )〉 4t bzw. 2 (gemittelt über alle Teilchen) 〈r 2 (t )〉=4Dt (2D) 1. Ziel der Brown'schen Dynamik: korrekte Beschreibung der Diffusion! Steuerung des MSD über die zufälligen Verschiebungen Breite der Zufalssverteilung soll von Temperatur und Mobilität abhängen 〈 ⃗r rand 〉=0 σ= √ 2 Γ k B T Δ t =√ 2 D Δ t Die Molekulardynamik-Methode 7. Details zur Implementierung – Einheiten, Potentiale Abstände als Vielfache des Teilchendurchmessers: Energie als Vielfaches von k B T damit: V= Ṽ kBT ̃ Ṽ ⃗ =−∇ V =−σ ∇ F kBT üblich: k B T =1 Zeiteinheit entsprechend wählen! Potential muss stetig sein! V ∞ V r̃ r=σ { (( 4ϵ σ V (r) = r 12 6 ) ( )) − σ +c (r< r c) r 0 (sonst) Harte Kugeln unmöglich! “weiche Kugeln” σ r r Die Molekulardynamik-Methode 7. Details zur Implementierung – Zufallskräfte, zufällige Verschiebung Zufällige Verschiebung: 〈 ⃗r rand 〉=0 σ= √ 2 Γ k B T Δ t=√ 2 D Δ t gleichförmig Gauß a Varianz: σ 2 b 1 (b−a)2 Varianz: 12 gleichförmige Verteilung: Zeitschrittweitensteuerung leicht möglich! Die Molekulardynamik-Methode Beispiel: Programmieraufgabe aus dem VM Nanoscience Schreiben Sie ein Programm zur Simulation einer Brown'schen Dynamik - Berechnen sie das mittlere Verschiebungsquadrat a) ohne Wechselwirkung b) mit einer rein repulsiven Wechselwirkung *(c) mit einer zusätzlich attraktiven Wechselwirkung) - Berechnen Sie die Paarkorrelationsfunktion g(r) für den Fall b) und vergleichen Sie das Ergebnis mit Ihren MC-Resultaten (gleiche Dichte, gleiche Teilchenanzahl) - Erstellen Sie “Snapshots” des Systems zur Visualisierung der Brown'sche Bewegung Die Molekulardynamik-Methode Trajektorie eines einzelnen Brownschen Teilchens in 3D Die Molekulardynamik-Methode Mean square displacement eines idealen Gases ind 3D: 〈r 2 (t )〉∼6Dt Die Molekulardynamik-Methode Vergleich MC (Dieter, 500 Teilchen) – BD (Malte, 800 Teilchen), weiches repulsives Potential