Bug in density

This commit is contained in:
Anthony Scemama 2012-03-08 13:10:33 +01:00
parent 48a001a353
commit ce07d1dc50
6 changed files with 44 additions and 58 deletions

Binary file not shown.

1
EZFIO.tar.gz Symbolic link
View File

@ -0,0 +1 @@
EZFIO.1.0.19.tar.gz

View File

@ -4,6 +4,9 @@ include make.config
all: bin/eplf
EZFIO.tar.gz:
ln -s EZFIO.*.tar.gz EZFIO.tar.gz
EZFIO/config/eplf.config: EZFIO.tar.gz
tar -zxf EZFIO.tar.gz
cd EZFIO ; IRPF90="`echo $(IRPF90) | cut -f 1`" ./configure

View File

@ -1,53 +0,0 @@
program debug
implicit none
PROVIDE ao_prim_num_max
integer :: i,j
integer :: k
print *, ''
!print *, 'Occupation numbers'
!do k=1,mo_num
! print *, k, mo_occ(k)
!enddo
read(*,*) i,j
print *, ''
do k=1,nucl_num
print *, nucl_coord(k,:)
enddo
print *, ''
print *, 'AO ', i
print *, 'prim num:', ao_prim_num(i)
print *, 'powers :', ao_power(i,:)
print *, 'center :', ao_nucl(i)
print *, 'expo / coef'
do k=1,ao_prim_num(i)
print *, ao_expo(k,i), ao_coef(k,i)
enddo
print *, ''
print *, 'AO ', j
print *, 'prim num:', ao_prim_num(j)
print *, 'powers :', ao_power(j,:)
print *, 'center :', ao_nucl(j)
print *, 'expo / coef'
do k=1,ao_prim_num(j)
print *, ao_expo(k,j), ao_coef(k,j)
enddo
double precision :: ao_overlap, ao_overlap_numeric
print *, ''
print *, 'Overlap integral :', ao_overlap(i,j)
print *, 'Overlap integral N :', ao_overlap_numeric(i,j)
double precision :: ao_eplf_integral, ao_eplf_integral_numeric
print *, ''
print *, 'EPLF gamma : ', eplf_gamma
print *, 'EPLF integral :', ao_eplf_integral(i,j,eplf_gamma,point)
print *, 'EPLF integral N :', ao_eplf_integral_numeric(i,j,eplf_gamma,point)
print *, ''
print *, 'EPLF grid Npoints :', grid_x_num, grid_y_num, grid_z_num
print *, 'EPLF grid step :', grid_step(:)
print *, 'EPLF grid origin :', grid_origin(:)
end

View File

@ -34,12 +34,12 @@ BEGIN_PROVIDER [ real, density_alpha_value_p ]
density_alpha_value_p = 0.
do i=1,mo_closed_num
density_alpha_value_p += mo_value_p(i)**2
density_alpha_value_p += mo_value_p(i)*mo_value_p(i)
enddo
do j=1,elec_alpha_num-mo_closed_num
do i=1,elec_alpha_num-mo_closed_num
density_alpha_value_p += mo_value_prod_p(i,j) * one_e_density_mo(i,j,1)
density_alpha_value_p += mo_value_prod_p(i+mo_closed_num,j+mo_closed_num) * one_e_density_mo(i,j,1)
enddo
enddo
@ -54,12 +54,12 @@ BEGIN_PROVIDER [ real, density_beta_value_p ]
density_beta_value_p = 0.
do i=1,mo_closed_num
density_beta_value_p += mo_value_p(i)**2
density_beta_value_p += mo_value_p(i)*mo_value_p(i)
enddo
do j=1,elec_beta_num-mo_closed_num
do i=1,elec_beta_num-mo_closed_num
density_beta_value_p += mo_value_prod_p(i,j) * one_e_density_mo(i,j,2)
density_beta_value_p += mo_value_prod_p(i+mo_closed_num,j+mo_closed_num) * one_e_density_mo(i,j,2)
enddo
enddo
END_PROVIDER

View File

@ -292,7 +292,6 @@ double precision function ao_eplf_integral(i,j,gmma,center)
integer, intent(in) :: i, j
real, intent(in) :: center(3)
double precision, intent(in) :: gmma
!DEC$ ATTRIBUTES FORCEINLINE
integer :: p,q,k
double precision :: integral
double precision :: ao_eplf_integral_primitive_oneD

View File

@ -16,6 +16,23 @@ BEGIN_PROVIDER [ double precision, ao_overlap_matrix, (ao_num,ao_num) ]
END_PROVIDER
BEGIN_PROVIDER [ double precision, mo_overlap_matrix, (mo_tot_num,mo_tot_num) ]
implicit none
BEGIN_DOC
! Overlap matrix between the Atomic Orbitals
END_DOC
integer :: i, j
double precision :: mo_overlap
do j=1,mo_tot_num
do i=1,j
mo_overlap_matrix(i,j) = mo_overlap(i,j)
mo_overlap_matrix(j,i) = mo_overlap_matrix(i,j)
enddo
enddo
END_PROVIDER
double precision function primitive_overlap_oneD_numeric(a,xa,i,b,xb,j)
implicit none
include 'constants.F'
@ -255,3 +272,23 @@ double precision function ao_overlap(i,j)
end function
double precision function mo_overlap(i,j)
implicit none
integer, intent(in) :: i, j
double precision :: tmp
integer :: p,q
mo_overlap = 0.d0
do q=1,ao_num
tmp = 0.d0
do p=1,ao_num
tmp += mo_coef(p,i)*ao_overlap_matrix(p,q)
enddo
mo_overlap += tmp*mo_coef(q,j)
enddo
end function