yychenleslie / SoftMatterDiscuss

软物质交流,讨论。
7 stars 0 forks source link

如何计算径向分布函数(Radial Distribution Function)? #6

Open HuangJiaLian opened 4 years ago

HuangJiaLian commented 4 years ago

用Python如何计算径向分布函数? @fqinglee

HuangJiaLian commented 4 years ago

找到一个图文代码并茂的文章 "Radial Distribution Function",看看吧! @fqinglee

HuangJiaLian commented 4 years ago

维基百科:Radial distribution function 里面, 在计算RDF的时候给定dr之后,是否就不变了,变的只是r。 @fqinglee

HuangJiaLian commented 4 years ago

@HuangJiaLian 是的。dr选定之后就不变了, 变的只是r。对dr的要求就是不能太小。

fqinglee commented 4 years ago

《THE ART OF MOLECULAR DYNAMICS SIMULATION》这一本数里有讲到网格点的问题以及代码所需要的公式。 在这里可以下载@HuangJiaLian

HuangJiaLian commented 4 years ago

@fqinglee 我没有找到在哪里。第几章,哪个位置?

fqinglee commented 4 years ago

4.3节(106页)&Layer method(490页)。 @HuangJiaLian

HuangJiaLian commented 4 years ago

如果是自己构造一个简单的系统周期盒子的大小是[5,5,5],所有的粒子都整齐均匀地排列在类似下面的坐标里面。

[[0. 0. 0.]
 [0. 0. 1.]
 ...
 [0. 0. 4.]
 [0. 0. 5.]
...
 [0. 1. 0.]
 [0. 1. 1.]
...
[5. 5. 2.]
 [5. 5. 3.]
 [5. 5. 4.]
 [5. 5. 5.]]

接下来确定一个中心点C, 以C为起始点, r从0开始,向无穷远延伸,由于盒子具有周期边界的特征,盒子外其实也有粒子。但是我的数据里面是没有粒子外的点的坐标的。那如何计算盒子外的点的距离? 然后来做统计。 @HuangJiaLian @fqinglee

HuangJiaLian commented 4 years ago

@fqinglee Layer method(490页)我的490页是 18 More about software。应该是版本不一样。章节,小结是哪里?

fqinglee commented 4 years ago

@HuangJiaLian 章节是17.6 Techniques for vector processing Pipelined computation

fqinglee commented 4 years ago

如果是自己构造一个简单的系统周期盒子的大小是[5,5,5],所有的粒子都整齐均匀地排列在类似下面的坐标里面。

[[0. 0. 0.]
 [0. 0. 1.]
 ...
 [0. 0. 4.]
 [0. 0. 5.]
...
 [0. 1. 0.]
 [0. 1. 1.]
...
[5. 5. 2.]
 [5. 5. 3.]
 [5. 5. 4.]
 [5. 5. 5.]]

接下来确定一个中心点C, 以C为起始点, r从0开始,向无穷远延伸,由于盒子具有周期边界的特征,盒子外其实也有粒子。但是我的数据里面是没有粒子外的点的坐标的。那如何计算盒子外的点的距离? 然后来做统计。 @HuangJiaLian @fqinglee

HuangJiaLian commented 4 years ago

应该是不用去考虑周期盒子外的粒子。

fqinglee commented 4 years ago

对 只对盒子内部的粒子做周期性处理 @HuangJiaLian

HuangJiaLian commented 4 years ago

RDF算法已基本写好。参考calRDF.py @fqinglee @974918051 . 见计算结果图像