10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-25 13:53:49 +01:00

1e integrals in EZFIO

This commit is contained in:
Anthony Scemama 2018-10-17 15:56:55 +02:00
parent ee13470949
commit 6566529ec4
9 changed files with 53 additions and 33 deletions

View File

@ -77,3 +77,11 @@ interface: ezfio
default: false default: false
[integral_pseudo]
type: double precision
doc: Pseudopotential integrals in AO basis set
size: (ao_basis.ao_num,ao_basis.ao_num)
interface: ezfio
default: false

View File

@ -14,10 +14,10 @@
double precision :: alpha, beta, c double precision :: alpha, beta, c
double precision :: A_center(3), B_center(3) double precision :: A_center(3), B_center(3)
integer :: power_A(3), power_B(3) integer :: power_A(3), power_B(3)
! if (read_ao_one_integrals) then if (read_ao_one_integrals) then
! call ezfio_get_ao_basis_integral_overlap(ao_overlap(1:ao_num, 1:ao_num)) call ezfio_get_ao_basis_integral_overlap(ao_overlap(1:ao_num, 1:ao_num))
! print *, 'AO overlap integrals read from disk' print *, 'AO overlap integrals read from disk'
! else else
dim1=100 dim1=100
!$OMP PARALLEL DO SCHEDULE(GUIDED) & !$OMP PARALLEL DO SCHEDULE(GUIDED) &
!$OMP DEFAULT(NONE) & !$OMP DEFAULT(NONE) &
@ -60,11 +60,11 @@
enddo enddo
enddo enddo
!$OMP END PARALLEL DO !$OMP END PARALLEL DO
! endif endif
! if (write_ao_one_integrals) then if (write_ao_one_integrals) then
! call ezfio_set_ao_basis_integral_overlap(ao_overlap(1:ao_num, 1:ao_num)) call ezfio_set_ao_basis_integral_overlap(ao_overlap(1:ao_num, 1:ao_num))
! print *, 'AO overlap integrals written to disk' print *, 'AO overlap integrals written to disk'
! endif endif
END_PROVIDER END_PROVIDER

View File

@ -128,8 +128,7 @@ BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num,ao_num)]
integer :: i,j,k,l integer :: i,j,k,l
if (read_ao_one_integrals) then if (read_ao_one_integrals) then
call read_one_e_integrals('ao_kinetic_integral', ao_kinetic_integral,& call ezfio_get_ao_basis_integral_kinetic(ao_kinetic_integral)
size(ao_kinetic_integral,1), size(ao_kinetic_integral,2))
print *, 'AO kinetic integrals read from disk' print *, 'AO kinetic integrals read from disk'
else else
!$OMP PARALLEL DO DEFAULT(NONE) & !$OMP PARALLEL DO DEFAULT(NONE) &
@ -143,8 +142,7 @@ BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num,ao_num)]
!$OMP END PARALLEL DO !$OMP END PARALLEL DO
endif endif
if (write_ao_one_integrals) then if (write_ao_one_integrals) then
call write_one_e_integrals('ao_kinetic_integral', ao_kinetic_integral,& call ezfio_set_ao_basis_integral_kinetic(ao_kinetic_integral)
size(ao_kinetic_integral,1), size(ao_kinetic_integral,2))
print *, 'AO kinetic integrals written to disk' print *, 'AO kinetic integrals written to disk'
endif endif
END_PROVIDER END_PROVIDER

View File

@ -5,8 +5,7 @@ BEGIN_PROVIDER [double precision, mo_kinetic_integral, (mo_tot_num,mo_tot_num)]
END_DOC END_DOC
if (read_mo_one_integrals) then if (read_mo_one_integrals) then
call read_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,& call ezfio_get_mo_basis_integral_kinetic(mo_kinetic_integral)
size(mo_kinetic_integral,1), size(mo_kinetic_integral,2))
print *, 'MO kinetic integrals read from disk' print *, 'MO kinetic integrals read from disk'
else else
call ao_to_mo( & call ao_to_mo( &
@ -17,8 +16,7 @@ BEGIN_PROVIDER [double precision, mo_kinetic_integral, (mo_tot_num,mo_tot_num)]
) )
endif endif
if (write_mo_one_integrals) then if (write_mo_one_integrals) then
call write_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,& call ezfio_set_mo_basis_integral_kinetic(mo_kinetic_integral)
size(mo_kinetic_integral,1), size(mo_kinetic_integral,2))
print *, 'MO kinetic integrals written to disk' print *, 'MO kinetic integrals written to disk'
endif endif

View File

