0%

选择现代Fortran


FORTRAN 77肯定是不要再学了,或者至少不要写F77(因为可能免不了要看旧代码,所以也许还是要学)。不够我想说的是,也不要一直留在Fortran 90/95,最好继续学习Fortran 2003/2008以及Fortran 2018的新特性。Fortran 2003/2008提供了近乎完全的面向对象(自定义类型、类型绑定过程、抽象类、继承、多态等)的支持,以及新的内置过程等。虽然不见得所有新特性都用得上,但我认为是值得学的。

关于书,彭国伦的《Fortran 95程序设计》还是很优秀的,选择用这本书入门完全可以。但是既然推荐继续学习Fortran 2003/2008,肯定要看更多的书。直接学习Stephen J. Chapman的《Fortran 95/2003程序设计》也可以,可惜这书的中译版质量有点那啥,比较在意的话还是看彭国伦的吧。其他的中文书就不太推荐了,比如《Fortran权威指南》,声称涵盖了F2003,实际上只是提了一下(不到4页的内容)。P.S. 今年(2019年)有一本新的中文Fortran书《FORTRAN程序设计权威指南》,看了一下目录,似乎介绍了F2003/2008的特性,也许值得一试(但仍然想吐槽标题用的是全部大写的FORTRAN)。

阅读全文 »

最近在看密度泛函的书,于是就想自己写一个能计算电子密度的程序,这样就可以具体地了解一些体系。而且由于更早一些时候才正经学了基组的知识,想弄清楚怎么把市面上的基组放在程序中使用(之前写HF程序用的是STO-3G,不涉及到分裂价层,而且没有涉及更多的壳层)。所以写这么一个程序还是可以帮我学到很多东西的。

代码上传到GitHub:https://github.com/St-Maxwell/ElectronDensity

参考了Sobereva的文章:高斯fch文件与wfn波函数文件的介绍及转换方法利用wfn文件计算电子密度的代码的编写方法

阅读全文 »

由于毕业课题涉及到绘制复合物相互作用能的势能面,所以我为了绘制得到较美观的势能面等高线图而仔细看了matplotlibcontourf函数的手册。

实际上一开始是想用gnuplot画图的,但我需要绘制的势能面有一个挺麻烦的特征:其数值的范围非常大。也就是在两个分子靠得比较近的较小的区域里,相互作用能的数值大约为几万(正值,是一种互相排斥的状态);而在两个分子远离的较大区域内,此时作用很弱,因此数值接近零。这种情况下,gnuplot在没有其他设置(我不太清楚是否真的有相关的选项)的情况下绘制出的图效果很不好。

阅读全文 »

昨天算是看完了 Modern Quantum Chemistry(第七章不打算看,微扰理论的图解部分跳过了),把写的习题解答发出来。

说明一下,这个答案绝对不可能完全没有错误,所以遇到怀疑有问题的地方还请自行思考(如果能给我反馈一下错误也最好不过了)。本来是想从头到尾校正一下,但实在没时间。打算复习一下笔记就去看别的书。

阅读全文 »