计算化学公社

标题: 怎么读懂VASP代码? [打印本页]

作者
Author:
zyj19831206    时间: 2017-8-18 14:19
标题: 怎么读懂VASP代码?
看到本版面都是怎么使用VASP,最近突然对VASP代码本身感兴趣,希望高手讨论下怎么读懂VASP的源代码。

作者
Author:
Warm_Cloud    时间: 2017-8-18 15:31
先把应用玩6,然后慢慢把理论搞懂(从vasp官网的文档到相关的文献)。大体流程搞懂。弄懂主程序的结构,然后从你理论熟悉的地方慢慢看,vasp很大,全看懂很困难,而且基本上不会有什么地方能够和公式直接对应,可以挑一部分慢慢看。至于语法以及一些写法,看多了就知道了。总之难度很大。。。。
作者
Author:
卡开发发    时间: 2017-8-18 16:06
Warm_Cloud 发表于 2017-8-18 15:31
先把应用玩6,然后慢慢把理论搞懂(从vasp官网的文档到相关的文献)。大体流程搞懂。弄懂主程序的结构,然后 ...

这个问题好比怎么使用Gaussian那么庞大,因此熟悉基本的计算框架是必然的,这个要求比使用高出很多。第一性原理程序涉及到的技术问题很多,一般至少也得数百个子例程,全部了解意义也并不是特别大。

vasp的注释写的还是挺全面的,不像某些程序既没有开发者文档又没有注释。很多子程序之间并不相关,所以改动起来并不需要大幅度读完代码,Henckelman组的VTST是个比较好的例子,只修改了构型优化的部分。

根据理论的了解可以沿着主程序摸清大致脉络,根据自己要做的工作去找子程序。再根据子程序调用的函数依次查找这些函数的作用,可以通过grep看函数的出现或者看makefile里面子程序相互依赖的关系。那些函数通常会有注释。如果没有注释只好读懂代码,不过大体上不算太难读。代码里面比较麻烦的地方是总要对照一大堆include来回看。
作者
Author:
Warm_Cloud    时间: 2017-8-18 16:28
卡开发发 发表于 2017-8-18 16:06
这个问题好比怎么使用Gaussian那么庞大,因此熟悉基本的计算框架是必然的,这个要求比使用高出很多。第一 ...

winter哥大法好
作者
Author:
zyj19831206    时间: 2017-8-18 23:28
卡开发发 发表于 2017-8-18 16:06
这个问题好比怎么使用Gaussian那么庞大,因此熟悉基本的计算框架是必然的,这个要求比使用高出很多。第一 ...

谢谢!看来看懂VASP代码是个大工程,貌似VASP只有手册,开发者文档在哪里能够找到?
作者
Author:
zyj19831206    时间: 2017-8-19 00:29
zyj19831206 发表于 2017-8-18 23:28
谢谢!看来看懂VASP代码是个大工程,貌似VASP只有手册,开发者文档在哪里能够找到?

明白,看来更改VASP还是不容易的,只能用用罢了,哎。
作者
Author:
xiehua    时间: 2017-8-24 22:08
VASP还会调用各种其他的库文件,要读懂,意味着你还得看各种第三方库文件。工程量不小。还是好好看手册,了解整体框架吧!
作者
Author:
zyj19831206    时间: 2017-8-26 08:47
xiehua 发表于 2017-8-24 22:08
VASP还会调用各种其他的库文件,要读懂,意味着你还得看各种第三方库文件。工程量不小。还是好好看手册,了 ...

貌似VASP得开发者文档是不卖的,主要是用软件用多了,想了解软件本身的东西罢了。




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3