HyperAI초신경

LAMMPS 시작하기 튜토리얼: Npt 온도 제어를 사용하여 FCC Cu의 녹는점 추정

LAMMPS는 대규모 원자/분자 대규모 병렬 시뮬레이터(Large-scale Atomic/Molecular Massively Parallel Simulator)의 약자로, 재료 모델링에 초점을 맞춘 고전적인 분자 동역학 시뮬레이션 코드입니다. 병렬 컴퓨터에서 효율적으로 실행되도록 설계되었으며, 쉽게 확장하고 수정할 수 있습니다. LAMMPS는 원래 미국 에너지부 산하 기관인 Sandia National Laboratories에서 개발되었지만, 현재는 다양한 기관의 많은 연구 그룹과 개인의 기여가 포함되었습니다.

本教程使用 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"를 선택하고 컨테이너 이름(예: lampps)을 지정합니다. > "작업 공간"을 선택하고 "다음: 컴퓨팅 파워 선택"을 클릭합니다.

1.3 lampps와 같은 컨테이너 이름을 지정합니다. > "작업 공간"을 선택하고 "실행"을 클릭합니다.

2. 분자 동역학 시뮬레이션 수행

2.1 컨테이너가 성공적으로 실행되면 왼쪽을 클릭하여 작업 공간을 엽니다.

2.2 압축된 패키지를 왼쪽 파일 영역으로 끌어서 업로드합니다.

2.3 그런 다음 터미널을 엽니다.

2.4 압축 해제(압축된 패키지는 이 컨테이너에서 압축 해제되었으므로 이 단계를 건너뛸 수 있음): 압축된 패키지의 압축을 해제하려면 unzip melt_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 cd melt_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 왼쪽 TV 그래프를 두 번 클릭하여 추정 Cu 녹는점을 얻으십시오.

녹는점은 실제 1357.77K와 다르게 1600K 정도인 것을 알 수 있습니다. 이는 온도가 너무 빨리 상승하여 구리가 녹을 시간이 없기 때문입니다.

가열 과정 동안의 원자 궤적은 다음과 같습니다.

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

md.lammpstrj에 저장되어 있으니 다운로드합니다.

3.5 ovito를 사용한 시각화