
Gromacs源码阅读
文章平均质量分 70
清风水岸
当技术已成习惯,转眼已多年。接触语言良多,最终才发现原来最基础的才是最根本,才转而回头。目前主要关注Linux系统下编程,Shell,Qt,Python,OpenCL。
展开
-
Gromacs源码收获(三)
哎,真是苦逼的,对分子动力学的不熟悉导致对Gromacs源码的解读不太顺利。目前摸索出来的Gromacs程序集中最主要的计算程序为mdrun,所以很自然地想要了解mdrun程序源码都包含哪些。经过解读,终于有了初步的了解: Gromacs中的核心运算程序为mdrun程序,为了查找mdrun程序的源码,通过查看CMake中发现如下语句:其程序信息主要在kernel\CMa原创 2014-03-31 15:58:09 · 1758 阅读 · 0 评论 -
Gromacs源码收获(一)
最近在看Gromacs的源码,万恶的毕设。对于分子动力学的小白来说,做这个真心是一个巨大的挑战啊。但是通过看代码还是能学到些东西的,聊以慰藉。今天看到一个snew宏,死活不懂为什么宏后面的参数前有一个#号,做一个小实验试了下,原来可以得到变量名。#define _CRT_SECURE_NO_DEPRECATE #include using namespace std;#define sn原创 2014-03-21 21:57:39 · 2243 阅读 · 2 评论 -
Gromacs源码收获(二)
这个系列谈不上多深刻,更谈不上高深。只是想把做论文过程中看到的一些东西记录下来。难免零零碎碎一些。Gromacs作为老牌的分子动力学模拟软件,其优化已经做的相当出色了。我想做的工作主要是将其中的CUDA计算nonbond力的工作移植到OpenCL上来,讲起来容易,可是真正做起来才发现不是这么简单啊。1.首先对分子动力学不了解,目前也就是皮毛的认识2.CUDA不了解3.因为工程是用CMa原创 2014-03-24 15:45:42 · 1778 阅读 · 0 评论 -
小算法程序收集
求最大公约数的算法,这个我想应该是算法或程序书籍中的常客了,可是真正写时可能会忘掉,最简单的就是欧几里得算法(又称辗转相除法)。就是下面这种:定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)那么如果是多个数怎么整?static int gmx_greatest_common_divisor(int p, int q){ int tmp原创 2014-03-24 14:28:18 · 901 阅读 · 0 评论 -
Gromacs源码收获(四)
mdrunner函数在runner.c和runner_openmm.c中均有,是MD模拟的主要程序之一。但是对另一个do_md函数的调用一直是个谜,今天终于看出了点头绪。这里以runner.c中的mdrunner作为例子:先看一个integrator的定义,在这里我们发现了do_md的影子。Interator有积分器,综合者的意思/* The array should match原创 2014-04-05 16:28:56 · 2637 阅读 · 0 评论 -
Gromacs源码收获(五)
这篇就贴一个整理的调用关系图好了,后面可能会以此为xia原创 2014-04-05 16:33:24 · 2482 阅读 · 2 评论