mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-18 11:23:38 +01:00
commit
676d376c8b
2
external/ezfio
vendored
2
external/ezfio
vendored
@ -1 +1 @@
|
||||
Subproject commit d5805497fa0ef30e70e055cde1ecec2963303e93
|
||||
Subproject commit 0520b5e2cf70e2451c37ce5b7f2f64f6d2e5e956
|
@ -35,14 +35,14 @@ program debug_gradient_list
|
||||
! Definition of n
|
||||
n = m*(m-1)/2
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map ! Vérifier pour suppression
|
||||
PROVIDE mo_two_e_integrals_in_map ! Verifier pour suppression
|
||||
|
||||
! Allocation
|
||||
allocate(v_grad(n), v_grad2(n))
|
||||
|
||||
! Calculation
|
||||
|
||||
call diagonalize_ci ! Vérifier pour suppression
|
||||
call diagonalize_ci ! Verifier pour suppression
|
||||
|
||||
! Gradient
|
||||
call gradient_list_opt(n,m,list_act,v_grad,max_elem,norm)
|
||||
|
@ -34,14 +34,14 @@ program debug_gradient
|
||||
! Definition of n
|
||||
n = mo_num*(mo_num-1)/2
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map ! Vérifier pour suppression
|
||||
PROVIDE mo_two_e_integrals_in_map ! Check for suppression
|
||||
|
||||
! Allocation
|
||||
allocate(v_grad(n), v_grad2(n))
|
||||
|
||||
! Calculation
|
||||
|
||||
call diagonalize_ci ! Vérifier pour suppression
|
||||
call diagonalize_ci
|
||||
|
||||
! Gradient
|
||||
call first_gradient_opt(n,v_grad)
|
||||
|
@ -49,7 +49,7 @@ program debug_hessian_list_opt
|
||||
! Definition of n
|
||||
n = m*(m-1)/2
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map ! Vérifier pour suppression
|
||||
PROVIDE mo_two_e_integrals_in_map
|
||||
|
||||
! Hessian
|
||||
if (optimization_method == 'full') then
|
||||
|
@ -40,7 +40,7 @@ program debug_hessian
|
||||
! Definition of n
|
||||
n = mo_num*(mo_num-1)/2
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map ! Vérifier pour suppression
|
||||
PROVIDE mo_two_e_integrals_in_map
|
||||
|
||||
! Allocation
|
||||
allocate(H(n,n),H2(n,n))
|
||||
|
@ -13,7 +13,7 @@
|
||||
! matrix as a expectation value
|
||||
! \begin{align*}
|
||||
! <\Psi_n|x| \Psi_m > = \sum_p \gamma_{pp}^{nm} < \phi_p | x | \phi_p >
|
||||
! + \sum_{pq, p \neq q} \gamma_{pq}^{nm} < \phi_p | x | \phi_q > + < \Psi_m | \sum_A Z_A R_A | \Psi_n >
|
||||
! + \sum_{pq, p \neq q} \gamma_{pq}^{nm} < \phi_p |x | \phi_q > + < \Psi_m | \sum_A Z_A R_A | \Psi_n >
|
||||
! \end{align*}
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@ subroutine print_dipole_moment
|
||||
implicit none
|
||||
|
||||
BEGIN_DOC
|
||||
! To print the dipole moment ||<\Psi_i|µ|\Psi_i>|| and its x,y,z components
|
||||
! To print the dipole moment ||<\Psi_i|\mu|\Psi_i>|| and its x,y,z components
|
||||
END_DOC
|
||||
|
||||
integer :: istate
|
||||
@ -33,7 +33,7 @@ subroutine print_dipole_moment
|
||||
print*,'# Dipoles:'
|
||||
print*,'=============================================='
|
||||
print*,' Dipole moments (au)'
|
||||
print*,' State X Y Z ||µ||'
|
||||
print*,' State X Y Z ||MU||'
|
||||
|
||||
do istate = 1, N_states
|
||||
write(*,'(I5,4(F12.6))') (istate-1), d_x(istate), d_y(istate), d_z(istate), d(istate)
|
||||
@ -42,7 +42,7 @@ subroutine print_dipole_moment
|
||||
! Debye
|
||||
print*,''
|
||||
print*,' Dipole moments (D)'
|
||||
print*,' State X Y Z ||µ||'
|
||||
print*,' State X Y Z ||MU||'
|
||||
|
||||
do istate = 1, N_states
|
||||
write(*,'(I5,4(F12.6))') (istate-1), d_x(istate)*au_to_D, d_y(istate)*au_to_D, d_z(istate)*au_to_D, d(istate)*au_to_D
|
||||
@ -70,7 +70,7 @@ subroutine print_transition_dipole_moment
|
||||
implicit none
|
||||
|
||||
BEGIN_DOC
|
||||
! To print the transition dipole moment ||<\Psi_i|µ|\Psi_j>|| and its components along x, y and z
|
||||
! To print the transition dipole moment ||<\Psi_i|\mu|\Psi_j>|| and its components along x, y and z
|
||||
END_DOC
|
||||
|
||||
integer :: istate,jstate, n_states_print
|
||||
@ -84,7 +84,7 @@ subroutine print_transition_dipole_moment
|
||||
print*,'# Transition dipoles:'
|
||||
print*,'=============================================='
|
||||
print*,' Transition dipole moments (au)'
|
||||
write(*,'(A89)') ' # Transition X Y Z ||µ|| Dip. str. Osc. str.'
|
||||
write(*,'(A89)') ' # Transition X Y Z ||MU|| Dip. str. Osc. str.'
|
||||
|
||||
if (print_all_transitions) then
|
||||
n_states_print = N_states
|
||||
@ -106,7 +106,7 @@ subroutine print_transition_dipole_moment
|
||||
|
||||
print*,''
|
||||
print*,' Transition dipole moments (D)'
|
||||
write(*,'(A89)') ' # Transition X Y Z ||µ|| Dip. str. Osc. str.'
|
||||
write(*,'(A89)') ' # Transition X Y Z ||MU|| Dip. str. Osc. str.'
|
||||
|
||||
do jstate = 1, n_states_print !N_states
|
||||
do istate = jstate + 1, N_states
|
||||
|
@ -38,9 +38,9 @@ subroutine get_delta_bitc_right(psidet, psicoef, ndet, Nint, delta)
|
||||
do i = 1, ndet
|
||||
do j = 1, ndet
|
||||
|
||||
! < I | Htilde | J >
|
||||
! < I |Htilde | J >
|
||||
call htilde_mu_mat_bi_ortho_slow(psidet(1,1,i), psidet(1,1,j), Nint, htc_mono, htc_twoe, htc_three, htc_tot)
|
||||
! < I | H | J >
|
||||
! < I |H | J >
|
||||
call hmat_bi_ortho(psidet(1,1,i), psidet(1,1,j), Nint, h_mono, h_twoe, h_tot)
|
||||
|
||||
delta_mat = htc_tot - h_tot
|
||||
@ -87,7 +87,7 @@ subroutine get_htc_bitc_right(psidet, psicoef, ndet, Nint, delta)
|
||||
do i = 1, ndet
|
||||
do j = 1, ndet
|
||||
|
||||
! < I | Htilde | J >
|
||||
! < I |Htilde | J >
|
||||
call htilde_mu_mat_bi_ortho_slow(psidet(1,1,i), psidet(1,1,j), Nint, htc_mono, htc_twoe, htc_three, htc_tot)
|
||||
|
||||
delta(i) = delta(i) + psicoef(j) * htc_tot
|
||||
@ -141,7 +141,7 @@ subroutine get_h_bitc_right(psidet, psicoef, ndet, Nint, delta)
|
||||
do i = 1, ndet
|
||||
do j = 1, ndet
|
||||
|
||||
! < I | H | J >
|
||||
! < I |H | J >
|
||||
call hmat_bi_ortho(psidet(1,1,i), psidet(1,1,j), Nint, h_mono, h_twoe, h_tot)
|
||||
|
||||
delta(i) = delta(i) + psicoef(j) * h_tot
|
||||
|
@ -5,7 +5,7 @@ subroutine hmat_bi_ortho(key_j, key_i, Nint, hmono, htwoe, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! < key_j | H | key_i > where | key_j > is developed on the LEFT basis and | key_i > is developed on the RIGHT basis
|
||||
! < key_j |H | key_i > where | key_j > is developed on the LEFT basis and | key_i > is developed on the RIGHT basis
|
||||
!
|
||||
END_DOC
|
||||
|
||||
@ -111,7 +111,7 @@ subroutine single_hmat_bi_ortho(Nint, key_j, key_i, hmono, htwoe)
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! < key_j | H | key_i > for single excitation
|
||||
! < key_j |H | key_i > for single excitation
|
||||
!
|
||||
END_DOC
|
||||
|
||||
@ -185,7 +185,7 @@ subroutine double_hmat_bi_ortho(Nint, key_j, key_i, hmono, htwoe)
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! < key_j | H | key_i> for double excitation
|
||||
! < key_j |H | key_i> for double excitation
|
||||
!
|
||||
END_DOC
|
||||
|
||||
|
@ -103,7 +103,7 @@ end
|
||||
subroutine single_htilde_three_body_ints_bi_ort_slow(Nint, key_j, key_i, hthree)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for single excitation ONLY FOR THREE-BODY TERMS WITH BI ORTHONORMAL ORBITALS
|
||||
! <key_j |H_tilde | key_i> for single excitation ONLY FOR THREE-BODY TERMS WITH BI ORTHONORMAL ORBITALS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
@ -198,7 +198,7 @@ end
|
||||
subroutine double_htilde_three_body_ints_bi_ort_slow(Nint, key_j, key_i, hthree)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for double excitation ONLY FOR THREE-BODY TERMS WITH BI ORTHONORMAL ORBITALS
|
||||
! <key_j |H_tilde | key_i> for double excitation ONLY FOR THREE-BODY TERMS WITH BI ORTHONORMAL ORBITALS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
|
@ -37,7 +37,7 @@ subroutine htilde_mu_mat_opt_bi_ortho_tot(key_j, key_i, Nint, htot)
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
!
|
||||
! <key_j | H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
! <key_j |H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
!!
|
||||
! Returns the total matrix element
|
||||
!! WARNING !!
|
||||
@ -62,7 +62,7 @@ subroutine htilde_mu_mat_opt_bi_ortho(key_j, key_i, Nint, hmono, htwoe, hthree,
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! <key_j | H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
! <key_j |H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
!!
|
||||
! Returns the detail of the matrix element in terms of single, two and three electron contribution.
|
||||
!! WARNING !!
|
||||
@ -107,7 +107,7 @@ subroutine htilde_mu_mat_opt_bi_ortho_no_3e(key_j, key_i, Nint, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! <key_j | H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
! <key_j |H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
!!
|
||||
! Returns the detail of the matrix element WITHOUT ANY CONTRIBUTION FROM THE THREE ELECTRON TERMS
|
||||
!! WARNING !!
|
||||
|
@ -2,7 +2,7 @@
|
||||
subroutine double_htilde_mu_mat_fock_bi_ortho(Nint, key_j, key_i, hmono, htwoe, hthree, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
@ -430,7 +430,7 @@ end
|
||||
subroutine double_htilde_mu_mat_fock_bi_ortho_no_3e(Nint, key_j, key_i, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
subroutine single_htilde_mu_mat_fock_bi_ortho (Nint, key_j, key_i, hmono, htwoe, hthree, htot)
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
@ -464,7 +464,7 @@ END_PROVIDER
|
||||
|
||||
subroutine single_htilde_mu_mat_fock_bi_ortho_no_3e(Nint, key_j, key_i, htot)
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
|
@ -4,7 +4,7 @@
|
||||
subroutine htilde_mu_mat_bi_ortho_tot_slow(key_j, key_i, Nint, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
! <key_j |H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
@ -35,7 +35,7 @@ subroutine htilde_mu_mat_bi_ortho_slow(key_j, key_i, Nint, hmono, htwoe, hthree,
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
! <key_j | H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
! <key_j |H_tilde | key_i> where |key_j> is developed on the LEFT basis and |key_i> is developed on the RIGHT basis
|
||||
!!
|
||||
! Returns the detail of the matrix element in terms of single, two and three electron contribution.
|
||||
!! WARNING !!
|
||||
@ -184,7 +184,7 @@ end
|
||||
subroutine double_htilde_mu_mat_bi_ortho_slow(Nint, key_j, key_i, hmono, htwoe, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for double excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
@ -251,7 +251,7 @@ end
|
||||
subroutine single_htilde_mu_mat_bi_ortho_slow(Nint, key_j, key_i, hmono, htwoe, htot)
|
||||
|
||||
BEGIN_DOC
|
||||
! <key_j | H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
! <key_j |H_tilde | key_i> for single excitation ONLY FOR ONE- AND TWO-BODY TERMS
|
||||
!!
|
||||
!! WARNING !!
|
||||
!
|
||||
|
@ -21,7 +21,7 @@
|
||||
!$OMP SHARED (N_det, psi_det, N_int,htilde_matrix_elmt_bi_ortho)
|
||||
do i = 1, N_det
|
||||
do j = 1, N_det
|
||||
! < J | Htilde | I >
|
||||
! < J |Htilde | I >
|
||||
call htilde_mu_mat_opt_bi_ortho_tot(psi_det(1,1,j), psi_det(1,1,i), N_int, htot)
|
||||
|
||||
htilde_matrix_elmt_bi_ortho(j,i) = htot
|
||||
|
@ -47,33 +47,61 @@ subroutine gen_v_space(n1,n2,n3,n4,list1,list2,list3,list4,v)
|
||||
|
||||
integer :: i1,i2,i3,i4,idx1,idx2,idx3,idx4,k
|
||||
|
||||
double precision, allocatable :: buffer(:,:,:)
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(n1,n2,n3,n4,list1,list2,list3,list4,v,mo_num,cholesky_mo_transp,cholesky_ao_num) &
|
||||
!$OMP PRIVATE(i1,i2,i3,i4,idx1,idx2,idx3,idx4,k,buffer)&
|
||||
!$OMP DEFAULT(NONE)
|
||||
allocate(buffer(mo_num,mo_num,mo_num))
|
||||
!$OMP DO
|
||||
do i4 = 1, n4
|
||||
idx4 = list4(i4)
|
||||
call dgemm('T','N', mo_num*mo_num, mo_num, cholesky_ao_num, 1.d0, &
|
||||
cholesky_mo_transp, cholesky_ao_num, &
|
||||
cholesky_mo_transp(1,1,idx4), cholesky_ao_num, 0.d0, buffer, mo_num*mo_num)
|
||||
do i2 = 1, n2
|
||||
idx2 = list2(i2)
|
||||
do i3 = 1, n3
|
||||
idx3 = list3(i3)
|
||||
do i1 = 1, n1
|
||||
idx1 = list1(i1)
|
||||
v(i1,i2,i3,i4) = buffer(idx1,idx3,idx2)
|
||||
if (do_ao_cholesky) then
|
||||
double precision, allocatable :: buffer(:,:,:)
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(n1,n2,n3,n4,list1,list2,list3,list4,v,mo_num,cholesky_mo_transp,cholesky_ao_num) &
|
||||
!$OMP PRIVATE(i1,i2,i3,i4,idx1,idx2,idx3,idx4,k,buffer)&
|
||||
!$OMP DEFAULT(NONE)
|
||||
allocate(buffer(mo_num,mo_num,mo_num))
|
||||
!$OMP DO
|
||||
do i4 = 1, n4
|
||||
idx4 = list4(i4)
|
||||
call dgemm('T','N', mo_num*mo_num, mo_num, cholesky_ao_num, 1.d0, &
|
||||
cholesky_mo_transp, cholesky_ao_num, &
|
||||
cholesky_mo_transp(1,1,idx4), cholesky_ao_num, 0.d0, buffer, mo_num*mo_num)
|
||||
do i2 = 1, n2
|
||||
idx2 = list2(i2)
|
||||
do i3 = 1, n3
|
||||
idx3 = list3(i3)
|
||||
do i1 = 1, n1
|
||||
idx1 = list1(i1)
|
||||
v(i1,i2,i3,i4) = buffer(idx1,idx3,idx2)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
deallocate(buffer)
|
||||
!$OMP END PARALLEL
|
||||
!$OMP END DO
|
||||
deallocate(buffer)
|
||||
!$OMP END PARALLEL
|
||||
|
||||
else
|
||||
double precision :: get_two_e_integral
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map
|
||||
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(n1,n2,n3,n4,list1,list2,list3,list4,v,mo_integrals_map) &
|
||||
!$OMP PRIVATE(i1,i2,i3,i4,idx1,idx2,idx3,idx4)&
|
||||
!$OMP DEFAULT(NONE)
|
||||
!$OMP DO collapse(3)
|
||||
do i4 = 1, n4
|
||||
do i3 = 1, n3
|
||||
do i2 = 1, n2
|
||||
do i1 = 1, n1
|
||||
idx4 = list4(i4)
|
||||
idx3 = list3(i3)
|
||||
idx2 = list2(i2)
|
||||
idx1 = list1(i1)
|
||||
v(i1,i2,i3,i4) = get_two_e_integral(idx1,idx2,idx3,idx4,mo_integrals_map)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!$OMP END PARALLEL
|
||||
|
||||
endif
|
||||
|
||||
end
|
||||
|
||||
@ -81,29 +109,54 @@ end
|
||||
|
||||
BEGIN_PROVIDER [double precision, cc_space_v, (mo_num,mo_num,mo_num,mo_num)]
|
||||
implicit none
|
||||
integer :: i1,i2,i3,i4,k
|
||||
double precision, allocatable :: buffer(:,:,:)
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(cc_space_v,mo_num,cholesky_mo_transp,cholesky_ao_num) &
|
||||
!$OMP PRIVATE(i1,i2,i3,i4,k,buffer)&
|
||||
!$OMP DEFAULT(NONE)
|
||||
allocate(buffer(mo_num,mo_num,mo_num))
|
||||
!$OMP DO
|
||||
do i4 = 1, mo_num
|
||||
call dgemm('T','N', mo_num*mo_num, mo_num, cholesky_ao_num, 1.d0, &
|
||||
cholesky_mo_transp, cholesky_ao_num, &
|
||||
cholesky_mo_transp(1,1,i4), cholesky_ao_num, 0.d0, buffer, mo_num*mo_num)
|
||||
do i2 = 1, mo_num
|
||||
do i3 = 1, mo_num
|
||||
do i1 = 1, mo_num
|
||||
cc_space_v(i1,i2,i3,i4) = buffer(i1,i3,i2)
|
||||
if (do_ao_cholesky) then
|
||||
integer :: i1,i2,i3,i4
|
||||
double precision, allocatable :: buffer(:,:,:)
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(cc_space_v,mo_num,cholesky_mo_transp,cholesky_ao_num) &
|
||||
!$OMP PRIVATE(i1,i2,i3,i4,k,buffer)&
|
||||
!$OMP DEFAULT(NONE)
|
||||
allocate(buffer(mo_num,mo_num,mo_num))
|
||||
!$OMP DO
|
||||
do i4 = 1, mo_num
|
||||
call dgemm('T','N', mo_num*mo_num, mo_num, cholesky_ao_num, 1.d0, &
|
||||
cholesky_mo_transp, cholesky_ao_num, &
|
||||
cholesky_mo_transp(1,1,i4), cholesky_ao_num, 0.d0, buffer, mo_num*mo_num)
|
||||
do i2 = 1, mo_num
|
||||
do i3 = 1, mo_num
|
||||
do i1 = 1, mo_num
|
||||
cc_space_v(i1,i2,i3,i4) = buffer(i1,i3,i2)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
deallocate(buffer)
|
||||
!$OMP END PARALLEL
|
||||
!$OMP END DO
|
||||
deallocate(buffer)
|
||||
!$OMP END PARALLEL
|
||||
else
|
||||
integer :: i,j,k,l
|
||||
double precision :: get_two_e_integral
|
||||
|
||||
PROVIDE mo_two_e_integrals_in_map
|
||||
|
||||
!$OMP PARALLEL &
|
||||
!$OMP SHARED(cc_space_v,mo_num,mo_integrals_map) &
|
||||
!$OMP PRIVATE(i,j,k,l) &
|
||||
!$OMP DEFAULT(NONE)
|
||||
|
||||
!$OMP DO collapse(3)
|
||||
do l = 1, mo_num
|
||||
do k = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
do i = 1, mo_num
|
||||
cc_space_v(i,j,k,l) = get_two_e_integral(i,j,k,l,mo_integrals_map)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
!$OMP END PARALLEL
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
@ -204,8 +204,8 @@ function is_del(i)
|
||||
is_del = .False.
|
||||
|
||||
! Search
|
||||
do j = 1, dim_list_core_orb
|
||||
if (list_core(j) == i) then
|
||||
do j = 1, dim_list_del_orb
|
||||
if (list_del(j) == i) then
|
||||
is_del = .True.
|
||||
exit
|
||||
endif
|
||||
|
@ -209,8 +209,8 @@ function is_del(i)
|
||||
is_del = .False.
|
||||
|
||||
! Search
|
||||
do j = 1, dim_list_core_orb
|
||||
if (list_core(j) == i) then
|
||||
do j = 1, dim_list_del_orb
|
||||
if (list_del(j) == i) then
|
||||
is_del = .True.
|
||||
exit
|
||||
endif
|
||||
|
@ -77,7 +77,7 @@
|
||||
! ! Criterion -> step accepted or rejected
|
||||
! call trust_region_is_step_cancelled(nb_iter,prev_criterion, criterion, criterion_model,rho,cancel_step)
|
||||
!
|
||||
! ! ### TODO ###
|
||||
! !### TODO ###
|
||||
! !if (cancel_step) then
|
||||
! ! Cancel the previous step (mo_coef = prev_mos if you keep them...)
|
||||
! !endif
|
||||
|
Loading…
Reference in New Issue
Block a user