Wie bestimme ich das Gleichgewicht in einer Monte-Carlo-NVTNVTNVT-Simulation?

Ich führe eine NVT-Monte-Carlo-Simulation (Konstante Anzahl von Partikeln, Volumen und Temperatur) (Metropolis-Algorithmus) von Partikeln in zwei Dimensionen durch, die über das Lennard-Jonse-Potential interagieren

U = 4 ( 1 R 12 1 R 6 ) ,
(in reduzierten Einheiten). Randbedingungen sind periodisch.

Aus dieser Simulation berechne ich den momentanen Druck und die potentielle Energie. In den ersten Schritten ist das System nicht im Gleichgewicht, also muss ich mit der Mittelwertbildung beginnen, nachdem das System im Gleichgewicht ist.

Ich starte meine Simulation von einer zufälligen Konfiguration.

Meine Frage : Auch nachdem das System ein Gleichgewicht erreicht hat, schwankt es um dieses Gleichgewicht. Diese Schwankungen können für große Temperaturen groß sein. Woher weiß ich also, dass ich das Gleichgewicht erreicht habe?

Hier sind einige Beispiele für die Kurve:Die Energie vs.  Simulationsschritt, für eine hohe Temperatur (wärmere Farbe ist höhere Dichte)

Die Energie vs. Simulationsschritt, für eine hohe Temperatur (wärmere Farbe ist höhere Dichte)
Die Energie vs.  Simulationsschritt, für eine niedrige Temperatur (wärmere Farbe ist höhere Dichte)

Die Energie vs. Simulationsschritt, für eine niedrige Temperatur (wärmere Farbe ist höhere Dichte)Die Energie vs.  Simulationsschritt, für eine hohe Temperatur, nur für niedrige Dichten.  In diesem Diagramm ist es schwieriger zu sagen, ob wir das Gleichgewicht erreicht haben (wärmere Farbe bedeutet höhere Dichte).

Die Energie vs. Simulationsschritt, für eine hohe Temperatur, nur für niedrige Dichten. In diesem Diagramm ist es schwieriger zu sagen, ob wir das Gleichgewicht erreicht haben (wärmere Farbe bedeutet höhere Dichte).

Das ist eine gute Frage, aber die Antwort in der wissenschaftlichen Literatur darauf, wann ein System ins Gleichgewicht gekommen ist, lautet „wenn Sie Lust dazu haben“. In der Tat kann man leicht Leute finden, die Ergebnisse neuer Phänomene veröffentlichen, obwohl sie in Wirklichkeit nur Artefakte des Nichtgleichgewichts sind. Selbst wenn Sie einen "stationären Zustand" erreicht haben, haben Sie nicht garantiert einen repräsentativen Zustand des Minimums der freien Energie gefunden. Als Beispiel dient eine zufällig unterkühlte Flüssigkeit (z. B. durch Finite-Size-Effekte).
interessanter anderer Beitrag mit der gleichen Frage, aber in einem theoretischen Kontext Funktionen und Längenskalen
Diese Frage ist anders als meine, denn mein Gleichgewicht hat Schwankungen...
Es ist alles in meiner Frage ... "Ich führe eine NVT-Monte-Carlo-Simulation (konstante Anzahl von Partikeln, Volumen und Temperatur) (Metropolis-Algorithmus) von Partikeln in zwei Dimensionen durch, die über das Lennard-Jonse-Potential (U = 4 (1r12− 1r6)U=4(1r12−1r6), in reduzierten Einheiten). Randbedingungen sind periodisch.“ Ich verstehe nicht, was Sättigungsparameter sind. Die Grafiken zeigen 500000 Läufe
@igael-Sättigung ist, wenn das thermische Gleichgewicht erreicht ist. In einer Monte-Carlo-Simulation versuchen wir, ein Integral abzuschätzen: e u k T u D u wobei das Integral über alle möglichen Zustände ist. also erstellen wir eine Reihe von Systemen, die die wahrscheinlichsten Konfigurationen darstellen (die thermischen Gleichgewichtskonfigurationen). Wir geben jeder Konfiguration eine Wahrscheinlichkeit von e u k T um den Exponentialterm widerzuspiegeln. Die "Sättigung" ist also erreicht, wenn wir genügend Konfigurationen des Systems simuliert haben, sodass wir sagen können, dass unsere endliche Summe das unendliche Integral widerspiegelt. Ich frage, wann es erreicht ist

