计算化学公社
标题: 读取周期性体系.grd文件报错(已解决) [打印本页]
作者Author: qczgzly 时间: 2018-4-16 16:44
标题: 读取周期性体系.grd文件报错(已解决)
本帖最后由 qczgzly 于 2018-4-18 14:55 编辑
各位老师好!
我用DMol3计算了一个周期性体系,得到电子密度的.prd文件。用Multiwfn3.3.9读取时报错,信息如下:
Error: Only cubic cell is supported in Multiwfn! Press ENTER to exit
该文件在MS里可正常上色显示。请问问题出在哪里呢?我希望用生成的.prd文件实现像.cube文件一样的文件间加减运算,不知还有没有其它方法可以实现?谢谢!
----分割线----
根据2楼@卡开发发 的提示我利用Multiwfn3.5中的相关语句做了一个极其简陋的Fortran小程序可以对非正交格子的两个.grd文件间做减法,要求两个文件的格点个数一致。生成的.grd新文件可直接用MS打开编辑。另外期待@sobereva 师兄在Multiwfn中开发可以直接计算非正交格子.grd文件生成格点图的功能~
作者Author: 卡开发发 时间: 2018-4-16 18:11
Multiwfn不支持非正交的格子。grd的格式读取并不难,这是很久以前sob前辈给我的回复
The fastest varying index通常为1,代表x方向的指数变化是最快的,也就是说,读取下面格点数据值时最内层循环的是x序号,例如这样读取
do k=1,nz
do j=1,ny
do i=1,nx
read(10,*) cubmat(i,j,k)
end do
end do
end do
Multiwfn程序的fileIO.f90里subroutine readgrd就是读取.grd文件的代码,可供参考
非立方格点情况的.grd文件原则上可以转换为.cub,只要适当定义平移矢量即可
如果非正交的格子只是做加减,其实对应的数据做加减就行,写个matlab或python程序难度不大。
作者Author: qczgzly 时间: 2018-4-16 19:53
解答好详细!让我试一下。非常感谢~
作者Author: wangyj 时间: 2018-4-18 09:56
可以改改标题吗,我也用dmol3,算出来的电荷密度文件是.grd的吧,你标题写错了。
作者Author: qczgzly 时间: 2018-4-18 11:12
谢谢!我已经改正了~
作者Author: 卡开发发 时间: 2018-4-18 17:17
继续做回复,这样读取的话如果对于n个边界相同格点数目相同的grd文件进行格点对应的加减乘除无论是正交或非正交都行得通,甚至这种情况进行一次循环读到一列数组进行操作也可以。但要是做导数之类的就很麻烦。如果有人弄得清楚非正交格子的grd,可以讨论一下,这样其实可以处理更多密度相关的信息。
作者Author: qczgzly 时间: 2018-4-18 19:01
赞同~我就是直接按一维数组读取计算的。我猜Sob之前应该研究过,可能因为过于复杂,就没有纳入Multiwfn的处理范围。。
作者Author: sobereva 时间: 2018-4-19 05:43
Multiwfn主要研究范畴是孤立体系,没有什么必要用非正交格子,所以为了减少麻烦就没有考虑这个
以后有时间会开发用于周期性体系的波函数分析程序,届时应该会明确考虑非正交格子问题
作者Author: qczgzly 时间: 2018-4-19 08:41
谢谢师兄。
| 欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |