OVITO专题

OVITO空位、应变、选择与高清出图

从参考晶格统计空位,读取原子应变,并用CPU渲染结构图。

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

下载本篇输入、完整脚本、数据与高清图。解压后在新目录运行,reference保存鸢算科技实际运行的参考结果。

1 相对参考晶格统计空位#

先按结构分析教程运行下载包。reference.dump含32个参考晶格点,vacancy.dump删除1个原子。Wigner–Seitz分析需要显式指定参考文件:

from ovito.io import import_file
from ovito.pipeline import FileSource
from ovito.modifiers import WignerSeitzAnalysisModifier
p = import_file('vacancy.dump')
m = WignerSeitzAnalysisModifier()
m.reference = FileSource()
m.reference.load('reference.dump')
p.modifiers.append(m)
d = p.compute()
print(d.attributes['WignerSeitz.vacancy_count'])
print(d.attributes['WignerSeitz.interstitial_count'])

结果为 1个空位、0个间隙原子。分析需要可靠的参考晶格及晶胞对应,不能对任意两个不同取向、不同形状的模型直接相减。

下载包还将完美晶体重复为864原子后运行FCC位错分析,得到总位错线长0 Å。这个结果用于核对无缺陷参考,不能证明软件已正确识别所有类型位错;真实位错研究应使用充分大的含缺陷模型。

2 应变与非仿射位移#

三个几何帧分别施加0%、1%、2%的x方向伸长,原子坐标与盒长同比例变化。使用:

from ovito.modifiers import AtomicStrainModifier
p = import_file('affine.dump')
p.modifiers.append(AtomicStrainModifier(cutoff=3.5,
    output_strain_tensors=True,
    output_nonaffine_squared_displacements=True))
for frame in range(p.source.num_frames):
    d = p.compute(frame)
    print(frame, d.particles['Strain Tensor'][:, 0].mean())

平均Green–Lagrange应变Exx为 0、0.01005、0.02020,符合[(1+工程应变)²−1]/2。非仿射位移平方最大值小于3×10⁻²⁹ Ų。

OVITO原子应变与已知仿射变换解析结果

这是几何核对,没有进行弛豫或计算应力,不能据此得到弹性模量。

3 选择、切片与位移序列#

from ovito.modifiers import ExpressionSelectionModifier, DeleteSelectedModifier
p = import_file('reference.dump')
p.modifiers.append(ExpressionSelectionModifier(
    expression='ParticleIdentifier <= 4'))
p.modifiers.append(DeleteSelectedModifier())
print(p.compute().particles.count)

选中4个原子并删除后剩28个。SliceModifier(normal=(0,0,1), distance=4.05)的本例切片保留24个原子,边界上的原子包含规则会影响数量。CalculateDisplacementsModifier对三个仿射帧给出的平均平方几何位移为0、0.00143521875、0.005740875 Ų;这里没有物理时间,不能拟合扩散系数。

4 无界面导出高清图#

module purge
module load ovito/3.16.1
export OVITO_THREAD_COUNT=4
export QT_QPA_PLATFORM=ovitoheadless
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json
mkdir ovito-work
cp ovito_examples.py ovito-work/
cd ovito-work
python ovito_examples.py
from ovito.vis import Viewport, TachyonRenderer
p = import_file('reference.dump')
p.add_to_scene()
v = Viewport(type=Viewport.Type.Perspective, camera_dir=(-1,-1,-0.8))
v.zoom_all()
v.render_image(filename='crystal.png', size=(1600,1200),
    renderer=TachyonRenderer(ambient_occlusion=False, shadows=False),
    background=(1,1,1))
p.remove_from_scene()

实际由OVITO导出的1600×1200 FCC结构图,PTM用绿色表示FCC

集群此环境使用ovitoheadless平台和Mesa软件Vulkan驱动,无需桌面会话。上述例图的完整脚本先加入PTM修改器着色。换成自己的轨迹时,可逐帧计算、设置相机后输出图片序列;不要每帧自动缩放,否则动画视角会跳动。

参考:OVITO安装及无界面渲染、分析接口。

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

查看配图

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

100%查看原图 ↗