关于 lammps-simulation
lammps-simulation 是一项用于在工作站运行 LAMMPS 分子动力学模拟的 Agent 技能。它指导查找并引用参数、换算单位、编写输入文件、运行模拟和分析性质;力场参数必须查证来源,不能使用占位值。
主要功能
- 01查找力场参数
- 02换算参数单位
- 03编写带引用的 LAMMPS 输入文件
- 04运行 CPU 或 GPU 模拟
- 05分析扩散与径向分布
适用场景
- 01计算材料的扩散系数
- 02查找并记录力场参数
- 03运行分子动力学模拟
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ fl-sean03/ agentic-science-worker --skill lammps-simulation安装后在 Claude Code 中输入/lammps-simulation确认已加载。
详细介绍
LAMMPS 分子动力学模拟
你正在这台工作站上执行 LAMMPS 分子动力学模拟。
关键:自行查找参数
你必须自行查找力场参数。这里不会提供这些参数。
如何查找力场参数
步骤 1:确定所需信息
- 什么材料?(氩、水、铜等)
- 要研究什么性质?(扩散、结构、热导率)
- 什么条件?(温度、压力)
步骤 2:检索文献
Good search queries:
- "[material] lennard-jones parameters molecular dynamics"
- "[material] force field molecular dynamics"
- "[material] interatomic potential parameters"
- "[water model] parameters" (for TIP3P, TIP4P, SPC/E, etc.)
- "[metal] EAM potential"
步骤 3:查找权威来源
| 材料 | 代表性论文 | 关键数值 |
|---|---|---|
| 液态氩 | Rahman 1964,Phys. Rev. 136,A405 | ε/kB=119.8 K,σ=3.405 Å |
| TIP4P 水 | Jorgensen 1983,J. Chem. Phys. 79,926 | 参见论文表 I |
| TIP3P 水 | Jorgensen 1983(同一篇论文) | ε=0.1521 kcal/mol,σ=3.1507 Å |
| SPC/E 水 | Berendsen 1987,J. Phys. Chem. 91,6269 | qO=-0.8476e,ε=0.1553 kcal/mol |
步骤 4:必要时下载补充材料 使用 Playwright 或 WebFetch 获取包含参数表的 SI。
步骤 5:转换单位
kJ/mol → kcal/mol: divide by 4.184
eV → kcal/mol: multiply by 23.06
K → kcal/mol: multiply by 0.001987 (kB)
步骤 6:在输入文件中注明来源
# Lennard-Jones parameters for liquid argon
# Source: Rahman, Phys. Rev. 136, A405 (1964)
# ε/kB = 119.8 K = 0.238 kcal/mol, σ = 3.405 Å
pair_coeff 1 1 0.238 3.405
二进制文件位置
LAMMPS 通过环境变量配置(在 .claude/settings.json 或 shell 中设置):
# From environment variable
LMP="${LMP:-lmp}" # Falls back to 'lmp' in PATH
# Or check your config
echo $LMP
执行命令
CPU:
$LMP -in input.lmp
GPU(用于大型系统):
$LMP -sf gpu -pk gpu 1 neigh yes -in input.lmp
完整工作流(Agent 式)
示例:液态氩扩散
仅给出:“计算液态氩的自扩散系数”
你要做:
-
检索文献,查找氩的 MD 参数
- 找到 Rahman 1964 这篇代表性论文
- 提取:ε/kB = 119.8 K,σ = 3.405 Å
- 记录条件:T = 94.4 K(三相点),ρ = 1.374 g/cm³
-
转换参数
- ε = 119.8 K × 0.001987 kcal/(mol·K) = 0.238 kcal/mol
-
计算系统大小
- N = 864 个原子(Rahman 采用的数量,或选用 256–500 个以加快计算)
- 根据密度计算盒子尺寸:L = (N × M / (ρ × Nₐ))^(1/3)
-
创建包含引用的输入文件
# Liquid Argon MD - Self-diffusion calculation # Parameters from Rahman, Phys. Rev. 136, A405 (1964) units real atom_style atomic boundary p p p # Create FCC lattice, will melt to liquid lattice fcc 5.26 # ~1.374 g/cm³ region box block 0 6 0 6 0 6 create_box 1 box create_atoms 1 box mass 1 39.948 # Argon # LJ potential - Rahman 1964 parameters pair_style lj/cut 10.0 pair_coeff 1 1 0.238 3.405 # ε=0.238 kcal/mol, σ=3.405 Å # Initialize velocities at target temperature velocity all create 94.4 12345 # Equilibration fix 1 all nvt temp 94.4 94.4 100.0 timestep 2.0 thermo 100 run 10000 # Production with trajectory for MSD reset_timestep 0 dump 1 all custom 100 trajectory.lammpstrj id type x y z run 50000 -
运行模拟
$LMP -in input.lmp -
分析 MSD 并提取 D
- 使用 LAMMPS 的 compute msd,或对轨迹进行后处理
- D = lim(t→∞) MSD(t) / (6t)
-
与文献结果比较
- Rahman 1964:D ≈ 2.43 × 10⁻⁵ cm²/s
- 你的结果应在约 10% 的误差范围内
常见 pair 样式及适用场景
| Pair 样式 | 适用对象 | 备注 |
|---|---|---|
lj/cut | 惰性气体、简单流体 | 需要从文献中查找 ε、σ |
lj/cut/coul/long | 带电荷的分子系统 | 与 kspace 配合使用 |
eam | 金属 | 从文献中下载 .eam 文件 |
tersoff | 共价材料(Si、C 等) | 使用已发表的参数文件 |
reaxff | 反应系统 | 需要力场文件 |
查找金属的 EAM 势
- 搜索:“[metal] EAM potential LAMMPS”
- 查看 NIST Interatomic Potentials Repository:https://www.ctcms.nist.gov/potentials/
- 下载 .eam.alloy 或 .eam.fs 文件
- 在输入文件中引用:
pair_style eam/alloy pair_coeff * * Cu_Zhou04.eam.alloy Cu
输入文件结构
- 单位和样式——大多数分子系统使用
units real - 结构——
read_data,或使用lattice/create_atoms创建 - 力场——
pair_style和pair_coeff(由你自行查找) - 动力学——
fix nvt/npt/nve、timestep - 输出——
thermo、dump - 运行——
minimize或run
常见问题及解决方法
- “Unknown pair style”——该样式未编译进程序。运行
$LMP -h检查可用样式。 - “Bond atom missing”——数据文件中的拓扑错误
- “Out of range atoms”——时间步长过大或参数不正确
- 温度/能量错误——检查单位是否一致(real、metal 或 lj)
性质计算
扩散系数
compute msd all msd
fix msd_out all ave/time 100 1 100 c_msd[4] file msd.dat
然后:D = MSD 随 t 变化曲线的斜率 / 6
径向分布函数
compute rdf all rdf 100
fix rdf_out all ave/time 100 1 100 c_rdf[*] file rdf.dat mode vector
温度/压力
默认已包含在 thermo 输出中。
核心原则
不要使用占位参数。 每一行 pair_coeff 都应在注释中注明出处。如果找不到参数,请继续深入搜索,或说明文献中没有相关参数。
评论
支持 Markdown