mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-18 11:23:38 +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)
|
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||||
interface: ezfio
|
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]
|
[io_ao_integrals_n_e]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
doc: Read/Write |AO| nucleus-electron attraction integrals from/to disk [ Write | Read | None ]
|
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)
|
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||||
interface: ezfio
|
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]
|
[io_ao_integrals_kinetic]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
doc: Read/Write |AO| kinetic integrals from/to disk [ Write | Read | None ]
|
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)
|
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||||
interface: ezfio
|
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]
|
[io_ao_integrals_pseudo]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
doc: Read/Write |AO| pseudopotential integrals from/to disk [ Write | Read | None ]
|
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)
|
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||||
interface: ezfio
|
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]
|
[io_ao_integrals_overlap]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
doc: Read/Write |AO| overlap integrals from/to disk [ Write | Read | None ]
|
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)
|
size: (2,ao_basis.ao_num,ao_basis.ao_num)
|
||||||
interface: ezfio
|
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]
|
[io_ao_one_e_integrals]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
doc: Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
doc: Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
@ -82,3 +82,33 @@ END_PROVIDER
|
|||||||
ENDIF
|
ENDIF
|
||||||
END_PROVIDER
|
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) ]
|
BEGIN_PROVIDER [ complex*16, ao_cart_to_sphe_coef_complex, (ao_num,ao_cart_to_sphe_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
|
@ -104,6 +104,23 @@ BEGIN_PROVIDER [ complex*16, ao_overlap_complex, (ao_num, ao_num) ]
|
|||||||
endif
|
endif
|
||||||
END_PROVIDER
|
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)
|
integer :: power_A(3), power_B(3)
|
||||||
double precision :: lower_exp_val, dx
|
double precision :: lower_exp_val, dx
|
||||||
if (is_complex) then
|
if (is_complex) then
|
||||||
do j=1,ao_num
|
ao_overlap_abs = 0.d0
|
||||||
do i= 1,ao_num
|
integer :: k, ishift
|
||||||
ao_overlap_abs(i,j)= cdabs(ao_overlap_complex(i,j))
|
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
|
||||||
enddo
|
enddo
|
||||||
else
|
else
|
||||||
|
@ -191,3 +191,24 @@ BEGIN_PROVIDER [complex*16, ao_kinetic_integrals_complex, (ao_num,ao_num)]
|
|||||||
print *, 'AO kinetic integrals written to disk'
|
print *, 'AO kinetic integrals written to disk'
|
||||||
endif
|
endif
|
||||||
END_PROVIDER
|
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
|
endif
|
||||||
END_PROVIDER
|
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_PROVIDER [ double precision, ao_integrals_n_e_per_atom, (ao_num,ao_num,nucl_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Nucleus-electron interaction in the |AO| basis set, per atom A.
|
! 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
|
endif
|
||||||
END_PROVIDER
|
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)]
|
BEGIN_PROVIDER [ double precision, ao_pseudo_integrals_local, (ao_num,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
|
Loading…
Reference in New Issue
Block a user