24小时热门版块排行榜    

CyRhmU.jpeg
查看: 721  |  回复: 9
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

liuyalihd

铜虫 (小有名气)

[交流] 【求助】Ewald长程力中Fourier空间形状问题?

我看某文献1中计算Ewald长程力时,分成实空间和Fourier空间.
实空间中其实还是在截断半径内计算两个粒子之间的作用. Fourier空间是在半球形空间(z轴0到nz, y轴从-ny到ny, x轴从-nx到nx)内计算.

但在gromacs4.0.5中,我看了Ewald.c的代码,发现它没有分成实空间和Fourier空间两部分计算.它似乎仅在Fourier空间中计算.
最让我奇怪的是它的Fourier空间不是半球形,而是在半正方体(z轴0到nz, y轴从-ny到ny, x轴从-nx到nx)中计算.

请问为何gromacs4.0.5中计算Ewald的Fourier空间形状不是传统的球形呢?
gromacs4.0.5中计算Ewald是咋回事?为何没有实空间的计算呢?

[ Last edited by zdhlover on 2009-11-15 at 02:29 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yongleli

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lei0736(金币+3,VIP+0):谢谢 9-2 16:11
没听说过fouirer空间是球形的。。。
Ewald求和涉及一个正格空间到倒格空间的变换。
这两个空间只是单位向量不同,
一个是\vec{a}_i,i=1,2,3
一个是\vec{b}_i=2\pi\vec{a}_{j}\vec{a}_{k}/\vec{a}_i\dot\vec{a}_j\cross\vec{a}_k; i=1,2,3

所以倒空间对称性随正空间特征而定。
4楼2009-09-02 15:01:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

bay__gulf

金虫 (著名写手)

刘苏州

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
yjcmwgk(金币+2,VIP+0):感谢交流! 9-2 09:20
gmx 为保证速度使用了大量的数学和编程技巧,如此一来就失去了可读性
你再仔细看看,可能有你没有注意到的地方

仅作参考,我功力没你深,还没有到阅读源代码的级别
2楼2009-09-01 20:52:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuyalihd

铜虫 (小有名气)

谢谢bay__gulf

很惭愧, 我是写code的, 不太懂MD.
我想问从理论上说, Fourier空间应该是球形的吧! 我没理解错吧?
3楼2009-09-01 22:22:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuyalihd

铜虫 (小有名气)

请问: yongleli  
因为我看code中有三个嵌套for循环 (分别是  nz : z轴0到5,  ny: y轴从-5到5,  nx: x轴从-5到5), 内有个条件判断,镜像空间与真实空间之间距离要小于25.

这也就近似相当于从真实模拟空间开始向外(这个外是指无穷无尽的镜像)扩展,x轴(y轴)正负各镜像5份,z轴仅仅往正方向镜像5份(这是为了计算量减半),对这些镜像出来的空间计算Fourier.  
关键是代码中有个if语句,判断这个镜像空间与真实空间(真实空间为0,0,0)的距离小于25才真正做计算.这不就是相当于在真实空间外镜像出近似半球形的空间做计算吗?

我把代码写在下面: 请多指教!


  计算三角函数并做成表;
  for (nz = 0; nz <= 5; nz ++) {
    for (ny = - 5; ny <= 5; ny ++) {
      for (nx = - 5; nx <= 5; nx ++) {

        len=nx*nx+ny*ny+nz*nz;
        if (len > 5*5 ) continue;
        
        查表,并逐个粒子计算Fourier;
     }
    }
   }
5楼2009-09-02 22:02:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见