mirror of
https://github.com/QuantumPackage/qp2.git
synced 2025-01-09 11:43:55 +01:00
working on 3->4
This commit is contained in:
parent
2cffbdcc9d
commit
07f09acd99
@ -116,6 +116,7 @@ subroutine ao_map_fill_from_df
|
|||||||
do kl=1, kpt_num
|
do kl=1, kpt_num
|
||||||
do kj=1, kl
|
do kj=1, kl
|
||||||
call idx2_tri_int(kj,kl,kjkl2)
|
call idx2_tri_int(kj,kl,kjkl2)
|
||||||
|
print*,'kj,kl,kjkl2',kj,kl,kjkl2
|
||||||
ints_jl = df_ao_integrals_complex(:,:,:,kjkl2)
|
ints_jl = df_ao_integrals_complex(:,:,:,kjkl2)
|
||||||
|
|
||||||
!$OMP PARALLEL PRIVATE(i,k,j,l,ki,kk,ii,ik,ij,il,kikk2,jl2,ik2, &
|
!$OMP PARALLEL PRIVATE(i,k,j,l,ki,kk,ii,ik,ij,il,kikk2,jl2,ik2, &
|
||||||
@ -142,12 +143,15 @@ subroutine ao_map_fill_from_df
|
|||||||
ki=kconserv(kl,kk,kj)
|
ki=kconserv(kl,kk,kj)
|
||||||
if ((kl == kj) .and. (ki > kk)) cycle
|
if ((kl == kj) .and. (ki > kk)) cycle
|
||||||
call idx2_tri_int(ki,kk,kikk2)
|
call idx2_tri_int(ki,kk,kikk2)
|
||||||
|
print*,'ki,kk,kikk2',ki,kk,kikk2
|
||||||
if (kikk2 > kjkl2) cycle
|
if (kikk2 > kjkl2) cycle
|
||||||
if (ki >= kk) then
|
if (ki >= kk) then
|
||||||
|
!if (ki < kk) then !this didn't fix the problem
|
||||||
do i_ao=1,ao_num_per_kpt
|
do i_ao=1,ao_num_per_kpt
|
||||||
do j_ao=1,ao_num_per_kpt
|
do j_ao=1,ao_num_per_kpt
|
||||||
do i_df=1,df_num
|
do i_df=1,df_num
|
||||||
ints_ik(i_ao,j_ao,i_df) = dconjg(df_ao_integrals_complex(j_ao,i_ao,i_df,kikk2))
|
ints_ik(i_ao,j_ao,i_df) = dconjg(df_ao_integrals_complex(j_ao,i_ao,i_df,kikk2))
|
||||||
|
!ints_ik(j_ao,i_ao,i_df) = dconjg(df_ao_integrals_complex(j_ao,i_ao,i_df,kikk2))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -78,12 +78,12 @@ ezfio.set_nuclei_nuclear_repulsion(nuclear_repulsion)
|
|||||||
|
|
||||||
# Ao num
|
# Ao num
|
||||||
#ao_num = mo_num
|
#ao_num = mo_num
|
||||||
ezfio.set_ao_basis_ao_basis("Dummy one. We read MO")
|
#ezfio.set_ao_basis_ao_basis("Dummy one. We read MO")
|
||||||
ezfio.set_ao_basis_ao_num(ao_num)
|
ezfio.set_ao_basis_ao_num(ao_num)
|
||||||
ezfio.set_ao_basis_ao_nucl([1]*ao_num) #Maybe put a realy incorrect stuff
|
#ezfio.set_ao_basis_ao_nucl([1]*ao_num) #Maybe put a realy incorrect stuff
|
||||||
|
|
||||||
#ezfio.set_ao_basis_ao_basis(qph5['ao_basis'].attrs['ao_basis'])
|
ezfio.set_ao_basis_ao_basis(qph5['ao_basis'].attrs['ao_basis'])
|
||||||
#ezfio.set_ao_basis_ao_nucl(qph5['ao_basis/ao_nucl'][()].tolist())
|
ezfio.set_ao_basis_ao_nucl(qph5['ao_basis/ao_nucl'][()].tolist())
|
||||||
|
|
||||||
|
|
||||||
#Just need one (can clean this up later)
|
#Just need one (can clean this up later)
|
||||||
@ -111,7 +111,7 @@ mo_coef_cmplx0 = np.stack((mo_coef_re0,mo_coef_im0),axis=-1).tolist()
|
|||||||
ezfio.set_mo_basis_mo_coef_complex(mo_coef_cmplx0)
|
ezfio.set_mo_basis_mo_coef_complex(mo_coef_cmplx0)
|
||||||
|
|
||||||
#maybe fix qp so we don't need this?
|
#maybe fix qp so we don't need this?
|
||||||
ezfio.set_mo_basis_mo_coef([[i for i in range(mo_num)] * ao_num])
|
#ezfio.set_mo_basis_mo_coef([[i for i in range(mo_num)] * ao_num])
|
||||||
|
|
||||||
ezfio.set_nuclei_is_complex(True)
|
ezfio.set_nuclei_is_complex(True)
|
||||||
|
|
||||||
@ -131,33 +131,21 @@ ne_ao_im0=qph5['ao_one_e_ints/ao_integrals_n_e_imag'][()].T
|
|||||||
#test where to stack? (axis=0 or -1?)
|
#test where to stack? (axis=0 or -1?)
|
||||||
ne_ao_cmplx0=np.stack((ne_ao_re0,ne_ao_im0),axis=-1).tolist()
|
ne_ao_cmplx0=np.stack((ne_ao_re0,ne_ao_im0),axis=-1).tolist()
|
||||||
|
|
||||||
kin_ao_re=kin_ao_re0.tolist()
|
|
||||||
kin_ao_im=kin_ao_im0.tolist()
|
|
||||||
ovlp_ao_re=ovlp_ao_re0.tolist()
|
|
||||||
ovlp_ao_im=ovlp_ao_im0.tolist()
|
|
||||||
ne_ao_re=ne_ao_re0.tolist()
|
|
||||||
ne_ao_im=ne_ao_im0.tolist()
|
|
||||||
|
|
||||||
#kin_ao_c = np.stack(kin_ao_re0,kin_ao_im0
|
|
||||||
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_kinetic(kin_ao_re)
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_kinetic_imag(kin_ao_im)
|
|
||||||
ezfio.set_ao_one_e_ints_ao_integrals_kinetic_complex(kin_ao_cmplx0)
|
ezfio.set_ao_one_e_ints_ao_integrals_kinetic_complex(kin_ao_cmplx0)
|
||||||
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_overlap(ovlp_ao_re)
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_overlap_imag(ovlp_ao_im)
|
|
||||||
ezfio.set_ao_one_e_ints_ao_integrals_overlap_complex(ovlp_ao_cmplx0)
|
ezfio.set_ao_one_e_ints_ao_integrals_overlap_complex(ovlp_ao_cmplx0)
|
||||||
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_n_e(ne_ao_re)
|
|
||||||
#ezfio.set_ao_one_e_ints_ao_integrals_n_e_imag(ne_ao_im)
|
|
||||||
ezfio.set_ao_one_e_ints_ao_integrals_n_e_complex(ne_ao_cmplx0)
|
ezfio.set_ao_one_e_ints_ao_integrals_n_e_complex(ne_ao_cmplx0)
|
||||||
|
|
||||||
|
ezfio.set_ao_one_e_ints_io_ao_integrals_kinetic('Read')
|
||||||
|
ezfio.set_ao_one_e_ints_io_ao_integrals_overlap('Read')
|
||||||
|
ezfio.set_ao_one_e_ints_io_ao_integrals_n_e('Read')
|
||||||
|
|
||||||
dfao_re0=qph5['ao_two_e_ints/df_ao_integrals_real'][()].transpose((3,2,1,0))
|
dfao_re0=qph5['ao_two_e_ints/df_ao_integrals_real'][()].transpose((3,2,1,0))
|
||||||
dfao_im0=qph5['ao_two_e_ints/df_ao_integrals_imag'][()].transpose((3,2,1,0))
|
dfao_im0=qph5['ao_two_e_ints/df_ao_integrals_imag'][()].transpose((3,2,1,0))
|
||||||
#ezfio.set_ao_two_e_ints_df_ao_integrals_real(dfao_re.tolist())
|
#ezfio.set_ao_two_e_ints_df_ao_integrals_real(dfao_re.tolist())
|
||||||
#ezfio.set_ao_two_e_ints_df_ao_integrals_imag(dfao_im.tolist())
|
#ezfio.set_ao_two_e_ints_df_ao_integrals_imag(dfao_im.tolist())
|
||||||
dfao_cmplx0 = np.stack((dfao_re0,dfao_im0),axis=-1).tolist()
|
dfao_cmplx0 = np.stack((dfao_re0,dfao_im0),axis=-1).tolist()
|
||||||
ezfio.set_ao_two_e_ints_df_ao_integrals_complex(dfao_cmplx0)
|
ezfio.set_ao_two_e_ints_df_ao_integrals_complex(dfao_cmplx0)
|
||||||
|
ezfio.set_ao_two_e_ints_io_df_ao_integrals('Read')
|
||||||
|
|
||||||
|
|
||||||
#TODO: add check and only do this if ints exist
|
#TODO: add check and only do this if ints exist
|
||||||
|
@ -15,7 +15,7 @@ subroutine run
|
|||||||
do k=1,ao_num
|
do k=1,ao_num
|
||||||
do l=1,ao_num
|
do l=1,ao_num
|
||||||
tmp_cmplx = get_ao_two_e_integral_complex(i,j,k,l,ao_integrals_map,ao_integrals_map_2)
|
tmp_cmplx = get_ao_two_e_integral_complex(i,j,k,l,ao_integrals_map,ao_integrals_map_2)
|
||||||
print'(4(I4),2(E15.7))',i,j,k,l,tmp_cmplx
|
print'(4(I4),2(E23.15))',i,j,k,l,tmp_cmplx
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
26
src/utils_complex/dump_df_ao.irp.f
Normal file
26
src/utils_complex/dump_df_ao.irp.f
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
program dump_df_ao
|
||||||
|
call run
|
||||||
|
end
|
||||||
|
|
||||||
|
subroutine run
|
||||||
|
use map_module
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer ::i,j,k,mu
|
||||||
|
complex*16 :: integral
|
||||||
|
|
||||||
|
provide df_ao_integrals_complex
|
||||||
|
do k=1,kpt_pair_num
|
||||||
|
do mu=1,df_num
|
||||||
|
do i=1,ao_num_per_kpt
|
||||||
|
do j=1,ao_num_per_kpt
|
||||||
|
integral = df_ao_integrals_complex(i,j,mu,k)
|
||||||
|
if (cdabs(integral).gt.1.d-12) then
|
||||||
|
print'(4(I4),4(E15.7))',i,j,mu,k,integral,dble(integral),dimag(integral)
|
||||||
|
endif
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end
|
@ -11,7 +11,7 @@ subroutine run
|
|||||||
|
|
||||||
integer ::i,j,k,l
|
integer ::i,j,k,l
|
||||||
double precision :: integral
|
double precision :: integral
|
||||||
double precision, allocatable :: A(:,:), B(:,:)
|
complex*16, allocatable :: C(:,:)
|
||||||
double precision :: tmp_re, tmp_im
|
double precision :: tmp_re, tmp_im
|
||||||
|
|
||||||
integer :: n_integrals_1, n_integrals_2
|
integer :: n_integrals_1, n_integrals_2
|
||||||
@ -24,90 +24,76 @@ subroutine run
|
|||||||
|
|
||||||
! call ezfio_set_ao_basis_ao_num(ao_num)
|
! call ezfio_set_ao_basis_ao_num(ao_num)
|
||||||
|
|
||||||
allocate (A(ao_num,ao_num), B(ao_num,ao_num) )
|
allocate (C(ao_num,ao_num))
|
||||||
|
|
||||||
A(1,1) = huge(1.d0)
|
integral = huge(1.d0)
|
||||||
iunit = getunitandopen('E.qp','r')
|
iunit = getunitandopen('E.qp','r')
|
||||||
read (iunit,*,end=9) A(1,1)
|
read (iunit,*,end=9) integral
|
||||||
9 continue
|
9 continue
|
||||||
close(iunit)
|
close(iunit)
|
||||||
if (A(1,1) /= huge(1.d0)) then
|
if (integral /= huge(1.d0)) then
|
||||||
call ezfio_set_nuclei_nuclear_repulsion(A(1,1))
|
call ezfio_set_nuclei_nuclear_repulsion(integral)
|
||||||
call ezfio_set_nuclei_io_nuclear_repulsion("Read")
|
call ezfio_set_nuclei_io_nuclear_repulsion("Read")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
A = 0.d0
|
C = (0.d0,0.d0)
|
||||||
B = 0.d0
|
|
||||||
iunit = getunitandopen('T.qp','r')
|
iunit = getunitandopen('T.qp','r')
|
||||||
do
|
do
|
||||||
read (iunit,*,end=10) i,j, tmp_re, tmp_im
|
read (iunit,*,end=10) i,j, tmp_re, tmp_im
|
||||||
A(i,j) = tmp_re
|
C(i,j) = dcmplx(tmp_re,tmp_im)
|
||||||
B(i,j) = tmp_im
|
|
||||||
if (i.ne.j) then
|
if (i.ne.j) then
|
||||||
A(j,i) = tmp_re
|
C(j,i) = dcmplx(tmp_re,-tmp_im)
|
||||||
B(j,i) = -tmp_im
|
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
10 continue
|
10 continue
|
||||||
close(iunit)
|
close(iunit)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_kinetic(A(1:ao_num, 1:ao_num))
|
call ezfio_set_ao_one_e_ints_ao_integrals_kinetic_complex(C)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_kinetic_imag(B(1:ao_num, 1:ao_num))
|
|
||||||
call ezfio_set_ao_one_e_ints_io_ao_integrals_kinetic("Read")
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_kinetic("Read")
|
||||||
|
|
||||||
A = 0.d0
|
C = (0.d0,0.d0)
|
||||||
B = 0.d0
|
|
||||||
iunit = getunitandopen('S.qp','r')
|
iunit = getunitandopen('S.qp','r')
|
||||||
do
|
do
|
||||||
read (iunit,*,end=11) i,j, tmp_re, tmp_im
|
read (iunit,*,end=11) i,j, tmp_re, tmp_im
|
||||||
A(i,j) = tmp_re
|
C(i,j) = dcmplx(tmp_re,tmp_im)
|
||||||
B(i,j) = tmp_im
|
|
||||||
if (i.ne.j) then
|
if (i.ne.j) then
|
||||||
A(j,i) = tmp_re
|
C(j,i) = dcmplx(tmp_re,-tmp_im)
|
||||||
B(j,i) = -tmp_im
|
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
11 continue
|
11 continue
|
||||||
close(iunit)
|
close(iunit)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_overlap(A(1:ao_num, 1:ao_num))
|
call ezfio_set_ao_one_e_ints_ao_integrals_overlap_complex(C)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_overlap_imag(B(1:ao_num, 1:ao_num))
|
|
||||||
call ezfio_set_ao_one_e_ints_io_ao_integrals_overlap("Read")
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_overlap("Read")
|
||||||
|
|
||||||
A = 0.d0
|
C = (0.d0,0.d0)
|
||||||
B = 0.d0
|
|
||||||
iunit = getunitandopen('P.qp','r')
|
iunit = getunitandopen('P.qp','r')
|
||||||
do
|
do
|
||||||
read (iunit,*,end=14) i,j, tmp_re, tmp_im
|
read (iunit,*,end=14) i,j, tmp_re, tmp_im
|
||||||
A(i,j) = tmp_re
|
C(i,j) = dcmplx(tmp_re,tmp_im)
|
||||||
B(i,j) = tmp_im
|
|
||||||
if (i.ne.j) then
|
if (i.ne.j) then
|
||||||
A(j,i) = tmp_re
|
C(j,i) = dcmplx(tmp_re,-tmp_im)
|
||||||
B(j,i) = -tmp_im
|
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
14 continue
|
14 continue
|
||||||
close(iunit)
|
close(iunit)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_pseudo(A(1:ao_num,1:ao_num))
|
call ezfio_set_ao_one_e_ints_ao_integrals_pseudo_complex(C)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_pseudo_imag(B(1:ao_num,1:ao_num))
|
|
||||||
call ezfio_set_ao_one_e_ints_io_ao_integrals_pseudo("Read")
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_pseudo("Read")
|
||||||
|
|
||||||
A = 0.d0
|
C = (0.d0,0.d0)
|
||||||
B = 0.d0
|
|
||||||
iunit = getunitandopen('V.qp','r')
|
iunit = getunitandopen('V.qp','r')
|
||||||
do
|
do
|
||||||
read (iunit,*,end=12) i,j, tmp_re, tmp_im
|
read (iunit,*,end=12) i,j, tmp_re, tmp_im
|
||||||
A(i,j) = tmp_re
|
C(i,j) = dcmplx(tmp_re,tmp_im)
|
||||||
B(i,j) = tmp_im
|
|
||||||
if (i.ne.j) then
|
if (i.ne.j) then
|
||||||
A(j,i) = tmp_re
|
C(j,i) = dcmplx(tmp_re,-tmp_im)
|
||||||
B(j,i) = -tmp_im
|
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
12 continue
|
12 continue
|
||||||
close(iunit)
|
close(iunit)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_n_e(A(1:ao_num, 1:ao_num))
|
call ezfio_set_ao_one_e_ints_ao_integrals_n_e_complex(C)
|
||||||
call ezfio_set_ao_one_e_ints_ao_integrals_n_e_imag(B(1:ao_num, 1:ao_num))
|
|
||||||
call ezfio_set_ao_one_e_ints_io_ao_integrals_n_e("Read")
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_n_e("Read")
|
||||||
|
|
||||||
|
deallocate(C)
|
||||||
|
|
||||||
allocate(buffer_i_1(ao_num**3), buffer_values_1(ao_num**3))
|
allocate(buffer_i_1(ao_num**3), buffer_values_1(ao_num**3))
|
||||||
allocate(buffer_i_2(ao_num**3), buffer_values_2(ao_num**3))
|
allocate(buffer_i_2(ao_num**3), buffer_values_2(ao_num**3))
|
||||||
iunit = getunitandopen('W.qp','r')
|
iunit = getunitandopen('W.qp','r')
|
||||||
|
Loading…
Reference in New Issue
Block a user