lammpscn icon indicating copy to clipboard operation
lammpscn copied to clipboard

个人关于ReaxFF力场的最基本的理解

Open hcb8174875 opened this issue 4 years ago • 5 comments

1、什么是ReaxFF力场? ReaxFF力场相当于连接量子化学与经验力场计算之间联系的桥梁。1986年Tersoff提出了一种键阶-键能(bond order-bond energy)思想以帮助经验力场描述化学反应问题。在描述发生键和作用的原子时设定键阶(bond order)参数,键阶随着键长(bond length)的不同而不断变化,当化学键断裂时,键阶趋向于0,意味着势能和作用力均消失。2003年由van Duin等人开发出了反应力场(ReaxFF),具体内容可以参考文献(ReaxFFSiO reactive force field for silicon and silicon oxide systems).

ReaxFF 力场试图提供一种具有普适性的表达式,以满足所有化学环境的需要,因而在其发展过程中主要遵循以下准则:势能和作用力表达式均是连续的;每种元素只分配一种力场种类,即金属氧化物中的氧原子力场等同于有机物中的氧原子力场;不预先定义可能发生的反应,完全遵循化学反应的内在发生机理。这个力场已经成功地运用于有机和无机体系中。我现在所研究的水化硅酸钙(C-S-H)就是用的这个力场。ReaxFF中主要是分为以下几个部分。 E=E_bond+E_VdWaals+E_Coulomb+E_under+E_over+E_lp+E_val+E_tors+E_conj+E_pen 分别为键能、范德华作用能、库伦作用能、欠配位的能量矫正项、过配位的能量矫正项、孤对电子项、键角能、二面角能、共轭能、共价键修正能。

2、为什么要用ReaxFF力场 因为有的时候想要模拟分子键的生成和断裂,量子化学的计算成本很高,无法模拟大尺度的model。一般的经验力场虽然计算成本较低,但是无法描述电子转移、原子重组等特性的化学反应过程。ReaxFF力场能够计算原子之间的电子转移和原子之间的重组,也就是说原子所带的电荷数是发生变化的,各原子电荷根据电荷平衡(QEq)方法来分配。

3、ReaxFF的缺点 虽然ReaxFF从一定意义上来说属于经验力场,但是计算成本还是相当高,比如我一个4500个原子的model,使用武汉大学超算16核,计算速度大概时0.137ns/day。然后还不支持lammps_GPU加速,只支持KOKKOS和OMP加速。这个KOKKOS我尝试了一下,1066的显卡的计算速度大概等于8核的CPU,但是还是比不过16核的CPU,如果显卡的计算能力更强的话可能计算速度还可以更快。

查找ReaxFF力场的网站主要是[https://www.scm.com/doc/ReaxFF/Included_Forcefields.html]

hcb8174875 avatar Jan 03 '21 11:01 hcb8174875

能不能再仔细谢谢具体的原理;如何在lammps上实现等等

Roy-Kid avatar Jan 03 '21 11:01 Roy-Kid

很具体的原理我也不是很懂了,等上交那个大佬完善一下

具体怎么实现这个跟其他力场都是一样的啊,想用的人完全可以参考example-reax里面的例子,看那个应该更清晰

------------------ 原始邮件 ------------------ 发件人: "Roy-Kid"<[email protected]>; 发送时间: 2021年1月3日(星期天) 晚上7:47 收件人: "Roy-Kid/lammpscn"<[email protected]>; 抄送: "never alone"<[email protected]>; "Author"<[email protected]>; 主题: Re: [Roy-Kid/lammpscn] 个人关于ReaxFF力场的最基本的理解 (#13)

能不能再仔细谢谢具体的原理;如何在lammps上实现等等

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

hcb8174875 avatar Jan 03 '21 11:01 hcb8174875

你好。 我想根据Roy的提问抛砖引玉式的回答一下。

ReaxFF的大概原理 ReaxFF立场首先根据两个原子间间距以及计算出BO, 再根据BO计算出共价相互作用(键能,键角能,二面角能以及corrections等)。 当某个时间步的某个键的BO小于某个数值(默认值是0.3),会判断该化学键断裂从而导致共价相互作用消失。反之,如果在某时间步的某个两个原子间的BO超过0.3,会判断这两个原子间生成化学键,从而产生相互作用。(这个步骤与LAMMPS的fix bond/react命令相似)。

关于立场文件: 首先,ReaxFF虽然目标是开发出满足大多元素原子模拟的立场,但是目前并不能给出所有元素间的相互作用参数。比如hcb8174875举例的水化硅酸钙的参数组可以计算Si-O间的相互作用,其他的参数组可以计算Cu-O间的相互作用,但是目前可能不存在能计算Si-Cu间相互作用的参数组。还有一点就是目前对于同一个原子对(例如C-O),可能存在多种参数组来计算C-O相互作用,由于每个参数组被开发时的研究目的并不相同(比如说这个参数组适用于模拟烷烃的燃烧,另一个适用于模拟高分子聚合过程),其中的参数也并不相同,大家需要根据各自的需要去比对,选择最适合自己研究目的的参数组。 其次,hcb8174875给出的链接可以查看目前大部分ReaxFF的参数组以及其出处的论文。但是由于绝大部分的论文给出的supplementary infomation是pdf格式的,需要利用工具或打字把pdf格式的立场文件转化成纯文本文件并且需要多次检查。有能力的话可以联系论文的通讯作者问问能不能发一份立场文件给你,或者如果大家所在的学校或研究所购买了scm的ReaxFF软件包的话应该也可以直接从里边提取立场文件。

在LAMMPS上执行ReaxFF模拟

Datafile: 不同于classicalMD,ReaxFF模拟不需要拓扑结构(Bonds,Angles,Dihedrals)的信息,只需要原子种类质量等基础信息以及坐标信息即可。同时,ReaxFF会自动计算原子电荷,所以datafile中记入的原子电荷属于无效情报(但是对于datafile的格式来说电荷是必要的)。

相关命令: (具体请参考LAMMPS的manual) 1. pair_style reax/c 命令 pair_coeff 命令 上面两项命令指定ReaxFF立场以及导入立场文件,也可以导入controlfile来进行一部分计算的设定(各类cutoff等)以及输出文件的一些设定(不导入的话会配置默认设置)。

fix qeq/reax 命令 电荷平衡计算相关的命令 3. fix reax/c/bonds 命令 fix reax/c/species 命令 根据时间步频率输出各原子与其他原子间的BO信息或输出分子种类

本人文笔以及研究水平有限,希望能有所帮助

Haolun-Li avatar Apr 11 '21 07:04 Haolun-Li

怎么控制高温弛豫不反应呢

yizhengkuaikourou avatar Mar 02 '22 08:03 yizhengkuaikourou

高温就是为了加快反应速率,只是驰豫的话为什么要用高温呢?

在 yizhengkuaikourou @.***>,2022年3月2日 16:05写道:

怎么控制高温弛豫不反应呢

—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you authored the thread.Message ID: @.***>

[

{

@.***": "http://schema.org",

@.***": "EmailMessage",

"potentialAction": {

@.***": "ViewAction",

"target": "https://github.com/Roy-Kid/lammpscn/issues/13#issuecomment-1056515774",

"url": "https://github.com/Roy-Kid/lammpscn/issues/13#issuecomment-1056515774",

"name": "View Issue"

},

"description": "View this Issue on GitHub",

"publisher": {

@.***": "Organization",

"name": "GitHub",

"url": "https://github.com"

}

}

]

hcb8174875 avatar Mar 07 '22 02:03 hcb8174875