Antworten (5)

Wie ich sehe, wurde diese Frage erneut auf die Homepage verschoben. Ich habe kürzlich eine ähnliche Frage unter https://math.stackexchange.com/a/2920136/575517 beantwortet , also werde ich hier die Essenz davon geben, falls es jemand hilfreich findet.

Diese Frage "Woher weiß ich, dass der Simulationslauf das Gleichgewicht erreicht hat?" wird oft beschönigt und als „Faustregel“ belassen. Wie in anderen Antworten besprochen, wird normalerweise verlangt, dass eine "Äquilibrierungs-" oder "Einbrennzeit" mindestens so lang wie die Korrelationszeit sein sollte τ A der Variablen A von Interesse oder, noch besser, alle interessierenden Variablen (dauert am längsten τ ). Man verwirft diesen Teil der Trajektorie und beginnt danach, Mittelwerte zu akkumulieren.

Probleme hier sind, dass man eine Schätzung braucht τ A im Voraus, und auch, dass dieses Argument lose auf der Theorie der linearen Reaktion basiert : nämlich, dass die Entspannung eines leicht gestörten Zustands bis zum Gleichgewicht auf einer durch gegebenen Zeitskala erfolgt τ A , was eine Eigenschaft der Gleichgewichtszeitkorrelationsfunktion ist. Es gibt jedoch keine Garantie dafür, dass die Entspannung von einer willkürlich erstellten Anfangskonfiguration diesem Gesetz folgt τ A könnte eine vernünftige Anleitung geben.

Mir ist jedoch mindestens ein Artikel bekannt, in dem ein Versuch von John Chodera unternommen wurde, ihn objektiv anzugehen: https://doi.org/10.1101/021659 , der auch in J Chem Theo Comp, 12, 1799 veröffentlicht wurde (2016) .

Ich werde hier nicht versuchen, die Mathematik zu reproduzieren, aber die Grundidee besteht darin, das Verfahren zum Schätzen statistischer Fehler in korrelierten Datenfolgen zu verwenden - was das Schätzen der Korrelationszeit (oder der statistischen Ineffizienz, dh des Abstands zwischen effektiv unabhängigen Stichproben) beinhaltet ) - und auf das Intervall anwenden ( T 0 , T max ) die den Zeitraum zwischen dem (vorgeschlagenen) Ende der Äquilibrierungsperiode abdeckt, T 0 , und das Ende des gesamten Datensatzes, T max . Diese Berechnung verhält sich auf vorhersagbare Weise, wenn sich der Datensatz im Gleichgewicht befindet: die Schwankungen δ A Δ T 2 eines endlichen Zeitmittels

δ A Δ T = A Δ T A , A Δ T = 1 Δ T T T + Δ T D T A ( T )
hängen in bekannter Weise vom Mittelungsintervall ab Δ T . Die Zeit entsteht T innerhalb des interessierenden Intervalls gewählt werden, ( T 0 , T max Δ T ) ; die Schwankungen werden aus allen Perioden berechnet Δ T in diesem Intervall liegen. Das Verfahren führt diese Berechnung systematisch in Abhängigkeit von durch T 0 , wodurch er von einem anfänglich hohen Wert zu Beginn des Laufs verringert wird. An einem gewissen Punkt wird erwartet, dass Abweichungen vom erwarteten Verhalten zu sehen sind. Dieser Punkt wird als Ende der Äquilibrierungsperiode angesehen.

