一种约束原子速度的方法及装置制造方法及图纸

技术编号:30634174 阅读:13 留言:0更新日期:2021-11-04 00:16
本发明专利技术提供一种约束原子速度的方法及装置,通过确定刚性模型中的原子构型,基于原子构型确定约束原子对并进行分组得到约束原子对组,基于每个组内约束条件构建N

【技术实现步骤摘要】
一种约束原子速度的方法及装置


[0001]本专利技术涉及分子模拟
,尤其涉及一种约束原子速度的方法及装置。

技术介绍

[0002]在分子模拟计算中,存在不同类型的分子模型,如振动模型、刚性模型等。其中,刚性模型采用特殊的方法约束其原子间距离及速度。
[0003]目前最被认可的约束速度的方法为使用RATTLE方法。使用RATTLE方法约束刚性模型原子间速度,可以准确地获得刚性分子内原子在约束条件下的速度。由于使用RATTLE方法刚性模型每次迭代只考虑单一刚性约束原子对的速度约束,并没有考虑其它相互关联耦合的刚性原子的影响,为了使所有刚性模型内的原子都满足给定的约束精度,需要很多次迭代计算。而迭代计算次数过多则导致产生刚性模型约束原子速度的计算效率大大降低的问题。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供一种约束原子速度的方法及装置,迭代计算中同时考虑相互关联耦合的刚性原子的影响,以实现在不降低计算精度的前提下减少迭代次数,从而提高刚性模型约束原子速度的计算效率的目的。
[0005]为实现上述目的,本专利技术实施例提供如下技术方案:
[0006]本专利技术实施例第一方面公开了一种约束原子速度的方法,所述方法包括:
[0007]确定刚性模型中的原子构型,基于所述原子构型确定约束原子对,每个约束原子对由两个关联耦合的原子构成;
[0008]按照约束原子对所包含的原子划分各个约束原子对,得到约束原子对组,每一约束原子对组包含不同的原子,每一约束原子对组内的约束原子对对应一个约束序号,序号从1递增连续排列;
[0009]利用所述每个约束原子对组基于相关约束条件构建N
×
N矩阵,以及构建N阶矢量,N的取值为约束原子对组内约束原子对的个数;
[0010]基于所述N
×
N矩阵和N阶矢量计算每个约束原子对内两个原子对应的约束力;
[0011]在每个约束原子下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,得到约束精度;
[0012]判断所述约束精度是否小于预设约束精度,若否,则返回执行构建N阶矢量这一步骤进行迭代计算,直至当前得到的原子速度小于所述预设约束精度,结束迭代,确定当前得到的原子速度为原子最终速度,使所述待约束原子基于所述原子最终速度进行运动。
[0013]可选的,利用所述约束原子对组基于相关约束条件构建N
×
N矩阵,以及构建N阶矢量,包括:
[0014]获取每个约束原子对对应的约束序号k,k∈[1,N];
[0015]获取每个约束原子对中两个关联耦合的原子k1和k2的相对矢量位置,以及原子
速度
[0016]针对每一约束原子对、基于单步迭代时间Δt、原子k1和k2的相对矢量位置和原子速度构建N阶矢量c,其中,第k阶的元素为
[0017]基于每一约束原子对组对应的N阶矢量和约束条件构建N
×
N矩阵,得到矩阵A;
[0018]其中,所述矩阵A内的元素表示为:
[0019][0020]其中,k和k

为约束原子对组内两个约束序号,k1和k2为约束序号k约束内的两个原子,k1

和k2

为k

