【LAMMPS系列】径向分布函数RDF与结构因子SF

图片

大家好,我是粥粥。

这几天,用PYTHON写了一个计算SiO2的O-Si间的偏径向分布函数(partial RDF)和针对不同Si近邻(neighbor1,neighbor2…neighbor6)的偏偏径向分布函数(partial partial RDF),自己起的名字。如图1,以此可以枚举SiO2非晶化过程中,原子间的拓扑约束,并考察其变化。此外,根据实验得到偏结构因子计算出偏径向分布函数,就可以根据我MD模拟的结果,来对应实际材料中的难以计算和预测的性质。

图片

图1 | SiO2辐照后的偏RDF(O-Si)

可问题在于为什么计算出的partial RDF不趋向于1,思考过后我发现,由于在对统计计数后的数据进行归一化的时候,是除以全局平均数密度(Si和O)。而此时只计数了Si,所以计算出的partial RDF应该趋向于(Si数量/Si和O总数量),在此处即1/3,看起来就相当合理了。所有的partial RDF加起来的pair RDF才会趋向于1。但当统计距中心原子的最远距离不是无限远或整个盒子的大小时,pair RDF会趋向于0。因为超过自己设置的最远距离的pair atom根本没有统计计数,此时的数值当然为0。

RDF的意义

径向分布函数是每个球层(shell)位置的被统计的组的原子的数密度与平均数密度的比值。通俗来讲是从一个原子出发, x轴表示离开这个原子的距离,y轴表示在某个距离上出现原子的个

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一个用于分子动力学模拟的软件包。径向分布函数(Radial Distribution Function)是分子模拟中一个常用的工具,能够描述分子之间的相互作用和排列情况。 MATLAB是一种科学计算和数据可视化的编程语言,可以用来编写计算径向分布函数的脚本。 编写LAMMPS径向分布函数的MATLAB计算脚本主要分为以下几个步骤: 1. 读取LAMMPS模拟的分子动力学轨迹文件。使用MATLAB中的文件读取函数,例如'load'函数,将轨迹文件中的原子坐标数据读入MATLAB中。 2. 选择需要计算径向分布函数的物种和原子数。根据具体模拟体系的需要,选择感兴趣的分子种类,并统计其在模拟系统中的个数。 3. 划定径向分布函数的半径范围和间隔。在分子模拟中,通常会将系统体积划分为一个个的球壳,计算每个球壳内分子的个数。设置不同的半径范围和间隔可以更好地描述分子之间的排列情况。 4. 遍历每一个时间步和每个分子,统计其与其他分子的距离。计算每个分子与其他分子之间的距离,并按照距离值归类到相应的球壳中。 5. 统计每个球壳内分子的个数,并计算径向分布函数。统计每个球壳内分子的个数,并根据总体分子数和球壳体积计算出归一化的径向分布函数值。 6. 对每个时间步进行求和和平均。若存在多个时间步骤,可对每一个时间步的径向分布函数进行求和并平均,得到最终的径向分布函数结果。 以上就是一个简单的LAMMPS径向分布函数MATLAB计算脚本的基本步骤,可以根据具体的模拟需求进行进一步的修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值