Wie auch immer, das Lesen dieses Papiers sollte hilfreich sein, um dieses Problem zu klären. Der Autor stellt auch ein Stück Python-Software zur Verfügung, um die Berechnung automatisch zu implementieren, so dass es auch von praktischem Nutzen sein kann.

Wie viele Kommentare sagen, gibt es keine einzige und beste Antwort, jede verwendet eine andere Methode. Die Lösung, die Sie gefunden haben, ist gut, aber wie definieren Sie, wann das Gleichgewicht erreicht ist?

Dazu müssen Sie die letzten Werte der Simulation (Energie, Druck usw.) überprüfen, also wählen Sie eine Reihe früherer Konfigurationen aus, die Sie überprüfen werden:

N = 10

Und mit den Parametern, die Ihr Gleichgewicht definieren, berechnen Sie den Mittelwert und die Standardabweichung:

P , Δ P 2

Diese Werte sollten sich nach einigen Schritten nicht zu sehr ändern. Wenn Sie einige Mittelwerte und ihre Varianz speichern, werden Sie sehen, dass der Mittelwert gegen den Wert des Systems konvergiert und die Varianz über den zeitlichen Mittelwerten bei jedem Schritt gegen Null geht.

v A R ( P ich , P ich 1 , . . . , P ich N ) 0

Sie müssen also als Parameter für das Gleichgewicht wählen, wie viele Schritte Sie für den Mittelwert berücksichtigen und wie viele Mittelwerte Sie verwenden, um die Varianz zu berechnen.

PD: Die Schwankungen, nachdem das System das Gleichgewicht erreicht hat, sind normal und auch, dass die Schwankungen mit der Temperatur zunehmen.

Ich bin mir nicht sicher, ob ich dich richtig verstehe. wenn Sie "Mittelwert" sagen ( < P > ) meinst du einen Durchschnitt über N Schritte der Simulation? was meinst du mit "temporär"? es ist kein zeitaufwand...
Ich meine, Sie machen einen Durchschnitt für einige Werte von <P> während der letzten N Schritte (dieses N ist etwas, was Sie entscheiden, die letzten 10 Schritte oder 20) und dieser Durchschnittswert muss konvergieren. Sie speichern also einige Durchschnittswerte, um die Varianz erneut zu überprüfen, die eine kleine Zahl sein sollte (wieder eine andere Entscheidung, die Sie treffen sollten, 1e-3? 1e-2? 1e-5?). Ich weiß, es ist chaotisch, dass Sie mit einigen statistischen Daten mehr Statistiken machen ...
Und ich entschuldige mich, weil ich Mittelwert schrieb, als ich Mittelwert meinte, und danke für die Ausgabe
Ok jetzt verstehe ich dich. Es scheint logisch, dass die Varianz auf Null gehen sollte, aber was ist, wenn dies nicht der Fall sein muss? Da wir vielleicht Temperatur im Gleichgewicht haben, schwankt das System mit einer konstanten Varianz größer als Null? Es ist nicht einmal logisch zu glauben, dass die Varianz nicht konstant ist! Es sind schließlich thermische Schwankungen

Du kannst es nicht genau wissen.

In der Simulation ändert sich das System ständig chaotisch, und im Allgemeinen ist es möglich, dass nach einer gewissen Zeit relativer Konstanz makroskopischer Variablen einige radikale Änderungen wie ein Phasenübergang auftreten.

Wenn das System jedoch sehr einfach ist, wie z. B. hartes Kugelgas, kann man theoretisch berechnen, wie der Gleichgewichtszustand für gegebene Randbedingungen wie Volumen und Temperatur aussehen sollte. Wenn sich dann die aus der Simulation abgeleiteten Werte diesen theoretischen Werten annähern, können wir sagen, dass wir höchstwahrscheinlich einen Übergang zum Gleichgewicht beobachten und nichts Überraschendes passieren wird.

Wenn wir die Werte von Variablen im thermodynamischen Gleichgewicht nicht kennen, können wir nicht sagen, dass sich das System diesem nähert.

