LAMMPS入门
LAMMPS 真不好学(
lammps 的安装
从 apt 安装即可(或者从源码编译)
lammps 的输入文件
参考:https://lammpstutorials.github.io/tutorials
基本结构
- 初始化
- 体系的定义
- 模拟设置
- 执行
文件中使用行首
#
表示行注释。
初始化
主要设置全局描述使用的单位制、维度定义、原子类型、原子对类型和 cut、周期性等。
一个例子:
1 | # ------------- Initialization |
定义体系
用以创建空间区域和定义体系
一个例子:
1 | # ------------- System definition |
定义了:
- 名为
myreg
的块(block),大小为x=-30~30
,y=-30~30
,z=-0.5~0.5
- 详见region文档:
region ID style args keyword arg ...
- 详见region文档:
- 在
myreg
块基础上建立box
,其中有两种原子:- 详见create_box文档:
create_box N region-ID [keyword value ...]
- 详见create_box文档:
- 通过
create_atoms
命令创建原子:- 详见create_atoms文档:`create_atoms type style args keyword values …
定义模拟计算的设置
用于分子动力学计算的参数配置
一个例子:
1 | # ------------- Simulation settings |
定义了:
- 类型 1、2 原子的质量为 1
- 原子之间的相互作用系数(pair_style lj)的系数。本例中是lj/cut势。参数 1.0 1.0 和 0.5 3.0 分别是 lj/cut 公式中的$\sigma$、$\varepsilon$、
cutoff
(此处没有设置,lj 会使用 pair_style 的值)。 - 对于一般的
pair_coeff I J args
(https://docs.lammps.org/pair_coeff.html) ,参数的含义为原子类型(1 1 和 2 2),也可使用通配符*
,这里一般 I<=J。而如果没有设置不同原子类型的 coeff,则会由同类型的 coeff 数值进行估算。
模拟运行的设置
执行的命令
一个例子:
1 | # ------------- Run |
定义了:
thermo 10
即每 10 个时间步$\text{d} t$进行一次日志。- 详见thermo command,并可通过thermo_style进行日志记录内容的配置。
minimize
是用于对系统能量进行最小化,参数是停止标准。- 详见minimize,参数分别是能量、力、最大 iter、最大能量/力计算次数
进行真正的模拟还需要配置一些模拟的限制,如:
1 | fix mynve all nve |
定义了:
- 分子动力学模拟的系综、恒温方式、平面内的限制
- 时间步长、日志记录 1000 步一次
- 运行 10000 步
对于模拟的一些必要辅助命令
Dangerous builds
的处理:由neigh_modify命令配置更频繁的邻域列表。
1 | # ------------- Simulation settings |
- 记录原子轨迹,通过
dump
命令 (https://docs.lammps.org/dump.html) 进行记录。
1 | # ------------- Simulation settings |
相关文章