计算化学公社

 找回密码 Forget password
 注册 Register
Views: 9014|回复 Reply: 7
打印 Print 上一主题 Last thread 下一主题 Next thread

[GROMACS] 求助关于RDF的程序理解问题。

[复制链接 Copy URL]

376

帖子

0

威望

2757

eV
积分
3133

Level 5 (御坂)

尊贵的地三鲜骑士

各位老师好,最近想编写一个RDF的程序, 关于RDF我的理解就是,区域密度/全局密度(比值),如图,这个dr 是不是每次计算的增量。如果是 这个dr应该如何选择?另外,正方体盒子。有多少个球层是不是可以理解为 边长/dr。还是说 我可以先求出定义中心原子与每一个原子的距离然后进行分类再求rdf。针对该问题有些混淆。麻烦各位老师教导!PS: http://isaacs.sourceforge.net/phys/rdfs.html#gr-fig

QQ图片20201115111310.png (79.69 KB, 下载次数 Times of downloads: 20)

RDF示意图

RDF示意图
由衷的感谢每一位给与过我帮助的人

376

帖子

0

威望

2757

eV
积分
3133

Level 5 (御坂)

尊贵的地三鲜骑士

2#
 楼主 Author| 发表于 Post on 2020-11-15 22:05:15 | 只看该作者 Only view this author
就告诉我这个dr怎么定义就行。这个增量应该怎么选择呢
由衷的感谢每一位给与过我帮助的人

222

帖子

5

威望

2591

eV
积分
2913

Level 5 (御坂)

3#
发表于 Post on 2020-11-15 23:13:12 | 只看该作者 Only view this author
dr自己设定,比如gmx默认用的0.002 nm。其实我觉得楼主如果考虑自己写程序,单单看公式不一定能明白其含义,我建议你多看看一些成熟的动力学相关源代码,比如gromacs,又或者是mdanalysis等。

376

帖子

0

威望

2757

eV
积分
3133

Level 5 (御坂)

尊贵的地三鲜骑士

4#
 楼主 Author| 发表于 Post on 2020-11-16 08:05:39 | 只看该作者 Only view this author
liuyuje714 发表于 2020-11-15 23:13
dr自己设定,比如gmx默认用的0.002 nm。其实我觉得楼主如果考虑自己写程序,单单看公式不一定能明白其含义 ...

好的,感谢您的建议! 请问gromacs的源代码在哪里能看呢?MDAnalysis的我能找到 gromacs的手册里有吗?谢谢您
由衷的感谢每一位给与过我帮助的人

222

帖子

5

威望

2591

eV
积分
2913

Level 5 (御坂)

5#
发表于 Post on 2020-11-16 09:18:52 | 只看该作者 Only view this author
少年爱吃地三鲜 发表于 2020-11-16 08:05
好的,感谢您的建议! 请问gromacs的源代码在哪里能看呢?MDAnalysis的我能找到 gromacs的手册里有吗?谢 ...

github上都有相关的源,直接就可以找到。看手册那是给用软件的人,而你写程序,当然必须看源代码,gromacs的c/c++文件,mdanalysis的python源文件

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
少年爱吃地三鲜 + 5 谢谢

查看全部评分 View all ratings

376

帖子

0

威望

2757

eV
积分
3133

Level 5 (御坂)

尊贵的地三鲜骑士

6#
 楼主 Author| 发表于 Post on 2020-11-16 10:01:51 | 只看该作者 Only view this author
liuyuje714 发表于 2020-11-16 09:18
github上都有相关的源,直接就可以找到。看手册那是给用软件的人,而你写程序,当然必须看源代码,gromac ...

感谢您! 我去看看!
由衷的感谢每一位给与过我帮助的人

433

帖子

8

威望

4317

eV
积分
4910

Level 6 (一方通行)

石墨

7#
发表于 Post on 2020-11-16 11:45:02 | 只看该作者 Only view this author
本帖最后由 Graphite 于 2020-11-16 11:46 编辑

可以算每个原子对距离的同时进行计数。
我写的RDF代码(python)的其中一段,self.pcf是个字典,键是距离r(1 dr ~ 10.0,间隔为dr),值是距离落在r ~r+dr的原子对的计数。
        if periodic:
            p_vectors = list()
            for xmulti in (0, -1, 1):
                for ymulti in (0, -1, 1):
                    for zmulti in (0, -1, 1):
                        p_vector = np.array([xmulti * self.xlength, ymulti * self.ylength, zmulti * self.zlength])
                        p_vectors.append(p_vector)

            for ref in self.atomtypedict[str(refatomtype)]:
                for target in self.atomtypedict[str(targetatomtype)]:
                    r_ref = np.array(self.atomdict[ref][3:6])
                    r_target = np.array(self.atomdict[target][3:6])

                    for p_vector in p_vectors:
                        dist = np.linalg.norm(r_ref - r_target - p_vector)

                        for r in self.pcf.keys():
                            if dist > r and dist < r + dr:
                                self.pcf[r] += 1




自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

376

帖子

0

威望

2757

eV
积分
3133

Level 5 (御坂)

尊贵的地三鲜骑士

8#
 楼主 Author| 发表于 Post on 2020-11-16 14:30:09 | 只看该作者 Only view this author
Graphite 发表于 2020-11-16 11:45
可以算每个原子对距离的同时进行计数。
我写的RDF代码(python)的其中一段,self.pcf是个字典,键是距离r ...

感谢您的帮助!
由衷的感谢每一位给与过我帮助的人

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-22 11:58 , Processed in 0.179293 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list