跳至主要内容

周期性位错构建注意事项dipole quadrupole

 注意:OVITO给出的位错线和伯格斯矢量的方向(不满足右手法则)很可能是错误的,记得自己检验一下。

通常位错线的方向为出纸面的方向,即垂直纸面向外的方向。

而且位错移动步长和伯格斯矢量的长度没有必然相等的关系,一般移动距离小于伯格斯矢量(由于畸变的原因)

4分钟学会判断位错类型_哔哩哔哩_bilibili






1. 先设计位错矩阵分布,从而确定需要的raw晶体形状

2. atomsk .\ZnSraw.cif ZnSraw.cfg 转换成cfg格式

3.在OVITO里重置原点 为0,只是为了读原子坐标不需要输出文件。atomsk里用的始终是相对位置,所以这样可以在OVITO里直接读取原子位置,从而算出位错的具体相对位置(很重要)

The given position should not correspond exactly to an atom position, otherwise that atom would have an infinite displacement. If you obtain strange results like discontinuities, holes or large displacements, then change the position of the dislocation.(构建后可以适当调整位置)

4.相信atomsk,完全没问题。而且注意用edge(保持原子数不变)。


对位错环的理解:

1.位错环有唯一一个伯格斯矢量

2.由于位错环是闭合曲线,所以位错环上对向的位错线方向相反,且互为正负位错。

3.方向(伯格斯矢量)相反的两个位错移动到同一点,则会双双消失,或称“湮灭”,若没有与其他位错发生作用或移到晶体表面,那么任何单个位错都不会自行“消失”(即伯格斯矢量始终保持守恒)。

4.所以某种意义上来说,晶体内容更容易出现的是独立的位错环,而不是普通的位错线,因为很难想象有这么长的位错线贯穿整个晶体。因为位错线不可能在晶体内部中断吧?
5.位错线必须是连续的,它或者起止于晶体表面(或晶界),或形成封闭回路(位错环),或者在结点处和其它位错相连。由于景深的关系,我们通常在高分辨或者使用双束条件获得的都是一段位错。
6. 所以在TEM或者实验中观察到的正负位错对,不一定是单一独立的两个位错线,很有可能是属于位错环的一部分(对面)。




评论

此博客中的热门博文

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 人为施加温差形成热流 中间区自由演化 ✅ 拉伸 / 压缩 / 剪切 整体控温(常用)或局部控温 全体系或上下 slab fix nvt 或 langevin slab 保持恒温,避免非真实升温 全控温可抹平热应变 ✅ 应力松弛 / 加热冷却过程 整体控温 全体系 fix nvt 或温度渐变 等温退火、升温或冷却 控温方式决定退火速率 ✅ 位错运动 / 缺陷扩散 局部控温 边界或部分 slab ...

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...