约束内的两个原子,δ为狄拉克函数。
[0021]可选的,基于所述N
×
N矩阵和N阶矢量计算组内每个约束原子对内两个原子对应的约束力,包括:
[0022]确定每个约束原子对组的N阶矢量c;
[0023]针对每个约束原子对组,基于对应的N阶矢量c和所述N
×
N矩阵的逆矩阵的乘积确定组内所有约束原子对对应的N阶矢量约束力集合B,其中,B=A
‑1c,A
‑1为所述N
×
N矩阵的逆矩阵。
[0024]可选的,所述在每个约束原子对下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,包括:
[0025]在每个约束原子对下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,得到对应的原子速度修正量;
[0026]基于所述原子速度修正量修正本次计算中的待约束原子的原子速度,得到本次计算后的待约束原子的原子速度和约束精度,在迭代未结束前,使本次计算后的待约束原子的原子速度参与下一次计算;
[0027]其中,构成约束原子对的两个原子k1和k2各自对应的原子速度修正量为:
[0028][0029][0030]其中,所述约束原子对的约束力其中,所述约束原子对的约束力为矩阵A逆矩阵的第k行,B
k
表示约束序号为k的约束原子对间的约束力,Δt为单步迭代的时间,m
k1
为原子k1的原子质量,m
k2
为原子k2的原子质量;
[0031]本次迭代后约束原子的速度为:
[0032][0033][0034]为本次计算后约束原子对k的约束精度。
[0035]本专利技术实施例第二方面公开了一种约束原子速度的装置,所述装置包括:
[0036]确定模块,用于确定刚性模型中的原子构型,基于所述原子构型确定约束原子对,每个约束原子对由两个关联耦合的原子构成;
[0037]分组模块,用于按照约束原子对所包含的原子划分各个约束原子对,得到约束原子对组,每一约束原子对组包含不同的原子,每一约束原子对组内的约束原子对对应一个约束序号,序号从1递增连续排列;
[0038]构建模块,用于基于所述每个约束原子对组内约束原子对的约束条件构建N
×
N矩阵,以及构建N阶矢量,N的取值为约束原子对组内约束原子对的个数;
[0039]约束力计算模块,用于基于所述N
×
N矩阵和N阶矢量计算组内每个约束原子对内的两个原子对应的约束力;
[0040]迭代处理模块,用于在每个约束原子对下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,得到约束精度;判断所述约束精度是否小于预设约束精度,若否,则返回构建模块,使所述构建模块构建N阶矢量,并进行迭代计算,直至当前得到的原子速度小于所述预设约束精度,结束迭代,确定当前得到的原子速度为原子最终速度,使所述待约束原子基于所述原子最终速度进行运动。
[0041]可选的,所述构建模块,具体用于:
[0042]获取每个约束原子对对应的约束序号k,其中,k∈[1,N];
[0043]获取每个约束原子对中两个关联耦合的原子k1和k2的相对矢量位置和矢量速度针对每一约束原子对、基于单步迭代时间Δt、原子k1和k2的相对矢量位置和矢量速度构建N阶矢量c,基于每一约束原子对组对应的N阶矢量和约束条件构建N
×
N矩阵,得到矩阵A;
[0044]其中,矢量c的第k阶元素
[0045]所述矩阵A内的元素表示为:
[0046][0047]其中,k和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种约束原子速度的方法,其特征在于,所述方法包括:确定刚性模型中的原子构型,基于所述原子构型确定约束原子对,每个约束原子对由两个关联耦合的原子构成;按照约束原子对所包含的原子划分各个约束原子对,得到约束原子对组,每一约束原子对组包含不同的原子,每一约束原子对组内的约束原子对对应一个约束序号,序号从1递增连续排列;利用所述每个约束原子对组基于相关约束条件构建N
×
N矩阵,以及构建N阶矢量,N的取值为约束原子对组内约束原子对的个数;基于所述N
×
N矩阵和N阶矢量计算组内每个约束原子对内两个原子对应的约束力;在每个约束原子下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,得到约束精度;判断所述约束精度是否小于预设约束精度,若否,则返回执行构建N阶矢量这一步骤进行迭代计算,直至当前得到的原子速度小于所述预设约束精度,结束迭代,确定当前得到的原子速度为原子最终速度,使所述待约束原子基于所述原子最终速度进行运动。2.根据权利要求1所述的方法,其特征在于,所述利用所述约束原子对组基于相关约束条件构建N
×
N矩阵,以及构建N阶矢量,包括:获取每个约束原子对对应的约束序号k,k∈[1,N];获取每个约束原子对中两个关联耦合的原子k1和k2的相对矢量位置以及原子速度针对每一约束原子对、基于单步迭代时间Δt、原子k1和k2的相对矢量位置和原子速度构建N阶矢量c,其中,第k阶元素为基于每一约束原子对组对应的N阶矢量和约束条件构建N
×
N矩阵,得到矩阵A;其中,所述矩阵A内的元素表示为:其中,k和k

为约束原子对组内两个约束序号,k1和k2为约束序号k约束内的两个原子,k1

和k2

为k

约束内的两个原子,δ为狄拉克函数。3.根据权利要求1所述的方法,其特征在于,所述基于所述N
×
N矩阵和N阶矢量计算组内每个约束原子对内两个原子对应的约束力,包括:确定每个约束原子对组的N阶矢量c;针对每个约束原子对组,基于对应的N阶矢量c和所述N
×
N矩阵的逆矩阵的乘积确定组内所有约束原子对对应的N阶矢量约束力集合B,其中,B=A
‑1c,A
‑1为所述N
×
N矩阵的逆矩阵。4.根据权利要求1所述的方法,其特征在于,所述在每个约束原子对下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,包括:在每个约束原子对下,基于所述约束力、单步迭代时间和待约束原子的原子质量进行计算,得到对应的原子速度修正量;
基于所述原子速度修正量修正本次计算中的待约束原子的原子速度,得到本次计算后的待约束原子的原子速度和约束精度,在迭代未结束前,使本次计算后的待约束原子的原子速度参与下一次计算;其中,构成约束原子对的两个原子k1和k2各自对应的原子速度修正量为:其中,构成约束原子对的两个原子k1和k2各自对应的原子速度修正量为:其中,所述约束原子对的约束力其中,所述约束原子对的约束力为矩阵A逆矩阵的第k行,B
k
表示约束序号为k的约束原子对间的约束力,Δt为单步迭代的时间,m
k1
为原子k1的原子质量,m
k2
为原子k2的原子质量;本次迭代后约束原子的速度为:本次迭代后约束原子的速度为:本次迭代后约束原子的速度为:为本次计算后约束原子对k...

【专利技术属性】
技术研发人员:郭振江郭璟柳宇驰郭晨
申请(专利权)人:北京思朗科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1