HyperAI

LAMMPS-Tutorial Für Den Einstieg: Abschätzen Des Schmelzpunkts Von FCC Cu Mithilfe Der Npt-temperaturregelung

LAMMPS steht für Large-scale Atomic/Molecular Massively Parallel Simulator, ein klassischer molekulardynamischer Simulationscode, der sich auf die Materialmodellierung konzentriert. Es ist für den effizienten Betrieb auf Parallelrechnern und eine einfache Erweiterung und Änderung konzipiert. LAMMPS wurde ursprünglich in den Sandia National Laboratories, einer Behörde des US-Energieministeriums, entwickelt und umfasst heute Beiträge zahlreicher Forschungsgruppen und Einzelpersonen an zahlreichen Institutionen.

本教程使用 LAMMPS CPU 即可运行。

通过本教程的学习,您将能够:

* 理解 npt 控温操作流程
* 使用 dump 和 fix 指令将数据预处理

Effektbeispiele

1. Vorbereitung vor der Operation

Hier stellen wir zunächst einige Eingabedateien, mögliche Funktionstypen und NPT-Temperaturregelungsprozesse vor, die verwendet werden müssen.

1. Eingabedatei

Geben Sie ./melt_u3 ein, die Datei melt.in sieht wie folgt aus:

units            real
dimension        3
boundary         p p p


atom_style    atomic
# 读取铜结构
read_data      cu


#选用 eam potential
pair_style       eam
pair_coeff      * *  Cu_u3.eam

#每隔 100 时间步长于屏幕输出
thermo            100
thermo_style      custom step temp pe press vol lx density
#将原子轨迹输出到文件 md.lammpstrj
dump              2 all custom 100 md.lammpstrj id type x y z


#结构优化
minimize       1.0e-10 1.0e-10 10000 10000

#nvt 压强弛豫
fix                  1      all   nvt temp 1000 1000 100
run                 10000
unfix                1

#npt 体积弛豫
fix                  1      all npt temp 1000 1000 100 iso 1 1 1000
run                 10000
unfix              1


#将温度和体积量分别存储到 t 和 v 中
variable t equal "temp"
variable v equal "vol"


#npt 控温由 1000K 升温至 2000K 。
#升温速率为 (2000-1000)/100000=0.001 K/fs=1K/ps
fix                  1 all npt temp 1000 2000 100 iso 1 1 1000 
fix                  2 all ave/time 100 10 10000 v_t v_v file t_v.txt
run                1000000

2. Möglicher Funktionstyp

Dieses Projekt bietet ein Demonstrationsmodell der EAM-Potentialfunktion

Team

./melt_u3

Entsprechender potenzieller Funktionsbaustein

pair_style       eam
pair_coeff      * *  Cu_u3.eam

3.npt Temperaturkontrollprozess

Der Hauptprozess ist:

NVT-Druckrelaxation, NPT-Volumenrelaxation

#结构优化
minimize       1.0e-10 1.0e-10 10000 10000

#nvt 压强弛豫
fix                  1      all   nvt temp 1000 1000 100
run                 10000
unfix                1

#npt 体积弛豫
fix                  1      all npt temp 1000 1000 100 iso 1 1 1000
run                 10000
unfix              1

NPT-Heizung

#npt 控温由 1000K 升温至 2000K 。
#升温速率为 (2000-1000)/100000=0.001 K/fs=1K/ps
fix                  1 all npt temp 1000 2000 100 iso 1 1 1000 
fix                  2 all ave/time 100 10 10000 v_t v_v file t_v.txt
run                1000000

2. Praktische Bedienungsschritte (am Beispiel einer CPU)

1. Erstellen und starten Sie eine Container-Molekulardynamik-Simulation

1.1 Öffnen Sie die persönliche Benutzeroberfläche von OpenBayes, klicken Sie links auf "High Performance Computing" > oben rechts auf "Neuen Container erstellen"

1.2 Rechenleistung Wählen Sie „CPU“ > „lammps-2024-cpu“ und geben Sie einen Containernamen ein, z. B. lammps > Wählen Sie „Arbeitsbereich“ und klicken Sie auf „Weiter: Rechenleistung auswählen“

1.3 Geben Sie einen Containernamen ein, z. B. „lammps“ > Wählen Sie „Arbeitsbereich“ und klicken Sie auf „Ausführen“.

2. Führen Sie eine molekulardynamische Simulation durch

2.1 Nachdem der Container erfolgreich ausgeführt wurde, klicken Sie links, um den Arbeitsbereich zu öffnen

2.2 Ziehen Sie das komprimierte Paket zum Hochladen in den Dateibereich links

2.3 Öffnen Sie dann das Terminal

2.4 Entpacken (das komprimierte Paket wurde in diesem Container entpackt, Sie können diesen Schritt also überspringen): Geben Sie unzip melt_u3.zip ein, um das komprimierte Paket zu entpacken

unzip melt_u3.zip 

Archive:  melt_u3.zip
   creating: melt_u3/
  inflating: melt_u3/cu              
  inflating: melt_u3/Cu_u3.eam       
  inflating: melt_u3/melt.in         
  inflating: melt_u3/melting.gif     
  inflating: melt_u3/p.plt           
  inflating: melt_u3/readme.md  

2.5 Geben Sie cd melt_u3 ein, um das dekomprimierte Verzeichnis aufzurufen, und verwenden Sie ls, um die Dateien anzuzeigen

ls

Cu_u3.eam  cu  melt.in  melting.gif  p.plt  readme.md

2.6 Lampen ausführen

mpirun -np 2 lmp < melt.in | tee out

2.7 Die Bildschirmausgabe wird in der Out-Datei synchronisiert. Die Gesamtlaufzeit beträgt ca. 5 Minuten.

2.8 Nach Abschluss des Vorgangs können Sie Ausgabedateien wie t_v.txt im Ordner erhalten

2.9 Die Datei t_v.txt wird durch den Fix-Befehl in der Eingabedatei gesteuert.

#将温度于体积量分别存储到 t 和 v 中
variable t equal "temp"
variable v equal "vol"

fix                  2 all ave/time 100 10 10000 v_t v_v file t_v.txt

erzeugen

3. Datenverarbeitung

3.1 Apt-Quelle aktualisieren

apt-get update  --fix-missing

3.2 Geben Sie apt install gnuplot ein, um das Tool gnuplot zu installieren, geben Sie dann y ein und drücken Sie zur Bestätigung die Eingabetaste.

apt install gnuplot

3.3 Führen Sie den Befehl gnuplot p.plt aus, um das TV-Diagramm zu erhalten

gnuplot p.plt

3.4 Doppelklicken Sie auf das linke TV-Diagramm, um den geschätzten Cu-Schmelzpunkt zu erhalten

Es ist ersichtlich, dass der Schmelzpunkt bei etwa 1600 K liegt, was von den tatsächlichen 1357,77 K abweicht. Dies liegt daran, dass die Temperatur zu schnell ansteigt und das Kupfer keine Zeit zum Schmelzen hat.

Die atomaren Bahnen während des Heizprozesses sind gegeben durch

#将原子轨迹输出到文件 md.lammpstrj
dump              2 all custom 1 md.lammpstrj id type x y z

Gespeichert in md.lammpstrj, laden wir es herunter

3.5 Visualisierung mit ovito