24小时热门版块排行榜    

查看: 3803  |  回复: 11

CXC_小草

银虫 (正式写手)

[求助] 差分电荷密度的计算 已有2人参与

生成的CHGCAR文件网格下面的数据太大,我把三个系统的数据分别导入到excel中相减,但由于数据太多,excel中只能导入一部分,无法全部倒入或不能导入,这样肯定结果不全,我想问前辈有什么方法吗?谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

hn19870519

木虫 (正式写手)

【答案】应助回帖


youzhizhe(金币+1): 谢谢交流。 2011-10-22 23:44:01
楼主怎么能用excel处理CHGCAR呢。。。自己编个几十行的程序就可以搞定。。。
2楼2011-10-22 23:22:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

hn19870519

木虫 (正式写手)

【答案】应助回帖


youzhizhe(金币+1): 建议直接上传附件。谢谢交流。 2011-10-22 23:43:38
subroutine chgdiff
!################################################
!DMol3 total electron density            
!(1p,e12.5)  
!   9.000   8.200   9.400  90.000  90.000  90.000
!   45   41   47
!   1  -23   22  -20   21  -22   25
!#################################################
!initializing all paremeters
implicit none
integer :: NGX,NGY,NGZ
real*8 :: amod,bmod,cmod,alpha,beta,gamma,VOL
real*8 :: scale
real*8,allocatable :: a(,b(,c(
real*8,allocatable :: atomnum(
real*8,allocatable :: chgdata1(:,:,,chgdata2(:,:,
integer :: i,j,k,n,m,iserror,p

open(11,file='CHGCAR1',form='formatted',status='old',iostat=iserror)
open(13,file='CHGCAR2',form='formatted',status='old',iostat=iserror)
if(iserror>0) then
write(*,*)"The CHGCAR file does not exist, please try again!"
stop
endif
!读入原子种类数量
write(*,*)"---------------------------------"
write(*,*)"Please input atomic species amount: "
read(*,*)n

!read initialized paremeters and discard head sections
read(11,*)
read(11,*)scale
allocate(a(3))
allocate(b(3))
allocate(c(3))
allocate(atomnum(n))
read(11,*)a(1:3)
read(11,*)b(1:3)
read(11,*)c(1:3)
read(11,*)atomnum(1:n)
read(11,*)
do i=1,sum(atomnum(1:n))+1
read(11,*)
enddo
read(11,*)NGX,NGY,NGZ
!compute angle
call getmod(a,scale,amod)                                                                                               
call getmod(b,scale,bmod)                                                                                               
call getmod(c,scale,cmod)   
alpha=acos(dot_product(a,c)*(scale**2)/(amod*cmod))*180/3.1415926                                                         
beta=acos(dot_product(b,c)*(scale**2)/(bmod*cmod))*180/3.1415926                                                           
gamma=acos(dot_product(a,b)*(scale**2)/(amod*bmod))*180/3.1415926
!charge part
open(12,file='ms.grd',status='replace')
write(12,'(A)')"DMol3 spin density"
write(12,'(A)')'(1p,e12.5)'
write(12,'(6f8.3)')amod,bmod,cmod,alpha,beta,gamma
write(12,'(3I5)')NGX-1,NGY-1,NGZ-1
write(12,'(7I5)')1,-(NGX/2-1),NGX/2,-(NGY/2-1),NGY/2,-(NGZ/2-1),NGZ/2
allocate(chgdata1(NGX,NGY,NGZ))
allocate(chgdata2(NGX,NGY,NGZ))
!--将电荷密度数据存入数组chgdata中----
read(11,*)chgdata1
do i=1,57
read(13,*)
enddo
read(13,*)chgdata2
!-------------------------------------
VOL=scale*scale*scale*(a(1)*b(2)*c(3)+a(2)*b(3)*c(1)+a(3)*b(1)*c(2)&
&-a(1)*b(3)*c(2)-a(2)*b(1)*c(3)-a(3)*b(2)*c(1))
write(*,*)VOL
do i=1,NGZ
do j=1,NGY
  do k=1,NGX
  write(12,'(6E12.5)')(chgdata1(k,j,i)-chgdata2(k,j,i))/VOL
  enddo
enddo
enddo
write(*,*)"Write charge density successfully!!!"

end subroutine
3楼2011-10-22 23:23:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hn19870519

木虫 (正式写手)

【答案】应助回帖

youzhizhe: 建议直接上传附件。 2011-10-22 23:43:51
贴一个我自己用的程序。。。笑脸的地方改成 冒号)
期待高手来指正
4楼2011-10-22 23:25:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CXC_小草

银虫 (正式写手)

引用回帖:
2楼: Originally posted by hn19870519 at 2011-10-22 23:22:16:
楼主怎么能用excel处理CHGCAR呢。。。自己编个几十行的程序就可以搞定。。。

我对程序很无奈啊!我确实不会,希望大侠拯救一下下啊!!!
5楼2011-10-23 11:39:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CXC_小草

银虫 (正式写手)

引用回帖:
3楼: Originally posted by hn19870519 at 2011-10-22 23:23:51:
subroutine chgdiff
!################################################
!DMol3 total electron density            
!(1p,e12.5)  
!   9.000   8.200   9.400  90.000  90.000  90.000
!   45   41   47
...

你好,这个需要怎么用呢?
6楼2011-10-23 11:42:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lushunqi

禁虫 (小有名气)

本帖内容被屏蔽

7楼2011-10-24 09:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CXC_小草

银虫 (正式写手)

引用回帖:
3楼: Originally posted by hn19870519 at 2011-10-22 23:23:51:
subroutine chgdiff
!################################################
!DMol3 total electron density            
!(1p,e12.5)  
!   9.000   8.200   9.400  90.000  90.000  90.000
!   45   41   47
...

我在linux下无法运行啊!求教用法!
8楼2011-10-24 10:44:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sgquan

铁杆木虫 (著名写手)

学习了!
9楼2011-10-24 11:18:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anuil

新虫 (初入文坛)

【答案】应助回帖

★ ★
franch: 金币+2, 谢谢回帖交流 2014-01-13 22:15:33
我用的是一个小插件,chgdiff.pl,你可以用这个的啊
一定不要浪费了好资源
10楼2014-01-13 11:03:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 CXC_小草 的主题更新
信息提示
请填处理意见