10
1
mirror of https://github.com/pfloos/quack synced 2024-12-22 20:34:46 +01:00
This commit is contained in:
Pierre-Francois Loos 2024-09-03 15:00:50 +02:00
parent bbbf50e146
commit c05432416e
3 changed files with 15 additions and 15 deletions

View File

@ -71,7 +71,7 @@ subroutine pCCD(dotest,maxIt,thresh,max_diis,nBas,nOrb,nC,nO,nV,nR, &
double precision,allocatable :: ExpKap(:,:)
integer :: O,V,N
integer :: Np
integer :: Nsq
integer :: n_diis
double precision :: rcond
double precision,allocatable :: err_diis(:,:)
@ -92,7 +92,7 @@ subroutine pCCD(dotest,maxIt,thresh,max_diis,nBas,nOrb,nC,nO,nV,nR, &
V = nV - nR
N = O + V
Np = N*N
Nsq = N*N
!------------------------------------!
! Star Loop for orbital optimization !
@ -357,9 +357,9 @@ subroutine pCCD(dotest,maxIt,thresh,max_diis,nBas,nOrb,nC,nO,nV,nR, &
! Compute orbital gradient !
!--------------------------!
allocate(grad(Np))
allocate(grad(Nsq))
call pCCD_orbital_gradient(O,V,N,Np,h,ERI_MO,rdm1,rdm2,grad)
call pCCD_orbital_gradient(O,V,N,Nsq,h,ERI_MO,rdm1,rdm2,grad)
! Check convergence of orbital optimization
@ -378,15 +378,15 @@ subroutine pCCD(dotest,maxIt,thresh,max_diis,nBas,nOrb,nC,nO,nV,nR, &
! Compute orbital Hessian !
!-------------------------!
allocate(hess(Np,Np))
allocate(hess(Nsq,Nsq))
call pCCD_orbital_hessian(O,V,N,Np,h,ERI_MO,rdm1,rdm2,hess)
call pCCD_orbital_hessian(O,V,N,Nsq,h,ERI_MO,rdm1,rdm2,hess)
deallocate(rdm1,rdm2)
allocate(hessInv(Np,Np))
allocate(hessInv(Nsq,Nsq))
call inverse_matrix(Np,hess,hessInv)
call inverse_matrix(Nsq,hess,hessInv)
deallocate(hess)

View File

@ -1,4 +1,4 @@
subroutine pCCD_orbital_gradient(O,V,N,Np,h,ERI_MO,rdm1,rdm2,grad)
subroutine pCCD_orbital_gradient(O,V,N,Nsq,h,ERI_MO,rdm1,rdm2,grad)
! Compute the orbital gradient at the pCCD level
@ -9,7 +9,7 @@ subroutine pCCD_orbital_gradient(O,V,N,Np,h,ERI_MO,rdm1,rdm2,grad)
integer,intent(in) :: O
integer,intent(in) :: V
integer,intent(in) :: N
integer,intent(in) :: Np
integer,intent(in) :: Nsq
double precision,intent(in) :: h(N,N)
double precision,intent(in) :: ERI_MO(N,N,N,N)
double precision,intent(in) :: rdm1(N,N)
@ -24,7 +24,7 @@ subroutine pCCD_orbital_gradient(O,V,N,Np,h,ERI_MO,rdm1,rdm2,grad)
! Output variables
double precision,intent(out) :: grad(Np)
double precision,intent(out) :: grad(Nsq)
! Compute gradient

View File

@ -1,4 +1,4 @@
subroutine pCCD_orbital_hessian(O,V,N,Np,h,ERI_MO,rdm1,rdm2,hess)
subroutine pCCD_orbital_hessian(O,V,N,Nsq,h,ERI_MO,rdm1,rdm2,hess)
! Compute the orbital hessian at the pCCD level
@ -9,7 +9,7 @@ subroutine pCCD_orbital_hessian(O,V,N,Np,h,ERI_MO,rdm1,rdm2,hess)
integer,intent(in) :: O
integer,intent(in) :: V
integer,intent(in) :: N
integer,intent(in) :: Np
integer,intent(in) :: Nsq
double precision,intent(in) :: h(N,N)
double precision,intent(in) :: ERI_MO(N,N,N,N)
double precision,intent(in) :: rdm1(N,N)
@ -28,7 +28,7 @@ subroutine pCCD_orbital_hessian(O,V,N,Np,h,ERI_MO,rdm1,rdm2,hess)
! Output variables
double precision,intent(out) :: hess(Np,Np)
double precision,intent(out) :: hess(Nsq,Nsq)
! Compute intermediate array
@ -116,7 +116,7 @@ subroutine pCCD_orbital_hessian(O,V,N,Np,h,ERI_MO,rdm1,rdm2,hess)
if(debug) then
write(*,*) 'Orbital Hessian at the pCCD level:'
call matout(Np,Np,hess)
call matout(Nsq,Nsq,hess)
write(*,*)
end if