跳至主要内容

lammps 压痕划痕模拟设置参考

 Molecular dynamics study on the effect of electric current on electrically-assisted scratching for crystal copper - IOPscience


原因深入分析如下:

✅ 切削 / 摩擦 / 划痕:局部剧烈变形 → 热量集中

  • 这类过程模拟的是工具与材料接触区域的强烈局部非平衡过程

  • 如果对整个系统控温,会严重抹平局部发热、滑移带的应变能耗散等重要现象;

  • 所以只在边界区域(如底部、侧边)设 thermostat,起到“热沉”作用

  • 文献经典设置就是:

    • 底部固定

    • 边缘 slab 控温

    • 接触区完全不控温,自由演化

✅ 拉伸 / 压缩 / 剪切:全局加载 → 热传导充分

  • 是材料整体在受力,不存在特别“集中”的能量输入区域;

  • 局部发热相对温和,且在 bulk 系统中可以通过自身结构进行导热

  • 实验中常常是等温加载(准静态过程);

  • 所以很多文献就直接用整体 fix nvt 控温,保持恒温环境,简化模拟;

  • 注意有些更精细的研究会改为:只在两端 slab 控温,中间 Newtonian 自由演化

📚 二、典型模拟场景下的控温策略总览

场景类别控温方式控温范围控温方法控温目的注意事项
平衡态热力学性质(如热容、扩散、应力)整体控温全体系fix nvt, fix npt模拟室温等温状态标准EMD方法
热导率(Green-Kubo)整体控温全体系fix nvt (前期平衡), 后期 nve采集能流自相关函数采样期不能控温
热导率(NEMD)区域控温热源/热沉fix langevin, fix heat人为施加温差形成热流中间区自由演化
拉伸 / 压缩 / 剪切整体控温(常用)或局部控温全体系或上下 slabfix nvtlangevin slab保持恒温,避免非真实升温全控温可抹平热应变
应力松弛 / 加热冷却过程整体控温全体系fix nvt 或温度渐变等温退火、升温或冷却控温方式决定退火速率
位错运动 / 缺陷扩散局部控温边界或部分 slabfix langevin + nve释放边界热、维持热稳定性中心缺陷区不控温更合理
相变(熔化、晶化)模拟全控温(渐变)全体系逐步升温/降温控制熔化、结晶过程可加入温度扫描
纳米线断裂 / 拉伸边界 slab 控温(推荐)两端几层原子langevin保持等温,留出自由变形空间中间不控温,保留真实热效应
划痕 / 摩擦 / 切削局部控温工件边界langevinberendsen避免工具接触区降温热量在中间自由扩散
接触行为(纳米压痕)局部控温底部或远离接触区langevin模拟热沉,接触区自由变形顶部加载区不能控温
薄膜沉积 / CVD 生长局部控温衬底层或缓冲层fix langevin, fix temp/rescale保持衬底温度恒定生长原子自由演化;不能控温在成核区
气固界面反应 / 催化区域控温固体部分(催化剂)langevin or nvt保持固体温度,气体自由演化控制过强会影响气体吸附行为
液体/气体系统(如气泡、液桥)整体控温 or 边界 slab视目标而定nvt / langevin模拟热平衡或蒸发冷凝控温方式影响表面张力行为
冲击 / 激波 / 纳米撞击不控温 or 冲击前控温全体系 or 边界fix nve or 短期 nvt模拟绝热冲击或热传导过程控温会破坏冲击热演化
带电粒子 / 电场加载局部控温电极区域或边界fix langevin模拟电热效应背景中心反应区不宜控温


📌 三、控温方式推荐说明(附说明可加进文中)

控温命令适用场景特点
fix nvt平衡MD、整体等温加载Nose–Hoover,广泛使用
fix langevin局部控温、非平衡过程添加随机噪声+阻尼项,物理意义更接近热浴
fix temp/rescale快速冷却/升温会扰动动力学,慎用于非平衡模拟
fix npt热力学平衡研究可控温控压,适合体相研究
fix heat热导率、稳态热流用于构造温差(热源/热沉)

评论

此博客中的热门博文

lammps Pdamp,Tdamp的设置经验

 一张小抄(固体/位错/二维材料都适用) fix             11    all npt temp 0.1 0.1 0.5 tri 0.0 0.0 5   drag 2 tchain 3 pchain 3 保持 Pdamp ≫ Tdamp(通常 10× 左右)。 固体/低温:Tdamp 取 0.5–1 ps,Pdamp 取 5–15 ps;需要更稳就再加大 Pdamp。 所以推荐如下: 0.1K 用1 10 300K 固体 用0.5 5  高温用0.2 2 液体用0.1 1 液体/高温:Tdamp 0.2–0.5 ps,Pdamp 2–5 ps 往往够。 2D(石墨烯等,只控平面 x/y):Pdamp 常用 10–20 ps 起步,z 固定或 z NULL。 观察到体积/压力振荡大:增加 Pdamp 或加 drag 2–3,必要时把 dt 临时降到 0.5 fs。 drag 2、tchain/pchain 3 保留没坏处,确实能再抑制一点振荡;不是硬性必须,但在固体+低温+(可能还有 tri 或剪切)的组合里,“更稳”>“更快”,我一般会开着。

dpgen训练经验

最新的dpgen参考PtCuP /work/qan/kluo/PtCuP 0.1K的第0代采样很重要 可以多重复几次确保99以上的准确率,它是后续高温的基础 单点能计算  ISYM = 2 nohup dpgen run param.json machine.json 1>log 2>err& nohup dpgen init_bulk param.json machine.json  1>log 2>err& 初始数据集产生,只能一个POSCAR的计算 但是可以同时提多个任务,但是每个任务都需要 POTCAR POSCAR 一 一对应才行。  elements 和POSCAR POTCAR保持一致。 " type_map " : [ "Ti" , "C" , "V" , "Cr" , "Nb" , "Mo" ],都写全才行 POSCAR 不需要 改成特定顺序 程序最终生成数据集的时候会根据 type_map自动统一匹配 usage: dpgen [-h] {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simplify,autotest,db,gui} ... dpgen is a convenient script that uses DeepGenerator to prepare initial data, drive DeepMDkit and analyze results. This script works based on several sub-commands with their own options. To see the options for the sub-commands, type "dpgen sub-command -h". positional arguments:   {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simpli...