@ -11,8 +11,7 @@ BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral, (ao_num,ao_num)]
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
if (read_ao_one_integrals) then if (read_ao_one_integrals) then
call read_one_e_integrals('ao_ne_integral', ao_nucl_elec_integral, & call ezfio_get_ao_basis_integral_nuclear(ao_nucl_elec_integral)
size(ao_nucl_elec_integral,1), size(ao_nucl_elec_integral,2))
print *, 'AO N-e integrals read from disk' print *, 'AO N-e integrals read from disk'
else else
@ -74,8 +73,7 @@ BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral, (ao_num,ao_num)]
!$OMP END PARALLEL !$OMP END PARALLEL
endif endif
if (write_ao_one_integrals) then if (write_ao_one_integrals) then
call write_one_e_integrals('ao_ne_integral', ao_nucl_elec_integral, & call ezfio_set_ao_basis_integral_nuclear(ao_nucl_elec_integral)
size(ao_nucl_elec_integral,1), size(ao_nucl_elec_integral,2))
print *, 'AO N-e integrals written to disk' print *, 'AO N-e integrals written to disk'
endif endif

View File

@ -5,8 +5,7 @@ BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num,ao_num)]
END_DOC END_DOC
if (read_ao_one_integrals) then if (read_ao_one_integrals) then
call read_one_e_integrals('ao_pseudo_integral', ao_pseudo_integral,& call ezfio_get_ao_basis_integral_pseudo(ao_pseudo_integral)
size(ao_pseudo_integral,1), size(ao_pseudo_integral,2))
print *, 'AO pseudopotential integrals read from disk' print *, 'AO pseudopotential integrals read from disk'
else else
@ -22,8 +21,7 @@ BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num,ao_num)]
endif endif
if (write_ao_one_integrals) then if (write_ao_one_integrals) then
call write_one_e_integrals('ao_pseudo_integral', ao_pseudo_integral,& call ezfio_set_ao_basis_integral_pseudo(ao_pseudo_integral)
size(ao_pseudo_integral,1), size(ao_pseudo_integral,2))
print *, 'AO pseudopotential integrals written to disk' print *, 'AO pseudopotential integrals written to disk'
endif endif

View File

@ -5,8 +5,7 @@ BEGIN_PROVIDER [double precision, mo_nucl_elec_integral, (mo_tot_num,mo_tot_num)
END_DOC END_DOC
if (read_mo_one_integrals) then if (read_mo_one_integrals) then
call read_one_e_integrals('mo_ne_integral', mo_nucl_elec_integral, & call ezfio_get_mo_basis_integral_nuclear(mo_nucl_elec_integral)
size(mo_nucl_elec_integral,1), size(mo_nucl_elec_integral,2))
print *, 'MO N-e integrals read from disk' print *, 'MO N-e integrals read from disk'
else else
call ao_to_mo( & call ao_to_mo( &
@ -17,8 +16,7 @@ BEGIN_PROVIDER [double precision, mo_nucl_elec_integral, (mo_tot_num,mo_tot_num)
) )
endif endif
if (write_mo_one_integrals) then if (write_mo_one_integrals) then
call write_one_e_integrals('mo_ne_integral', mo_nucl_elec_integral, & call ezfio_set_mo_basis_integral_nuclear(mo_nucl_elec_integral)
size(mo_nucl_elec_integral,1), size(mo_nucl_elec_integral,2))
print *, 'MO N-e integrals written to disk' print *, 'MO N-e integrals written to disk'
endif endif

View File

@ -5,8 +5,7 @@ BEGIN_PROVIDER [double precision, mo_pseudo_integral, (mo_tot_num,mo_tot_num)]
END_DOC END_DOC
if (read_mo_one_integrals) then if (read_mo_one_integrals) then
call read_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,& call ezfio_get_mo_basis_integral_pseudo(mo_pseudo_integral)
size(mo_pseudo_integral,1), size(mo_pseudo_integral,2))
print *, 'MO pseudopotential integrals read from disk' print *, 'MO pseudopotential integrals read from disk'
else else
call ao_to_mo( & call ao_to_mo( &
@ -17,8 +16,7 @@ BEGIN_PROVIDER [double precision, mo_pseudo_integral, (mo_tot_num,mo_tot_num)]
) )
endif endif
if (write_mo_one_integrals) then if (write_mo_one_integrals) then
call write_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,& call ezfio_set_mo_basis_integral_pseudo(mo_pseudo_integral)
size(mo_pseudo_integral,1), size(mo_pseudo_integral,2))
print *, 'MO pseudopotential integrals written to disk' print *, 'MO pseudopotential integrals written to disk'
endif endif

View File

@ -30,3 +30,27 @@ size: (mo_basis.mo_tot_num)
type: character*(32) type: character*(32)
doc: Ao_md5 doc: Ao_md5
interface: ezfio interface: ezfio
[integral_nuclear]
type: double precision
doc: Nucleus-electron integrals in MO basis set
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
interface: ezfio
default: false
[integral_kinetic]
type: double precision
doc: Kinetic energy integrals in MO basis set
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
interface: ezfio
default: false
[integral_pseudo]
type: double precision
doc: Pseudopotential integrals in MO basis set
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
interface: ezfio
default: false