HyperAI超神経

LAMMPS 入門チュートリアル: Npt 温度制御による FCC Cu 融点の推定

LAMMPS は、Large-scale Atomic/Molecular Massively Parallel Simulator の略で、材料モデリングに焦点を当てた古典的な分子動力学シミュレーション コードです。並列コンピュータ上で効率的に動作し、拡張や変更が容易になるように設計されています。 LAMMPS はもともと米国エネルギー省の機関であるサンディア国立研究所によって開発されましたが、現在では多くの研究グループや多くの機関の個人からの貢献が含まれています。

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

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

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

エフェクト例

1. 運用前の準備

ここでは、最初に、使用する必要があるいくつかの入力ファイル、潜在的な関数タイプ、および NPT 温度制御プロセスを紹介します。

1. 入力ファイル

./melt_u3 と入力すると、melt.in ファイルは次のようになります。

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. ポテンシャル関数の種類

このプロジェクトは、eam ポテンシャル関数のデモンストレーション モデルを提供します。

チーム

./melt_u3

対応するポテンシャル関数モジュール

pair_style       eam
pair_coeff      * *  Cu_u3.eam

3.npt温度制御プロセス

主なプロセスは次のとおりです。

NVT 圧力緩和、NPT 体積緩和

#结构优化
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の加熱中

#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. 実際の操作手順(CPUを例にします)

1. コンテナ分子動力学シミュレーションを作成して開始する

1.1 OpenBayes パーソナル ユーザー インターフェイスを開き、左側の [ハイ パフォーマンス コンピューティング] > 右上隅の [新しいコンテナの作成] をクリックします。

1.2 コンピューティング能力については、[CPU] > [lammps-2024-cpu] を選択し、ランプなどのコンテナ名を選択し、[ワークスペース] を選択して、[次へ: コンピューティング能力の選択] をクリックします。

1.3 ランプなどのコンテナ名を選択 > 「ワークスペース」を選択し、「実行」をクリックします

2. 分子動力学シミュレーションを実行する

2.1 コンテナが正常に実行されたら、左側をクリックしてワークスペースを開きます

2.2 圧縮パッケージを左側のファイル領域にドラッグしてアップロードします

2.3 次にターミナルを開きます

2.4 解凍 (このコンテナはすでに圧縮パッケージを解凍しています。この手順はスキップできます): unzipmelt_u3.zip と入力して圧縮パッケージを解凍します。

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 cdmelt_u3 と入力して解凍ディレクトリに入り、ls を使用してファイルを表示します。

ls

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

2.6 ランニングランプ

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

2.7 画面出力は out ファイル内で同期され、合計実行時間は約 5 分かかります。

2.8 操作が完了すると、フォルダー内に t_v.txt などの出力ファイルが取得されます。

2.9 t_v.txt ファイルは、入力ファイルの fix コマンドによって制御されます。

#将温度于体积量分别存储到 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

生成する

3. データ処理

3.1 apt ソースを更新する

apt-get update  --fix-missing

3.2 apt install gnuplot と入力して gnuplot ツールをインストールし、y と入力して Enter キーを押して確認します。

apt install gnuplot

3.3 コマンド gnuplot p.plt を実行して TV グラフを取得します

gnuplot p.plt

3.4 左側のテレビ画像をダブルクリックして、Cu の推定融点を取得します。

融点が約 1600K であることがわかりますが、これは実際の 1357.77K とは異なります。これは、温度の上昇が速すぎて、銅が溶ける時間がなかったことが原因です。

加熱プロセス中の原子の軌道は次の式で与えられます。

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

それを md.lammpstrj に保存すると、ダウンロードされます

3.5 ovitoで可視化可能