10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-07-03 09:55:59 +02:00

Save wavefunction

This commit is contained in:
Anthony Scemama 2014-06-07 22:07:50 +02:00
parent 103a3d92f4
commit 33e8f41268
16 changed files with 187 additions and 77 deletions

View File

@ -203,5 +203,8 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
try:
main() main()
except:
pass

View File

@ -5,9 +5,6 @@
# Mon Apr 7 15:41:19 CEST 2014 # Mon Apr 7 15:41:19 CEST 2014
QPACKAGE_ROOT=${PWD} QPACKAGE_ROOT=${PWD}
echo $QPACKAGE_ROOT
IRPF90=${QPACKAGE_ROOT}/irpf90/bin/irpf90
echo $IRPF90
if [[ -z ${IRPF90} ]] ; if [[ -z ${IRPF90} ]] ;
then then
@ -28,7 +25,9 @@ export QPACKAGE_ROOT=${QPACKAGE_ROOT}
export PYTHONPATH+=:\${QPACKAGE_ROOT}/scripts export PYTHONPATH+=:\${QPACKAGE_ROOT}/scripts
export PATH+=:\${QPACKAGE_ROOT}/scripts export PATH+=:\${QPACKAGE_ROOT}/scripts
export PATH+=:\${QPACKAGE_ROOT}/bin export PATH+=:\${QPACKAGE_ROOT}/bin
export QPACKAGE_CACHE_URL="http://qmcchem.ups-tlse.fr/files/scemama/quantum_package/cache" export QPACKAGE_CACHE_URL="http://qmcchem.ups-tlse.fr/files/scemama/quantum_package/cache
export PATH+=:${QPACKAGE_ROOT}/irpf90/bin/
"
EOF EOF
source quantum_package.rc source quantum_package.rc

View File

@ -11,7 +11,6 @@ BEGIN_PROVIDER [ logical, write_mo_integrals ]
call ezfio_get_bielec_integrals_write_mo_integrals(write_mo_integrals) call ezfio_get_bielec_integrals_write_mo_integrals(write_mo_integrals)
else else
write_mo_integrals = .False. write_mo_integrals = .False.
call ezfio_set_bielec_integrals_write_mo_integrals(write_mo_integrals)
endif endif
END_PROVIDER END_PROVIDER
@ -29,7 +28,6 @@ BEGIN_PROVIDER [ logical, write_ao_integrals ]
call ezfio_get_bielec_integrals_write_ao_integrals(write_ao_integrals) call ezfio_get_bielec_integrals_write_ao_integrals(write_ao_integrals)
else else
write_ao_integrals = .False. write_ao_integrals = .False.
call ezfio_set_bielec_integrals_write_ao_integrals(write_ao_integrals)
endif endif
END_PROVIDER END_PROVIDER
@ -47,7 +45,6 @@ BEGIN_PROVIDER [ logical, read_mo_integrals ]
call ezfio_get_bielec_integrals_read_mo_integrals(read_mo_integrals) call ezfio_get_bielec_integrals_read_mo_integrals(read_mo_integrals)
else else
read_mo_integrals = .False. read_mo_integrals = .False.
call ezfio_set_bielec_integrals_read_mo_integrals(read_mo_integrals)
endif endif
END_PROVIDER END_PROVIDER
@ -65,7 +62,6 @@ BEGIN_PROVIDER [ logical, read_ao_integrals ]
call ezfio_get_bielec_integrals_read_ao_integrals(read_ao_integrals) call ezfio_get_bielec_integrals_read_ao_integrals(read_ao_integrals)
else else
read_ao_integrals = .False. read_ao_integrals = .False.
call ezfio_set_bielec_integrals_read_ao_integrals(read_ao_integrals)
endif endif
END_PROVIDER END_PROVIDER
@ -82,8 +78,7 @@ BEGIN_PROVIDER [ double precision, ao_integrals_threshold ]
if (has) then if (has) then
call ezfio_get_bielec_integrals_threshold_ao(ao_integrals_threshold) call ezfio_get_bielec_integrals_threshold_ao(ao_integrals_threshold)
else else
ao_integrals_threshold = 1.d-15 ao_integrals_threshold = 1.d-12
call ezfio_set_bielec_integrals_threshold_ao(ao_integrals_threshold)
endif endif
END_PROVIDER END_PROVIDER
@ -102,7 +97,6 @@ BEGIN_PROVIDER [ double precision, mo_integrals_threshold ]
call ezfio_get_bielec_integrals_threshold_mo(mo_integrals_threshold) call ezfio_get_bielec_integrals_threshold_mo(mo_integrals_threshold)
else else
mo_integrals_threshold = 1.d-11 mo_integrals_threshold = 1.d-11
call ezfio_set_bielec_integrals_threshold_mo(mo_integrals_threshold)
endif endif
END_PROVIDER END_PROVIDER
@ -121,7 +115,6 @@ BEGIN_PROVIDER [ logical, do_direct_integrals ]
call ezfio_get_bielec_integrals_direct(do_direct_integrals) call ezfio_get_bielec_integrals_direct(do_direct_integrals)
else else
do_direct_integrals = .False. do_direct_integrals = .False.
call ezfio_set_bielec_integrals_direct(do_direct_integrals)
endif endif
END_PROVIDER END_PROVIDER

