mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 20:34:58 +01:00
Merge branch 'dev-stable' of https://github.com/QuantumPackage/qp2 into dev-stable
This commit is contained in:
commit
b325eb66a5
2
external/ezfio
vendored
2
external/ezfio
vendored
@ -1 +1 @@
|
||||
Subproject commit ed1df9f3c1f51752656ca98da5693a4119add05c
|
||||
Subproject commit d5805497fa0ef30e70e055cde1ecec2963303e93
|
2
external/irpf90
vendored
2
external/irpf90
vendored
@ -1 +1 @@
|
||||
Subproject commit 33ca5e1018f3bbb5e695e6ee558f5dac0753b271
|
||||
Subproject commit 0007f72f677fe7d61c5e1ed461882cb239517102
|
@ -15,7 +15,7 @@ subroutine run_optimization
|
||||
logical :: not_converged
|
||||
character (len=100) :: filename
|
||||
|
||||
PROVIDE psi_det psi_coef mo_two_e_integrals_in_map
|
||||
PROVIDE psi_det psi_coef mo_two_e_integrals_in_map ao_pseudo_integrals
|
||||
|
||||
not_converged = .True.
|
||||
nb_iter = 0
|
@ -40,16 +40,23 @@ subroutine state_average_energy(energy)
|
||||
double precision :: mono_e, bi_e
|
||||
integer :: i,j,k,l
|
||||
|
||||
energy = nuclear_repulsion
|
||||
! mono electronic part
|
||||
!$OMP PARALLEL DEFAULT(NONE) PRIVATE(i,j,k,l,mono_e, bi_e) &
|
||||
!$OMP SHARED(mo_num, mo_integrals_map, two_e_dm_mo, one_e_dm_mo, energy, &
|
||||
!$OMP mo_one_e_integrals)
|
||||
mono_e = 0d0
|
||||
!$OMP DO
|
||||
do j = 1, mo_num
|
||||
do i = 1, mo_num
|
||||
mono_e = mono_e + mo_one_e_integrals(i,j) * one_e_dm_mo(i,j)
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO NOWAIT
|
||||
|
||||
! bi electronic part
|
||||
bi_e = 0d0
|
||||
!$OMP DO
|
||||
do l = 1, mo_num
|
||||
do k = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
@ -59,9 +66,13 @@ subroutine state_average_energy(energy)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
! State average energy
|
||||
energy = mono_e + 0.5d0 * bi_e + nuclear_repulsion
|
||||
!$OMP CRITICAL
|
||||
energy = energy + mono_e + 0.5d0 * bi_e
|
||||
!$OMP END CRITICAL
|
||||
!$OMP END PARALLEL
|
||||
|
||||
! Check
|
||||
!call print_energy_components
|
||||
|
@ -17,12 +17,12 @@
|
||||
state_weights = state_average_weight
|
||||
integer :: ispin
|
||||
! condition for alpha/beta spin
|
||||
print*,''
|
||||
print*,''
|
||||
print*,''
|
||||
print*,'providint state_av_act_2_rdm_ab_mo '
|
||||
! print*,''
|
||||
! print*,''
|
||||
! print*,''
|
||||
! print*,'Providing state_av_act_2_rdm_ab_mo '
|
||||
ispin = 3
|
||||
print*,'ispin = ',ispin
|
||||
! print*,'ispin = ',ispin
|
||||
state_av_act_2_rdm_ab_mo = 0.d0
|
||||
call wall_time(wall_1)
|
||||
double precision :: wall_1, wall_2
|
||||
|
@ -16,7 +16,15 @@
|
||||
!
|
||||
! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO is set to zero
|
||||
END_DOC
|
||||
PROVIDE n_core_orb list_core
|
||||
state_av_full_occ_2_rdm_ab_mo = 0.d0
|
||||
!$OMP PARALLEL PRIVATE(i,j,k,l,iorb,jorb,korb,lorb) &
|
||||
!$OMP DEFAULT(NONE) SHARED(n_act_orb, n_inact_orb, n_core_orb, &
|
||||
!$OMP list_core, list_act, list_inact, no_core_density, &
|
||||
!$OMP one_e_dm_mo_alpha_average, one_e_dm_mo_beta_average, &
|
||||
!$OMP state_av_act_2_rdm_ab_mo, state_av_full_occ_2_rdm_ab_mo)
|
||||
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -32,8 +40,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! BETA ACTIVE - ALPHA inactive
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -45,9 +55,11 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! ALPHA ACTIVE - BETA inactive
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -59,9 +71,11 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! ALPHA INACTIVE - BETA INACTIVE
|
||||
!!
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -70,6 +84,7 @@
|
||||
state_av_full_occ_2_rdm_ab_mo(korb,jorb,korb,jorb) = 2.D0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!!!!!!!!!!!!
|
||||
!!!!!!!!!!!! if "no_core_density" then you don't put the core part
|
||||
@ -77,6 +92,7 @@
|
||||
if (.not.no_core_density)then
|
||||
!! BETA ACTIVE - ALPHA CORE
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -88,9 +104,11 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! ALPHA ACTIVE - BETA CORE
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -102,9 +120,11 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! ALPHA CORE - BETA CORE
|
||||
!!
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -113,8 +133,10 @@
|
||||
state_av_full_occ_2_rdm_ab_mo(korb,jorb,korb,jorb) = 2.D0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
endif
|
||||
|
||||
!$OMP END PARALLEL
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
@ -136,8 +158,15 @@
|
||||
! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO is set to zero
|
||||
END_DOC
|
||||
|
||||
PROVIDE n_core_orb list_core
|
||||
!$OMP PARALLEL PRIVATE(i,j,k,l,iorb,jorb,korb,lorb) &
|
||||
!$OMP DEFAULT(NONE) SHARED(n_act_orb, n_inact_orb, n_core_orb, &
|
||||
!$OMP list_core, list_act, list_inact, no_core_density, &
|
||||
!$OMP one_e_dm_mo_alpha_average, one_e_dm_mo_beta_average, &
|
||||
!$OMP state_av_act_2_rdm_aa_mo, state_av_full_occ_2_rdm_aa_mo)
|
||||
!! PURE ACTIVE PART ALPHA-ALPHA
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -152,8 +181,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA ACTIVE - ALPHA inactive
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -169,8 +200,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! ALPHA INACTIVE - ALPHA INACTIVE
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -179,12 +212,14 @@
|
||||
state_av_full_occ_2_rdm_aa_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!!!!!!!!!!
|
||||
!!!!!!!!!! if "no_core_density" then you don't put the core part
|
||||
!!!!!!!!!! CAN BE USED
|
||||
if (.not.no_core_density)then
|
||||
!! ALPHA ACTIVE - ALPHA CORE
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -200,8 +235,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA CORE - ALPHA CORE
|
||||
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -210,8 +247,10 @@
|
||||
state_av_full_occ_2_rdm_aa_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
endif
|
||||
|
||||
!$OMP END PARALLEL
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, state_av_full_occ_2_rdm_bb_mo, (n_core_inact_act_orb,n_core_inact_act_orb,n_core_inact_act_orb,n_core_inact_act_orb)]
|
||||
@ -232,8 +271,15 @@
|
||||
! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO is set to zero
|
||||
END_DOC
|
||||
|
||||
PROVIDE n_core_orb list_core
|
||||
!$OMP PARALLEL PRIVATE(i,j,k,l,iorb,jorb,korb,lorb) &
|
||||
!$OMP DEFAULT(NONE) SHARED(n_act_orb, n_inact_orb, n_core_orb, &
|
||||
!$OMP list_core, list_act, list_inact, no_core_density, &
|
||||
!$OMP one_e_dm_mo_alpha_average, one_e_dm_mo_beta_average, &
|
||||
!$OMP state_av_act_2_rdm_bb_mo, state_av_full_occ_2_rdm_bb_mo)
|
||||
!! PURE ACTIVE PART beta-beta
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -248,8 +294,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! beta ACTIVE - beta inactive
|
||||
!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -265,8 +313,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!! beta INACTIVE - beta INACTIVE
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -275,12 +325,14 @@
|
||||
state_av_full_occ_2_rdm_bb_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!!!!!!!!!!!!
|
||||
!!!!!!!!!!!! if "no_core_density" then you don't put the core part
|
||||
!!!!!!!!!!!! CAN BE USED
|
||||
if (.not.no_core_density)then
|
||||
!! beta ACTIVE - beta CORE
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -296,8 +348,10 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! beta CORE - beta CORE
|
||||
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -306,7 +360,9 @@
|
||||
state_av_full_occ_2_rdm_bb_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
endif
|
||||
!$OMP END PARALLEL
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
@ -329,9 +385,17 @@
|
||||
! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO is set to zero
|
||||
END_DOC
|
||||
|
||||
PROVIDE n_core_orb list_core
|
||||
|
||||
!$OMP PARALLEL PRIVATE(i,j,k,l,iorb,jorb,korb,lorb) &
|
||||
!$OMP DEFAULT(NONE) SHARED(n_act_orb, n_inact_orb, n_core_orb, &
|
||||
!$OMP list_core, list_act, list_inact, no_core_density, &
|
||||
!$OMP one_e_dm_mo_alpha_average, one_e_dm_mo_beta_average, &
|
||||
!$OMP state_av_act_2_rdm_spin_trace_mo, state_av_full_occ_2_rdm_spin_trace_mo)
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!
|
||||
!! PURE ACTIVE PART SPIN-TRACE
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -346,11 +410,13 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!! BETA-BETA !!!!!
|
||||
!! beta ACTIVE - beta inactive
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -366,7 +432,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! beta INACTIVE - beta INACTIVE
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -375,8 +443,10 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
if (.not.no_core_density)then
|
||||
!! beta ACTIVE - beta CORE
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -392,7 +462,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! beta CORE - beta CORE
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -401,12 +473,14 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
endif
|
||||
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!! ALPHA-ALPHA !!!!!
|
||||
!! ALPHA ACTIVE - ALPHA inactive
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -422,7 +496,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA INACTIVE - ALPHA INACTIVE
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -431,8 +507,10 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
if (.not.no_core_density)then
|
||||
!! ALPHA ACTIVE - ALPHA CORE
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -448,7 +526,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA CORE - ALPHA CORE
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -457,11 +537,13 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(korb,jorb,jorb,korb) -= 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
endif
|
||||
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!!!!!!!!!!!!!
|
||||
!!!!! ALPHA-BETA + BETA-ALPHA !!!!!
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -481,7 +563,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA INACTIVE - BETA INACTIVE
|
||||
!$OMP DO
|
||||
do j = 1, n_inact_orb
|
||||
jorb = list_inact(j)
|
||||
do k = 1, n_inact_orb
|
||||
@ -491,11 +575,13 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(jorb,korb,jorb,korb) += 1.0d0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!!!!!!!!!!!!
|
||||
!!!!!!!!!!!! if "no_core_density" then you don't put the core part
|
||||
!!!!!!!!!!!! CAN BE USED
|
||||
if (.not.no_core_density)then
|
||||
!$OMP DO
|
||||
do i = 1, n_act_orb
|
||||
iorb = list_act(i)
|
||||
do j = 1, n_act_orb
|
||||
@ -515,7 +601,9 @@
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!! ALPHA CORE - BETA CORE
|
||||
!$OMP DO
|
||||
do j = 1, n_core_orb
|
||||
jorb = list_core(j)
|
||||
do k = 1, n_core_orb
|
||||
@ -525,7 +613,9 @@
|
||||
state_av_full_occ_2_rdm_spin_trace_mo(jorb,korb,jorb,korb) += 1.0D0
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
endif
|
||||
!$OMP END PARALLEL
|
||||
|
||||
END_PROVIDER
|
||||
|
@ -16,6 +16,9 @@ BEGIN_PROVIDER [double precision, two_e_dm_mo, (mo_num,mo_num,mo_num,mo_num)]
|
||||
two_e_dm_mo = 0.d0
|
||||
integer :: i,j,k,l,iorb,jorb,korb,lorb,istate
|
||||
|
||||
!$OMP PARALLEL DO PRIVATE(i,j,k,l,iorb,jorb,korb,lorb) &
|
||||
!$OMP DEFAULT(NONE) SHARED(n_core_inact_act_orb, list_core_inact_act, &
|
||||
!$OMP two_e_dm_mo, state_av_full_occ_2_rdm_spin_trace_mo)
|
||||
do l=1,n_core_inact_act_orb
|
||||
lorb = list_core_inact_act(l)
|
||||
do k=1,n_core_inact_act_orb
|
||||
@ -29,7 +32,7 @@ BEGIN_PROVIDER [double precision, two_e_dm_mo, (mo_num,mo_num,mo_num,mo_num)]
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
two_e_dm_mo(:,:,:,:) = two_e_dm_mo(:,:,:,:)
|
||||
!$OMP END PARALLEL DO
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user