mirror of
https://github.com/pfloos/quack
synced 2025-04-02 06:51:37 +02:00
Merge branch 'master' of github.com:pfloos/QuAcK
This commit is contained in:
commit
5dce53b5df
@ -4,10 +4,11 @@
|
|||||||
|
|
||||||
**Contributors:**
|
**Contributors:**
|
||||||
- [Pierre-Francois Loos](https://pfloos.github.io/WEB_LOOS)
|
- [Pierre-Francois Loos](https://pfloos.github.io/WEB_LOOS)
|
||||||
|
- [Anthony Scemama](https://scemama.github.io)
|
||||||
- [Enzo Monino](https://enzomonino.github.io)
|
- [Enzo Monino](https://enzomonino.github.io)
|
||||||
- [Antoine Marie](https://antoine-marie.github.io)
|
- [Antoine Marie](https://antoine-marie.github.io)
|
||||||
- [Abdallah Ammar](https://scholar.google.com/citations?user=y437T5sAAAAJ&hl=en)
|
- [Abdallah Ammar](https://scholar.google.com/citations?user=y437T5sAAAAJ&hl=en)
|
||||||
- [Anthony Scemama](https://scemama.github.io)
|
- [Mauricio Rodriguez-Mayorga](https://scholar.google.com/citations?user=OLGOgQgAAAAJ&hl=es)
|
||||||
|
|
||||||
# What is it?
|
# What is it?
|
||||||
|
|
||||||
@ -67,6 +68,12 @@ The two most important files are:
|
|||||||
- `$QUACK_ROOT/input/methods` that gathers the methods you want to use.
|
- `$QUACK_ROOT/input/methods` that gathers the methods you want to use.
|
||||||
- `$QUACK_ROOT/input/options` that gathers the different options associated these methods.
|
- `$QUACK_ROOT/input/options` that gathers the different options associated these methods.
|
||||||
|
|
||||||
|
Copy the files `methods.default` and `options.default` to `methods.default` `options.default`
|
||||||
|
```
|
||||||
|
cp $QUACK_ROOT/input/methods.default $QUACK_ROOT/input/methods
|
||||||
|
cp $QUACK_ROOT/input/options.default $QUACK_ROOT/input/options
|
||||||
|
```
|
||||||
|
You can then edit these files to run the methods you'd like with specific options.
|
||||||
These files look like this
|
These files look like this
|
||||||
```
|
```
|
||||||
QuAcK 💩 % cat input/methods
|
QuAcK 💩 % cat input/methods
|
||||||
|
@ -30,19 +30,19 @@ subroutine EE_EOM_CCD_1h1p(nC,nO,nV,nR,eO,eV,OOVV,OVVO,t)
|
|||||||
double precision,allocatable :: Om(:)
|
double precision,allocatable :: Om(:)
|
||||||
double precision,allocatable :: VL(:,:)
|
double precision,allocatable :: VL(:,:)
|
||||||
double precision,allocatable :: VR(:,:)
|
double precision,allocatable :: VR(:,:)
|
||||||
double precision,allocatable :: Leom(:,:,:)
|
! double precision,allocatable :: Leom(:,:,:)
|
||||||
double precision,allocatable :: Reom(:,:,:)
|
! double precision,allocatable :: Reom(:,:,:)
|
||||||
|
|
||||||
integer :: nstate,m
|
! integer :: nstate,m
|
||||||
double precision :: Ex,tmp
|
! double precision :: Ex,tmp
|
||||||
|
|
||||||
integer,allocatable :: order(:)
|
integer,allocatable :: order(:)
|
||||||
|
|
||||||
double precision,allocatable :: rdm1_oo(:,:)
|
! double precision,allocatable :: rdm1_oo(:,:)
|
||||||
double precision,allocatable :: rdm1_vv(:,:)
|
! double precision,allocatable :: rdm1_vv(:,:)
|
||||||
|
|
||||||
double precision,allocatable :: rdm2_oovv(:,:,:,:)
|
! double precision,allocatable :: rdm2_oovv(:,:,:,:)
|
||||||
double precision,allocatable :: rdm2_ovvo(:,:,:,:)
|
! double precision,allocatable :: rdm2_ovvo(:,:,:,:)
|
||||||
|
|
||||||
! Hello world
|
! Hello world
|
||||||
|
|
||||||
@ -165,120 +165,119 @@ subroutine EE_EOM_CCD_1h1p(nC,nO,nV,nR,eO,eV,OOVV,OVVO,t)
|
|||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
allocate(Leom(nO,nV,nS),Reom(nO,nV,nS))
|
! allocate(Leom(nO,nV,nS),Reom(nO,nV,nS))
|
||||||
|
|
||||||
do m=1,nS
|
! do m=1,nS
|
||||||
ia = 0
|
! ia = 0
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
ia = ia + 1
|
! ia = ia + 1
|
||||||
Leom(i,a,m) = VL(ia,m)
|
! Leom(i,a,m) = VL(ia,m)
|
||||||
Reom(i,a,m) = VR(ia,m)
|
! Reom(i,a,m) = VR(ia,m)
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
deallocate(VL,VR)
|
! deallocate(VL,VR)
|
||||||
|
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
! EOM section
|
! EOM section
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
allocate(rdm1_oo(nO,nO),rdm1_vv(nV,nV))
|
! allocate(rdm1_oo(nO,nO),rdm1_vv(nV,nV))
|
||||||
allocate(rdm2_oovv(nO,nO,nV,nV),rdm2_ovvo(nO,nV,nV,nO))
|
! allocate(rdm2_oovv(nO,nO,nV,nV),rdm2_ovvo(nO,nV,nV,nO))
|
||||||
|
|
||||||
nstate = 1
|
! nstate = 1
|
||||||
|
|
||||||
tmp = 0d0
|
! tmp = 0d0
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
tmp = tmp + Leom(i,a,nstate)*Reom(i,a,nstate)
|
! tmp = tmp + Leom(i,a,nstate)*Reom(i,a,nstate)
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
print*,tmp
|
! print*,tmp
|
||||||
|
|
||||||
rdm1_oo(:,:) = 0d0
|
! rdm1_oo(:,:) = 0d0
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do j=1,nO
|
! do j=1,nO
|
||||||
do c=1,nV
|
! do c=1,nV
|
||||||
|
|
||||||
rdm1_oo(i,j) = rdm1_oo(i,j) - Reom(i,c,nstate)*Leom(j,c,nstate)
|
! rdm1_oo(i,j) = rdm1_oo(i,j) - Reom(i,c,nstate)*Leom(j,c,nstate)
|
||||||
|
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
rdm1_vv(:,:) = 0d0
|
! rdm1_vv(:,:) = 0d0
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
do b=1,nV
|
! do b=1,nV
|
||||||
do k=1,nO
|
! do k=1,nO
|
||||||
|
|
||||||
rdm1_vv(a,b) = rdm1_vv(a,b) + Reom(k,b,nstate)*Leom(k,a,nstate)
|
! rdm1_vv(a,b) = rdm1_vv(a,b) + Reom(k,b,nstate)*Leom(k,a,nstate)
|
||||||
|
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
rdm2_ovvo(:,:,:,:) = 0d0
|
! rdm2_ovvo(:,:,:,:) = 0d0
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
do b=1,nV
|
! do b=1,nV
|
||||||
do j=1,nO
|
! do j=1,nO
|
||||||
|
!
|
||||||
rdm2_ovvo(i,a,b,j) = Reom(i,b,nstate)*Leom(j,a,nstate)
|
! rdm2_ovvo(i,a,b,j) = Reom(i,b,nstate)*Leom(j,a,nstate)
|
||||||
|
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
rdm2_oovv(:,:,:,:) = 0d0
|
! rdm2_oovv(:,:,:,:) = 0d0
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do j=1,nO
|
! do j=1,nO
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
do b=1,nV
|
! do b=1,nV
|
||||||
|
|
||||||
do k=1,nO
|
! do k=1,nO
|
||||||
do c=1,nV
|
! do c=1,nV
|
||||||
|
!
|
||||||
rdm2_oovv(i,j,a,b) = rdm2_oovv(i,j,a,b) &
|
! rdm2_oovv(i,j,a,b) = rdm2_oovv(i,j,a,b) &
|
||||||
+ Reom(j,b,nstate)*t(k,i,c,a)*Leom(k,c,nstate) &
|
! + Reom(j,b,nstate)*t(k,i,c,a)*Leom(k,c,nstate) &
|
||||||
- Reom(i,b,nstate)*t(k,j,c,a)*Leom(k,c,nstate) &
|
! - Reom(i,b,nstate)*t(k,j,c,a)*Leom(k,c,nstate) &
|
||||||
- Reom(j,a,nstate)*t(k,i,c,b)*Leom(k,c,nstate) &
|
! - Reom(j,a,nstate)*t(k,i,c,b)*Leom(k,c,nstate) &
|
||||||
+ Reom(i,a,nstate)*t(k,j,c,b)*Leom(k,c,nstate)
|
! + Reom(i,a,nstate)*t(k,j,c,b)*Leom(k,c,nstate)
|
||||||
|
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
Ex = 0d0
|
! Ex = 0d0
|
||||||
|
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
Ex = Ex + rdm1_oo(i,i)*eO(i)
|
! Ex = Ex + rdm1_oo(i,i)*eO(i)
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
Ex = Ex + rdm1_vv(a,a)*eV(a)
|
! Ex = Ex + rdm1_vv(a,a)*eV(a)
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
do i=1,nO
|
! do i=1,nO
|
||||||
do a=1,nV
|
! do a=1,nV
|
||||||
do b=1,nV
|
! do b=1,nV
|
||||||
do j=1,nO
|
! do j=1,nO
|
||||||
|
!
|
||||||
Ex = Ex + rdm2_ovvo(i,a,b,j)*OVVO(i,a,b,j) + 0.25d0*rdm2_oovv(i,j,a,b)*OOVV(i,j,a,b)
|
! Ex = Ex + rdm2_ovvo(i,a,b,j)*OVVO(i,a,b,j) + 0.25d0*rdm2_oovv(i,j,a,b)*OOVV(i,j,a,b)
|
||||||
|
!
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
end do
|
! end do
|
||||||
|
|
||||||
print*,'Ex = ',Ex
|
|
||||||
print*,'Om = ',Om(nstate)
|
|
||||||
|
|
||||||
|
! print*,'Ex = ',Ex
|
||||||
|
! print*,'Om = ',Om(nstate)
|
||||||
|
|
||||||
end subroutine
|
end subroutine
|
||||||
|
Loading…
x
Reference in New Issue
Block a user