View File

@ -80,9 +80,6 @@ BEGIN_PROVIDER [ integer, N_generators_bitmask ]
endif endif
else else
N_generators_bitmask = 1 N_generators_bitmask = 1
call ezfio_set_bitmasks_N_int(N_int)
call ezfio_set_bitmasks_bit_kind(bit_kind)
call ezfio_set_bitmasks_N_mask_gen(N_generators_bitmask)
endif endif
ASSERT (N_generators_bitmask > 0) ASSERT (N_generators_bitmask > 0)
@ -118,7 +115,6 @@ BEGIN_PROVIDER [ integer(bit_kind), generators_bitmask, (N_int,2,6,N_generators_
generators_bitmask(:,ispin,d_part2,k) = full_ijkl_bitmask(:,d_part2) generators_bitmask(:,ispin,d_part2,k) = full_ijkl_bitmask(:,d_part2)
enddo enddo
enddo enddo
call ezfio_set_bitmasks_generators(generators_bitmask)
endif endif
END_PROVIDER END_PROVIDER
@ -148,9 +144,6 @@ BEGIN_PROVIDER [ integer, N_reference_bitmask ]
endif endif
else else
N_reference_bitmask = 1 N_reference_bitmask = 1
call ezfio_set_bitmasks_N_int(N_int)
call ezfio_set_bitmasks_bit_kind(bit_kind)
call ezfio_set_bitmasks_N_mask_ref(N_reference_bitmask)
endif endif
ASSERT (N_reference_bitmask > 0) ASSERT (N_reference_bitmask > 0)
@ -174,7 +167,6 @@ BEGIN_PROVIDER [ integer(bit_kind), reference_bitmask, (N_int,2,2,N_reference_bi
reference_bitmask(:,:,d_part1,1) = iand(not(HF_bitmask(:,:)),full_ijkl_bitmask(:,:)) reference_bitmask(:,:,d_part1,1) = iand(not(HF_bitmask(:,:)),full_ijkl_bitmask(:,:))
reference_bitmask(:,:,d_hole2,1) = HF_bitmask reference_bitmask(:,:,d_hole2,1) = HF_bitmask
reference_bitmask(:,:,d_part2,1) = iand(not(HF_bitmask(:,:)),full_ijkl_bitmask(:,:)) reference_bitmask(:,:,d_part2,1) = iand(not(HF_bitmask(:,:)),full_ijkl_bitmask(:,:))
call ezfio_set_bitmasks_reference(reference_bitmask)
endif endif
END_PROVIDER END_PROVIDER

View File

@ -11,7 +11,6 @@ BEGIN_PROVIDER [ integer , n_state_cis ]
call ezfio_get_cis_dressed_n_state_cis(n_state_cis) call ezfio_get_cis_dressed_n_state_cis(n_state_cis)
else else
n_state_cis = 5 n_state_cis = 5
call ezfio_set_cis_dressed_n_state_cis(n_state_cis)
endif endif
END_PROVIDER END_PROVIDER
@ -29,7 +28,6 @@ BEGIN_PROVIDER [ integer , n_core_cis]
call ezfio_get_cis_dressed_n_core_cis(n_core_cis) call ezfio_get_cis_dressed_n_core_cis(n_core_cis)
else else
n_core_cis = 0 n_core_cis = 0
call ezfio_set_cis_dressed_n_core_cis(n_core_cis)
endif endif
END_PROVIDER END_PROVIDER
@ -47,7 +45,6 @@ BEGIN_PROVIDER [ integer , n_act_cis]
call ezfio_get_cis_dressed_n_act_cis(n_act_cis) call ezfio_get_cis_dressed_n_act_cis(n_act_cis)
else else
n_act_cis = mo_tot_num n_act_cis = mo_tot_num
call ezfio_set_cis_dressed_n_act_cis(n_act_cis)
endif endif
END_PROVIDER END_PROVIDER
@ -65,7 +62,6 @@ BEGIN_PROVIDER [ logical , mp2_dressing]
call ezfio_get_cis_dressed_mp2_dressing(mp2_dressing) call ezfio_get_cis_dressed_mp2_dressing(mp2_dressing)
else else
mp2_dressing = .False. mp2_dressing = .False.
call ezfio_set_cis_dressed_mp2_dressing(mp2_dressing)
endif endif
END_PROVIDER END_PROVIDER
@ -83,7 +79,6 @@ BEGIN_PROVIDER [ logical , standard_doubles]
call ezfio_get_cis_dressed_standard_doubles(standard_doubles) call ezfio_get_cis_dressed_standard_doubles(standard_doubles)
else else
standard_doubles = .True. standard_doubles = .True.
call ezfio_set_cis_dressed_standard_doubles(standard_doubles)
endif endif
END_PROVIDER END_PROVIDER

View File

@ -53,7 +53,6 @@ BEGIN_PROVIDER [ double precision, H_apply_threshold ]
call ezfio_get_determinants_H_apply_threshold(H_apply_threshold) call ezfio_get_determinants_H_apply_threshold(H_apply_threshold)
else else
H_apply_threshold = 1.d-10 H_apply_threshold = 1.d-10
call ezfio_set_determinants_H_apply_threshold(H_apply_threshold)
endif endif
call write_time(output_Dets) call write_time(output_Dets)
call write_double(output_Dets, H_apply_threshold, & call write_double(output_Dets, H_apply_threshold, &

View File

@ -152,7 +152,7 @@ Documentation
`davidson_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L374>`_ `davidson_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L374>`_
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ] Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
`det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L195>`_ `det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L273>`_
Return an integer*8 corresponding to a determinant index for searching Return an integer*8 corresponding to a determinant index for searching
`n_det <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L20>`_ `n_det <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L20>`_
@ -164,20 +164,20 @@ Documentation
`n_states <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L3>`_ `n_states <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L3>`_
Number of states to consider Number of states to consider
`psi_average_norm_contrib <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L108>`_ `psi_average_norm_contrib <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L186>`_
Contribution of determinants to the state-averaged density Contribution of determinants to the state-averaged density
`psi_average_norm_contrib_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L129>`_ `psi_average_norm_contrib_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L207>`_
Wave function sorted by determinants contribution to the norm (state-averaged) Wave function sorted by determinants contribution to the norm (state-averaged)
`psi_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L86>`_ `psi_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L150>`_
The wave function coefficients. Initialized with Hartree-Fock if the EZFIO file The wave function coefficients. Initialized with Hartree-Fock if the EZFIO file
is empty is empty
`psi_coef_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L128>`_ `psi_coef_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L206>`_
Wave function sorted by determinants contribution to the norm (state-averaged) Wave function sorted by determinants contribution to the norm (state-averaged)
`psi_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L159>`_ `psi_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L237>`_
Determinants on which we apply <i|H|psi> for perturbation. Determinants on which we apply <i|H|psi> for perturbation.
o They are sorted by determinants interpreted as integers. Useful o They are sorted by determinants interpreted as integers. Useful
to accelerate the search of a determinant to accelerate the search of a determinant
@ -189,14 +189,20 @@ Documentation
`psi_det_size <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L56>`_ `psi_det_size <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L56>`_
Size of the psi_det/psi_coef arrays Size of the psi_det/psi_coef arrays
`psi_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L127>`_ `psi_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L205>`_
Wave function sorted by determinants contribution to the norm (state-averaged) Wave function sorted by determinants contribution to the norm (state-averaged)
`psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L158>`_ `psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L236>`_
Determinants on which we apply <i|H|psi> for perturbation. Determinants on which we apply <i|H|psi> for perturbation.
o They are sorted by determinants interpreted as integers. Useful o They are sorted by determinants interpreted as integers. Useful
to accelerate the search of a determinant to accelerate the search of a determinant
`read_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L107>`_
Reads the determinants from the EZFIO file
`save_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L288>`_
Save the wave function into the EZFIO file
`double_exc_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants_bitmasks.irp.f#L40>`_ `double_exc_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants_bitmasks.irp.f#L40>`_
double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1 double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1
double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1 double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1

View File

@ -1,10 +1,10 @@
determinants determinants
N_int integer n_int integer
bit_kind integer bit_kind integer
n_det integer n_det integer
n_states integer n_states integer
psi_coef double precision (determinants_n_det,determinants_n_states) psi_coef double precision (determinants_n_det,determinants_n_states)
psi_det integer*8 (determinants_N_int*determinants_bit_kind/8,2,determinants_n_det) psi_det integer*8 (determinants_n_int*determinants_bit_kind/8,2,determinants_n_det)
H_apply_threshold double precision H_apply_threshold double precision
n_det_max_jacobi integer n_det_max_jacobi integer
threshold_generators double precision threshold_generators double precision

View File

@ -12,7 +12,6 @@ BEGIN_PROVIDER [ integer, N_states ]
call ezfio_get_determinants_n_states(N_states) call ezfio_get_determinants_n_states(N_states)
else else
N_states = 1 N_states = 1
call ezfio_set_determinants_n_states(N_states)
endif endif
ASSERT (N_states > 0) ASSERT (N_states > 0)
END_PROVIDER END_PROVIDER
@ -29,7 +28,6 @@ BEGIN_PROVIDER [ integer, N_det ]
call ezfio_get_determinants_n_det(N_det) call ezfio_get_determinants_n_det(N_det)
else else
N_det = 1 N_det = 1
call ezfio_set_determinants_n_det(N_det)
endif endif
ASSERT (N_det > 0) ASSERT (N_det > 0)
END_PROVIDER END_PROVIDER
@ -46,8 +44,7 @@ BEGIN_PROVIDER [ integer, N_det_max_jacobi ]
if (exists) then if (exists) then
call ezfio_get_determinants_n_det_max_jacobi(N_det_max_jacobi) call ezfio_get_determinants_n_det_max_jacobi(N_det_max_jacobi)
else else
N_det_max_jacobi = 1500 N_det_max_jacobi = 2000
call ezfio_set_determinants_n_det_max_jacobi(N_det_max_jacobi)
endif endif
ASSERT (N_det_max_jacobi > 0) ASSERT (N_det_max_jacobi > 0)
END_PROVIDER END_PROVIDER
@ -61,28 +58,92 @@ BEGIN_PROVIDER [ integer, psi_det_size ]
psi_det_size = 1000*N_states psi_det_size = 1000*N_states
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [ integer(bit_kind), psi_det, (N_int,2,psi_det_size) ] BEGIN_PROVIDER [ integer(bit_kind), psi_det, (N_int,2,psi_det_size) ]
implicit none implicit none
BEGIN_DOC BEGIN_DOC
! The wave function determinants. Initialized with Hartree-Fock if the EZFIO file ! The wave function determinants. Initialized with Hartree-Fock if the EZFIO file
! is empty ! is empty
END_DOC END_DOC
integer*8, allocatable :: psi_det_read(:,:,:)
double precision, allocatable :: psi_coef_read(:,:)
integer*8 :: det_8(100)
integer(bit_kind) :: det_bk((100*8)/bit_kind)
integer :: N_int2, i
logical :: exists
equivalence (det_8, det_bk)
integer, save :: ifirst = 0 call ezfio_has_determinants_N_int(exists)
if (exists) then
if (ifirst == 0) then call ezfio_has_determinants_bit_kind(exists)
ifirst = 1 if (exists) then
psi_det = 0_bit_kind call ezfio_has_determinants_N_det(exists)
if (exists) then
call ezfio_has_determinants_N_states(exists)
if (exists) then
call ezfio_has_determinants_psi_coef(exists)
if (exists) then
call ezfio_has_determinants_psi_det(exists)
endif
endif
endif
endif
endif endif
integer :: i if (exists) then
call read_dets(psi_det,N_int,N_det)
else
psi_det = 0_bit_kind
do i=1,N_int do i=1,N_int
psi_det(i,1,1) = HF_bitmask(i,1) psi_det(i,1,1) = HF_bitmask(i,1)
psi_det(i,2,1) = HF_bitmask(i,2) psi_det(i,2,1) = HF_bitmask(i,2)
enddo enddo
endif
END_PROVIDER END_PROVIDER
subroutine read_dets(det,Nint,Ndet)
implicit none
BEGIN_DOC
! Reads the determinants from the EZFIO file
END_DOC
integer, intent(in) :: Nint,Ndet
integer(bit_kind), intent(out) :: det(Nint,2,Ndet)
integer*8, allocatable :: psi_det_read(:,:,:)
double precision, allocatable :: psi_coef_read(:,:)
integer*8 :: det_8(100)
integer(bit_kind) :: det_bk((100*8)/bit_kind)
integer :: N_int2
integer :: i,k
equivalence (det_8, det_bk)
call ezfio_get_determinants_N_int(N_int2)
ASSERT (N_int2 == N_int)
call ezfio_get_determinants_bit_kind(k)
ASSERT (k == bit_kind)
N_int2 = (N_int*bit_kind)/8
allocate (psi_det_read(N_int2,2,N_det))
call ezfio_get_determinants_psi_det (psi_det_read)
do i=1,N_det
do k=1,N_int2
det_8(k) = psi_det_read(k,1,i)
enddo
do k=1,N_int
det(k,1,i) = det_bk(k)
enddo
do k=1,N_int2
det_8(k) = psi_det_read(k,2,i)
enddo
do k=1,N_int
det(k,2,i) = det_bk(k)
enddo
enddo
deallocate(psi_det_read)
end
BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ] BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ]
implicit none implicit none
BEGIN_DOC BEGIN_DOC
@ -90,18 +151,32 @@ BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ]
! is empty ! is empty
END_DOC END_DOC
integer, save :: ifirst = 0 integer :: i,k, N_int2
integer :: i logical :: exists
double precision, allocatable :: psi_coef_read(:,:)
call ezfio_has_determinants_psi_coef(exists)
if (exists) then
allocate (psi_coef_read(N_det,N_states))
call ezfio_get_determinants_psi_coef(psi_coef_read)
do k=1,N_states
do i=1,N_det
psi_coef(i,k) = psi_coef_read(i,k)
enddo
enddo
deallocate(psi_coef_read)
else
if (ifirst == 0) then
ifirst = 1
psi_coef = 0.d0 psi_coef = 0.d0
endif
do i=1,N_states do i=1,N_states
psi_coef(i,i) = 1.d0 psi_coef(i,i) = 1.d0
enddo enddo
endif
END_PROVIDER END_PROVIDER
@ -206,3 +281,52 @@ integer*8 function det_search_key(det,Nint)
det_search_key = ieor(det_search_key,iand(det(i,1),det(i,2))) det_search_key = ieor(det_search_key,iand(det(i,1),det(i,2)))
enddo enddo
end end
subroutine save_wavefunction
implicit none
BEGIN_DOC
! Save the wave function into the EZFIO file
END_DOC
integer*8, allocatable :: psi_det_save(:,:,:)
double precision, allocatable :: psi_coef_save(:,:)
integer*8 :: det_8(100)
integer(bit_kind) :: det_bk((100*8)/bit_kind)
integer :: N_int2
equivalence (det_8, det_bk)
integer :: i,k
call ezfio_set_determinants_N_int(N_int)
call ezfio_set_determinants_bit_kind(bit_kind)
call ezfio_set_determinants_N_det(N_det)
call ezfio_set_determinants_N_states(N_states)
N_int2 = (N_int*bit_kind)/8
allocate (psi_det_save(N_int2,2,N_det))
do i=1,N_det
do k=1,N_int
det_bk(k) = psi_det_sorted(k,1,i)
enddo
do k=1,N_int2
psi_det_save(k,1,i) = det_8(k)
enddo
do k=1,N_int
det_bk(k) = psi_det(k,2,i)
enddo
do k=1,N_int2
psi_det_save(k,2,i) = det_8(k)
enddo
enddo
call ezfio_set_determinants_psi_det(psi_det_save)
deallocate (psi_det_save)
allocate (psi_coef_save(N_det,N_states))
do k=1,N_states
do i=1,N_det
psi_coef_save(i,k) = psi_coef_sorted(i,k)
enddo
enddo
call ezfio_set_determinants_psi_coef(psi_coef_save)
deallocate (psi_coef_save)
end

View File

@ -14,6 +14,7 @@ program cisd
do while (maxval(abs(pt2(1:N_st))) > 1.d-3) do while (maxval(abs(pt2(1:N_st))) > 1.d-3)
call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st) call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st)
call diagonalize_CI call diagonalize_CI
call save_wavefunction
print *, 'N_det = ', N_det print *, 'N_det = ', N_det
print *, 'N_states = ', N_states print *, 'N_states = ', N_states
print *, 'PT2 = ', pt2 print *, 'PT2 = ', pt2

