mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 03:23:29 +01:00
Merge branch 'dev-stable' of https://github.com/QuantumPackage/qp2 into dev-stable
This commit is contained in:
commit
a25c71f881
1
.github/workflows/compilation.yml
vendored
1
.github/workflows/compilation.yml
vendored
@ -49,6 +49,7 @@ jobs:
|
|||||||
./configure -i resultsFile || :
|
./configure -i resultsFile || :
|
||||||
./configure -i bats || :
|
./configure -i bats || :
|
||||||
./configure -i trexio-nohdf5 || :
|
./configure -i trexio-nohdf5 || :
|
||||||
|
./configure -i qmckl || :
|
||||||
./configure -c ./config/gfortran_debug.cfg
|
./configure -c ./config/gfortran_debug.cfg
|
||||||
- name: Compilation
|
- name: Compilation
|
||||||
run: |
|
run: |
|
||||||
|
3
.github/workflows/configuration.yml
vendored
3
.github/workflows/configuration.yml
vendored
@ -56,6 +56,9 @@ jobs:
|
|||||||
- name: trexio
|
- name: trexio
|
||||||
run: |
|
run: |
|
||||||
./configure -i trexio || echo OK
|
./configure -i trexio || echo OK
|
||||||
|
- name: qmckl
|
||||||
|
run: |
|
||||||
|
./configure -i qmckl || echo OK
|
||||||
- name: Final check
|
- name: Final check
|
||||||
run: |
|
run: |
|
||||||
./configure -c config/gfortran_debug.cfg
|
./configure -c config/gfortran_debug.cfg
|
||||||
|
4
bin/python
Executable file
4
bin/python
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec python3 $@
|
||||||
|
|
@ -127,6 +127,7 @@ def main(arguments):
|
|||||||
l_repository = list(d_tmp.keys())
|
l_repository = list(d_tmp.keys())
|
||||||
if l_repository == []:
|
if l_repository == []:
|
||||||
l_result = []
|
l_result = []
|
||||||
|
l_plugins = []
|
||||||
else:
|
else:
|
||||||
m_instance = ModuleHandler(l_repository)
|
m_instance = ModuleHandler(l_repository)
|
||||||
l_plugins = [module for module in m_instance.l_module]
|
l_plugins = [module for module in m_instance.l_module]
|
||||||
|
@ -97,6 +97,8 @@ if [[ $dets -eq 1 ]] ; then
|
|||||||
rm --force -- ${ezfio}/determinants/psi_{det,coef}.gz
|
rm --force -- ${ezfio}/determinants/psi_{det,coef}.gz
|
||||||
rm --force -- ${ezfio}/determinants/n_det_qp_edit
|
rm --force -- ${ezfio}/determinants/n_det_qp_edit
|
||||||
rm --force -- ${ezfio}/determinants/psi_{det,coef}_qp_edit.gz
|
rm --force -- ${ezfio}/determinants/psi_{det,coef}_qp_edit.gz
|
||||||
|
rm --force -- ${ezfio}/tc_bi_ortho/psi_{l,r}_coef_bi_ortho.gz
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $mos -eq 1 ]] ; then
|
if [[ $mos -eq 1 ]] ; then
|
||||||
|
3
bin/qpsh
3
bin/qpsh
@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export QP_ROOT=$(dirname "$(readlink -f "$0")")/..
|
REALPATH=$( cd "$(dirname "$0")" ; pwd -P )
|
||||||
|
export QP_ROOT=${REALPATH}/..
|
||||||
|
|
||||||
bash --init-file <(cat << EOF
|
bash --init-file <(cat << EOF
|
||||||
[[ -f /etc/bashrc ]] && source /etc/bashrc
|
[[ -f /etc/bashrc ]] && source /etc/bashrc
|
||||||
|
23
bin/zcat
Executable file
23
bin/zcat
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# On Darwin: try gzcat if available, otherwise use Python
|
||||||
|
|
||||||
|
if [[ $(uname -s) = Darwin ]] ; then
|
||||||
|
which gzcat &> /dev/null
|
||||||
|
if [[ $? -eq 0 ]] ; then
|
||||||
|
exec gzcat $@
|
||||||
|
else
|
||||||
|
|
||||||
|
exec python3 << EOF
|
||||||
|
import sys
|
||||||
|
import gzip
|
||||||
|
with gzip.open("$1", "rt") as f:
|
||||||
|
print(f.read())
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||||
|
command=$(which -a zcat | grep -v "$SCRIPTPATH/" | head -1)
|
||||||
|
exec $command $@
|
||||||
|
fi
|
||||||
|
|
62
config/flang_avx.cfg
Normal file
62
config/flang_avx.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : flang -ffree-line-length-none -I . -mavx -g -fPIC
|
||||||
|
LAPACK_LIB : -llapack -lblas
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast -mavx
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -fcheck=all -g
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native
|
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native -std=legacy
|
||||||
LAPACK_LIB : -lblas -llapack
|
LAPACK_LIB : -lblas -llapack
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
62
config/gfortran10.cfg
Normal file
62
config/gfortran10.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : gfortran-10 -g -ffree-line-length-none -I . -fPIC
|
||||||
|
LAPACK_LIB : -lblas -llapack
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : DEBUG ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -g -msse4.2 -fcheck=all -Waliasing -Wampersand -Wconversion -Wsurprising -Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation -Wreal-q-constant -Wuninitialized -fbacktrace -ffpe-trap=zero,overflow,underflow -finit-real=nan
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -13,7 +13,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native
|
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native -std=legacy
|
||||||
LAPACK_LIB : -larmpl_lp64_mp
|
LAPACK_LIB : -larmpl_lp64_mp
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -ffree-line-length-none -I . -mavx -g -fPIC
|
FC : gfortran -ffree-line-length-none -I . -mavx -g -fPIC -std=legacy
|
||||||
LAPACK_LIB : -llapack -lblas
|
LAPACK_LIB : -llapack -lblas
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DSET_NESTED
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -g -ffree-line-length-none -I . -fPIC
|
FC : gfortran -g -ffree-line-length-none -I . -fPIC -std=legacy
|
||||||
LAPACK_LIB : -lblas -llapack
|
LAPACK_LIB : -lblas -llapack
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
62
config/gfortran_macos.cfg
Normal file
62
config/gfortran_macos.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : gfortran -ffree-line-length-none -I . -g -fPIC -std=legacy
|
||||||
|
LAPACK_LIB : -llapack -lblas
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 -DSET_NESTED -DMACOS
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast -march=native
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -fcheck=all -g
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpif90 -ffree-line-length-none -I . -g -fPIC
|
FC : mpif90 -ffree-line-length-none -I . -g -fPIC -std=legacy
|
||||||
LAPACK_LIB : -lblas -llapack
|
LAPACK_LIB : -lblas -llapack
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DMPI -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DSET_NESTED
|
||||||
|
62
config/gfortran_mpi_mkl.cfg
Normal file
62
config/gfortran_mpi_mkl.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : mpif90 -ffree-line-length-none -I . -g -fPIC -std=legacy
|
||||||
|
LAPACK_LIB : -lblas -llapack
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast -msse4.2
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast -msse4.2
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -fcheck=all -g
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native
|
FC : gfortran -g -ffree-line-length-none -I . -fPIC -march=native -std=legacy
|
||||||
LAPACK_LIB : -lopenblas
|
LAPACK_LIB : -lopenblas
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
63
config/ifort_2019_avx_notz.cfg
Normal file
63
config/ifort_2019_avx_notz.cfg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -mkl=[parallel|sequential] : Use the MKL library
|
||||||
|
# --ninja : Allow the utilisation of ninja. It is mandatory !
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : ifort -fpic
|
||||||
|
LAPACK_LIB : -mkl=parallel
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --define=WITHOUT_TRAILZ --define=WITHOUT_SHIFTRL -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -xHost : Compile a binary optimized for the current architecture
|
||||||
|
# -O2 : O3 not better than O2.
|
||||||
|
# -ip : Inter-procedural optimizations
|
||||||
|
# -ftz : Flushes denormal results to zero
|
||||||
|
#
|
||||||
|
[OPT]
|
||||||
|
FC : -traceback
|
||||||
|
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -traceback : Activate backtrace on runtime
|
||||||
|
# -fpe0 : All floating point exaceptions
|
||||||
|
# -C : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
# -xSSE2 : Valgrind needs a very simple x86 executable
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FC : -g -traceback
|
||||||
|
FCFLAGS : -xSSE2 -C -fpe0 -implicitnone
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -qopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
63
config/ifort_2021_avx_notz.cfg
Normal file
63
config/ifort_2021_avx_notz.cfg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -mkl=[parallel|sequential] : Use the MKL library
|
||||||
|
# --ninja : Allow the utilisation of ninja. It is mandatory !
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : ifort -fpic
|
||||||
|
LAPACK_LIB : -mkl=parallel
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --define=WITHOUT_TRAILZ --define=WITHOUT_SHIFTRL
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -xHost : Compile a binary optimized for the current architecture
|
||||||
|
# -O2 : O3 not better than O2.
|
||||||
|
# -ip : Inter-procedural optimizations
|
||||||
|
# -ftz : Flushes denormal results to zero
|
||||||
|
#
|
||||||
|
[OPT]
|
||||||
|
FC : -traceback
|
||||||
|
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -traceback : Activate backtrace on runtime
|
||||||
|
# -fpe0 : All floating point exaceptions
|
||||||
|
# -C : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
# -xSSE2 : Valgrind needs a very simple x86 executable
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FC : -g -traceback
|
||||||
|
FCFLAGS : -xSSE2 -C -fpe0 -implicitnone
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -qopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL
|
||||||
|
|
||||||
|
49
configure
vendored
49
configure
vendored
@ -19,7 +19,11 @@ git submodule init
|
|||||||
git submodule update
|
git submodule update
|
||||||
|
|
||||||
# Update ARM or x86 dependencies
|
# Update ARM or x86 dependencies
|
||||||
ARCHITECTURE=$(uname -m)
|
SYSTEM=$(uname -s)
|
||||||
|
if [[ $SYSTEM = "Linux" ]] ; then
|
||||||
|
SYSTEM=""
|
||||||
|
fi
|
||||||
|
ARCHITECTURE=$(uname -m)$SYSTEM
|
||||||
cd ${QP_ROOT}/external/qp2-dependencies
|
cd ${QP_ROOT}/external/qp2-dependencies
|
||||||
git checkout master
|
git checkout master
|
||||||
git pull
|
git pull
|
||||||
@ -211,9 +215,10 @@ EOF
|
|||||||
execute << EOF
|
execute << EOF
|
||||||
cd "\${QP_ROOT}"/external
|
cd "\${QP_ROOT}"/external
|
||||||
wget https://github.com/TREX-CoE/trexio/releases/download/v${VERSION}/trexio-${VERSION}.tar.gz
|
wget https://github.com/TREX-CoE/trexio/releases/download/v${VERSION}/trexio-${VERSION}.tar.gz
|
||||||
tar -zxf trexio-${VERSION}.tar.gz
|
rm -rf trexio-${VERSION}
|
||||||
|
tar -zxf trexio-${VERSION}.tar.gz && rm trexio-${VERSION}.tar.gz
|
||||||
cd trexio-${VERSION}
|
cd trexio-${VERSION}
|
||||||
./configure --prefix=\${QP_ROOT} --without-hdf5
|
./configure --prefix=\${QP_ROOT} --without-hdf5 CFLAGS='-g'
|
||||||
make -j 8 && make -j 8 check && make -j 8 install
|
make -j 8 && make -j 8 check && make -j 8 install
|
||||||
tar -zxvf "\${QP_ROOT}"/external/qp2-dependencies/${ARCHITECTURE}/ninja.tar.gz
|
tar -zxvf "\${QP_ROOT}"/external/qp2-dependencies/${ARCHITECTURE}/ninja.tar.gz
|
||||||
mv ninja "\${QP_ROOT}"/bin/
|
mv ninja "\${QP_ROOT}"/bin/
|
||||||
@ -224,11 +229,36 @@ EOF
|
|||||||
execute << EOF
|
execute << EOF
|
||||||
cd "\${QP_ROOT}"/external
|
cd "\${QP_ROOT}"/external
|
||||||
wget https://github.com/TREX-CoE/trexio/releases/download/v${VERSION}/trexio-${VERSION}.tar.gz
|
wget https://github.com/TREX-CoE/trexio/releases/download/v${VERSION}/trexio-${VERSION}.tar.gz
|
||||||
tar -zxf trexio-${VERSION}.tar.gz
|
rm -rf trexio-${VERSION}
|
||||||
|
tar -zxf trexio-${VERSION}.tar.gz && rm trexio-${VERSION}.tar.gz
|
||||||
cd trexio-${VERSION}
|
cd trexio-${VERSION}
|
||||||
./configure --prefix=\${QP_ROOT}
|
./configure --prefix=\${QP_ROOT} CFLAGS="-g"
|
||||||
make -j 8 && make -j 8 check && make -j 8 install
|
make -j 8 && make -j 8 check && make -j 8 install
|
||||||
EOF
|
EOF
|
||||||
|
elif [[ ${PACKAGE} = qmckl ]] ; then
|
||||||
|
|
||||||
|
VERSION=0.5.4
|
||||||
|
execute << EOF
|
||||||
|
cd "\${QP_ROOT}"/external
|
||||||
|
wget https://github.com/TREX-CoE/qmckl/releases/download/v${VERSION}/qmckl-${VERSION}.tar.gz
|
||||||
|
rm -rf qmckl-${VERSION}
|
||||||
|
tar -zxf qmckl-${VERSION}.tar.gz && rm qmckl-${VERSION}.tar.gz
|
||||||
|
cd qmckl-${VERSION}
|
||||||
|
./configure --prefix=\${QP_ROOT} --enable-hpc --disable-doc CFLAGS='-g'
|
||||||
|
make && make -j 4 check && make install
|
||||||
|
EOF
|
||||||
|
elif [[ ${PACKAGE} = qmckl-intel ]] ; then
|
||||||
|
|
||||||
|
VERSION=0.5.4
|
||||||
|
execute << EOF
|
||||||
|
cd "\${QP_ROOT}"/external
|
||||||
|
wget https://github.com/TREX-CoE/qmckl/releases/download/v${VERSION}/qmckl-${VERSION}.tar.gz
|
||||||
|
rm -rf qmckl-${VERSION}
|
||||||
|
tar -zxf qmckl-${VERSION}.tar.gz && rm qmckl-${VERSION}.tar.gz
|
||||||
|
cd qmckl-${VERSION}
|
||||||
|
./configure --prefix=\${QP_ROOT} --enable-hpc --disable-doc --with-icc --with-ifort CFLAGS='-g'
|
||||||
|
make && make -j 4 check && make install
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
elif [[ ${PACKAGE} = gmp ]] ; then
|
elif [[ ${PACKAGE} = gmp ]] ; then
|
||||||
@ -249,6 +279,7 @@ EOF
|
|||||||
cd "\${QP_ROOT}"/external
|
cd "\${QP_ROOT}"/external
|
||||||
tar --gunzip --extract --file qp2-dependencies/zeromq-4.2.5.tar.gz
|
tar --gunzip --extract --file qp2-dependencies/zeromq-4.2.5.tar.gz
|
||||||
cd zeromq-*
|
cd zeromq-*
|
||||||
|
[[ "${SYSTEM}" = "Darwin" ]] && ./autogen.sh
|
||||||
./configure --prefix="\$QP_ROOT" --without-libsodium --enable-libunwind=no
|
./configure --prefix="\$QP_ROOT" --without-libsodium --enable-libunwind=no
|
||||||
make -j 8
|
make -j 8
|
||||||
make install
|
make install
|
||||||
@ -367,10 +398,16 @@ fi
|
|||||||
|
|
||||||
TREXIO=$(find_lib -ltrexio)
|
TREXIO=$(find_lib -ltrexio)
|
||||||
if [[ ${TREXIO} = $(not_found) ]] ; then
|
if [[ ${TREXIO} = $(not_found) ]] ; then
|
||||||
error "TREXIO (trexio,trexio-nohdf5) is not installed. If you don't have HDF5, use trexio-nohdf5"
|
error "TREXIO (trexio | trexio-nohdf5) is not installed. If you don't have HDF5, use trexio-nohdf5"
|
||||||
fail
|
fail
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#QMCKL=$(find_lib -lqmckl)
|
||||||
|
#if [[ ${QMCKL} = $(not_found) ]] ; then
|
||||||
|
# error "QMCkl (qmckl | qmckl-intel) is not installed."
|
||||||
|
# fail
|
||||||
|
#fi
|
||||||
|
|
||||||
F77ZMQ=$(find_lib -lzmq -lf77zmq -lpthread)
|
F77ZMQ=$(find_lib -lzmq -lf77zmq -lpthread)
|
||||||
if [[ ${F77ZMQ} = $(not_found) ]] ; then
|
if [[ ${F77ZMQ} = $(not_found) ]] ; then
|
||||||
error "Fortran binding of ZeroMQ (f77zmq) is not installed."
|
error "Fortran binding of ZeroMQ (f77zmq) is not installed."
|
||||||
|
File diff suppressed because it is too large
Load Diff
920
data/pseudo/def2
Normal file
920
data/pseudo/def2
Normal file
@ -0,0 +1,920 @@
|
|||||||
|
$ECP
|
||||||
|
RB-ECP GEN 28 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
-12.3169000 2 3.8431140
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
89.5001980 2 5.0365510
|
||||||
|
0.4937610 2 1.9708490
|
||||||
|
12.3169000 2 3.8431140
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
58.5689740 2 4.2583410
|
||||||
|
0.4317910 2 1.4707090
|
||||||
|
12.3169000 2 3.8431140
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
26.2248980 2 3.0231270
|
||||||
|
0.9628390 2 0.6503830
|
||||||
|
12.3169000 2 3.8431140
|
||||||
|
SR-ECP GEN 28 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
-15.8059920 2 4.6339750
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
135.4794300 2 7.4000740
|
||||||
|
17.5344630 2 3.6063790
|
||||||
|
15.8059920 2 4.6339750
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
88.3597090 2 6.4848680
|
||||||
|
15.3943720 2 3.2880530
|
||||||
|
15.8059920 2 4.6339750
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
29.8889870 2 4.6228410
|
||||||
|
6.6594140 2 2.2469040
|
||||||
|
15.8059920 2 4.6339750
|
||||||
|
Y-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-19.12219811 2 6.5842120
|
||||||
|
-2.43637543 2 3.2921060
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
135.15384412 2 7.4880494
|
||||||
|
15.55244130 2 3.7440247
|
||||||
|
19.12219811 2 6.5842120
|
||||||
|
2.43637543 2 3.2921060
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
87.78499167 2 6.4453772
|
||||||
|
11.56406599 2 3.2226886
|
||||||
|
19.12219811 2 6.5842120
|
||||||
|
2.43637543 2 3.2921060
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
29.70100072 2 4.6584472
|
||||||
|
5.53996847 2 2.3292236
|
||||||
|
19.12219811 2 6.5842120
|
||||||
|
2.43637543 2 3.2921060
|
||||||
|
ZR-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-21.09377605 2 7.5400000
|
||||||
|
-3.08069427 2 3.7700000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
150.26759106 2 8.2000000
|
||||||
|
18.97621650 2 4.0897278
|
||||||
|
21.09377605 2 7.5400000
|
||||||
|
3.08069427 2 3.7700000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
99.62212372 2 7.1100000
|
||||||
|
14.16873329 2 3.5967980
|
||||||
|
21.09377605 2 7.5400000
|
||||||
|
3.08069427 2 3.7700000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
35.04512355 2 5.3500000
|
||||||
|
6.11125948 2 2.4918215
|
||||||
|
21.09377605 2 7.5400000
|
||||||
|
3.08069427 2 3.7700000
|
||||||
|
NB-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-22.92954996 2 8.4900000
|
||||||
|
-3.66630986 2 4.2500000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
165.17914349 2 8.9000000
|
||||||
|
21.99297437 2 4.4300000
|
||||||
|
22.92954996 2 8.4900000
|
||||||
|
3.66630986 2 4.2500000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
111.79441445 2 7.7700000
|
||||||
|
16.63348326 2 3.9600000
|
||||||
|
22.92954996 2 8.4900000
|
||||||
|
3.66630986 2 4.2500000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
38.11224880 2 6.0500000
|
||||||
|
8.03916727 2 2.8400000
|
||||||
|
22.92954996 2 8.4900000
|
||||||
|
3.66630986 2 4.2500000
|
||||||
|
MO-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-24.80517707 2 9.4500000
|
||||||
|
-4.15378155 2 4.7200000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
180.10310850 2 9.7145938
|
||||||
|
24.99722791 2 4.6805004
|
||||||
|
24.80517707 2 9.4500000
|
||||||
|
4.15378155 2 4.7200000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
123.77275231 2 8.1421366
|
||||||
|
19.53022800 2 4.6259863
|
||||||
|
24.80517707 2 9.4500000
|
||||||
|
4.15378155 2 4.7200000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
48.37502229 2 6.6184148
|
||||||
|
8.89205274 2 3.2487516
|
||||||
|
24.80517707 2 9.4500000
|
||||||
|
4.15378155 2 4.7200000
|
||||||
|
TC-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-26.56244747 2 10.4000000
|
||||||
|
-4.58568054 2 5.2000000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
195.15916591 2 10.4223462
|
||||||
|
28.09260333 2 5.0365160
|
||||||
|
26.56244747 2 10.4000000
|
||||||
|
4.58568054 2 5.2000000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
135.28456622 2 8.9504494
|
||||||
|
21.80650430 2 4.8544394
|
||||||
|
26.56244747 2 10.4000000
|
||||||
|
4.58568054 2 5.2000000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
54.32972942 2 6.9456968
|
||||||
|
11.15506795 2 3.9705849
|
||||||
|
26.56244747 2 10.4000000
|
||||||
|
4.58568054 2 5.2000000
|
||||||
|
RU-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-28.34061627 2 11.3600000
|
||||||
|
-4.94462923 2 5.6800000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
209.82297122 2 11.1052693
|
||||||
|
30.65472642 2 5.4147454
|
||||||
|
28.34061627 2 11.3600000
|
||||||
|
4.94462923 2 5.6800000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
146.33618228 2 9.7712707
|
||||||
|
24.12787723 2 5.0739908
|
||||||
|
28.34061627 2 11.3600000
|
||||||
|
4.94462923 2 5.6800000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
67.51589667 2 7.6714231
|
||||||
|
9.87010415 2 4.1365647
|
||||||
|
28.34061627 2 11.3600000
|
||||||
|
4.94462923 2 5.6800000
|
||||||
|
RH-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-30.09345572 2 12.3100000
|
||||||
|
-5.21848192 2 6.1600000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
225.34775353 2 11.7200000
|
||||||
|
32.82318898 2 5.8200000
|
||||||
|
30.09345572 2 12.3100000
|
||||||
|
5.21848192 2 6.1600000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
158.70941159 2 10.4200000
|
||||||
|
26.44410049 2 5.4500000
|
||||||
|
30.09345572 2 12.3100000
|
||||||
|
5.21848192 2 6.1600000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
62.75862572 2 8.8200000
|
||||||
|
10.97871947 2 3.8700000
|
||||||
|
30.09345572 2 12.3100000
|
||||||
|
5.21848192 2 6.1600000
|
||||||
|
PD-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-31.92955431 2 13.2700000
|
||||||
|
-5.39821694 2 6.6300000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
240.22904033 2 12.4300000
|
||||||
|
35.17194347 2 6.1707594
|
||||||
|
31.92955431 2 13.2700000
|
||||||
|
5.39821694 2 6.6300000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
170.41727605 2 11.0800000
|
||||||
|
28.47213287 2 5.8295541
|
||||||
|
31.92955431 2 13.2700000
|
||||||
|
5.39821694 2 6.6300000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
69.01384488 2 9.5100000
|
||||||
|
11.75086158 2 4.1397811
|
||||||
|
31.92955431 2 13.2700000
|
||||||
|
5.39821694 2 6.6300000
|
||||||
|
AG-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-33.68992012 2 14.2200000
|
||||||
|
-5.53112021 2 7.1100000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
255.13936452 2 13.1300000
|
||||||
|
36.86612154 2 6.5100000
|
||||||
|
33.68992012 2 14.2200000
|
||||||
|
5.53112021 2 7.1100000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
182.18186871 2 11.7400000
|
||||||
|
30.35775148 2 6.2000000
|
||||||
|
33.68992012 2 14.2200000
|
||||||
|
5.53112021 2 7.1100000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
73.71926087 2 10.2100000
|
||||||
|
12.50211712 2 4.3800000
|
||||||
|
33.68992012 2 14.2200000
|
||||||
|
5.53112021 2 7.1100000
|
||||||
|
CD-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-35.47662555 2 15.1847957
|
||||||
|
-5.61767685 2 7.5923978
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
270.00948324 2 13.8358689
|
||||||
|
38.76730798 2 6.8572704
|
||||||
|
35.47662555 2 15.1847957
|
||||||
|
5.61767685 2 7.5923978
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
193.82962939 2 12.4049710
|
||||||
|
31.89652523 2 6.5677995
|
||||||
|
35.47662555 2 15.1847957
|
||||||
|
5.61767685 2 7.5923978
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
79.19364700 2 10.8969253
|
||||||
|
13.23082674 2 4.6411649
|
||||||
|
35.47662555 2 15.1847957
|
||||||
|
5.61767685 2 7.5923978
|
||||||
|
IN-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-13.72807800 2 12.53905600
|
||||||
|
-18.20686600 2 12.55256100
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
281.12235000 2 15.39282200
|
||||||
|
61.90147000 2 8.05586400
|
||||||
|
13.72807800 2 12.53905600
|
||||||
|
18.20686600 2 12.55256100
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
67.46215400 2 13.92867200
|
||||||
|
134.94925000 2 13.34723400
|
||||||
|
14.74614000 2 7.61413200
|
||||||
|
29.63926200 2 7.31836500
|
||||||
|
13.72807800 2 12.53905600
|
||||||
|
18.20686600 2 12.55256100
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
35.49325400 2 14.03471500
|
||||||
|
53.17877300 2 14.51161600
|
||||||
|
9.17728100 2 5.55055000
|
||||||
|
12.39241000 2 5.05941500
|
||||||
|
13.72807800 2 12.53905600
|
||||||
|
18.20686600 2 12.55256100
|
||||||
|
SN-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-12.57633300 2 12.28234800
|
||||||
|
-16.59594400 2 12.27215000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
279.98868200 2 17.42041400
|
||||||
|
62.37781000 2 7.63115500
|
||||||
|
12.57633300 2 12.28234800
|
||||||
|
16.59594400 2 12.27215000
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
66.16252300 2 16.13102400
|
||||||
|
132.17439600 2 15.62807700
|
||||||
|
16.33941700 2 7.32560800
|
||||||
|
32.48895900 2 6.94251900
|
||||||
|
12.57633300 2 12.28234800
|
||||||
|
16.59594400 2 12.27215000
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
36.38744100 2 15.51497600
|
||||||
|
54.50784100 2 15.18816000
|
||||||
|
8.69682300 2 5.45602400
|
||||||
|
12.84020800 2 5.36310500
|
||||||
|
12.57633300 2 12.28234800
|
||||||
|
16.59594400 2 12.27215000
|
||||||
|
SB-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-15.36680100 2 14.44497800
|
||||||
|
-20.29613800 2 14.44929500
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
281.07158100 2 16.33086500
|
||||||
|
61.71660400 2 8.55654200
|
||||||
|
15.36680100 2 14.44497800
|
||||||
|
20.29613800 2 14.44929500
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
67.45738000 2 14.47033700
|
||||||
|
134.93350300 2 13.81619400
|
||||||
|
14.71634400 2 8.42492400
|
||||||
|
29.51851200 2 8.09272800
|
||||||
|
15.36680100 2 14.44497800
|
||||||
|
20.29613800 2 14.44929500
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
35.44781500 2 14.88633100
|
||||||
|
53.14346600 2 15.14631900
|
||||||
|
9.17922300 2 5.90826700
|
||||||
|
13.24025300 2 5.59432200
|
||||||
|
15.36680100 2 14.44497800
|
||||||
|
20.29613800 2 14.44929500
|
||||||
|
TE-ECP GEN 28 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
-15.74545000 2 15.20616800
|
||||||
|
-20.74244800 2 15.20170200
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
281.04584300 2 16.81447300
|
||||||
|
61.62065600 2 8.79352600
|
||||||
|
15.74545000 2 15.20616800
|
||||||
|
20.74244800 2 15.20170200
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
67.44946400 2 14.87780100
|
||||||
|
134.90430400 2 14.26973100
|
||||||
|
14.68954700 2 8.72443500
|
||||||
|
29.41506300 2 8.29151500
|
||||||
|
15.74545000 2 15.20616800
|
||||||
|
20.74244800 2 15.20170200
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
35.43205700 2 15.20500800
|
||||||
|
53.13568700 2 15.22584800
|
||||||
|
9.06980200 2 6.07176900
|
||||||
|
13.12230400 2 5.80476000
|
||||||
|
15.74545000 2 15.20616800
|
||||||
|
20.74244800 2 15.20170200
|
||||||
|
I-ECP GEN 28 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
-21.84204000 2 19.45860900
|
||||||
|
-28.46819100 2 19.34926000
|
||||||
|
-0.24371300 2 4.82376700
|
||||||
|
-0.32080400 2 4.88431500
|
||||||
|
7 ----- s-f potential -----
|
||||||
|
49.99429300 2 40.01583500
|
||||||
|
281.02531700 2 17.42974700
|
||||||
|
61.57332600 2 9.00548400
|
||||||
|
21.84204000 2 19.45860900
|
||||||
|
28.46819100 2 19.34926000
|
||||||
|
0.24371300 2 4.82376700
|
||||||
|
0.32080400 2 4.88431500
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
67.44284100 2 15.35546600
|
||||||
|
134.88113700 2 14.97183300
|
||||||
|
14.67505100 2 8.96016400
|
||||||
|
29.37566600 2 8.25909600
|
||||||
|
21.84204000 2 19.45860900
|
||||||
|
28.46819100 2 19.34926000
|
||||||
|
0.24371300 2 4.82376700
|
||||||
|
0.32080400 2 4.88431500
|
||||||
|
10 ----- d-f potential -----
|
||||||
|
35.43952900 2 15.06890800
|
||||||
|
53.17605700 2 14.55532200
|
||||||
|
9.06719500 2 6.71864700
|
||||||
|
13.20693700 2 6.45639300
|
||||||
|
0.08933500 2 1.19177900
|
||||||
|
0.05238000 2 1.29115700
|
||||||
|
21.84204000 2 19.45860900
|
||||||
|
28.46819100 2 19.34926000
|
||||||
|
0.24371300 2 4.82376700
|
||||||
|
0.32080400 2 4.88431500
|
||||||
|
XE-ECP GEN 28 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
-23.08929500 2 20.88155700
|
||||||
|
-30.07447500 2 20.78344300
|
||||||
|
-0.28822700 2 5.25338900
|
||||||
|
-0.38692400 2 5.36118800
|
||||||
|
7 ----- s-f potential -----
|
||||||
|
49.99796200 2 40.00518400
|
||||||
|
281.01330300 2 17.81221400
|
||||||
|
61.53825500 2 9.30415000
|
||||||
|
23.08929500 2 20.88155700
|
||||||
|
30.07447500 2 20.78344300
|
||||||
|
0.28822700 2 5.25338900
|
||||||
|
0.38692400 2 5.36118800
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
67.43914200 2 15.70177200
|
||||||
|
134.87471100 2 15.25860800
|
||||||
|
14.66330000 2 9.29218400
|
||||||
|
29.35473000 2 8.55900300
|
||||||
|
23.08929500 2 20.88155700
|
||||||
|
30.07447500 2 20.78344300
|
||||||
|
0.28822700 2 5.25338900
|
||||||
|
0.38692400 2 5.36118800
|
||||||
|
10 ----- d-f potential -----
|
||||||
|
35.43690800 2 15.18560000
|
||||||
|
53.19577200 2 14.28450000
|
||||||
|
9.04623200 2 7.12188900
|
||||||
|
13.22368100 2 6.99196300
|
||||||
|
0.08485300 2 0.62394600
|
||||||
|
0.04415500 2 0.64728400
|
||||||
|
23.08929500 2 20.88155700
|
||||||
|
30.07447500 2 20.78344300
|
||||||
|
0.28822700 2 5.25338900
|
||||||
|
0.38692400 2 5.36118800
|
||||||
|
CS-ECP GEN 46 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
-28.8843090 2 3.1232690
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
84.5477300 2 4.0797500
|
||||||
|
16.6541730 2 2.4174060
|
||||||
|
28.8843090 2 3.1232690
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
157.0490590 2 5.5140800
|
||||||
|
26.4233070 2 2.1603160
|
||||||
|
28.8843090 2 3.1232690
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
13.1727530 2 1.8074100
|
||||||
|
3.3428330 2 0.8581820
|
||||||
|
28.8843090 2 3.1232690
|
||||||
|
BA-ECP GEN 46 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
-33.4731740 2 3.5894650
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
427.8458160 2 9.5269860
|
||||||
|
204.4175300 2 4.4875100
|
||||||
|
33.4731740 2 3.5894650
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
293.6058640 2 8.3159300
|
||||||
|
294.1933160 2 4.2922170
|
||||||
|
33.4731740 2 3.5894650
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
112.5504020 2 5.9161080
|
||||||
|
181.7826210 2 2.8748420
|
||||||
|
33.4731740 2 3.5894650
|
||||||
|
LA-ECP GEN 46 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
-36.0100160 2 4.0286000
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
91.9321770 2 3.3099000
|
||||||
|
-3.7887640 2 1.6550000
|
||||||
|
36.0100160 2 4.0286000
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
63.7594860 2 2.8368000
|
||||||
|
-0.6479580 2 1.4184000
|
||||||
|
36.0100160 2 4.0286000
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
36.1161730 2 2.0213000
|
||||||
|
0.2191140 2 1.0107000
|
||||||
|
36.0100160 2 4.0286000
|
||||||
|
CE-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
580.08345700 2 20.13782900
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
310.30283300 2 15.99848200
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
167.81394400 2 14.97418700
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-49.39022900 2 23.40245500
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-21.33187900 2 16.57055300
|
||||||
|
PR-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
577.57312200 2 20.76627800
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
295.78584600 2 16.07844800
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
150.86705500 2 14.70508900
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-48.73676600 2 23.37896900
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-22.32948800 2 17.44713800
|
||||||
|
ND-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
574.37098000 2 21.35226700
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
280.94644000 2 16.11926500
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
138.67062700 2 14.49410300
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-47.52266800 2 23.18386000
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-23.34458700 2 18.34417400
|
||||||
|
PM-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
575.39574900 2 21.94286500
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
281.70451400 2 16.55516100
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
123.52473700 2 13.96030800
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-50.74151100 2 24.03354600
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-24.37251000 2 19.26024500
|
||||||
|
SM-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
572.98533200 2 22.34447100
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
272.35914500 2 16.69459000
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
115.29390000 2 13.72770500
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-51.10839200 2 24.05909200
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-25.42188500 2 20.19724900
|
||||||
|
EU-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
607.65933100 2 23.47138400
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
264.38547600 2 16.77247900
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
115.38137500 2 13.98134300
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-49.40079400 2 23.96288800
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-26.74827300 2 21.23245800
|
||||||
|
GD-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
637.20086900 2 24.60215100
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
261.68960100 2 16.88925000
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
106.85653300 2 13.64335800
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-50.68359000 2 24.12691700
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-27.57963000 2 22.13188700
|
||||||
|
TB-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
668.59715500 2 24.95295600
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
266.98047500 2 17.61089900
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
97.50659600 2 12.97600900
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-52.17575700 2 24.24886900
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-28.69426800 2 23.13067200
|
||||||
|
DY-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
705.67122100 2 26.42958600
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
254.86698900 2 17.31703400
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
95.04518700 2 12.91359900
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-54.57409300 2 24.90787800
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-29.82827700 2 24.14875300
|
||||||
|
HO-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
755.70313600 2 28.39725700
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
253.55199800 2 17.43863300
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
89.63567700 2 12.43421200
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-55.48203600 2 25.38701000
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-30.99112500 2 25.18850100
|
||||||
|
ER-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
800.95287600 2 29.79859200
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
262.01986900 2 18.11423700
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
80.17055200 2 11.36958700
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-42.33628500 2 21.82123300
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-32.18527800 2 26.25073500
|
||||||
|
TM-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
845.51074300 2 31.14412200
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
258.58523900 2 18.09235300
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
80.72905900 2 11.46915900
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-48.70126600 2 23.60554400
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-33.39549600 2 27.32978100
|
||||||
|
YB-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
891.01377700 2 32.42448400
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
264.03695300 2 18.65623200
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
73.92391900 2 10.49022200
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-39.59217300 2 20.77418300
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-34.63863800 2 28.43102800
|
||||||
|
LU-ECP GEN 28 5
|
||||||
|
1 ----- h-ul potential -----
|
||||||
|
0.00000000 2 1.00000000
|
||||||
|
1 ----- s-h potential -----
|
||||||
|
989.99558400 2 35.16209700
|
||||||
|
1 ----- p-h potential -----
|
||||||
|
278.86565200 2 19.46440200
|
||||||
|
1 ----- d-h potential -----
|
||||||
|
71.00917800 2 10.00686500
|
||||||
|
1 ----- f-h potential -----
|
||||||
|
-47.40589000 2 23.51793200
|
||||||
|
1 ----- g-h potential -----
|
||||||
|
-35.55714600 2 29.41223800
|
||||||
|
HF-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
10.04672251 2 1.78576984
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
1499.28471073 2 14.76995900
|
||||||
|
40.28210136 2 7.38497940
|
||||||
|
-10.04672251 2 1.78576984
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
397.73300533 2 9.84948950
|
||||||
|
19.31640586 2 4.92474450
|
||||||
|
-10.04672251 2 1.78576984
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
101.32980526 2 6.09675640
|
||||||
|
5.87343821 2 3.04837820
|
||||||
|
-10.04672251 2 1.78576984
|
||||||
|
TA-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
12.01796094 2 2.01788111
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
1345.88064703 2 14.54640770
|
||||||
|
36.76680620 2 7.27320380
|
||||||
|
-12.01796094 2 2.01788111
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
378.42530145 2 9.93556529
|
||||||
|
22.29309086 2 4.96778243
|
||||||
|
-12.01796094 2 2.01788111
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
104.88395571 2 6.34737691
|
||||||
|
8.75584805 2 3.17368846
|
||||||
|
-12.01796094 2 2.01788111
|
||||||
|
W-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
14.15257947 2 2.25888846
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
1192.39588226 2 14.32285640
|
||||||
|
32.52293315 2 7.16142810
|
||||||
|
-14.15257947 2 2.25888846
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
359.03196711 2 10.02164110
|
||||||
|
24.03038019 2 5.01082040
|
||||||
|
-14.15257947 2 2.25888846
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
108.30134897 2 6.59799743
|
||||||
|
10.98252827 2 3.29899871
|
||||||
|
-14.15257947 2 2.25888846
|
||||||
|
RE-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
16.44985227 2 2.50865059
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
1038.95157226 2 14.09930510
|
||||||
|
29.56173830 2 7.04965250
|
||||||
|
-16.44985227 2 2.50865059
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
339.54350965 2 10.10771690
|
||||||
|
24.91369646 2 5.05385830
|
||||||
|
-16.44985227 2 2.50865059
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
111.69965275 2 6.84861794
|
||||||
|
12.62432927 2 3.42430897
|
||||||
|
-16.44985227 2 2.50865059
|
||||||
|
OS-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
18.90945701 2 2.76707510
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
885.40571914 2 13.87575390
|
||||||
|
25.96704014 2 6.93787690
|
||||||
|
-18.90945701 2 2.76707510
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
320.08390185 2 10.19379260
|
||||||
|
26.14876493 2 5.09689620
|
||||||
|
-18.90945701 2 2.76707510
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
115.04484313 2 7.09923846
|
||||||
|
13.62257457 2 3.54961923
|
||||||
|
-18.90945701 2 2.76707510
|
||||||
|
IR-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
21.53103107 2 3.03407192
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
732.26919978 2 13.65220260
|
||||||
|
26.48472087 2 6.82610130
|
||||||
|
-21.53103107 2 3.03407192
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
299.48947357 2 10.27986840
|
||||||
|
26.46623354 2 5.13993410
|
||||||
|
-21.53103107 2 3.03407192
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
124.45759451 2 7.34985897
|
||||||
|
14.03599518 2 3.67492949
|
||||||
|
-21.53103107 2 3.03407192
|
||||||
|
PT-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
24.31437573 2 3.30956857
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
579.22386092 2 13.42865130
|
||||||
|
29.66949062 2 6.71432560
|
||||||
|
-24.31437573 2 3.30956857
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
280.86077422 2 10.36594420
|
||||||
|
26.74538204 2 5.18297210
|
||||||
|
-24.31437573 2 3.30956857
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
120.39644429 2 7.60047949
|
||||||
|
15.81092058 2 3.80023974
|
||||||
|
-24.31437573 2 3.30956857
|
||||||
|
AU-ECP GEN 60 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
30.49008890 2 4.78982000
|
||||||
|
5.17107381 2 2.39491000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
426.84667920 2 13.20510000
|
||||||
|
37.00708285 2 6.60255000
|
||||||
|
-30.49008890 2 4.78982000
|
||||||
|
-5.17107381 2 2.39491000
|
||||||
|
4 ----- p-f potential -----
|
||||||
|
261.19958038 2 10.45202000
|
||||||
|
26.96249604 2 5.22601000
|
||||||
|
-30.49008890 2 4.78982000
|
||||||
|
-5.17107381 2 2.39491000
|
||||||
|
4 ----- d-f potential -----
|
||||||
|
124.79066561 2 7.85110000
|
||||||
|
16.30072573 2 3.92555000
|
||||||
|
-30.49008890 2 4.78982000
|
||||||
|
-5.17107381 2 2.39491000
|
||||||
|
HG-ECP GEN 60 3
|
||||||
|
1 ----- f-ul potential -----
|
||||||
|
30.36499643 2 3.88579112
|
||||||
|
3 ----- s-f potential -----
|
||||||
|
275.73721174 2 12.98154870
|
||||||
|
49.08921249 2 6.49077440
|
||||||
|
-30.36499643 2 3.88579112
|
||||||
|
3 ----- p-f potential -----
|
||||||
|
241.54007398 2 10.53809580
|
||||||
|
27.39659081 2 5.26904790
|
||||||
|
-30.36499643 2 3.88579112
|
||||||
|
3 ----- d-f potential -----
|
||||||
|
127.86700761 2 8.10172051
|
||||||
|
16.60831151 2 4.05086026
|
||||||
|
-30.36499643 2 3.88579112
|
||||||
|
TL-ECP GEN 60 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
15.82548800 2 5.62639900
|
||||||
|
21.10402100 2 5.54895200
|
||||||
|
2.91512700 2 2.87494600
|
||||||
|
3.89690300 2 2.82145100
|
||||||
|
6 ----- s-f potential -----
|
||||||
|
281.28466300 2 12.16780500
|
||||||
|
62.43425100 2 8.29490900
|
||||||
|
-15.82548800 2 5.62639900
|
||||||
|
-21.10402100 2 5.54895200
|
||||||
|
-2.91512700 2 2.87494600
|
||||||
|
-3.89690300 2 2.82145100
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
4.63340800 2 7.15149200
|
||||||
|
9.34175600 2 5.17286500
|
||||||
|
72.29925300 2 9.89107200
|
||||||
|
144.55803700 2 9.00339100
|
||||||
|
-15.82548800 2 5.62639900
|
||||||
|
-21.10402100 2 5.54895200
|
||||||
|
-2.91512700 2 2.87494600
|
||||||
|
-3.89690300 2 2.82145100
|
||||||
|
8 ----- d-f potential -----
|
||||||
|
35.94303900 2 7.13021800
|
||||||
|
53.90959300 2 6.92690600
|
||||||
|
10.38193900 2 5.41757000
|
||||||
|
15.58382200 2 5.13868100
|
||||||
|
-15.82548800 2 5.62639900
|
||||||
|
-21.10402100 2 5.54895200
|
||||||
|
-2.91512700 2 2.87494600
|
||||||
|
-3.89690300 2 2.82145100
|
||||||
|
PB-ECP GEN 60 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
12.20989200 2 3.88751200
|
||||||
|
16.19029100 2 3.81196300
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
281.28549900 2 12.29630300
|
||||||
|
62.52021700 2 8.63263400
|
||||||
|
-12.20989200 2 3.88751200
|
||||||
|
-16.19029100 2 3.81196300
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
72.27689700 2 10.24179000
|
||||||
|
144.59108300 2 8.92417600
|
||||||
|
4.75869300 2 6.58134200
|
||||||
|
9.94062100 2 6.25540300
|
||||||
|
-12.20989200 2 3.88751200
|
||||||
|
-16.19029100 2 3.81196300
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
35.84850700 2 7.75433600
|
||||||
|
53.72434200 2 7.72028100
|
||||||
|
10.11525600 2 4.97026400
|
||||||
|
14.83373100 2 4.56378900
|
||||||
|
-12.20989200 2 3.88751200
|
||||||
|
-16.19029100 2 3.81196300
|
||||||
|
BI-ECP GEN 60 3
|
||||||
|
2 ----- f-ul potential -----
|
||||||
|
13.71338300 2 4.21454600
|
||||||
|
18.19430800 2 4.13340000
|
||||||
|
4 ----- s-f potential -----
|
||||||
|
283.26422700 2 13.04309000
|
||||||
|
62.47195900 2 8.22168200
|
||||||
|
-13.71338300 2 4.21454600
|
||||||
|
-18.19430800 2 4.13340000
|
||||||
|
6 ----- p-f potential -----
|
||||||
|
72.00149900 2 10.46777700
|
||||||
|
144.00227700 2 9.11890100
|
||||||
|
5.00794500 2 6.75479100
|
||||||
|
9.99155000 2 6.25259200
|
||||||
|
-13.71338300 2 4.21454600
|
||||||
|
-18.19430800 2 4.13340000
|
||||||
|
6 ----- d-f potential -----
|
||||||
|
36.39625900 2 8.08147400
|
||||||
|
54.59766400 2 7.89059500
|
||||||
|
9.98429400 2 4.95555600
|
||||||
|
14.98148500 2 4.70455900
|
||||||
|
-13.71338300 2 4.21454600
|
||||||
|
-18.19430800 2 4.13340000
|
||||||
|
PO-ECP GEN 60 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
17.42829500 2 5.01327000
|
||||||
|
23.38035300 2 4.98464000
|
||||||
|
0.16339200 2 1.32676000
|
||||||
|
0.32456600 2 1.52875800
|
||||||
|
6 ----- s-f potential -----
|
||||||
|
283.24470600 2 13.27722700
|
||||||
|
62.39646100 2 8.39951800
|
||||||
|
-17.42829500 2 5.01327000
|
||||||
|
-23.38035300 2 4.98464000
|
||||||
|
-0.16339200 2 1.32676000
|
||||||
|
-0.32456600 2 1.52875800
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
71.99171600 2 10.66568200
|
||||||
|
143.97187100 2 9.28375300
|
||||||
|
4.94961500 2 6.87274900
|
||||||
|
9.74049900 2 6.32615000
|
||||||
|
-17.42829500 2 5.01327000
|
||||||
|
-23.38035300 2 4.98464000
|
||||||
|
-0.16339200 2 1.32676000
|
||||||
|
-0.32456600 2 1.52875800
|
||||||
|
8 ----- d-f potential -----
|
||||||
|
36.37838300 2 8.21486600
|
||||||
|
54.56271500 2 8.00869600
|
||||||
|
9.88949900 2 5.05522700
|
||||||
|
14.69387700 2 4.78255300
|
||||||
|
-17.42829500 2 5.01327000
|
||||||
|
-23.38035300 2 4.98464000
|
||||||
|
-0.16339200 2 1.32676000
|
||||||
|
-0.32456600 2 1.52875800
|
||||||
|
AT-ECP GEN 60 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
19.87019800 2 5.81216300
|
||||||
|
26.41645200 2 5.75371500
|
||||||
|
0.99497000 2 2.51347200
|
||||||
|
1.49070100 2 2.53626100
|
||||||
|
7 ----- s-f potential -----
|
||||||
|
49.95715800 2 30.20083200
|
||||||
|
283.21037100 2 13.61230600
|
||||||
|
62.28105200 2 8.52934000
|
||||||
|
-19.87019800 2 5.81216300
|
||||||
|
-26.41645200 2 5.75371500
|
||||||
|
-0.99497000 2 2.51347200
|
||||||
|
-1.49070100 2 2.53626100
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
71.98237100 2 10.85406500
|
||||||
|
143.90353200 2 9.46822900
|
||||||
|
4.87175900 2 7.03111400
|
||||||
|
8.98305900 2 6.14385800
|
||||||
|
-19.87019800 2 5.81216300
|
||||||
|
-26.41645200 2 5.75371500
|
||||||
|
-0.99497000 2 2.51347200
|
||||||
|
-1.49070100 2 2.53626100
|
||||||
|
8 ----- d-f potential -----
|
||||||
|
36.36323700 2 8.31351500
|
||||||
|
54.54897000 2 7.99896500
|
||||||
|
9.77628500 2 5.17996600
|
||||||
|
14.26475500 2 4.94222600
|
||||||
|
-19.87019800 2 5.81216300
|
||||||
|
-26.41645200 2 5.75371500
|
||||||
|
-0.99497000 2 2.51347200
|
||||||
|
-1.49070100 2 2.53626100
|
||||||
|
RN-ECP GEN 60 3
|
||||||
|
4 ----- f-ul potential -----
|
||||||
|
21.79729000 2 6.34857100
|
||||||
|
28.94680500 2 6.29594900
|
||||||
|
1.44736500 2 2.88211800
|
||||||
|
2.17796400 2 2.90804800
|
||||||
|
7 ----- s-f potential -----
|
||||||
|
49.96555100 2 30.15124200
|
||||||
|
283.07000000 2 14.52124100
|
||||||
|
62.00287000 2 8.05203800
|
||||||
|
-21.79729000 2 6.34857100
|
||||||
|
-28.94680500 2 6.29594900
|
||||||
|
-1.44736500 2 2.88211800
|
||||||
|
-2.17796400 2 2.90804800
|
||||||
|
8 ----- p-f potential -----
|
||||||
|
71.96911900 2 11.00994200
|
||||||
|
143.86055900 2 9.61762500
|
||||||
|
4.71476100 2 7.33600800
|
||||||
|
9.01306500 2 6.40625300
|
||||||
|
-21.79729000 2 6.34857100
|
||||||
|
-28.94680500 2 6.29594900
|
||||||
|
-1.44736500 2 2.88211800
|
||||||
|
-2.17796400 2 2.90804800
|
||||||
|
8 ----- d-f potential -----
|
||||||
|
36.36836500 2 8.36922000
|
||||||
|
54.55176100 2 8.11697500
|
||||||
|
9.63448700 2 5.35365600
|
||||||
|
14.38790200 2 5.09721200
|
||||||
|
-21.79729000 2 6.34857100
|
||||||
|
-28.94680500 2 6.29594900
|
||||||
|
-1.44736500 2 2.88211800
|
||||||
|
-2.17796400 2 2.90804800
|
||||||
|
$END
|
@ -32,7 +32,7 @@ export PYTHONPATH=$(qp_prepend_export "PYTHONPATH" "${QP_EZFIO}/Python":"${QP_PY
|
|||||||
|
|
||||||
export PATH=$(qp_prepend_export "PATH" "${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROOT}"/ocaml)
|
export PATH=$(qp_prepend_export "PATH" "${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROOT}"/ocaml)
|
||||||
|
|
||||||
export LD_LIBRARY_PATH=$(qp_prepend_export "LD_LIBRARY_PATH" "${QP_ROOT}"/lib)
|
export LD_LIBRARY_PATH=$(qp_prepend_export "LD_LIBRARY_PATH" "${QP_ROOT}"/lib:"${QP_ROOT}"/lib64)
|
||||||
|
|
||||||
export LIBRARY_PATH=$(qp_prepend_export "LIBRARY_PATH" "${QP_ROOT}"/lib:"${QP_ROOT}"/lib64)
|
export LIBRARY_PATH=$(qp_prepend_export "LIBRARY_PATH" "${QP_ROOT}"/lib:"${QP_ROOT}"/lib64)
|
||||||
|
|
||||||
|
2
external/ezfio
vendored
2
external/ezfio
vendored
@ -1 +1 @@
|
|||||||
Subproject commit ed1df9f3c1f51752656ca98da5693a4119add05c
|
Subproject commit dba01c4fe0ff7b84c5ecfb1c7c77ec68781311b3
|
2
external/irpf90
vendored
2
external/irpf90
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 33ca5e1018f3bbb5e695e6ee558f5dac0753b271
|
Subproject commit 4ab1b175fc7ed0d96c1912f13dc53579b24157a6
|
@ -154,8 +154,8 @@ let input_ezfio = "
|
|||||||
|
|
||||||
* N_int_number : int
|
* N_int_number : int
|
||||||
determinants_n_int
|
determinants_n_int
|
||||||
1 : 30
|
1 : 128
|
||||||
N_int > 30
|
N_int > 128
|
||||||
|
|
||||||
* Det_number : int
|
* Det_number : int
|
||||||
determinants_n_det
|
determinants_n_det
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import zmq
|
import zmq
|
||||||
import sys, os
|
import sys, os
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import zmq
|
import zmq
|
||||||
import sys, os
|
import sys, os
|
||||||
|
1
plugins/.gitignore
vendored
1
plugins/.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
*
|
|
||||||
|
|
||||||
|
@ -1245,3 +1245,157 @@ end subroutine NAI_pol_x2_mult_erf_ao
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
subroutine NAI_pol_012_mult_erf_ao_with1s(i_ao, j_ao, beta, B_center, mu_in, C_center, ints)
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! Computes the following integral :
|
||||||
|
!
|
||||||
|
! ints(1) = $\int_{-\infty}^{infty} dr x^0 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
! ints(2) = $\int_{-\infty}^{infty} dr x^1 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! ints(3) = $\int_{-\infty}^{infty} dr y^1 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! ints(4) = $\int_{-\infty}^{infty} dr z^1 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
! ints(5) = $\int_{-\infty}^{infty} dr x^2 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! ints(6) = $\int_{-\infty}^{infty} dr y^2 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! ints(7) = $\int_{-\infty}^{infty} dr z^2 * \chi_i(r) \chi_j(r) e^{-\beta (r - B_center)^2} \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
include 'utils/constants.include.F'
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer, intent(in) :: i_ao, j_ao
|
||||||
|
double precision, intent(in) :: beta, B_center(3), mu_in, C_center(3)
|
||||||
|
double precision, intent(out) :: ints(7)
|
||||||
|
|
||||||
|
integer :: i, j, power_Ai(3), power_Aj(3), n_pt_in, m
|
||||||
|
integer :: power_A1(3), power_A2(3)
|
||||||
|
double precision :: Ai_center(3), Aj_center(3), alphai, alphaj, coef, coefi
|
||||||
|
double precision :: integral0, integral1, integral2
|
||||||
|
|
||||||
|
double precision, external :: NAI_pol_mult_erf_with1s
|
||||||
|
|
||||||
|
ASSERT(beta .ge. 0.d0)
|
||||||
|
if(beta .lt. 1d-10) then
|
||||||
|
call NAI_pol_012_mult_erf_ao(i_ao, j_ao, mu_in, C_center, ints)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
ints = 0.d0
|
||||||
|
|
||||||
|
power_Ai(1:3) = ao_power(i_ao,1:3)
|
||||||
|
power_Aj(1:3) = ao_power(j_ao,1:3)
|
||||||
|
|
||||||
|
Ai_center(1:3) = nucl_coord(ao_nucl(i_ao),1:3)
|
||||||
|
Aj_center(1:3) = nucl_coord(ao_nucl(j_ao),1:3)
|
||||||
|
|
||||||
|
n_pt_in = n_pt_max_integrals
|
||||||
|
|
||||||
|
do i = 1, ao_prim_num(i_ao)
|
||||||
|
alphai = ao_expo_ordered_transp (i,i_ao)
|
||||||
|
coefi = ao_coef_normalized_ordered_transp(i,i_ao)
|
||||||
|
|
||||||
|
do j = 1, ao_prim_num(j_ao)
|
||||||
|
alphaj = ao_expo_ordered_transp (j,j_ao)
|
||||||
|
coef = coefi * ao_coef_normalized_ordered_transp(j,j_ao)
|
||||||
|
|
||||||
|
integral0 = NAI_pol_mult_erf_with1s(Ai_center, Aj_center, power_Ai, power_Aj, alphai, alphaj, beta, B_center, C_center, n_pt_in, mu_in)
|
||||||
|
ints(1) += coef * integral0
|
||||||
|
|
||||||
|
do m = 1, 3
|
||||||
|
|
||||||
|
power_A1 = power_Ai
|
||||||
|
power_A1(m) += 1
|
||||||
|
integral1 = NAI_pol_mult_erf_with1s(Ai_center, Aj_center, power_A1, power_Aj, alphai, alphaj, beta, B_center, C_center, n_pt_in, mu_in)
|
||||||
|
ints(1+m) += coef * (integral1 + Ai_center(m)*integral0)
|
||||||
|
|
||||||
|
power_A2 = power_Ai
|
||||||
|
power_A2(m) += 2
|
||||||
|
integral2 = NAI_pol_mult_erf_with1s(Ai_center, Aj_center, power_A2, power_Aj, alphai, alphaj, beta, B_center, C_center, n_pt_in, mu_in)
|
||||||
|
ints(4+m) += coef * (integral2 + Ai_center(m) * (2.d0*integral1 + Ai_center(m)*integral0))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end subroutine NAI_pol_012_mult_erf_ao_with1s
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
subroutine NAI_pol_012_mult_erf_ao(i_ao, j_ao, mu_in, C_center, ints)
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! Computes the following integral :
|
||||||
|
!
|
||||||
|
! int(1) = $\int_{-\infty}^{infty} dr x^0 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
! int(2) = $\int_{-\infty}^{infty} dr x^1 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! int(3) = $\int_{-\infty}^{infty} dr y^1 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! int(4) = $\int_{-\infty}^{infty} dr z^1 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
! int(5) = $\int_{-\infty}^{infty} dr x^2 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! int(6) = $\int_{-\infty}^{infty} dr y^2 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
! int(7) = $\int_{-\infty}^{infty} dr z^2 * \chi_i(r) \chi_j(r) \frac{\erf(\mu | r - R_C | )}{ | r - R_C | }$.
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
include 'utils/constants.include.F'
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer, intent(in) :: i_ao, j_ao
|
||||||
|
double precision, intent(in) :: mu_in, C_center(3)
|
||||||
|
double precision, intent(out) :: ints(7)
|
||||||
|
|
||||||
|
integer :: i, j, num_A, num_B, power_A(3), power_B(3), n_pt_in, m
|
||||||
|
integer :: power_A1(3), power_A2(3)
|
||||||
|
double precision :: A_center(3), B_center(3), alpha, beta, coef
|
||||||
|
double precision :: integral0, integral1, integral2
|
||||||
|
|
||||||
|
double precision :: NAI_pol_mult_erf
|
||||||
|
|
||||||
|
ints = 0.d0
|
||||||
|
|
||||||
|
num_A = ao_nucl(i_ao)
|
||||||
|
power_A(1:3) = ao_power(i_ao,1:3)
|
||||||
|
A_center(1:3) = nucl_coord(num_A,1:3)
|
||||||
|
num_B = ao_nucl(j_ao)
|
||||||
|
power_B(1:3) = ao_power(j_ao,1:3)
|
||||||
|
B_center(1:3) = nucl_coord(num_B,1:3)
|
||||||
|
|
||||||
|
n_pt_in = n_pt_max_integrals
|
||||||
|
|
||||||
|
do i = 1, ao_prim_num(i_ao)
|
||||||
|
alpha = ao_expo_ordered_transp(i,i_ao)
|
||||||
|
|
||||||
|
do j = 1, ao_prim_num(j_ao)
|
||||||
|
beta = ao_expo_ordered_transp(j,j_ao)
|
||||||
|
coef = ao_coef_normalized_ordered_transp(j,j_ao) * ao_coef_normalized_ordered_transp(i,i_ao)
|
||||||
|
|
||||||
|
integral0 = NAI_pol_mult_erf(A_center, B_center, power_A, power_B, alpha, beta, C_center, n_pt_in, mu_in)
|
||||||
|
ints(1) += coef * integral0
|
||||||
|
|
||||||
|
do m = 1, 3
|
||||||
|
|
||||||
|
power_A1 = power_A
|
||||||
|
power_A1(m) += 1
|
||||||
|
integral1 = NAI_pol_mult_erf(A_center, B_center, power_A1, power_B, alpha, beta, C_center, n_pt_in, mu_in)
|
||||||
|
|
||||||
|
ints(1+m) += coef * (integral1 + A_center(m)*integral0)
|
||||||
|
|
||||||
|
power_A2 = power_A
|
||||||
|
power_A2(m) += 2
|
||||||
|
integral2 = NAI_pol_mult_erf(A_center, B_center, power_A2, power_B, alpha, beta, C_center, n_pt_in, mu_in)
|
||||||
|
|
||||||
|
ints(4+m) += coef * (integral2 + A_center(m) * (2.d0*integral1 + A_center(m)*integral0))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end subroutine NAI_pol_012_mult_erf_ao
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
@ -299,15 +299,12 @@ END_PROVIDER
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_points_final_grid)]
|
BEGIN_PROVIDER [double precision, v_ij_u_cst_mu_j1b_an_old, (ao_num, ao_num, n_points_final_grid)]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
! int dr2 phi_i(r2) phi_j(r2) 1s_j1b(r2) u(mu, r12)
|
! int dr2 phi_i(r2) phi_j(r2) 1s_j1b(r2) u(mu, r12)
|
||||||
!
|
!
|
||||||
! TODO
|
|
||||||
! one subroutine for all integrals
|
|
||||||
!
|
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
include 'constants.include.F'
|
include 'constants.include.F'
|
||||||
@ -325,7 +322,7 @@ BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_poin
|
|||||||
double precision, external :: overlap_gauss_r12_ao_with1s
|
double precision, external :: overlap_gauss_r12_ao_with1s
|
||||||
double precision, external :: NAI_pol_mult_erf_ao_with1s
|
double precision, external :: NAI_pol_mult_erf_ao_with1s
|
||||||
|
|
||||||
print*, ' providing v_ij_u_cst_mu_j1b_an ...'
|
print*, ' providing v_ij_u_cst_mu_j1b_an_old ...'
|
||||||
call wall_time(wall0)
|
call wall_time(wall0)
|
||||||
|
|
||||||
provide mu_erf final_grid_points j1b_pen
|
provide mu_erf final_grid_points j1b_pen
|
||||||
@ -333,7 +330,7 @@ BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_poin
|
|||||||
|
|
||||||
ct = inv_sq_pi_2 / mu_erf
|
ct = inv_sq_pi_2 / mu_erf
|
||||||
|
|
||||||
v_ij_u_cst_mu_j1b_an = 0.d0
|
v_ij_u_cst_mu_j1b_an_old = 0.d0
|
||||||
|
|
||||||
!$OMP PARALLEL DEFAULT (NONE) &
|
!$OMP PARALLEL DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (ipoint, i, j, i_1s, r, coef, beta, B_center, &
|
!$OMP PRIVATE (ipoint, i, j, i_1s, r, coef, beta, B_center, &
|
||||||
@ -342,7 +339,7 @@ BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_poin
|
|||||||
!$OMP SHARED (n_points_final_grid, ao_num, List_all_comb_b2_size, &
|
!$OMP SHARED (n_points_final_grid, ao_num, List_all_comb_b2_size, &
|
||||||
!$OMP final_grid_points, mu_erf, ct, &
|
!$OMP final_grid_points, mu_erf, ct, &
|
||||||
!$OMP List_all_comb_b2_coef, List_all_comb_b2_expo, &
|
!$OMP List_all_comb_b2_coef, List_all_comb_b2_expo, &
|
||||||
!$OMP List_all_comb_b2_cent, v_ij_u_cst_mu_j1b_an)
|
!$OMP List_all_comb_b2_cent, v_ij_u_cst_mu_j1b_an_old)
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do ipoint = 1, n_points_final_grid
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
@ -413,6 +410,125 @@ BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_poin
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
v_ij_u_cst_mu_j1b_an_old(j,i,ipoint) = tmp
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
do ipoint = 1, n_points_final_grid
|
||||||
|
do i = 2, ao_num
|
||||||
|
do j = 1, i-1
|
||||||
|
v_ij_u_cst_mu_j1b_an_old(j,i,ipoint) = v_ij_u_cst_mu_j1b_an_old(i,j,ipoint)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
call wall_time(wall1)
|
||||||
|
print*, ' wall time for v_ij_u_cst_mu_j1b_an_old', wall1 - wall0
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_points_final_grid)]
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! int dr2 phi_i(r2) phi_j(r2) 1s_j1b(r2) u(mu, r12)
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
include 'constants.include.F'
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: i, j, ipoint, i_1s
|
||||||
|
double precision :: r(3), r1_2
|
||||||
|
double precision :: int_o
|
||||||
|
double precision :: int_c(7), int_e(7)
|
||||||
|
double precision :: coef, beta, B_center(3)
|
||||||
|
double precision :: tmp, ct
|
||||||
|
double precision :: wall0, wall1
|
||||||
|
|
||||||
|
double precision, external :: overlap_gauss_r12_ao_with1s
|
||||||
|
double precision, external :: NAI_pol_mult_erf_ao_with1s
|
||||||
|
|
||||||
|
print*, ' providing v_ij_u_cst_mu_j1b_an ...'
|
||||||
|
call wall_time(wall0)
|
||||||
|
|
||||||
|
provide mu_erf final_grid_points j1b_pen
|
||||||
|
PROVIDE List_all_comb_b2_size List_all_comb_b2_coef List_all_comb_b2_expo List_all_comb_b2_cent
|
||||||
|
|
||||||
|
ct = inv_sq_pi_2 / mu_erf
|
||||||
|
|
||||||
|
v_ij_u_cst_mu_j1b_an = 0.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ipoint, i, j, i_1s, r, coef, beta, B_center, &
|
||||||
|
!$OMP r1_2, tmp, int_c, int_e, int_o) &
|
||||||
|
!$OMP SHARED (n_points_final_grid, ao_num, List_all_comb_b2_size, &
|
||||||
|
!$OMP final_grid_points, mu_erf, ct, &
|
||||||
|
!$OMP List_all_comb_b2_coef, List_all_comb_b2_expo, &
|
||||||
|
!$OMP List_all_comb_b2_cent, v_ij_u_cst_mu_j1b_an)
|
||||||
|
!$OMP DO
|
||||||
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
|
r(1) = final_grid_points(1,ipoint)
|
||||||
|
r(2) = final_grid_points(2,ipoint)
|
||||||
|
r(3) = final_grid_points(3,ipoint)
|
||||||
|
r1_2 = 0.5d0 * (r(1)*r(1) + r(2)*r(2) + r(3)*r(3))
|
||||||
|
|
||||||
|
do i = 1, ao_num
|
||||||
|
do j = i, ao_num
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
coef = List_all_comb_b2_coef (1)
|
||||||
|
beta = List_all_comb_b2_expo (1)
|
||||||
|
B_center(1) = List_all_comb_b2_cent(1,1)
|
||||||
|
B_center(2) = List_all_comb_b2_cent(2,1)
|
||||||
|
B_center(3) = List_all_comb_b2_cent(3,1)
|
||||||
|
|
||||||
|
call NAI_pol_012_mult_erf_ao_with1s(i, j, beta, B_center, 1.d+9, r, int_c)
|
||||||
|
call NAI_pol_012_mult_erf_ao_with1s(i, j, beta, B_center, mu_erf, r, int_e)
|
||||||
|
|
||||||
|
int_o = overlap_gauss_r12_ao_with1s(B_center, beta, r, mu_erf*mu_erf, i, j)
|
||||||
|
|
||||||
|
tmp = coef &
|
||||||
|
* ( r1_2 * (int_c(1) - int_e(1)) &
|
||||||
|
- r(1) * (int_c(2) - int_e(2)) - r(2) * (int_c(3) - int_e(3)) - r(3) * (int_c(4) - int_e(4)) &
|
||||||
|
+ 0.5d0 * (int_c(5) + int_c(6) + int_c(7) - int_e(5) - int_e(6) - int_e(7)) &
|
||||||
|
- ct * int_o &
|
||||||
|
)
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
do i_1s = 2, List_all_comb_b2_size
|
||||||
|
|
||||||
|
coef = List_all_comb_b2_coef (i_1s)
|
||||||
|
if(dabs(coef) .lt. 1d-15) cycle ! beta = 0.0
|
||||||
|
beta = List_all_comb_b2_expo (i_1s)
|
||||||
|
B_center(1) = List_all_comb_b2_cent(1,i_1s)
|
||||||
|
B_center(2) = List_all_comb_b2_cent(2,i_1s)
|
||||||
|
B_center(3) = List_all_comb_b2_cent(3,i_1s)
|
||||||
|
|
||||||
|
call NAI_pol_012_mult_erf_ao_with1s(i, j, beta, B_center, 1.d+9, r, int_c)
|
||||||
|
call NAI_pol_012_mult_erf_ao_with1s(i, j, beta, B_center, mu_erf, r, int_e)
|
||||||
|
|
||||||
|
int_o = overlap_gauss_r12_ao_with1s(B_center, beta, r, mu_erf*mu_erf, i, j)
|
||||||
|
|
||||||
|
tmp = tmp + coef &
|
||||||
|
* ( r1_2 * (int_c(1) - int_e(1)) &
|
||||||
|
- r(1) * (int_c(2) - int_e(2)) - r(2) * (int_c(3) - int_e(3)) - r(3) * (int_c(4) - int_e(4)) &
|
||||||
|
+ 0.5d0 * (int_c(5) + int_c(6) + int_c(7) - int_e(5) - int_e(6) - int_e(7)) &
|
||||||
|
- ct * int_o &
|
||||||
|
)
|
||||||
|
|
||||||
|
enddo
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
v_ij_u_cst_mu_j1b_an(j,i,ipoint) = tmp
|
v_ij_u_cst_mu_j1b_an(j,i,ipoint) = tmp
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -434,4 +550,3 @@ BEGIN_PROVIDER [ double precision, v_ij_u_cst_mu_j1b_an, (ao_num, ao_num, n_poin
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
ao_two_e_erf_ints
|
ao_two_e_ints
|
||||||
mo_one_e_ints
|
mo_one_e_ints
|
||||||
ao_many_one_e_ints
|
ao_many_one_e_ints
|
||||||
dft_utils_in_r
|
dft_utils_in_r
|
@ -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
|
@ -12,7 +12,7 @@ This basis set correction relies mainy on :
|
|||||||
When HF is a qualitative representation of the electron pairs (i.e. weakly correlated systems), such an approach for \mu(r) is OK.
|
When HF is a qualitative representation of the electron pairs (i.e. weakly correlated systems), such an approach for \mu(r) is OK.
|
||||||
See for instance JPCL, 10, 2931-2937 (2019) for typical flavours of the results.
|
See for instance JPCL, 10, 2931-2937 (2019) for typical flavours of the results.
|
||||||
Thanks to the trivial nature of such a two-body rdm, the equation (22) of J. Chem. Phys. 149, 194301 (2018) can be rewritten in a very efficient way, and therefore the limiting factor of such an approach is the AO->MO four-index transformation of the two-electron integrals.
|
Thanks to the trivial nature of such a two-body rdm, the equation (22) of J. Chem. Phys. 149, 194301 (2018) can be rewritten in a very efficient way, and therefore the limiting factor of such an approach is the AO->MO four-index transformation of the two-electron integrals.
|
||||||
b) "mu_of_r_potential = cas_ful" uses the two-body rdm of CAS-like wave function (i.e. linear combination of Slater determinants developped in an active space with the MOs stored in the EZFIO folder).
|
b) "mu_of_r_potential = cas_full" uses the two-body rdm of CAS-like wave function (i.e. linear combination of Slater determinants developped in an active space with the MOs stored in the EZFIO folder).
|
||||||
If the CAS is properly chosen (i.e. the CAS-like wave function qualitatively represents the wave function of the systems), then such an approach is OK for \mu(r) even in the case of strong correlation.
|
If the CAS is properly chosen (i.e. the CAS-like wave function qualitatively represents the wave function of the systems), then such an approach is OK for \mu(r) even in the case of strong correlation.
|
||||||
|
|
||||||
+) The use of DFT correlation functionals with multi-determinant reference (Ecmd). These functionals are originally defined in the RS-DFT framework (see for instance Theor. Chem. Acc.114, 305(2005)) and design to capture short-range correlation effects. A important quantity arising in the Ecmd is the exact on-top pair density of the system, and the main differences of approximated Ecmd relies on different approximations for the exact on-top pair density.
|
+) The use of DFT correlation functionals with multi-determinant reference (Ecmd). These functionals are originally defined in the RS-DFT framework (see for instance Theor. Chem. Acc.114, 305(2005)) and design to capture short-range correlation effects. A important quantity arising in the Ecmd is the exact on-top pair density of the system, and the main differences of approximated Ecmd relies on different approximations for the exact on-top pair density.
|
@ -39,7 +39,7 @@
|
|||||||
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
||||||
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
||||||
|
|
||||||
if(mu_of_r_potential == "cas_ful")then
|
if(mu_of_r_potential == "cas_full")then
|
||||||
! You take the on-top of the CAS wave function which is computed with mu(r)
|
! You take the on-top of the CAS wave function which is computed with mu(r)
|
||||||
on_top = on_top_cas_mu_r(ipoint,istate)
|
on_top = on_top_cas_mu_r(ipoint,istate)
|
||||||
else
|
else
|
||||||
@ -101,7 +101,7 @@
|
|||||||
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
||||||
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
||||||
|
|
||||||
if(mu_of_r_potential == "cas_ful")then
|
if(mu_of_r_potential == "cas_full")then
|
||||||
! You take the on-top of the CAS wave function which is computed with mu(r)
|
! You take the on-top of the CAS wave function which is computed with mu(r)
|
||||||
on_top = on_top_cas_mu_r(ipoint,istate)
|
on_top = on_top_cas_mu_r(ipoint,istate)
|
||||||
else
|
else
|
||||||
@ -163,7 +163,7 @@
|
|||||||
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
grad_rho_a(1:3) = one_e_dm_and_grad_alpha_in_r(1:3,ipoint,istate)
|
||||||
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
grad_rho_b(1:3) = one_e_dm_and_grad_beta_in_r(1:3,ipoint,istate)
|
||||||
|
|
||||||
if(mu_of_r_potential == "cas_ful")then
|
if(mu_of_r_potential == "cas_full")then
|
||||||
! You take the on-top of the CAS wave function which is computed with mu(r)
|
! You take the on-top of the CAS wave function which is computed with mu(r)
|
||||||
on_top = on_top_cas_mu_r(ipoint,istate)
|
on_top = on_top_cas_mu_r(ipoint,istate)
|
||||||
else
|
else
|
@ -4,8 +4,8 @@ subroutine print_basis_correction
|
|||||||
provide mu_average_prov
|
provide mu_average_prov
|
||||||
if(mu_of_r_potential.EQ."hf")then
|
if(mu_of_r_potential.EQ."hf")then
|
||||||
provide ecmd_lda_mu_of_r ecmd_pbe_ueg_mu_of_r
|
provide ecmd_lda_mu_of_r ecmd_pbe_ueg_mu_of_r
|
||||||
else if(mu_of_r_potential.EQ."cas_ful".or.mu_of_r_potential.EQ."cas_truncated")then
|
else if(mu_of_r_potential.EQ."cas_full".or.mu_of_r_potential.EQ."cas_truncated")then
|
||||||
provide ecmd_lda_mu_of_r ecmd_pbe_ueg_mu_of_r
|
provide ecmd_lda_mu_of_r ecmd_pbe_ueg_mu_of_r
|
||||||
provide ecmd_pbe_on_top_mu_of_r ecmd_pbe_on_top_su_mu_of_r
|
provide ecmd_pbe_on_top_mu_of_r ecmd_pbe_on_top_su_mu_of_r
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ subroutine print_basis_correction
|
|||||||
if(mu_of_r_potential.EQ."hf")then
|
if(mu_of_r_potential.EQ."hf")then
|
||||||
print*, ''
|
print*, ''
|
||||||
print*,'Using a HF-like two-body density to define mu(r)'
|
print*,'Using a HF-like two-body density to define mu(r)'
|
||||||
print*,'This assumes that HF is a qualitative representation of the wave function '
|
print*,'This assumes that HF is a qualitative representation of the wave function '
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
print*,'Functionals more suited for weak correlation'
|
print*,'Functionals more suited for weak correlation'
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
@ -38,10 +38,10 @@ subroutine print_basis_correction
|
|||||||
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD PBE-UEG , state ',istate,' = ',ecmd_pbe_ueg_mu_of_r(istate)
|
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD PBE-UEG , state ',istate,' = ',ecmd_pbe_ueg_mu_of_r(istate)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
else if(mu_of_r_potential.EQ."cas_ful".or.mu_of_r_potential.EQ."cas_truncated".or.mu_of_r_potential.EQ."pure_act")then
|
else if(mu_of_r_potential.EQ."cas_full".or.mu_of_r_potential.EQ."cas_truncated".or.mu_of_r_potential.EQ."pure_act")then
|
||||||
print*, ''
|
print*, ''
|
||||||
print*,'Using a CAS-like two-body density to define mu(r)'
|
print*,'Using a CAS-like two-body density to define mu(r)'
|
||||||
print*,'This assumes that the CAS is a qualitative representation of the wave function '
|
print*,'This assumes that the CAS is a qualitative representation of the wave function '
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
print*,'Functionals more suited for weak correlation'
|
print*,'Functionals more suited for weak correlation'
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
@ -56,14 +56,14 @@ subroutine print_basis_correction
|
|||||||
print*,''
|
print*,''
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
print*,'+) PBE-on-top Ecmd functional : JCP, 152, 174104 (2020) '
|
print*,'+) PBE-on-top Ecmd functional : JCP, 152, 174104 (2020) '
|
||||||
print*,'PBE at mu=0, extrapolated ontop pair density at large mu, usual spin-polarization'
|
print*,'PBE at mu=0, extrapolated ontop pair density at large mu, usual spin-polarization'
|
||||||
do istate = 1, N_states
|
do istate = 1, N_states
|
||||||
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD PBE-OT , state ',istate,' = ',ecmd_pbe_on_top_mu_of_r(istate)
|
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD PBE-OT , state ',istate,' = ',ecmd_pbe_on_top_mu_of_r(istate)
|
||||||
enddo
|
enddo
|
||||||
print*,''
|
print*,''
|
||||||
print*,'********************************************'
|
print*,'********************************************'
|
||||||
print*,'+) PBE-on-top no spin polarization Ecmd functional : JCP, 152, 174104 (2020)'
|
print*,'+) PBE-on-top no spin polarization Ecmd functional : JCP, 152, 174104 (2020)'
|
||||||
print*,'PBE at mu=0, extrapolated ontop pair density at large mu, and ZERO SPIN POLARIZATION'
|
print*,'PBE at mu=0, extrapolated ontop pair density at large mu, and ZERO SPIN POLARIZATION'
|
||||||
do istate = 1, N_states
|
do istate = 1, N_states
|
||||||
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD SU-PBE-OT , state ',istate,' = ',ecmd_pbe_on_top_su_mu_of_r(istate)
|
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD SU-PBE-OT , state ',istate,' = ',ecmd_pbe_on_top_su_mu_of_r(istate)
|
@ -18,10 +18,11 @@ program bi_ort_ints
|
|||||||
! call test_5idx
|
! call test_5idx
|
||||||
! call test_5idx2
|
! call test_5idx2
|
||||||
call test_4idx()
|
call test_4idx()
|
||||||
call test_4idx_n4()
|
!call test_4idx_n4()
|
||||||
!call test_4idx2()
|
!call test_4idx2()
|
||||||
!call test_5idx2
|
!call test_5idx2
|
||||||
!call test_5idx
|
!call test_5idx
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
subroutine test_5idx2
|
subroutine test_5idx2
|
||||||
@ -340,7 +341,7 @@ subroutine test_4idx()
|
|||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i, j, k, l
|
integer :: i, j, k, l
|
||||||
double precision :: accu, contrib, new, ref, thr
|
double precision :: accu, contrib, new, ref, thr, norm
|
||||||
|
|
||||||
thr = 1d-10
|
thr = 1d-10
|
||||||
|
|
||||||
@ -348,6 +349,7 @@ subroutine test_4idx()
|
|||||||
PROVIDE three_e_4_idx_direct_bi_ort
|
PROVIDE three_e_4_idx_direct_bi_ort
|
||||||
|
|
||||||
accu = 0.d0
|
accu = 0.d0
|
||||||
|
norm = 0.d0
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
do k = 1, mo_num
|
do k = 1, mo_num
|
||||||
@ -356,7 +358,6 @@ subroutine test_4idx()
|
|||||||
new = three_e_4_idx_direct_bi_ort (l,k,j,i)
|
new = three_e_4_idx_direct_bi_ort (l,k,j,i)
|
||||||
ref = three_e_4_idx_direct_bi_ort_old(l,k,j,i)
|
ref = three_e_4_idx_direct_bi_ort_old(l,k,j,i)
|
||||||
contrib = dabs(new - ref)
|
contrib = dabs(new - ref)
|
||||||
accu += contrib
|
|
||||||
if(contrib .gt. thr) then
|
if(contrib .gt. thr) then
|
||||||
print*, ' problem in three_e_4_idx_direct_bi_ort'
|
print*, ' problem in three_e_4_idx_direct_bi_ort'
|
||||||
print*, l, k, j, i
|
print*, l, k, j, i
|
||||||
@ -364,11 +365,14 @@ subroutine test_4idx()
|
|||||||
stop
|
stop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
accu += contrib
|
||||||
|
norm += dabs(ref)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
print*, ' accu on three_e_4_idx_direct_bi_ort = ', accu / dble(mo_num)**4
|
|
||||||
|
print*, ' accu on three_e_4_idx_direct_bi_ort (%) = ', 100.d0 * accu / norm
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
@ -376,6 +380,7 @@ subroutine test_4idx()
|
|||||||
PROVIDE three_e_4_idx_exch13_bi_ort
|
PROVIDE three_e_4_idx_exch13_bi_ort
|
||||||
|
|
||||||
accu = 0.d0
|
accu = 0.d0
|
||||||
|
norm = 0.d0
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
do k = 1, mo_num
|
do k = 1, mo_num
|
||||||
@ -384,7 +389,6 @@ subroutine test_4idx()
|
|||||||
new = three_e_4_idx_exch13_bi_ort (l,k,j,i)
|
new = three_e_4_idx_exch13_bi_ort (l,k,j,i)
|
||||||
ref = three_e_4_idx_exch13_bi_ort_old(l,k,j,i)
|
ref = three_e_4_idx_exch13_bi_ort_old(l,k,j,i)
|
||||||
contrib = dabs(new - ref)
|
contrib = dabs(new - ref)
|
||||||
accu += contrib
|
|
||||||
if(contrib .gt. thr) then
|
if(contrib .gt. thr) then
|
||||||
print*, ' problem in three_e_4_idx_exch13_bi_ort'
|
print*, ' problem in three_e_4_idx_exch13_bi_ort'
|
||||||
print*, l, k, j, i
|
print*, l, k, j, i
|
||||||
@ -392,11 +396,14 @@ subroutine test_4idx()
|
|||||||
stop
|
stop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
accu += contrib
|
||||||
|
norm += dabs(ref)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
print*, ' accu on three_e_4_idx_exch13_bi_ort = ', accu / dble(mo_num)**4
|
|
||||||
|
print*, ' accu on three_e_4_idx_exch13_bi_ort (%) = ', 100.d0 * accu / norm
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
@ -404,6 +411,7 @@ subroutine test_4idx()
|
|||||||
PROVIDE three_e_4_idx_cycle_1_bi_ort
|
PROVIDE three_e_4_idx_cycle_1_bi_ort
|
||||||
|
|
||||||
accu = 0.d0
|
accu = 0.d0
|
||||||
|
norm = 0.d0
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
do k = 1, mo_num
|
do k = 1, mo_num
|
||||||
@ -412,7 +420,6 @@ subroutine test_4idx()
|
|||||||
new = three_e_4_idx_cycle_1_bi_ort (l,k,j,i)
|
new = three_e_4_idx_cycle_1_bi_ort (l,k,j,i)
|
||||||
ref = three_e_4_idx_cycle_1_bi_ort_old(l,k,j,i)
|
ref = three_e_4_idx_cycle_1_bi_ort_old(l,k,j,i)
|
||||||
contrib = dabs(new - ref)
|
contrib = dabs(new - ref)
|
||||||
accu += contrib
|
|
||||||
if(contrib .gt. thr) then
|
if(contrib .gt. thr) then
|
||||||
print*, ' problem in three_e_4_idx_cycle_1_bi_ort'
|
print*, ' problem in three_e_4_idx_cycle_1_bi_ort'
|
||||||
print*, l, k, j, i
|
print*, l, k, j, i
|
||||||
@ -420,11 +427,14 @@ subroutine test_4idx()
|
|||||||
stop
|
stop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
accu += contrib
|
||||||
|
norm += dabs(ref)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
print*, ' accu on three_e_4_idx_cycle_1_bi_ort = ', accu / dble(mo_num)**4
|
|
||||||
|
print*, ' accu on three_e_4_idx_cycle_1_bi_ort (%) = ', 100.d0 * accu / norm
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
@ -432,6 +442,7 @@ subroutine test_4idx()
|
|||||||
PROVIDE three_e_4_idx_exch23_bi_ort
|
PROVIDE three_e_4_idx_exch23_bi_ort
|
||||||
|
|
||||||
accu = 0.d0
|
accu = 0.d0
|
||||||
|
norm = 0.d0
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
do k = 1, mo_num
|
do k = 1, mo_num
|
||||||
@ -440,7 +451,6 @@ subroutine test_4idx()
|
|||||||
new = three_e_4_idx_exch23_bi_ort (l,k,j,i)
|
new = three_e_4_idx_exch23_bi_ort (l,k,j,i)
|
||||||
ref = three_e_4_idx_exch23_bi_ort_old(l,k,j,i)
|
ref = three_e_4_idx_exch23_bi_ort_old(l,k,j,i)
|
||||||
contrib = dabs(new - ref)
|
contrib = dabs(new - ref)
|
||||||
accu += contrib
|
|
||||||
if(contrib .gt. thr) then
|
if(contrib .gt. thr) then
|
||||||
print*, ' problem in three_e_4_idx_exch23_bi_ort'
|
print*, ' problem in three_e_4_idx_exch23_bi_ort'
|
||||||
print*, l, k, j, i
|
print*, l, k, j, i
|
||||||
@ -448,13 +458,18 @@ subroutine test_4idx()
|
|||||||
stop
|
stop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
accu += contrib
|
||||||
|
norm += dabs(ref)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
print*, ' accu on three_e_4_idx_exch23_bi_ort = ', accu / dble(mo_num)**4
|
|
||||||
|
print*, ' accu on three_e_4_idx_exch23_bi_ort (%) = ', 100.d0 * accu / norm
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
1610
plugins/local/bi_ort_ints/no_dressing.irp.f
Normal file
1610
plugins/local/bi_ort_ints/no_dressing.irp.f
Normal file
File diff suppressed because it is too large
Load Diff
66
plugins/local/bi_ort_ints/no_dressing_energy.irp.f
Normal file
66
plugins/local/bi_ort_ints/no_dressing_energy.irp.f
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, energy_1e_noL_HF]
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: i
|
||||||
|
|
||||||
|
PROVIDE mo_bi_ortho_tc_one_e
|
||||||
|
|
||||||
|
energy_1e_noL_HF = 0.d0
|
||||||
|
do i = 1, elec_beta_num
|
||||||
|
energy_1e_noL_HF += mo_bi_ortho_tc_one_e(i,i)
|
||||||
|
enddo
|
||||||
|
do i = 1, elec_alpha_num
|
||||||
|
energy_1e_noL_HF += mo_bi_ortho_tc_one_e(i,i)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
print*, "energy_1e_noL_HF = ", energy_1e_noL_HF
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, energy_2e_noL_HF]
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: i, j
|
||||||
|
|
||||||
|
PROVIDE mo_bi_ortho_tc_two_e
|
||||||
|
|
||||||
|
energy_2e_noL_HF = 0.d0
|
||||||
|
! down-down & down-down
|
||||||
|
do i = 1, elec_beta_num
|
||||||
|
do j = 1, elec_beta_num
|
||||||
|
energy_2e_noL_HF += (mo_bi_ortho_tc_two_e(i,j,i,j) - mo_bi_ortho_tc_two_e(j,i,i,j))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
! down-down & up-up
|
||||||
|
do i = 1, elec_beta_num
|
||||||
|
do j = 1, elec_alpha_num
|
||||||
|
energy_2e_noL_HF += mo_bi_ortho_tc_two_e(i,j,i,j)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
! up-up & down-down
|
||||||
|
do i = 1, elec_alpha_num
|
||||||
|
do j = 1, elec_beta_num
|
||||||
|
energy_2e_noL_HF += mo_bi_ortho_tc_two_e(i,j,i,j)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
! up-up & up-up
|
||||||
|
do i = 1, elec_alpha_num
|
||||||
|
do j = 1, elec_alpha_num
|
||||||
|
energy_2e_noL_HF += (mo_bi_ortho_tc_two_e(i,j,i,j) - mo_bi_ortho_tc_two_e(j,i,i,j))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
! 0.5 x is in the Slater-Condon rules and not in the integrals
|
||||||
|
energy_2e_noL_HF = 0.5d0 * energy_2e_noL_HF
|
||||||
|
|
||||||
|
print*, "energy_2e_noL_HF = ", energy_2e_noL_HF
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
512
plugins/local/bi_ort_ints/no_dressing_naive.irp.f
Normal file
512
plugins/local/bi_ort_ints/no_dressing_naive.irp.f
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, noL_0e_naive]
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: ii, jj, kk
|
||||||
|
integer :: i, j, k
|
||||||
|
double precision :: sigma_i, sigma_j, sigma_k
|
||||||
|
double precision :: I_ijk_ijk, I_ijk_kij, I_ijk_jki, I_ijk_jik, I_ijk_kji, I_ijk_ikj
|
||||||
|
double precision :: t0, t1
|
||||||
|
double precision, allocatable :: tmp(:)
|
||||||
|
|
||||||
|
print*, " Providing noL_0e_naive ..."
|
||||||
|
call wall_time(t0)
|
||||||
|
|
||||||
|
allocate(tmp(elec_num))
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, jj, j, sigma_j, kk, k, sigma_k, &
|
||||||
|
!$OMP I_ijk_ijk, I_ijk_kij, I_ijk_jki, I_ijk_jik, &
|
||||||
|
!$OMP I_ijk_kji, I_ijk_ikj) &
|
||||||
|
!$OMP SHARED (elec_beta_num, elec_num, tmp)
|
||||||
|
!$OMP DO
|
||||||
|
|
||||||
|
do ii = 1, elec_num
|
||||||
|
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
tmp(ii) = 0.d0
|
||||||
|
|
||||||
|
do jj = 1, elec_num
|
||||||
|
|
||||||
|
if(jj .le. elec_beta_num) then
|
||||||
|
j = jj
|
||||||
|
sigma_j = -1.d0
|
||||||
|
else
|
||||||
|
j = jj - elec_beta_num
|
||||||
|
sigma_j = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
do kk = 1, elec_num
|
||||||
|
|
||||||
|
if(kk .le. elec_beta_num) then
|
||||||
|
k = kk
|
||||||
|
sigma_k = -1.d0
|
||||||
|
else
|
||||||
|
k = kk - elec_beta_num
|
||||||
|
sigma_k = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, I_ijk_ijk)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, k, sigma_k, i, sigma_i, j, sigma_j &
|
||||||
|
, I_ijk_kij)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, j, sigma_j, k, sigma_k, i, sigma_i &
|
||||||
|
, I_ijk_jki)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, j, sigma_j, i, sigma_i, k, sigma_k &
|
||||||
|
, I_ijk_jik)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, k, sigma_k, j, sigma_j, i, sigma_i &
|
||||||
|
, I_ijk_kji)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, j, sigma_j, k, sigma_k &
|
||||||
|
, i, sigma_i, k, sigma_k, j, sigma_j &
|
||||||
|
, I_ijk_ikj)
|
||||||
|
|
||||||
|
|
||||||
|
tmp(ii) = tmp(ii) + I_ijk_ijk + I_ijk_kij + I_ijk_jki - I_ijk_jik - I_ijk_kji - I_ijk_ikj
|
||||||
|
! = tmp(ii) + I_ijk_ijk + 2.d0 * I_ijk_kij - 3.d0 * I_ijk_jik
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
noL_0e_naive = -1.d0 * (sum(tmp)) / 6.d0
|
||||||
|
|
||||||
|
deallocate(tmp)
|
||||||
|
|
||||||
|
call wall_time(t1)
|
||||||
|
print*, " Wall time for noL_0e_naive (min) = ", (t1 - t0)/60.d0
|
||||||
|
|
||||||
|
print*, " noL_0e_naive = ", noL_0e_naive
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, noL_1e_naive, (mo_num, mo_num)]
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! < p | H(1) | s > is dressed with noL_1e_naive(p,s)
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: ii, jj
|
||||||
|
integer :: i, j, p, s
|
||||||
|
double precision :: sigma_i, sigma_j, sigma_p, sigma_s
|
||||||
|
double precision :: I_pij_sji, I_pij_sij, I_pij_jis, I_pij_ijs, I_pij_isj, I_pij_jsi
|
||||||
|
double precision :: t0, t1
|
||||||
|
|
||||||
|
print*, " Providing noL_1e_naive ..."
|
||||||
|
call wall_time(t0)
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! up-up part
|
||||||
|
|
||||||
|
sigma_p = +1.d0
|
||||||
|
sigma_s = +1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, jj, j, sigma_j, &
|
||||||
|
!$OMP I_pij_sji, I_pij_sij, I_pij_jis, &
|
||||||
|
!$OMP I_pij_ijs, I_pij_isj, I_pij_jsi ) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_s, noL_1e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (2)
|
||||||
|
|
||||||
|
do s = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
noL_1e_naive(p,s) = 0.d0
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
do jj = 1, elec_num
|
||||||
|
if(jj .le. elec_beta_num) then
|
||||||
|
j = jj
|
||||||
|
sigma_j = -1.d0
|
||||||
|
else
|
||||||
|
j = jj - elec_beta_num
|
||||||
|
sigma_j = +1d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, s, sigma_s, j, sigma_j, i, sigma_i &
|
||||||
|
, I_pij_sji)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, s, sigma_s, i, sigma_i, j, sigma_j &
|
||||||
|
, I_pij_sij)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, j, sigma_j, i, sigma_i, s, sigma_s &
|
||||||
|
, I_pij_jis)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, i, sigma_i, j, sigma_j, s, sigma_s &
|
||||||
|
, I_pij_ijs)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, i, sigma_i, s, sigma_s, j, sigma_j &
|
||||||
|
, I_pij_isj)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, j, sigma_j, s, sigma_s, i, sigma_i &
|
||||||
|
, I_pij_jsi)
|
||||||
|
|
||||||
|
! x 0.5 because we consider 0.5 (up + down)
|
||||||
|
noL_1e_naive(p,s) = noL_1e_naive(p,s) - 0.25d0 * (I_pij_sji - I_pij_sij + I_pij_jis - I_pij_ijs + I_pij_isj - I_pij_jsi)
|
||||||
|
enddo ! j
|
||||||
|
enddo ! i
|
||||||
|
enddo ! s
|
||||||
|
enddo ! p
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! down-down part
|
||||||
|
|
||||||
|
sigma_p = -1.d0
|
||||||
|
sigma_s = -1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, jj, j, sigma_j, &
|
||||||
|
!$OMP I_pij_sji, I_pij_sij, I_pij_jis, &
|
||||||
|
!$OMP I_pij_ijs, I_pij_isj, I_pij_jsi ) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_s, noL_1e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (2)
|
||||||
|
|
||||||
|
do s = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
do jj = 1, elec_num
|
||||||
|
if(jj .le. elec_beta_num) then
|
||||||
|
j = jj
|
||||||
|
sigma_j = -1.d0
|
||||||
|
else
|
||||||
|
j = jj - elec_beta_num
|
||||||
|
sigma_j = +1d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, s, sigma_s, j, sigma_j, i, sigma_i &
|
||||||
|
, I_pij_sji)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, s, sigma_s, i, sigma_i, j, sigma_j &
|
||||||
|
, I_pij_sij)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, j, sigma_j, i, sigma_i, s, sigma_s &
|
||||||
|
, I_pij_jis)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, i, sigma_i, j, sigma_j, s, sigma_s &
|
||||||
|
, I_pij_ijs)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, i, sigma_i, s, sigma_s, j, sigma_j &
|
||||||
|
, I_pij_isj)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( p, sigma_p, i, sigma_i, j, sigma_j &
|
||||||
|
, j, sigma_j, s, sigma_s, i, sigma_i &
|
||||||
|
, I_pij_jsi)
|
||||||
|
|
||||||
|
! x 0.5 because we consider 0.5 (up + down)
|
||||||
|
noL_1e_naive(p,s) = noL_1e_naive(p,s) - 0.25d0 * (I_pij_sji - I_pij_sij + I_pij_jis - I_pij_ijs + I_pij_isj - I_pij_jsi)
|
||||||
|
enddo ! j
|
||||||
|
enddo ! i
|
||||||
|
enddo ! s
|
||||||
|
enddo ! p
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
call wall_time(t1)
|
||||||
|
print*, " Wall time for noL_1e_naive (min) = ", (t1 - t0)/60.d0
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, noL_2e_naive, (mo_num, mo_num, mo_num, mo_num)]
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! < p q | H(2) | s t > is dressed with noL_2e_naive(p,q,s,t)
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer :: ii
|
||||||
|
integer :: i, p, q, s, t
|
||||||
|
double precision :: sigma_i, sigma_p, sigma_q, sigma_s, sigma_t
|
||||||
|
double precision :: I_ipq_ist, I_ipq_sit, I_ipq_tsi
|
||||||
|
double precision :: t0, t1
|
||||||
|
|
||||||
|
print*, " Providing noL_2e_naive ..."
|
||||||
|
call wall_time(t0)
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! up-up & up-up part
|
||||||
|
|
||||||
|
sigma_p = +1.d0
|
||||||
|
sigma_s = +1.d0
|
||||||
|
sigma_q = +1.d0
|
||||||
|
sigma_t = +1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, p, q, s, t, &
|
||||||
|
!$OMP I_ipq_ist, I_ipq_sit, I_ipq_tsi) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_q, sigma_s, sigma_t, &
|
||||||
|
!$OMP noL_2e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (4)
|
||||||
|
do t = 1, mo_num
|
||||||
|
do s = 1, mo_num
|
||||||
|
do q = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
noL_2e_naive(p,q,s,t) = 0.d0
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, i, sigma_i, s, sigma_s, t, sigma_t &
|
||||||
|
, I_ipq_ist)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, s, sigma_s, i, sigma_i, t, sigma_t &
|
||||||
|
, I_ipq_sit)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, t, sigma_t, s, sigma_s, i, sigma_i &
|
||||||
|
, I_ipq_tsi)
|
||||||
|
|
||||||
|
! x 0.25 because we consider 0.25 (up-up + up-down + down-up + down-down)
|
||||||
|
noL_2e_naive(p,q,s,t) = noL_2e_naive(p,q,s,t) - 0.125d0 * (I_ipq_ist - I_ipq_sit - I_ipq_tsi)
|
||||||
|
enddo ! i
|
||||||
|
enddo ! p
|
||||||
|
enddo ! q
|
||||||
|
enddo ! s
|
||||||
|
enddo ! t
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! up-up & down-down part
|
||||||
|
|
||||||
|
sigma_p = +1.d0
|
||||||
|
sigma_s = +1.d0
|
||||||
|
sigma_q = -1.d0
|
||||||
|
sigma_t = -1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, p, q, s, t, &
|
||||||
|
!$OMP I_ipq_ist, I_ipq_sit, I_ipq_tsi) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_q, sigma_s, sigma_t, &
|
||||||
|
!$OMP noL_2e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (4)
|
||||||
|
do t = 1, mo_num
|
||||||
|
do s = 1, mo_num
|
||||||
|
do q = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, i, sigma_i, s, sigma_s, t, sigma_t &
|
||||||
|
, I_ipq_ist)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, s, sigma_s, i, sigma_i, t, sigma_t &
|
||||||
|
, I_ipq_sit)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, t, sigma_t, s, sigma_s, i, sigma_i &
|
||||||
|
, I_ipq_tsi)
|
||||||
|
|
||||||
|
! x 0.25 because we consider 0.25 (up-up + up-down + down-up + down-down)
|
||||||
|
noL_2e_naive(p,q,s,t) = noL_2e_naive(p,q,s,t) - 0.125d0 * (I_ipq_ist - I_ipq_sit - I_ipq_tsi)
|
||||||
|
enddo ! i
|
||||||
|
enddo ! p
|
||||||
|
enddo ! q
|
||||||
|
enddo ! s
|
||||||
|
enddo ! t
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! down-down & up-up part
|
||||||
|
|
||||||
|
sigma_p = -1.d0
|
||||||
|
sigma_s = -1.d0
|
||||||
|
sigma_q = +1.d0
|
||||||
|
sigma_t = +1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, p, q, s, t, &
|
||||||
|
!$OMP I_ipq_ist, I_ipq_sit, I_ipq_tsi) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_q, sigma_s, sigma_t, &
|
||||||
|
!$OMP noL_2e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (4)
|
||||||
|
do t = 1, mo_num
|
||||||
|
do s = 1, mo_num
|
||||||
|
do q = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, i, sigma_i, s, sigma_s, t, sigma_t &
|
||||||
|
, I_ipq_ist)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, s, sigma_s, i, sigma_i, t, sigma_t &
|
||||||
|
, I_ipq_sit)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, t, sigma_t, s, sigma_s, i, sigma_i &
|
||||||
|
, I_ipq_tsi)
|
||||||
|
|
||||||
|
! x 0.25 because we consider 0.25 (up-up + up-down + down-up + down-down)
|
||||||
|
noL_2e_naive(p,q,s,t) = noL_2e_naive(p,q,s,t) - 0.125d0 * (I_ipq_ist - I_ipq_sit - I_ipq_tsi)
|
||||||
|
enddo ! i
|
||||||
|
enddo ! p
|
||||||
|
enddo ! q
|
||||||
|
enddo ! s
|
||||||
|
enddo ! t
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
! ----
|
||||||
|
! down-down & down-down part
|
||||||
|
|
||||||
|
sigma_p = -1.d0
|
||||||
|
sigma_s = -1.d0
|
||||||
|
sigma_q = -1.d0
|
||||||
|
sigma_t = -1.d0
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (ii, i, sigma_i, p, q, s, t, &
|
||||||
|
!$OMP I_ipq_ist, I_ipq_sit, I_ipq_tsi) &
|
||||||
|
!$OMP SHARED (mo_num, elec_beta_num, elec_num, &
|
||||||
|
!$OMP sigma_p, sigma_q, sigma_s, sigma_t, &
|
||||||
|
!$OMP noL_2e_naive)
|
||||||
|
|
||||||
|
!$OMP DO COLLAPSE (4)
|
||||||
|
do t = 1, mo_num
|
||||||
|
do s = 1, mo_num
|
||||||
|
do q = 1, mo_num
|
||||||
|
do p = 1, mo_num
|
||||||
|
|
||||||
|
do ii = 1, elec_num
|
||||||
|
if(ii .le. elec_beta_num) then
|
||||||
|
i = ii
|
||||||
|
sigma_i = -1.d0
|
||||||
|
else
|
||||||
|
i = ii - elec_beta_num
|
||||||
|
sigma_i = +1.d0
|
||||||
|
endif
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, i, sigma_i, s, sigma_s, t, sigma_t &
|
||||||
|
, I_ipq_ist)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, s, sigma_s, i, sigma_i, t, sigma_t &
|
||||||
|
, I_ipq_sit)
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort_spin( i, sigma_i, p, sigma_p, q, sigma_q &
|
||||||
|
, t, sigma_t, s, sigma_s, i, sigma_i &
|
||||||
|
, I_ipq_tsi)
|
||||||
|
|
||||||
|
! x 0.25 because we consider 0.25 (up-up + up-down + down-up + down-down)
|
||||||
|
noL_2e_naive(p,q,s,t) = noL_2e_naive(p,q,s,t) - 0.125d0 * (I_ipq_ist - I_ipq_sit - I_ipq_tsi)
|
||||||
|
enddo ! i
|
||||||
|
enddo ! p
|
||||||
|
enddo ! q
|
||||||
|
enddo ! s
|
||||||
|
enddo ! t
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
call wall_time(t1)
|
||||||
|
print*, " Wall time for noL_2e_naive (min) = ", (t1 - t0)/60.d0
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ END_PROVIDER
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, mo_bi_ortho_tc_one_e, (mo_num, mo_num)]
|
BEGIN_PROVIDER [double precision, mo_bi_ortho_tc_one_e, (mo_num, mo_num)]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
@ -41,6 +41,11 @@ BEGIN_PROVIDER [ double precision, mo_bi_ortho_tc_one_e, (mo_num, mo_num)]
|
|||||||
|
|
||||||
call ao_to_mo_bi_ortho(ao_one_e_integrals_tc_tot, ao_num, mo_bi_ortho_tc_one_e, mo_num)
|
call ao_to_mo_bi_ortho(ao_one_e_integrals_tc_tot, ao_num, mo_bi_ortho_tc_one_e, mo_num)
|
||||||
|
|
||||||
|
if(noL_standard) then
|
||||||
|
PROVIDE noL_1e
|
||||||
|
mo_bi_ortho_tc_one_e = mo_bi_ortho_tc_one_e + noL_1e
|
||||||
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
@ -48,12 +53,14 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_x , (mo_num,mo_num)]
|
BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_x , (mo_num,mo_num)]
|
||||||
&BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_y , (mo_num,mo_num)]
|
&BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_y , (mo_num,mo_num)]
|
||||||
&BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_z , (mo_num,mo_num)]
|
&BEGIN_PROVIDER [double precision, mo_bi_orth_bipole_z , (mo_num,mo_num)]
|
||||||
BEGIN_DOC
|
|
||||||
! array of the integrals of Left MO_i * x Right MO_j
|
BEGIN_DOC
|
||||||
! array of the integrals of Left MO_i * y Right MO_j
|
! array of the integrals of Left MO_i * x Right MO_j
|
||||||
! array of the integrals of Left MO_i * z Right MO_j
|
! array of the integrals of Left MO_i * y Right MO_j
|
||||||
END_DOC
|
! array of the integrals of Left MO_i * z Right MO_j
|
||||||
implicit none
|
END_DOC
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
call ao_to_mo_bi_ortho( &
|
call ao_to_mo_bi_ortho( &
|
||||||
ao_dipole_x, &
|
ao_dipole_x, &
|
@ -18,12 +18,13 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_direct_bi_ort, (mo_num, mo_num,
|
|||||||
double precision :: integral, wall1, wall0
|
double precision :: integral, wall1, wall0
|
||||||
|
|
||||||
PROVIDE mo_l_coef mo_r_coef
|
PROVIDE mo_l_coef mo_r_coef
|
||||||
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
three_e_3_idx_direct_bi_ort = 0.d0
|
three_e_3_idx_direct_bi_ort = 0.d0
|
||||||
print *, ' Providing the three_e_3_idx_direct_bi_ort ...'
|
print *, ' Providing the three_e_3_idx_direct_bi_ort ...'
|
||||||
call wall_time(wall0)
|
call wall_time(wall0)
|
||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
@ -79,6 +80,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_cycle_1_bi_ort, (mo_num, mo_num
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
||||||
@ -135,6 +137,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_cycle_2_bi_ort, (mo_num, mo_num
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
||||||
@ -191,6 +194,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_exch23_bi_ort, (mo_num, mo_num,
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
||||||
@ -247,6 +251,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_exch13_bi_ort, (mo_num, mo_num,
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
||||||
@ -303,6 +308,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_exch12_bi_ort, (mo_num, mo_num,
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
||||||
@ -349,6 +355,7 @@ BEGIN_PROVIDER [ double precision, three_e_3_idx_exch12_bi_ort_new, (mo_num, mo_
|
|||||||
|
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
|
||||||
|
call give_integrals_3_body_bi_ort(1, 1, 1, 1, 1, 1, integral)
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
!$OMP PRIVATE (i,j,m,integral) &
|
!$OMP PRIVATE (i,j,m,integral) &
|
@ -17,10 +17,10 @@
|
|||||||
!
|
!
|
||||||
! notice the -1 sign: in this way three_e_4_idx_direct_bi_ort can be directly used to compute Slater rules with a + sign
|
! notice the -1 sign: in this way three_e_4_idx_direct_bi_ort can be directly used to compute Slater rules with a + sign
|
||||||
!
|
!
|
||||||
! three_e_4_idx_direct_bi_ort (m,j,k,i) : Lk Ri Imm Ijj + Lj Rj Imm Iki + Lm Rm Ijj Iki
|
! three_e_4_idx_direct_bi_ort (m,j,k,i) : Lk Ri Imm Ijj + Lj Rj Imm Iki + Lm Rm Ijj Iki
|
||||||
! three_e_4_idx_exch13_bi_ort (m,j,k,i) : Lk Rm Imi Ijj + Lj Rj Imi Ikm + Lm Ri Ijj Ikm
|
! three_e_4_idx_exch13_bi_ort (m,j,k,i) : Lk Rm Imi Ijj + Lj Rj Imi Ikm + Lm Ri Ijj Ikm
|
||||||
! three_e_4_idx_exch23_bi_ort (m,j,k,i) : Lk Ri Imj Ijm + Lj Rm Imj Iki + Lm Rj Ijm Iki
|
! three_e_4_idx_exch23_bi_ort (m,j,k,i) : Lk Ri Imj Ijm + Lj Rm Imj Iki + Lm Rj Ijm Iki
|
||||||
! three_e_4_idx_cycle_1_bi_ort(m,j,k,i) : Lk Rm Imj Iji + Lj Ri Imj Ikm + Lm Rj Iji Ikm
|
! three_e_4_idx_cycle_1_bi_ort(m,j,k,i) : Lk Rm Imj Iji + Lj Ri Imj Ikm + Lm Rj Iji Ikm
|
||||||
!
|
!
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
@ -64,120 +64,117 @@
|
|||||||
!$OMP END DO
|
!$OMP END DO
|
||||||
!$OMP END PARALLEL
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
! loops approach to break the O(N^4) scaling in memory
|
||||||
|
|
||||||
|
call set_multiple_levels_omp(.false.)
|
||||||
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (k, i, j, m, n, ipoint, tmp_loc_1, tmp_loc_2, tmp_2d, tmp1, tmp2) &
|
||||||
|
!$OMP SHARED (mo_num, n_points_final_grid, &
|
||||||
|
!$OMP mos_l_in_r_array_transp, mos_r_in_r_array_transp, &
|
||||||
|
!$OMP int2_grad1_u12_bimo_t, final_weight_at_r_vector, &
|
||||||
|
!$OMP tmp_aux_1, tmp_aux_2, &
|
||||||
|
!$OMP three_e_4_idx_direct_bi_ort, three_e_4_idx_exch13_bi_ort, &
|
||||||
|
!$OMP three_e_4_idx_exch23_bi_ort, three_e_4_idx_cycle_1_bi_ort)
|
||||||
|
|
||||||
allocate(tmp_2d(mo_num,mo_num))
|
allocate(tmp_2d(mo_num,mo_num))
|
||||||
allocate(tmp1(n_points_final_grid,4,mo_num))
|
allocate(tmp1(n_points_final_grid,4,mo_num))
|
||||||
allocate(tmp2(n_points_final_grid,4,mo_num))
|
allocate(tmp2(n_points_final_grid,4,mo_num))
|
||||||
|
|
||||||
! loops approach to break the O(N^4) scaling in memory
|
!$OMP DO
|
||||||
do k = 1, mo_num
|
do k = 1, mo_num
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
! ---
|
||||||
!$OMP DEFAULT (NONE) &
|
|
||||||
!$OMP PRIVATE (n, ipoint, tmp_loc_1, tmp_loc_2) &
|
|
||||||
!$OMP SHARED (mo_num, n_points_final_grid, i, k, &
|
|
||||||
!$OMP mos_l_in_r_array_transp, mos_r_in_r_array_transp, &
|
|
||||||
!$OMP int2_grad1_u12_bimo_t, final_weight_at_r_vector, &
|
|
||||||
!$OMP tmp_aux_2, tmp1)
|
|
||||||
!$OMP DO
|
|
||||||
do n = 1, mo_num
|
|
||||||
do ipoint = 1, n_points_final_grid
|
|
||||||
|
|
||||||
tmp_loc_1 = mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i)
|
do n = 1, mo_num
|
||||||
tmp_loc_2 = tmp_aux_2(ipoint,n)
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
tmp1(ipoint,1,n) = int2_grad1_u12_bimo_t(ipoint,1,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,1,k,i) * tmp_loc_2
|
tmp_loc_1 = mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i)
|
||||||
tmp1(ipoint,2,n) = int2_grad1_u12_bimo_t(ipoint,2,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,2,k,i) * tmp_loc_2
|
tmp_loc_2 = tmp_aux_2(ipoint,n)
|
||||||
tmp1(ipoint,3,n) = int2_grad1_u12_bimo_t(ipoint,3,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,3,k,i) * tmp_loc_2
|
|
||||||
tmp1(ipoint,4,n) = int2_grad1_u12_bimo_t(ipoint,1,n,n) * int2_grad1_u12_bimo_t(ipoint,1,k,i) &
|
|
||||||
+ int2_grad1_u12_bimo_t(ipoint,2,n,n) * int2_grad1_u12_bimo_t(ipoint,2,k,i) &
|
|
||||||
+ int2_grad1_u12_bimo_t(ipoint,3,n,n) * int2_grad1_u12_bimo_t(ipoint,3,k,i)
|
|
||||||
|
|
||||||
|
tmp1(ipoint,1,n) = int2_grad1_u12_bimo_t(ipoint,1,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,1,k,i) * tmp_loc_2
|
||||||
|
tmp1(ipoint,2,n) = int2_grad1_u12_bimo_t(ipoint,2,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,2,k,i) * tmp_loc_2
|
||||||
|
tmp1(ipoint,3,n) = int2_grad1_u12_bimo_t(ipoint,3,n,n) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,3,k,i) * tmp_loc_2
|
||||||
|
tmp1(ipoint,4,n) = int2_grad1_u12_bimo_t(ipoint,1,n,n) * int2_grad1_u12_bimo_t(ipoint,1,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,2,n,n) * int2_grad1_u12_bimo_t(ipoint,2,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,3,n,n) * int2_grad1_u12_bimo_t(ipoint,3,k,i)
|
||||||
|
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
!$OMP END DO
|
|
||||||
!$OMP END PARALLEL
|
|
||||||
|
|
||||||
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
||||||
, tmp_aux_1(1,1,1), 4*n_points_final_grid, tmp1(1,1,1), 4*n_points_final_grid &
|
, tmp_aux_1(1,1,1), 4*n_points_final_grid, tmp1(1,1,1), 4*n_points_final_grid &
|
||||||
, 0.d0, tmp_2d(1,1), mo_num)
|
, 0.d0, tmp_2d(1,1), mo_num)
|
||||||
|
|
||||||
!$OMP PARALLEL DO PRIVATE(j,m)
|
do j = 1, mo_num
|
||||||
do j = 1, mo_num
|
do m = 1, mo_num
|
||||||
do m = 1, mo_num
|
three_e_4_idx_direct_bi_ort(m,j,k,i) = -tmp_2d(m,j)
|
||||||
three_e_4_idx_direct_bi_ort(m,j,k,i) = -tmp_2d(m,j)
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
|
do n = 1, mo_num
|
||||||
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
tmp_loc_1 = mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,n)
|
||||||
!$OMP DEFAULT (NONE) &
|
tmp_loc_2 = mos_l_in_r_array_transp(ipoint,n) * mos_r_in_r_array_transp(ipoint,i)
|
||||||
!$OMP PRIVATE (n, ipoint, tmp_loc_1, tmp_loc_2) &
|
|
||||||
!$OMP SHARED (mo_num, n_points_final_grid, i, k, &
|
|
||||||
!$OMP mos_l_in_r_array_transp, mos_r_in_r_array_transp, &
|
|
||||||
!$OMP int2_grad1_u12_bimo_t, final_weight_at_r_vector, &
|
|
||||||
!$OMP tmp1, tmp2)
|
|
||||||
!$OMP DO
|
|
||||||
do n = 1, mo_num
|
|
||||||
do ipoint = 1, n_points_final_grid
|
|
||||||
|
|
||||||
tmp_loc_1 = mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,n)
|
tmp1(ipoint,1,n) = int2_grad1_u12_bimo_t(ipoint,1,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,1,k,n) * tmp_loc_2
|
||||||
tmp_loc_2 = mos_l_in_r_array_transp(ipoint,n) * mos_r_in_r_array_transp(ipoint,i)
|
tmp1(ipoint,2,n) = int2_grad1_u12_bimo_t(ipoint,2,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,2,k,n) * tmp_loc_2
|
||||||
|
tmp1(ipoint,3,n) = int2_grad1_u12_bimo_t(ipoint,3,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,3,k,n) * tmp_loc_2
|
||||||
|
tmp1(ipoint,4,n) = int2_grad1_u12_bimo_t(ipoint,1,n,i) * int2_grad1_u12_bimo_t(ipoint,1,k,n) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,2,n,i) * int2_grad1_u12_bimo_t(ipoint,2,k,n) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,3,n,i) * int2_grad1_u12_bimo_t(ipoint,3,k,n)
|
||||||
|
|
||||||
tmp1(ipoint,1,n) = int2_grad1_u12_bimo_t(ipoint,1,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,1,k,n) * tmp_loc_2
|
tmp2(ipoint,1,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,1,i,n)
|
||||||
tmp1(ipoint,2,n) = int2_grad1_u12_bimo_t(ipoint,2,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,2,k,n) * tmp_loc_2
|
tmp2(ipoint,2,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,2,i,n)
|
||||||
tmp1(ipoint,3,n) = int2_grad1_u12_bimo_t(ipoint,3,n,i) * tmp_loc_1 + int2_grad1_u12_bimo_t(ipoint,3,k,n) * tmp_loc_2
|
tmp2(ipoint,3,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,3,i,n)
|
||||||
tmp1(ipoint,4,n) = int2_grad1_u12_bimo_t(ipoint,1,n,i) * int2_grad1_u12_bimo_t(ipoint,1,k,n) &
|
tmp2(ipoint,4,n) = final_weight_at_r_vector(ipoint) * mos_l_in_r_array_transp(ipoint,i) * mos_r_in_r_array_transp(ipoint,n)
|
||||||
+ int2_grad1_u12_bimo_t(ipoint,2,n,i) * int2_grad1_u12_bimo_t(ipoint,2,k,n) &
|
enddo
|
||||||
+ int2_grad1_u12_bimo_t(ipoint,3,n,i) * int2_grad1_u12_bimo_t(ipoint,3,k,n)
|
|
||||||
|
|
||||||
tmp2(ipoint,1,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,1,i,n)
|
|
||||||
tmp2(ipoint,2,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,2,i,n)
|
|
||||||
tmp2(ipoint,3,n) = final_weight_at_r_vector(ipoint) * int2_grad1_u12_bimo_t(ipoint,3,i,n)
|
|
||||||
tmp2(ipoint,4,n) = final_weight_at_r_vector(ipoint) * mos_l_in_r_array_transp(ipoint,i) * mos_r_in_r_array_transp(ipoint,n)
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
!$OMP END DO
|
|
||||||
!$OMP END PARALLEL
|
|
||||||
|
|
||||||
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
! ---
|
||||||
, tmp1(1,1,1), 4*n_points_final_grid, tmp_aux_1(1,1,1), 4*n_points_final_grid &
|
|
||||||
, 0.d0, tmp_2d(1,1), mo_num)
|
|
||||||
|
|
||||||
!$OMP PARALLEL DO PRIVATE(j,m)
|
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
||||||
do j = 1, mo_num
|
, tmp1(1,1,1), 4*n_points_final_grid, tmp_aux_1(1,1,1), 4*n_points_final_grid &
|
||||||
do m = 1, mo_num
|
, 0.d0, tmp_2d(1,1), mo_num)
|
||||||
three_e_4_idx_exch13_bi_ort(m,j,k,i) = -tmp_2d(m,j)
|
|
||||||
|
do j = 1, mo_num
|
||||||
|
do m = 1, mo_num
|
||||||
|
three_e_4_idx_exch13_bi_ort(m,j,k,i) = -tmp_2d(m,j)
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
|
|
||||||
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
! ---
|
||||||
, tmp1(1,1,1), 4*n_points_final_grid, tmp2(1,1,1), 4*n_points_final_grid &
|
|
||||||
, 0.d0, tmp_2d(1,1), mo_num)
|
|
||||||
|
|
||||||
!$OMP PARALLEL DO PRIVATE(j,m)
|
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
||||||
do j = 1, mo_num
|
, tmp1(1,1,1), 4*n_points_final_grid, tmp2(1,1,1), 4*n_points_final_grid &
|
||||||
do m = 1, mo_num
|
, 0.d0, tmp_2d(1,1), mo_num)
|
||||||
three_e_4_idx_cycle_1_bi_ort(m,i,k,j) = -tmp_2d(m,j)
|
|
||||||
|
do j = 1, mo_num
|
||||||
|
do m = 1, mo_num
|
||||||
|
three_e_4_idx_cycle_1_bi_ort(m,i,k,j) = -tmp_2d(m,j)
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
|
|
||||||
enddo ! i
|
! ---
|
||||||
|
|
||||||
|
enddo ! i
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
|
||||||
!$OMP DEFAULT (NONE) &
|
|
||||||
!$OMP PRIVATE (n, ipoint, tmp_loc_1, tmp_loc_2) &
|
|
||||||
!$OMP SHARED (mo_num, n_points_final_grid, j, k, &
|
|
||||||
!$OMP mos_l_in_r_array_transp, mos_r_in_r_array_transp, &
|
|
||||||
!$OMP int2_grad1_u12_bimo_t, final_weight_at_r_vector, &
|
|
||||||
!$OMP tmp1, tmp2)
|
|
||||||
!$OMP DO
|
|
||||||
do n = 1, mo_num
|
do n = 1, mo_num
|
||||||
do ipoint = 1, n_points_final_grid
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
@ -197,36 +194,38 @@
|
|||||||
tmp2(ipoint,4,n) = final_weight_at_r_vector(ipoint) * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,n)
|
tmp2(ipoint,4,n) = final_weight_at_r_vector(ipoint) * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,n)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
!$OMP END DO
|
|
||||||
!$OMP END PARALLEL
|
|
||||||
|
|
||||||
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
call dgemm( 'T', 'N', mo_num, mo_num, 4*n_points_final_grid, 1.d0 &
|
||||||
, tmp1(1,1,1), 4*n_points_final_grid, tmp2(1,1,1), 4*n_points_final_grid &
|
, tmp1(1,1,1), 4*n_points_final_grid, tmp2(1,1,1), 4*n_points_final_grid &
|
||||||
, 0.d0, tmp_2d(1,1), mo_num)
|
, 0.d0, tmp_2d(1,1), mo_num)
|
||||||
|
|
||||||
!$OMP PARALLEL DO PRIVATE(i,m)
|
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do m = 1, mo_num
|
do m = 1, mo_num
|
||||||
three_e_4_idx_exch23_bi_ort(m,j,k,i) = -tmp_2d(m,i)
|
three_e_4_idx_exch23_bi_ort(m,j,k,i) = -tmp_2d(m,i)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
|
|
||||||
enddo ! j
|
enddo ! j
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
enddo !k
|
enddo !k
|
||||||
|
!$OMP END DO
|
||||||
|
|
||||||
deallocate(tmp_2d)
|
deallocate(tmp_2d)
|
||||||
deallocate(tmp1)
|
deallocate(tmp1)
|
||||||
deallocate(tmp2)
|
deallocate(tmp2)
|
||||||
|
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
|
||||||
deallocate(tmp_aux_1)
|
deallocate(tmp_aux_1)
|
||||||
deallocate(tmp_aux_2)
|
deallocate(tmp_aux_2)
|
||||||
|
|
||||||
|
|
||||||
call wall_time(wall1)
|
call wall_time(wall1)
|
||||||
print *, ' wall time for three_e_4_idx_bi_ort', wall1 - wall0
|
print *, ' wall time for three_e_4_idx_bi_ort', wall1 - wall0
|
||||||
call print_memory_usage()
|
call print_memory_usage()
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
@ -29,6 +29,9 @@ BEGIN_PROVIDER [ double precision, three_body_ints_bi_ort, (mo_num, mo_num, mo_n
|
|||||||
|
|
||||||
!provide x_W_ki_bi_ortho_erf_rk
|
!provide x_W_ki_bi_ortho_erf_rk
|
||||||
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
provide mos_r_in_r_array_transp mos_l_in_r_array_transp
|
||||||
|
provide int2_grad1_u12_ao_transp final_grid_points int2_grad1_u12_bimo_t
|
||||||
|
provide mo_l_coef mo_r_coef mos_l_in_r_array_transp mos_r_in_r_array_transp n_points_final_grid
|
||||||
|
|
||||||
|
|
||||||
!$OMP PARALLEL &
|
!$OMP PARALLEL &
|
||||||
!$OMP DEFAULT (NONE) &
|
!$OMP DEFAULT (NONE) &
|
||||||
@ -68,11 +71,69 @@ END_PROVIDER
|
|||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
subroutine give_integrals_3_body_bi_ort_spin( n, sigma_n, l, sigma_l, k, sigma_k &
|
||||||
|
, m, sigma_m, j, sigma_j, i, sigma_i &
|
||||||
|
, integral)
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
!
|
||||||
|
! < n l k | L | m j i > with a BI-ORTHONORMAL SPIN-ORBITALS
|
||||||
|
!
|
||||||
|
! /!\ L is defined without the 1/6 factor
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer, intent(in) :: n, l, k, m, j, i
|
||||||
|
double precision, intent(in) :: sigma_n, sigma_l, sigma_k, sigma_m, sigma_j, sigma_i
|
||||||
|
double precision, intent(out) :: integral
|
||||||
|
integer :: ipoint
|
||||||
|
double precision :: weight, tmp
|
||||||
|
logical, external :: is_same_spin
|
||||||
|
|
||||||
|
integral = 0.d0
|
||||||
|
|
||||||
|
if( is_same_spin(sigma_n, sigma_m) .and. &
|
||||||
|
is_same_spin(sigma_l, sigma_j) .and. &
|
||||||
|
is_same_spin(sigma_k, sigma_i) ) then
|
||||||
|
|
||||||
|
PROVIDE mo_l_coef mo_r_coef
|
||||||
|
PROVIDE int2_grad1_u12_bimo_t
|
||||||
|
|
||||||
|
do ipoint = 1, n_points_final_grid
|
||||||
|
|
||||||
|
tmp = mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i) &
|
||||||
|
* ( int2_grad1_u12_bimo_t(ipoint,1,n,m) * int2_grad1_u12_bimo_t(ipoint,1,l,j) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,2,n,m) * int2_grad1_u12_bimo_t(ipoint,2,l,j) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,3,n,m) * int2_grad1_u12_bimo_t(ipoint,3,l,j) )
|
||||||
|
|
||||||
|
tmp = tmp + mos_l_in_r_array_transp(ipoint,l) * mos_r_in_r_array_transp(ipoint,j) &
|
||||||
|
* ( int2_grad1_u12_bimo_t(ipoint,1,n,m) * int2_grad1_u12_bimo_t(ipoint,1,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,2,n,m) * int2_grad1_u12_bimo_t(ipoint,2,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,3,n,m) * int2_grad1_u12_bimo_t(ipoint,3,k,i) )
|
||||||
|
|
||||||
|
tmp = tmp + mos_l_in_r_array_transp(ipoint,n) * mos_r_in_r_array_transp(ipoint,m) &
|
||||||
|
* ( int2_grad1_u12_bimo_t(ipoint,1,l,j) * int2_grad1_u12_bimo_t(ipoint,1,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,2,l,j) * int2_grad1_u12_bimo_t(ipoint,2,k,i) &
|
||||||
|
+ int2_grad1_u12_bimo_t(ipoint,3,l,j) * int2_grad1_u12_bimo_t(ipoint,3,k,i) )
|
||||||
|
|
||||||
|
integral = integral + tmp * final_weight_at_r_vector(ipoint)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine give_integrals_3_body_bi_ort_spin
|
||||||
|
|
||||||
|
! ---
|
||||||
|
|
||||||
subroutine give_integrals_3_body_bi_ort(n, l, k, m, j, i, integral)
|
subroutine give_integrals_3_body_bi_ort(n, l, k, m, j, i, integral)
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
! < n l k | -L | m j i > with a BI-ORTHONORMAL MOLECULAR ORBITALS
|
! < n l k | L | m j i > with a BI-ORTHONORMAL MOLECULAR ORBITALS
|
||||||
|
!
|
||||||
|
! /!\ L is defined without the 1/6 factor
|
||||||
!
|
!
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
@ -115,7 +176,9 @@ subroutine give_integrals_3_body_bi_ort_old(n, l, k, m, j, i, integral)
|
|||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
! < n l k | -L | m j i > with a BI-ORTHONORMAL MOLECULAR ORBITALS
|
! < n l k | L | m j i > with a BI-ORTHONORMAL MOLECULAR ORBITALS
|
||||||
|
!
|
||||||
|
! /!\ L is defined without the 1/6 factor
|
||||||
!
|
!
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
@ -128,35 +191,6 @@ subroutine give_integrals_3_body_bi_ort_old(n, l, k, m, j, i, integral)
|
|||||||
integral = 0.d0
|
integral = 0.d0
|
||||||
do ipoint = 1, n_points_final_grid
|
do ipoint = 1, n_points_final_grid
|
||||||
weight = final_weight_at_r_vector(ipoint)
|
weight = final_weight_at_r_vector(ipoint)
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i) &
|
|
||||||
! * ( x_W_ki_bi_ortho_erf_rk(ipoint,1,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,1,l,j) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,2,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,2,l,j) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,3,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,3,l,j) )
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,l) * mos_r_in_r_array_transp(ipoint,j) &
|
|
||||||
! * ( x_W_ki_bi_ortho_erf_rk(ipoint,1,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,1,k,i) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,2,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,2,k,i) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,3,n,m) * x_W_ki_bi_ortho_erf_rk(ipoint,3,k,i) )
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,n) * mos_r_in_r_array_transp(ipoint,m) &
|
|
||||||
! * ( x_W_ki_bi_ortho_erf_rk(ipoint,1,l,j) * x_W_ki_bi_ortho_erf_rk(ipoint,1,k,i) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,2,l,j) * x_W_ki_bi_ortho_erf_rk(ipoint,2,k,i) &
|
|
||||||
! + x_W_ki_bi_ortho_erf_rk(ipoint,3,l,j) * x_W_ki_bi_ortho_erf_rk(ipoint,3,k,i) )
|
|
||||||
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i) &
|
|
||||||
! * ( int2_grad1_u12_bimo(1,n,m,ipoint) * int2_grad1_u12_bimo(1,l,j,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(2,n,m,ipoint) * int2_grad1_u12_bimo(2,l,j,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(3,n,m,ipoint) * int2_grad1_u12_bimo(3,l,j,ipoint) )
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,l) * mos_r_in_r_array_transp(ipoint,j) &
|
|
||||||
! * ( int2_grad1_u12_bimo(1,n,m,ipoint) * int2_grad1_u12_bimo(1,k,i,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(2,n,m,ipoint) * int2_grad1_u12_bimo(2,k,i,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(3,n,m,ipoint) * int2_grad1_u12_bimo(3,k,i,ipoint) )
|
|
||||||
! integral += weight * mos_l_in_r_array_transp(ipoint,n) * mos_r_in_r_array_transp(ipoint,m) &
|
|
||||||
! * ( int2_grad1_u12_bimo(1,l,j,ipoint) * int2_grad1_u12_bimo(1,k,i,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(2,l,j,ipoint) * int2_grad1_u12_bimo(2,k,i,ipoint) &
|
|
||||||
! + int2_grad1_u12_bimo(3,l,j,ipoint) * int2_grad1_u12_bimo(3,k,i,ipoint) )
|
|
||||||
|
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
integral += weight * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i) &
|
integral += weight * mos_l_in_r_array_transp(ipoint,k) * mos_r_in_r_array_transp(ipoint,i) &
|
||||||
* ( int2_grad1_u12_bimo_transp(n,m,1,ipoint) * int2_grad1_u12_bimo_transp(l,j,1,ipoint) &
|
* ( int2_grad1_u12_bimo_transp(n,m,1,ipoint) * int2_grad1_u12_bimo_transp(l,j,1,ipoint) &
|
||||||
+ int2_grad1_u12_bimo_transp(n,m,2,ipoint) * int2_grad1_u12_bimo_transp(l,j,2,ipoint) &
|
+ int2_grad1_u12_bimo_transp(n,m,2,ipoint) * int2_grad1_u12_bimo_transp(l,j,2,ipoint) &
|
||||||
@ -180,7 +214,9 @@ subroutine give_integrals_3_body_bi_ort_ao(n, l, k, m, j, i, integral)
|
|||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
! < n l k | -L | m j i > with a BI-ORTHONORMAL ATOMIC ORBITALS
|
! < n l k | L | m j i > with a BI-ORTHONORMAL ATOMIC ORBITALS
|
||||||
|
!
|
||||||
|
! /!\ L is defined without the 1/6 factor
|
||||||
!
|
!
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
@ -256,6 +256,13 @@ BEGIN_PROVIDER [double precision, mo_bi_ortho_tc_two_e, (mo_num, mo_num, mo_num,
|
|||||||
|
|
||||||
FREE mo_bi_ortho_tc_two_e_chemist
|
FREE mo_bi_ortho_tc_two_e_chemist
|
||||||
|
|
||||||
|
if(noL_standard) then
|
||||||
|
PROVIDE noL_2e
|
||||||
|
! x 2 because of the Slater-Condon rules convention
|
||||||
|
mo_bi_ortho_tc_two_e = mo_bi_ortho_tc_two_e + 2.d0 * noL_2e
|
||||||
|
FREE noL_2e
|
||||||
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
@ -266,9 +273,11 @@ END_PROVIDER
|
|||||||
&BEGIN_PROVIDER [ double precision, mo_bi_ortho_tc_two_e_jj_anti, (mo_num,mo_num)]
|
&BEGIN_PROVIDER [ double precision, mo_bi_ortho_tc_two_e_jj_anti, (mo_num,mo_num)]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! mo_bi_ortho_tc_two_e_jj(i,j) = J_ij = <ji|W-K|ji>
|
!
|
||||||
|
! mo_bi_ortho_tc_two_e_jj (i,j) = J_ij = <ji|W-K|ji>
|
||||||
! mo_bi_ortho_tc_two_e_jj_exchange(i,j) = K_ij = <ij|W-K|ji>
|
! mo_bi_ortho_tc_two_e_jj_exchange(i,j) = K_ij = <ij|W-K|ji>
|
||||||
! mo_bi_ortho_tc_two_e_jj_anti(i,j) = J_ij - K_ij
|
! mo_bi_ortho_tc_two_e_jj_anti (i,j) = J_ij - K_ij
|
||||||
|
!
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
@ -279,9 +288,9 @@ END_PROVIDER
|
|||||||
|
|
||||||
do i = 1, mo_num
|
do i = 1, mo_num
|
||||||
do j = 1, mo_num
|
do j = 1, mo_num
|
||||||
mo_bi_ortho_tc_two_e_jj(i,j) = mo_bi_ortho_tc_two_e(j,i,j,i)
|
mo_bi_ortho_tc_two_e_jj (i,j) = mo_bi_ortho_tc_two_e(j,i,j,i)
|
||||||
mo_bi_ortho_tc_two_e_jj_exchange(i,j) = mo_bi_ortho_tc_two_e(i,j,j,i)
|
mo_bi_ortho_tc_two_e_jj_exchange(i,j) = mo_bi_ortho_tc_two_e(i,j,j,i)
|
||||||
mo_bi_ortho_tc_two_e_jj_anti(i,j) = mo_bi_ortho_tc_two_e_jj(i,j) - mo_bi_ortho_tc_two_e_jj_exchange(i,j)
|
mo_bi_ortho_tc_two_e_jj_anti (i,j) = mo_bi_ortho_tc_two_e_jj(i,j) - mo_bi_ortho_tc_two_e_jj_exchange(i,j)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
@ -15,7 +15,6 @@ BEGIN_PROVIDER [double precision, TCSCF_bi_ort_dm_ao_alpha, (ao_num, ao_num) ]
|
|||||||
|
|
||||||
call dgemm( 'N', 'T', ao_num, ao_num, elec_alpha_num, 1.d0 &
|
call dgemm( 'N', 'T', ao_num, ao_num, elec_alpha_num, 1.d0 &
|
||||||
, mo_l_coef, size(mo_l_coef, 1), mo_r_coef, size(mo_r_coef, 1) &
|
, mo_l_coef, size(mo_l_coef, 1), mo_r_coef, size(mo_r_coef, 1) &
|
||||||
!, mo_r_coef, size(mo_r_coef, 1), mo_l_coef, size(mo_l_coef, 1) &
|
|
||||||
, 0.d0, TCSCF_bi_ort_dm_ao_alpha, size(TCSCF_bi_ort_dm_ao_alpha, 1) )
|
, 0.d0, TCSCF_bi_ort_dm_ao_alpha, size(TCSCF_bi_ort_dm_ao_alpha, 1) )
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
@ -36,7 +35,6 @@ BEGIN_PROVIDER [ double precision, TCSCF_bi_ort_dm_ao_beta, (ao_num, ao_num) ]
|
|||||||
|
|
||||||
call dgemm( 'N', 'T', ao_num, ao_num, elec_beta_num, 1.d0 &
|
call dgemm( 'N', 'T', ao_num, ao_num, elec_beta_num, 1.d0 &
|
||||||
, mo_l_coef, size(mo_l_coef, 1), mo_r_coef, size(mo_r_coef, 1) &
|
, mo_l_coef, size(mo_l_coef, 1), mo_r_coef, size(mo_r_coef, 1) &
|
||||||
!, mo_r_coef, size(mo_r_coef, 1), mo_l_coef, size(mo_l_coef, 1) &
|
|
||||||
, 0.d0, TCSCF_bi_ort_dm_ao_beta, size(TCSCF_bi_ort_dm_ao_beta, 1) )
|
, 0.d0, TCSCF_bi_ort_dm_ao_beta, size(TCSCF_bi_ort_dm_ao_beta, 1) )
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
@ -32,7 +32,6 @@ subroutine ao_to_mo_bi_ortho(A_ao, LDA_ao, A_mo, LDA_mo)
|
|||||||
, mo_l_coef, size(mo_l_coef, 1), T, size(T, 1) &
|
, mo_l_coef, size(mo_l_coef, 1), T, size(T, 1) &
|
||||||
, 0.d0, A_mo, LDA_mo )
|
, 0.d0, A_mo, LDA_mo )
|
||||||
|
|
||||||
! call restore_symmetry(mo_num,mo_num,A_mo,size(A_mo,1),1.d-12)
|
|
||||||
deallocate(T)
|
deallocate(T)
|
||||||
|
|
||||||
end subroutine ao_to_mo_bi_ortho
|
end subroutine ao_to_mo_bi_ortho
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user