24小时热门版块排行榜    

查看: 908  |  回复: 1

15216105346

金虫 (著名写手)

[求助] 怎样求总径向分布函数 已有1人参与

各位大侠!
液体的总径向分布函数和各离子对的偏径向分布函数是什么关系!
怎样求出总径向分布函数?
回复此楼

» 猜你喜欢

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

abinitio

版主 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
其实木虫上有许多代码,搜索一下即可

比如:by @chuntao118
原贴
关于径向分布函数RDFs的代码(求指正)! - 分子模拟 - 小木虫论坛 - 学术科研第一站
http://muchong.com/bbs/viewthread.php?tid=8813127&fpage=1&target=blank
CODE:
我把写的C代码(源自于《the art of MD)附上,自己参考一下,
void EvalRdf ()
{
        VecR dr;
        real deltaR, normFac, rr;
        int j1, j2, n;
        
        if (countRdf == 0)
        {
                for (n = 0; n < sizeHistRdf; n ++)
                {
                        histRdf[n] = 0.;
                }
        }
        deltaR = rangeRdf / sizeHistRdf;

        for (j1 = 0; j1 < nMol - 1; j1 ++)
        {
                for (j2 = j1 + 1; j2 < nMol; j2 ++)
                {
                        VSub (dr, mol[j1].r, mol[j2].r);
                        VWrapAll (dr);
                        rr = VLenSq (dr);
                        if (rr < Sqr (rangeRdf))
                        {
                                n = sqrt (rr) / deltaR;
                                ++ histRdf[n];
                        }
                }
        }
        ++ countRdf;
        if (countRdf == limitRdf)
        {
                normFac = VProd (region) / (2. * M_PI * Cube (deltaR) * Sqr (nMol) * countRdf);
                for (n = 0; n < sizeHistRdf; n ++)
                {
                        histRdf[n] *= normFac / Sqr (n - 0.5);
                }
                PrintRdf (stdout);
                countRdf = 0;
        }
}
fortan的一些结构写法我不太明白。你自己对照改一下就行了,算法都一样。

2楼2015-10-29 08:34:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 15216105346 的主题更新
信息提示
请填处理意见