View File

@ -13,7 +13,6 @@ BEGIN_PROVIDER [ double precision, threshold_generators ]
call ezfio_get_determinants_threshold_generators(threshold_generators) call ezfio_get_determinants_threshold_generators(threshold_generators)
else else
threshold_generators = 0.99d0 threshold_generators = 0.99d0
call ezfio_set_determinants_threshold_generators(threshold_generators)
endif endif
ASSERT (N_det > 0) ASSERT (N_det > 0)
call write_double(output_Dets,threshold_generators,'Threshold on generators') call write_double(output_Dets,threshold_generators,'Threshold on generators')

View File

@ -11,7 +11,6 @@ BEGIN_PROVIDER [ double precision,thresh_SCF ]
call ezfio_get_Hartree_Fock_thresh_SCF(thresh_SCF) call ezfio_get_Hartree_Fock_thresh_SCF(thresh_SCF)
else else
thresh_SCF = 1.d-10 thresh_SCF = 1.d-10
call ezfio_set_Hartree_Fock_thresh_SCF(thresh_SCF)
endif endif
call write_time(output_Hartree_Fock) call write_time(output_Hartree_Fock)
call write_double(output_Hartree_Fock, thresh_SCF, & call write_double(output_Hartree_Fock, thresh_SCF, &
@ -32,7 +31,6 @@ BEGIN_PROVIDER [ integer, n_it_scf_max]
call ezfio_get_Hartree_Fock_n_it_scf_max(n_it_scf_max) call ezfio_get_Hartree_Fock_n_it_scf_max(n_it_scf_max)
else else
n_it_scf_max = 30 n_it_scf_max = 30
call ezfio_set_Hartree_Fock_n_it_scf_max(n_it_scf_max)
endif endif
END_PROVIDER END_PROVIDER
@ -51,7 +49,6 @@ BEGIN_PROVIDER [ logical, do_DIIS ]
call ezfio_get_Hartree_Fock_DIIS(do_DIIS) call ezfio_get_Hartree_Fock_DIIS(do_DIIS)
else else
do_DIIS = .False. do_DIIS = .False.
call ezfio_set_Hartree_Fock_DIIS(do_DIIS)
endif endif
END_PROVIDER END_PROVIDER

View File

@ -39,7 +39,6 @@ END_PROVIDER
call ezfio_get_mo_basis_mo_label(mo_label) call ezfio_get_mo_basis_mo_label(mo_label)
else else
mo_label = 'no_label' mo_label = 'no_label'
call ezfio_set_mo_basis_mo_label(mo_label)
endif endif
! Coefs ! Coefs

View File

@ -125,3 +125,7 @@ test:
# Dummy rule to enable to force recompilation # Dummy rule to enable to force recompilation
FORCE: FORCE:
clena: clean
vercylean: veryclean
veryclena: veryclean

View File

@ -5,7 +5,7 @@ DEBUG = 0
IRPF90_FLAGS+= --align=32 IRPF90_FLAGS+= --align=32
FC = ifort -g FC = ifort -g
FCFLAGS= FCFLAGS=
FCFLAGS+= -axAVX,SSE4.3 FCFLAGS+= -axAVX,SSE4.2
FCFLAGS+= -O2 FCFLAGS+= -O2
FCFLAGS+= -ip FCFLAGS+= -ip
FCFLAGS+= -opt-prefetch FCFLAGS+= -opt-prefetch

View File

@ -13,7 +13,6 @@ BEGIN_PROVIDER [ double precision, threshold_selectors ]
call ezfio_get_determinants_threshold_selectors(threshold_selectors) call ezfio_get_determinants_threshold_selectors(threshold_selectors)
else else
threshold_selectors = 0.99d0 threshold_selectors = 0.99d0
call ezfio_set_determinants_threshold_selectors(threshold_selectors)
endif endif
ASSERT (N_det > 0) ASSERT (N_det > 0)
call write_double(output_Dets,threshold_selectors,'Threshold on selectors') call write_double(output_Dets,threshold_selectors,'Threshold on selectors')