mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-07 05:53:37 +01:00
Merge branch 'dev-stable' of github.com:quantumpackage/qp2 into dev-stable
This commit is contained in:
commit
b78bbda53b
2
external/irpf90
vendored
2
external/irpf90
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 0007f72f677fe7d61c5e1ed461882cb239517102
|
Subproject commit 4ab1b175fc7ed0d96c1912f13dc53579b24157a6
|
@ -90,7 +90,7 @@ BEGIN_PROVIDER [ logical, ao_two_e_integrals_erf_in_map ]
|
|||||||
if (write_ao_two_e_integrals_erf) then
|
if (write_ao_two_e_integrals_erf) then
|
||||||
call ezfio_set_work_empty(.False.)
|
call ezfio_set_work_empty(.False.)
|
||||||
call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map)
|
call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map)
|
||||||
call ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf("Read")
|
call ezfio_set_ao_two_e_ints_io_ao_two_e_integrals_erf('Read')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
@ -4,7 +4,7 @@ subroutine save_erf_two_e_integrals_ao
|
|||||||
PROVIDE ao_two_e_integrals_erf_in_map
|
PROVIDE ao_two_e_integrals_erf_in_map
|
||||||
call ezfio_set_work_empty(.False.)
|
call ezfio_set_work_empty(.False.)
|
||||||
call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map)
|
call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map)
|
||||||
call ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf('Read')
|
call ezfio_set_ao_two_e_ints_io_ao_two_e_integrals_erf('Read')
|
||||||
end
|
end
|
||||||
|
|
||||||
subroutine save_erf_two_e_ints_ao_into_ints_ao
|
subroutine save_erf_two_e_ints_ao_into_ints_ao
|
||||||
|
@ -10,8 +10,8 @@ function run() {
|
|||||||
qp set perturbation do_pt2 False
|
qp set perturbation do_pt2 False
|
||||||
qp set determinants n_det_max 8000
|
qp set determinants n_det_max 8000
|
||||||
qp set determinants n_states 1
|
qp set determinants n_states 1
|
||||||
qp set davidson threshold_davidson 1.e-10
|
qp set davidson_keywords threshold_davidson 1.e-10
|
||||||
qp set davidson n_states_diag 8
|
qp set davidson_keywords n_states_diag 8
|
||||||
qp run fci
|
qp run fci
|
||||||
energy1="$(ezfio get fci energy | tr '[]' ' ' | cut -d ',' -f 1)"
|
energy1="$(ezfio get fci energy | tr '[]' ' ' | cut -d ',' -f 1)"
|
||||||
eq $energy1 $1 $thresh
|
eq $energy1 $1 $thresh
|
||||||
|
@ -9,8 +9,8 @@ function run_stoch() {
|
|||||||
test_exe casscf || skip
|
test_exe casscf || skip
|
||||||
qp set perturbation do_pt2 True
|
qp set perturbation do_pt2 True
|
||||||
qp set determinants n_det_max $3
|
qp set determinants n_det_max $3
|
||||||
qp set davidson threshold_davidson 1.e-10
|
qp set davidson_keywords threshold_davidson 1.e-10
|
||||||
qp set davidson n_states_diag 4
|
qp set davidson_keywords n_states_diag 4
|
||||||
qp run casscf | tee casscf.out
|
qp run casscf | tee casscf.out
|
||||||
energy1="$(ezfio get casscf energy_pt2 | tr '[]' ' ' | cut -d ',' -f 1)"
|
energy1="$(ezfio get casscf energy_pt2 | tr '[]' ' ' | cut -d ',' -f 1)"
|
||||||
eq $energy1 $1 $thresh
|
eq $energy1 $1 $thresh
|
||||||
|
@ -9,7 +9,7 @@ function run() {
|
|||||||
qp set_file $1
|
qp set_file $1
|
||||||
qp edit --check
|
qp edit --check
|
||||||
qp set determinants n_states 3
|
qp set determinants n_states 3
|
||||||
qp set davidson threshold_davidson 1.e-12
|
qp set davidson_keywords threshold_davidson 1.e-12
|
||||||
qp set mo_two_e_ints io_mo_two_e_integrals Write
|
qp set mo_two_e_ints io_mo_two_e_integrals Write
|
||||||
qp set_frozen_core
|
qp set_frozen_core
|
||||||
qp run cis
|
qp run cis
|
||||||
@ -59,7 +59,7 @@ function run() {
|
|||||||
|
|
||||||
@test "ClO" { # 1.65582s 2.06465s
|
@test "ClO" { # 1.65582s 2.06465s
|
||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
run clo.ezfio -534.263560525680 -534.256601571199 -534.062020844428
|
run clo.ezfio -534.2635737789097 -534.2566081298855 -534.0620070783308
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "SO" { # 1.9667s 2.91234s
|
@test "SO" { # 1.9667s 2.91234s
|
||||||
@ -69,7 +69,7 @@ function run() {
|
|||||||
|
|
||||||
@test "OH" { # 2.201s 2.65573s
|
@test "OH" { # 2.201s 2.65573s
|
||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
run oh.ezfio -75.4314648243896 -75.4254639668256 -75.2707675632313
|
run oh.ezfio -75.4314822573358 -75.4254733392003 -75.2707586997333
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "H2O2" { # 2.27079s 3.07875s
|
@test "H2O2" { # 2.27079s 3.07875s
|
||||||
@ -109,7 +109,7 @@ function run() {
|
|||||||
|
|
||||||
@test "DHNO" { # 6.42976s 12.9899s
|
@test "DHNO" { # 6.42976s 12.9899s
|
||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
run dhno.ezfio -130.4472288472718 -130.3571808164850 -130.2196257046987
|
run dhno.ezfio -130.447238897118 -130.357186843611 -130.219626716369
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "CH4" { # 6.4969s 10.9157s
|
@test "CH4" { # 6.4969s 10.9157s
|
||||||
@ -129,7 +129,7 @@ function run() {
|
|||||||
|
|
||||||
@test "[Cu(NH3)4]2+" { # 29.7711s 3.45478m
|
@test "[Cu(NH3)4]2+" { # 29.7711s 3.45478m
|
||||||
[[ -n ${TRAVIS} ]] && skip
|
[[ -n ${TRAVIS} ]] && skip
|
||||||
run cu_nh3_4_2plus.ezfio -1862.97958885180 -1862.92457657404 -1862.91134959451
|
run cu_nh3_4_2plus.ezfio -1862.97958844302 -1862.92454785007 -1862.91130869967
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,9 +8,8 @@ function run() {
|
|||||||
test_exe cisd || skip
|
test_exe cisd || skip
|
||||||
qp edit --check
|
qp edit --check
|
||||||
qp set determinants n_states 2
|
qp set determinants n_states 2
|
||||||
qp set davidson threshold_davidson 1.e-12
|
qp set davidson_keywords threshold_davidson 1.e-12
|
||||||
qp set davidson n_states_diag 24
|
qp set davidson_keywords n_states_diag 24
|
||||||
qp run cis
|
|
||||||
qp run cisd
|
qp run cisd
|
||||||
energy1="$(qp get cisd energy | tr '[]' ' ' | cut -d ',' -f 1)"
|
energy1="$(qp get cisd energy | tr '[]' ' ' | cut -d ',' -f 1)"
|
||||||
energy2="$(qp get cisd energy | tr '[]' ' ' | cut -d ',' -f 2)"
|
energy2="$(qp get cisd energy | tr '[]' ' ' | cut -d ',' -f 2)"
|
||||||
@ -78,7 +77,7 @@ function run() {
|
|||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
qp set_file oh.ezfio
|
qp set_file oh.ezfio
|
||||||
qp set_frozen_core
|
qp set_frozen_core
|
||||||
run -75.6087472926588 -75.5370393736601
|
run -75.6088105201621 -75.5370802925698
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "CH4" { # 19.821s 1.38648m
|
@test "CH4" { # 19.821s 1.38648m
|
||||||
@ -106,7 +105,8 @@ function run() {
|
|||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
qp set_file dhno.ezfio
|
qp set_file dhno.ezfio
|
||||||
qp set_mo_class --core="[1-7]" --act="[8-64]"
|
qp set_mo_class --core="[1-7]" --act="[8-64]"
|
||||||
run -130.458814562403 -130.356308303681
|
run -130.4659881027444 -130.2692384198501
|
||||||
|
# run -130.458814562403 -130.356308303681
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "H3COH" { # 24.7248s 1.85043m
|
@test "H3COH" { # 24.7248s 1.85043m
|
||||||
@ -120,7 +120,7 @@ function run() {
|
|||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
qp set_file cu_nh3_4_2plus.ezfio
|
qp set_file cu_nh3_4_2plus.ezfio
|
||||||
qp set_mo_class --core="[1-24]" --act="[25-45]" --del="[46-87]"
|
qp set_mo_class --core="[1-24]" --act="[25-45]" --del="[46-87]"
|
||||||
run -1862.98689579931 -1862.6883044626563
|
run -1862.98310702274 -1862.88506319755
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ function run() {
|
|||||||
[[ -n $TRAVIS ]] && skip
|
[[ -n $TRAVIS ]] && skip
|
||||||
qp set_file clo.ezfio
|
qp set_file clo.ezfio
|
||||||
qp set_frozen_core
|
qp set_frozen_core
|
||||||
run -534.5404021326773 -534.3818725793897
|
run -534.540464615019 -534.381904487587
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "F2" { # 45.2078s
|
@test "F2" { # 45.2078s
|
||||||
|
@ -3,7 +3,7 @@ BEGIN_PROVIDER [double precision, mu_erf_dft]
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! range separation parameter used in RS-DFT.
|
! range separation parameter used in RS-DFT.
|
||||||
!
|
!
|
||||||
! It is set to mu_erf in order to be consistent with the module "ao_two_e_erf_ints"
|
! It is set to mu_erf in order to be consistent with the module "hamiltonian"
|
||||||
END_DOC
|
END_DOC
|
||||||
mu_erf_dft = mu_erf
|
mu_erf_dft = mu_erf
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ function run() {
|
|||||||
qp set scf_utils thresh_scf 1.e-10
|
qp set scf_utils thresh_scf 1.e-10
|
||||||
qp set dft_keywords exchange_functional $functional
|
qp set dft_keywords exchange_functional $functional
|
||||||
qp set dft_keywords correlation_functional $functional
|
qp set dft_keywords correlation_functional $functional
|
||||||
qp set ao_two_e_erf_ints mu_erf 0.5
|
qp set hamiltonian mu_erf 0.5
|
||||||
qp set becke_numerical_grid grid_type_sgn 1
|
qp set becke_numerical_grid grid_type_sgn 1
|
||||||
qp_reset --mos $1
|
qp_reset --mos $1
|
||||||
qp run rs_ks_scf
|
qp run rs_ks_scf
|
||||||
|
@ -9,25 +9,27 @@ subroutine mo_two_e_integrals_erf_index(i,j,k,l,i1)
|
|||||||
integer(key_kind) :: p,q,r,s,i2
|
integer(key_kind) :: p,q,r,s,i2
|
||||||
p = min(i,k)
|
p = min(i,k)
|
||||||
r = max(i,k)
|
r = max(i,k)
|
||||||
p = p+ishft(r*r-r,-1)
|
p = p+shiftr(r*r-r,1)
|
||||||
q = min(j,l)
|
q = min(j,l)
|
||||||
s = max(j,l)
|
s = max(j,l)
|
||||||
q = q+ishft(s*s-s,-1)
|
q = q+shiftr(s*s-s,1)
|
||||||
i1 = min(p,q)
|
i1 = min(p,q)
|
||||||
i2 = max(p,q)
|
i2 = max(p,q)
|
||||||
i1 = i1+ishft(i2*i2-i2,-1)
|
i1 = i1+shiftr(i2*i2-i2,1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ logical, mo_two_e_integrals_erf_in_map ]
|
BEGIN_PROVIDER [ logical, mo_two_e_integrals_erf_in_map ]
|
||||||
use map_module
|
use map_module
|
||||||
implicit none
|
implicit none
|
||||||
integer(bit_kind) :: mask_ijkl(N_int,4)
|
|
||||||
integer(bit_kind) :: mask_ijk(N_int,3)
|
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! If True, the map of MO two-electron integrals is provided
|
! If True, the map of MO two-electron integrals is provided
|
||||||
END_DOC
|
END_DOC
|
||||||
|
integer(bit_kind) :: mask_ijkl(N_int,4)
|
||||||
|
integer(bit_kind) :: mask_ijk(N_int,3)
|
||||||
|
double precision :: cpu_1, cpu_2, wall_1, wall_2
|
||||||
|
|
||||||
|
PROVIDE mo_class
|
||||||
|
|
||||||
real :: map_mb
|
real :: map_mb
|
||||||
|
|
||||||
@ -55,7 +57,7 @@ BEGIN_PROVIDER [ logical, mo_two_e_integrals_erf_in_map ]
|
|||||||
if (write_mo_two_e_integrals_erf) then
|
if (write_mo_two_e_integrals_erf) then
|
||||||
call ezfio_set_work_empty(.False.)
|
call ezfio_set_work_empty(.False.)
|
||||||
call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map)
|
call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map)
|
||||||
call ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf("Read")
|
call ezfio_set_mo_two_e_ints_io_mo_two_e_integrals_erf("Read")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
@ -4,7 +4,7 @@ subroutine save_erf_two_e_integrals_mo
|
|||||||
PROVIDE mo_two_e_integrals_erf_in_map
|
PROVIDE mo_two_e_integrals_erf_in_map
|
||||||
call ezfio_set_work_empty(.False.)
|
call ezfio_set_work_empty(.False.)
|
||||||
call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map)
|
call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map)
|
||||||
call ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf('Read')
|
call ezfio_set_mo_two_e_ints_io_mo_two_e_integrals_erf('Read')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@
|
|||||||
BEGIN_PROVIDER [double precision, mu_average_prov, (N_states)]
|
BEGIN_PROVIDER [double precision, mu_average_prov, (N_states)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! average value of mu(r) weighted with the total one-e density and divised by the number of electrons
|
! average value of mu(r) weighted with the total one-e density and divided by the number of electrons
|
||||||
!
|
!
|
||||||
! !!!!!! WARNING !!!!!! if no_core_density == .True. then all contributions from the core orbitals
|
! !!!!!! WARNING !!!!!! if no_core_density == .True. then all contributions from the core orbitals
|
||||||
!
|
!
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
call total_memory(mem)
|
call total_memory(mem)
|
||||||
mem = max(1.d0, qp_max_mem - mem)
|
mem = max(1.d0, qp_max_mem - mem)
|
||||||
n_double = mem * 1.d8
|
n_double = mem * 1.d8
|
||||||
n_blocks = min(n_double / (n_points_extra_final_grid * 4), 1.d0*n_points_final_grid)
|
n_blocks = int(min(n_double / (n_points_extra_final_grid * 4.d0), 1.d0*n_points_final_grid))
|
||||||
n_rest = int(mod(n_points_final_grid, n_blocks))
|
n_rest = int(mod(n_points_final_grid, n_blocks))
|
||||||
n_pass = int((n_points_final_grid - n_rest) / n_blocks)
|
n_pass = int((n_points_final_grid - n_rest) / n_blocks)
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ function run_Ne() {
|
|||||||
qp create_ezfio -b cc-pcvdz Ne.xyz -o Ne_tc_scf
|
qp create_ezfio -b cc-pcvdz Ne.xyz -o Ne_tc_scf
|
||||||
qp run scf
|
qp run scf
|
||||||
|
|
||||||
qp set ao_two_e_erf_ints mu_erf 0.87
|
qp set hamiltonian mu_erf 0.87
|
||||||
qp set tc_keywords j1b_type 3
|
qp set tc_keywords j1b_type 3
|
||||||
qp set tc_keywords j1b_pen [1.5]
|
qp set tc_keywords j1b_pen [1.5]
|
||||||
qp set tc_keywords bi_ortho True
|
qp set tc_keywords bi_ortho True
|
||||||
@ -33,7 +33,7 @@ function run_C() {
|
|||||||
qp create_ezfio -b cc-pcvdz C.xyz -o C_tc_scf -m 3
|
qp create_ezfio -b cc-pcvdz C.xyz -o C_tc_scf -m 3
|
||||||
qp run scf
|
qp run scf
|
||||||
|
|
||||||
qp set ao_two_e_erf_ints mu_erf 0.87
|
qp set hamiltonian mu_erf 0.87
|
||||||
qp set tc_keywords j1b_type 3
|
qp set tc_keywords j1b_type 3
|
||||||
qp set tc_keywords j1b_pen [1.5]
|
qp set tc_keywords j1b_pen [1.5]
|
||||||
qp set tc_keywords bi_ortho True
|
qp set tc_keywords bi_ortho True
|
||||||
@ -57,7 +57,7 @@ function run_O() {
|
|||||||
qp create_ezfio -b cc-pcvdz O.xyz -o O_tc_scf -m 3
|
qp create_ezfio -b cc-pcvdz O.xyz -o O_tc_scf -m 3
|
||||||
qp run scf
|
qp run scf
|
||||||
|
|
||||||
qp set ao_two_e_erf_ints mu_erf 0.87
|
qp set hamiltonian mu_erf 0.87
|
||||||
qp set tc_keywords j1b_type 3
|
qp set tc_keywords j1b_type 3
|
||||||
qp set tc_keywords j1b_pen [1.5]
|
qp set tc_keywords j1b_pen [1.5]
|
||||||
qp set tc_keywords bi_ortho True
|
qp set tc_keywords bi_ortho True
|
||||||
@ -82,7 +82,7 @@ function run_ch2() {
|
|||||||
qp create_ezfio -b "C:cc-pcvdz|H:cc-pvdz" ch2.xyz -o ch2_tc_scf
|
qp create_ezfio -b "C:cc-pcvdz|H:cc-pvdz" ch2.xyz -o ch2_tc_scf
|
||||||
qp run scf
|
qp run scf
|
||||||
|
|
||||||
qp set ao_two_e_erf_ints mu_erf 0.87
|
qp set hamiltonian mu_erf 0.87
|
||||||
qp set tc_keywords j1b_type 3
|
qp set tc_keywords j1b_type 3
|
||||||
qp set tc_keywords j1b_pen '[1.5,10000,10000]'
|
qp set tc_keywords j1b_pen '[1.5,10000,10000]'
|
||||||
qp set tc_keywords bi_ortho True
|
qp set tc_keywords bi_ortho True
|
||||||
|
@ -95,7 +95,12 @@ BEGIN_PROVIDER [double precision, diag_three_elem_hf]
|
|||||||
|
|
||||||
if(.not. three_body_h_tc) then
|
if(.not. three_body_h_tc) then
|
||||||
|
|
||||||
|
if(noL_standard) then
|
||||||
|
PROVIDE noL_0e
|
||||||
|
diag_three_elem_hf = noL_0e
|
||||||
|
else
|
||||||
diag_three_elem_hf = 0.d0
|
diag_three_elem_hf = 0.d0
|
||||||
|
endif
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
@ -71,10 +71,7 @@ subroutine rh_tcscf_diis()
|
|||||||
etc_tot = TC_HF_energy
|
etc_tot = TC_HF_energy
|
||||||
etc_1e = TC_HF_one_e_energy
|
etc_1e = TC_HF_one_e_energy
|
||||||
etc_2e = TC_HF_two_e_energy
|
etc_2e = TC_HF_two_e_energy
|
||||||
etc_3e = 0.d0
|
|
||||||
if(three_body_h_tc) then
|
|
||||||
etc_3e = diag_three_elem_hf
|
etc_3e = diag_three_elem_hf
|
||||||
endif
|
|
||||||
!tc_grad = grad_non_hermit
|
!tc_grad = grad_non_hermit
|
||||||
er_DIIS = maxval(abs(FQS_SQF_mo))
|
er_DIIS = maxval(abs(FQS_SQF_mo))
|
||||||
e_delta = dabs(etc_tot - e_save)
|
e_delta = dabs(etc_tot - e_save)
|
||||||
@ -202,10 +199,7 @@ subroutine rh_tcscf_diis()
|
|||||||
etc_tot = TC_HF_energy
|
etc_tot = TC_HF_energy
|
||||||
etc_1e = TC_HF_one_e_energy
|
etc_1e = TC_HF_one_e_energy
|
||||||
etc_2e = TC_HF_two_e_energy
|
etc_2e = TC_HF_two_e_energy
|
||||||
etc_3e = 0.d0
|
|
||||||
if(three_body_h_tc) then
|
|
||||||
etc_3e = diag_three_elem_hf
|
etc_3e = diag_three_elem_hf
|
||||||
endif
|
|
||||||
!tc_grad = grad_non_hermit
|
!tc_grad = grad_non_hermit
|
||||||
er_DIIS = maxval(abs(FQS_SQF_mo))
|
er_DIIS = maxval(abs(FQS_SQF_mo))
|
||||||
e_delta = dabs(etc_tot - e_save)
|
e_delta = dabs(etc_tot - e_save)
|
||||||
|
Loading…
Reference in New Issue
Block a user