mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-14 18:13:51 +01:00
starting kpts
This commit is contained in:
parent
d504108a33
commit
922eeb24c0
@ -10,6 +10,12 @@ doc: Complex nucleus-electron integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_integrals_n_e_kpts]
|
||||
type: double precision
|
||||
doc: Complex nucleus-electron integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num_per_kpt,ao_basis.ao_num_per_kpt,nuclei.kpt_num)
|
||||
interface: ezfio
|
||||
|
||||
[io_ao_integrals_n_e]
|
||||
type: Disk_access
|
||||
doc: Read/Write |AO| nucleus-electron attraction integrals from/to disk [ Write | Read | None ]
|
||||
@ -29,6 +35,12 @@ doc: Complex kinetic energy integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_integrals_kinetic_kpts]
|
||||
type: double precision
|
||||
doc: Complex kinetic energy integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num_per_kpt,ao_basis.ao_num_per_kpt,nuclei.kpt_num)
|
||||
interface: ezfio
|
||||
|
||||
[io_ao_integrals_kinetic]
|
||||
type: Disk_access
|
||||
doc: Read/Write |AO| kinetic integrals from/to disk [ Write | Read | None ]
|
||||
@ -48,6 +60,12 @@ doc: Complex pseudopotential integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_integrals_pseudo_kpts]
|
||||
type: double precision
|
||||
doc: Complex pseudopotential integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num_per_kpt,ao_basis.ao_num_per_kpt,nuclei.kpt_num)
|
||||
interface: ezfio
|
||||
|
||||
[io_ao_integrals_pseudo]
|
||||
type: Disk_access
|
||||
doc: Read/Write |AO| pseudopotential integrals from/to disk [ Write | Read | None ]
|
||||
@ -67,6 +85,12 @@ doc: Complex overlap integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_integrals_overlap_kpts]
|
||||
type: double precision
|
||||
doc: Complex overlap integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num_per_kpt,ao_basis.ao_num_per_kpt,nuclei.kpt_num)
|
||||
interface: ezfio
|
||||
|
||||
[io_ao_integrals_overlap]
|
||||
type: Disk_access
|
||||
doc: Read/Write |AO| overlap integrals from/to disk [ Write | Read | None ]
|
||||
@ -86,6 +110,12 @@ doc: Complex combined integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_one_e_integrals_kpts]
|
||||
type: double precision
|
||||
doc: Complex combined integrals in |AO| basis set
|
||||
size: (2,ao_basis.ao_num_per_kpt,ao_basis.ao_num_per_kpt,nuclei.kpt_num)
|
||||
interface: ezfio
|
||||
|
||||
[io_ao_one_e_integrals]
|
||||
type: Disk_access
|
||||
doc: Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||
|
@ -82,3 +82,33 @@ END_PROVIDER
|
||||
ENDIF
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ complex*16, ao_one_e_integrals_kpts,(ao_num_per_kpt,ao_num_per_kpt,kpt_num)]
|
||||
&BEGIN_PROVIDER [ double precision, ao_one_e_integrals_diag_kpts,(ao_num_per_kpt,kpt_num)]
|
||||
implicit none
|
||||
integer :: j,k
|
||||
BEGIN_DOC
|
||||
! One-electron Hamiltonian in the |AO| basis.
|
||||
END_DOC
|
||||
|
||||
if (read_ao_one_e_integrals) then
|
||||
call ezfio_get_ao_one_e_ints_ao_one_e_integrals_kpts(ao_one_e_integrals_kpts)
|
||||
else
|
||||
ao_one_e_integrals_kpts = ao_integrals_n_e_kpts + ao_kinetic_integrals_kpts
|
||||
|
||||
if (do_pseudo) then
|
||||
ao_one_e_integrals_kpts += ao_pseudo_integrals_kpts
|
||||
endif
|
||||
endif
|
||||
|
||||
do k = 1, kpt_num
|
||||
do j = 1, ao_num_per_kpt
|
||||
ao_one_e_integrals_diag_kpts(j,k) = dble(ao_one_e_integrals_kpts(j,j,k))
|
||||
enddo
|
||||
enddo
|
||||
|
||||
if (write_ao_one_e_integrals) then
|
||||
call ezfio_set_ao_one_e_ints_ao_one_e_integrals_kpts(ao_one_e_integrals_kpts)
|
||||
print *, 'AO one-e integrals written to disk'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
!todo: add kpts
|
||||
BEGIN_PROVIDER [ complex*16, ao_cart_to_sphe_coef_complex, (ao_num,ao_cart_to_sphe_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
|
@ -104,6 +104,23 @@ BEGIN_PROVIDER [ complex*16, ao_overlap_complex, (ao_num, ao_num) ]
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ complex*16, ao_overlap_kpts, (ao_num_per_kpt, ao_num_per_kpt, kpt_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Overlap for complex AOs
|
||||
END_DOC
|
||||
if (read_ao_integrals_overlap) then
|
||||
call ezfio_get_ao_one_e_ints_ao_integrals_overlap_kpts(ao_overlap_kpts)
|
||||
print *, 'AO overlap integrals read from disk'
|
||||
else
|
||||
print*,'complex AO overlap ints must be provided',irp_here
|
||||
endif
|
||||
if (write_ao_integrals_overlap) then
|
||||
call ezfio_set_ao_one_e_ints_ao_integrals_overlap_kpts(ao_overlap_kpts)
|
||||
print *, 'AO overlap integrals written to disk'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
|
||||
@ -123,9 +140,14 @@ BEGIN_PROVIDER [ double precision, ao_overlap_abs,(ao_num,ao_num) ]
|
||||
integer :: power_A(3), power_B(3)
|
||||
double precision :: lower_exp_val, dx
|
||||
if (is_complex) then
|
||||
do j=1,ao_num
|
||||
do i= 1,ao_num
|
||||
ao_overlap_abs(i,j)= cdabs(ao_overlap_complex(i,j))
|
||||
ao_overlap_abs = 0.d0
|
||||
integer :: k, ishift
|
||||
do k=1,kpt_num
|
||||
ishift = (k-1)*ao_num_per_kpt
|
||||
do j=1,ao_num_per_kpt
|
||||
do i= 1,ao_num_per_kpt
|
||||
ao_overlap_abs(ishift+i,ishift+j)= cdabs(ao_overlap_kpts(i,j,k))
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
else
|
||||
|
@ -191,3 +191,24 @@ BEGIN_PROVIDER [complex*16, ao_kinetic_integrals_complex, (ao_num,ao_num)]
|
||||
print *, 'AO kinetic integrals written to disk'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [complex*16, ao_kinetic_integrals_kpts, (ao_num_per_kpt,ao_num_per_kpt,kpt_num)]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Kinetic energy integrals in the |AO| basis.
|
||||
!
|
||||
! $\langle \chi_i |\hat{T}| \chi_j \rangle$
|
||||
!
|
||||
END_DOC
|
||||
if (read_ao_integrals_kinetic) then
|
||||
call ezfio_get_ao_one_e_ints_ao_integrals_kinetic_kpts(ao_kinetic_integrals_kpts)
|
||||
print *, 'AO kinetic integrals read from disk'
|
||||
else
|
||||
print *, irp_here, ': Not yet implemented'
|
||||
stop -1
|
||||
endif
|
||||
if (write_ao_integrals_kinetic) then
|
||||
call ezfio_set_ao_one_e_ints_ao_integrals_kinetic_kpts(ao_kinetic_integrals_kpts)
|
||||
print *, 'AO kinetic integrals written to disk'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
@ -120,6 +120,21 @@ BEGIN_PROVIDER [complex*16, ao_integrals_n_e_complex, (ao_num,ao_num)]
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [complex*16, ao_integrals_n_e_kpts, (ao_num_per_kpt,ao_num_per_kpt,kpt_num)]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Nucleus-electron interaction, in the |AO| basis set.
|
||||
!
|
||||
! :math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
|
||||
END_DOC
|
||||
if (read_ao_integrals_n_e) then
|
||||
call ezfio_get_ao_one_e_ints_ao_integrals_n_e_kpts(ao_integrals_n_e_kpts)
|
||||
print *, 'AO N-e integrals read from disk'
|
||||
else
|
||||
print *, irp_here, ': Not yet implemented'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, ao_integrals_n_e_per_atom, (ao_num,ao_num,nucl_num)]
|
||||
BEGIN_DOC
|
||||
! Nucleus-electron interaction in the |AO| basis set, per atom A.
|
||||
|
@ -62,6 +62,24 @@ BEGIN_PROVIDER [ complex*16, ao_pseudo_integrals_complex, (ao_num, ao_num) ]
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ complex*16, ao_pseudo_integrals_kpts, (ao_num_per_kpt, ao_num_per_kpt, kpt_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Overlap for complex AOs
|
||||
END_DOC
|
||||
if (read_ao_integrals_pseudo) then
|
||||
call ezfio_get_ao_one_e_ints_ao_integrals_pseudo_kpts(ao_pseudo_integrals_kpts)
|
||||
print *, 'AO pseudo_integrals integrals read from disk'
|
||||
else
|
||||
print*,irp_here,'not implemented'
|
||||
stop -1
|
||||
endif
|
||||
if (write_ao_integrals_pseudo) then
|
||||
call ezfio_set_ao_one_e_ints_ao_integrals_pseudo_kpts(ao_pseudo_integrals_kpts)
|
||||
print *, 'AO pseudo_integrals integrals written to disk'
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, ao_pseudo_integrals_local, (ao_num,ao_num)]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
|
Loading…
Reference in New Issue
Block a user