mcpField
L
lammps-simulation

lammps-simulation

github.com/fl-sean03其他351 次安装16 周前更新
代码仓库

关于 lammps-simulation

lammps-simulation 是一项用于在工作站运行 LAMMPS 分子动力学模拟的 Agent 技能。它指导查找并引用参数、换算单位、编写输入文件、运行模拟和分析性质;力场参数必须查证来源,不能使用占位值。

主要功能

  1. 01查找力场参数
  2. 02换算参数单位
  3. 03编写带引用的 LAMMPS 输入文件
  4. 04运行 CPU 或 GPU 模拟
  5. 05分析扩散与径向分布

适用场景

  1. 01计算材料的扩散系数
  2. 02查找并记录力场参数
  3. 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,6269qO=-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 式)

示例:液态氩扩散

仅给出:“计算液态氩的自扩散系数”

你要做:

  1. 检索文献,查找氩的 MD 参数

    • 找到 Rahman 1964 这篇代表性论文
    • 提取:ε/kB = 119.8 K,σ = 3.405 Å
    • 记录条件:T = 94.4 K(三相点),ρ = 1.374 g/cm³
  2. 转换参数

    • ε = 119.8 K × 0.001987 kcal/(mol·K) = 0.238 kcal/mol
  3. 计算系统大小

    • N = 864 个原子(Rahman 采用的数量,或选用 256–500 个以加快计算)
    • 根据密度计算盒子尺寸:L = (N × M / (ρ × Nₐ))^(1/3)
  4. 创建包含引用的输入文件

    # 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
    
  5. 运行模拟

    $LMP -in input.lmp
    
  6. 分析 MSD 并提取 D

    • 使用 LAMMPS 的 compute msd,或对轨迹进行后处理
    • D = lim(t→∞) MSD(t) / (6t)
  7. 与文献结果比较

    • 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 势
  1. 搜索:“[metal] EAM potential LAMMPS”
  2. 查看 NIST Interatomic Potentials Repository:https://www.ctcms.nist.gov/potentials/
  3. 下载 .eam.alloy 或 .eam.fs 文件
  4. 在输入文件中引用:
    pair_style eam/alloy
    pair_coeff * * Cu_Zhou04.eam.alloy Cu
    

输入文件结构

  1. 单位和样式——大多数分子系统使用 units real
  2. 结构——read_data,或使用 lattice/create_atoms 创建
  3. 力场——pair_style 和 pair_coeff(由你自行查找)
  4. 动力学——fix nvt/npt/nve、timestep
  5. 输出——thermo、dump
  6. 运行——minimize 或 run

常见问题及解决方法

  1. “Unknown pair style”——该样式未编译进程序。运行 $LMP -h 检查可用样式。
  2. “Bond atom missing”——数据文件中的拓扑错误
  3. “Out of range atoms”——时间步长过大或参数不正确
  4. 温度/能量错误——检查单位是否一致(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