Es gibt jedoch auch die Idee des eingeschränkten thermodynamischen Gleichgewichts, das nur für einen begrenzten Zeitraum definiert ist, an dem wir interessiert sind. Das System befindet sich dann im Gleichgewicht, wenn die Schätzung der durchschnittlichen kinetischen Energie im gesamten Raumbereich des Systems einheitlich ist und beobachtet wird Schwankungen in Zeit und Raum stimmen mit der Boltzmann-Verteilung überein, und dasselbe gilt für andere interessierende physikalische Größen (durchschnittlicher Druck, potenzielle Nettoenergie).

Größere Schwankungen der thermodynamischen Funktionen bei steigender Temperatur halte ich für völlig normal. Wobei ich mir nicht so sicher bin, ob das zu einer realistischen Situation gehört oder nicht...

Wenn Sie die Form der resultierenden Partikelverteilungsfunktion kennen, können Sie erraten, ob Ihr System das Gleichgewicht erreicht hat, indem Sie seinen Mittelwert berechnen, indem Sie die Verteilungsfunktionsberechnung alle n Zeitschritte durchführen (300 Zeitschritte waren a gut n in meinen Monte-Carlo-Simulationen).

Sie müssen berücksichtigen, dass eine Monte-Carlo-Simulation bereits ein Gleichgewichtssystem simulieren soll, sodass Sie bei ihrer Verwendung keine dynamischen Phänomene erwarten sollten (Sie können das Auftreten von Blasen in der Masse einer Mischung nicht beobachten, z Beispiel).

Wenn Sie das System für einen großen Temperaturbereich einstellen, könnte eine Änderung des Verschiebungsparameters eine gute Idee sein, da die Akzeptanzrate vom Verhältnis (neue Energie-alte Energie)/T abhängt.

Eine Antwort fand ich im Buch Monte-Carlo-Simulationen in der statistischen Physik - eine Einführung (von K. Binder, DWHermann), Seite 35.

Um das Gleichgewicht zu bestimmen, müssen wir die Simulation ein paar Mal ausführen, sagen wir mal N R u N mal. Wir definieren den Durchschnitt < > T als Durchschnitt nach T Schritte der Simulation:

A ( T ) T = 1 N R u N l = 1 N R u N A ( T , l )
Wobei A eine physikalische Eigenschaft ist, zum Beispiel die Energie oder der Druck. A ( T , N ) ist der Wert dieser Eigenschaft in Zeit (Simulationsschritt) t der n-ten Simulation. Nun definieren wir die "nichtlineare Relaxationsfunktion":
ϕ A ( k ) = A ( k ) T A ( ) T A ( 0 ) T A ( ) T
Wo A ( ) T ist der Durchschnitt von A im letzten Simulationsschritt, z N R u N Simulationen. Diese Relaxationsfunktion geht nach einem gewissen Schritt t auf Null. Die Relaxationszeit dieser Funktion ist:
τ A = 0 ϕ ( T ) D T
Ich bin mir immer noch nicht sicher, warum dies die Entspannungszeit ist, ich würde mich freuen, wenn es mir jemand erklären könnte. Wenn dies also die Entspannungszeit ist, dann muss die Zeit, in der das System das Gleichgewicht erreicht, viel größer sein als diese Zeit:
T S ich M u l A T ich Ö N τ A
Da verschiedene Eigenschaften unterschiedliche Relaxationszeiten haben können, müssen wir die langsamste Relaxationszeit berücksichtigen, um das System ins Gleichgewicht zu bringen.

Zu deiner Frage: Das typische Entspannungsverhalten ist so etwas wie ein Exponential ϕ = exp T / τ . Sie sehen, dass Sie schließen können τ durch Integration. Das Problem (und ich bin mir sicher, dass Mr. Binder darauf hinweist) ist: Wie man wählt A ? Sie könnten einfach nach den größten Entspannungszeiten suchen, aber das wird sich als nicht praktikabel herausstellen. Sie müssen also die Zeitskala finden, auf der sich die für Ihr Problem relevanten Prozesse entspannt haben.