LAMMPS 专题

LAMMPS近场动力学弹性与断键

用两个材料点演示PMB视界、拉伸、临界伸长和damage/atom输出,区分力密度与实际作用力。

更新于 2026-11-09约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

近场动力学用有限视界内材料点之间的相互作用描述连续体。本例采用PMB模型,只有两个材料点,目的是看懂弹性伸长、临界断键和损伤输出;它不是裂纹扩展或材料断裂韧性的预测模型。

1. 运行共同资料包#

下载完整输入、运行脚本和绘图包,解压进入 lammps-mesoscale,在已分配的CPU作业内执行:

bash run.sh

也可 sbatch job.slurm 提交。CPU分区按56核整节点分配和计费;本例只用一个线程,使用 lammps/30Sep2026-8173m 的普通CPU样式、oneAPI2024.2构建,绘图用 sisl/0.16.4。本例不是GPU加速测试。CPU队列处于维护时请待恢复后提交,不在登录节点做生产模拟。

脚本按输入逐项运行,在 raw/ 保留原生输出,在 results/ 输出全数组和汇总,在 plots/ 生成本次图片。三个教程共用一个包,完整运行一次后只读结果和重画即可。

2. 完整输入#

cat inputs/peri-stretch-break.lmp
units si
atom_style peri
boundary f f f
atom_modify map array
lattice sc 0.001
region box block -0.003 0.004 -0.003 0.003 -0.003 0.003 units box
create_box 1 box
create_atoms 1 single 0 0 0 units box
create_atoms 1 single 0.001 0 0 units box
set group all density 2200
set group all volume 1e-9
pair_style peri/pmb
pair_coeff * * 1e18 0.002 0.02 0
neighbor 0.0001 bin
group right id 2
compute damage all damage/atom
thermo 1
thermo_modify norm no
run 0
write_dump all custom initial.dump id type x y z fx fy fz c_damage modify sort id format float %.17g
displace_atoms right move 0.00001 0 0 units box
run 0
write_dump all custom elastic.dump id type x y z fx fy fz c_damage modify sort id format float %.17g
displace_atoms right move 0.00003 0 0 units box
run 0
run 0
write_dump all custom broken.dump id type x y z fx fy fz c_damage modify sort id format float %.17g

初始距离1mm,每个点的代表体积10⁻⁹m³、密度2200kg/m³;视界2mm。pair_coeff 中1e18是PMB微模量系数,并不是直接的杨氏模量。临界伸长设为0.02,最后参数0关闭与最小伸长相关的修正,方便看清阈值。此处几何下视界边缘体积修正因子为1。

3. 三个状态如何衔接#

先 run 0 建立初始材料点邻接关系,再把右点向外移0.01mm到1%伸长,读取弹性力与损伤;继续移0.03mm达到4%伸长,超过2%阈值后断键,再更新一次力。

cat raw/peri-stretch-break/elastic.dump
cat raw/peri-stretch-break/broken.dump
状态 伸长 每点损伤 原生力密度大小/(N/m³)
初始 0 0 0
弹性 1% 0 1×10⁷
断键后 4% 1 0

这里原生 fx 是材料点的力密度。本例乘代表体积10⁻⁹m³后,对应作用力 0.01N;不能把原生1e7直接写成1e7N。

实际PMB弹性与断键状态

compute damage/atom 根据失去的材料点相互作用计算损伤。只有一个邻接伙伴时,断开它就从0变成1;真实三维模型中的损伤通常会有中间值。

4. 复查结果并重画#

module load sisl/0.16.4
python -B verify.py --reference
python -B plot.py

本例的位移通过 displace_atoms 直接施加、各状态用零步更新,因此没有加载速率或动态裂纹速度。做实际断裂问题时,需要建立足够大的离散材料、设置加载和积分器,检查点间距、视界、边界效应及材料参数。

方法定义可参阅官方近场动力学样式。其他介观例子见颗粒接触、DPD流体、SPH密度和SPH压力。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