mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-21 19:13:29 +01:00
Merge branch 'pouet' into cleaning_dft
This commit is contained in:
commit
a1ef509dbb
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
[submodule "external/ezfio"]
|
||||
path = external/ezfio
|
||||
url = https://gitlab.com/scemama/ezfio.git
|
||||
[submodule "external/irpf90"]
|
||||
path = external/irpf90
|
||||
url = https://gitlab.com/scemama/irpf90.git
|
@ -23,7 +23,6 @@ addons:
|
||||
# - liblapack-dev
|
||||
# - libblas-dev
|
||||
- wget
|
||||
- eatmydata
|
||||
|
||||
env:
|
||||
- OPAMROOT=$HOME/.opam
|
||||
@ -45,9 +44,9 @@ stages:
|
||||
jobs:
|
||||
include:
|
||||
- stage: configuration
|
||||
script: eatmydata travis/configuration.sh
|
||||
script: travis/configuration.sh
|
||||
- stage: compilation
|
||||
script: eatmydata travis/compilation.sh
|
||||
script: travis/compilation.sh
|
||||
- stage: testing
|
||||
script: eatmydata travis/testing.sh
|
||||
script: travis/testing.sh
|
||||
|
||||
|
20
AUTHORS
Normal file
20
AUTHORS
Normal file
@ -0,0 +1,20 @@
|
||||
# If you contributed to this software, please make a pull request to add your
|
||||
# name to this list (alphabetical order of the last name)
|
||||
|
||||
- Thomas Applencourt
|
||||
- Anouar Benali
|
||||
- Michel Caffarel
|
||||
- Grégoire David
|
||||
- Anthony Ferté
|
||||
- Yann Garniron
|
||||
- Kevin Gasperich
|
||||
- Vijay Gopal Chilkuri
|
||||
- Emmanuel Giner
|
||||
- Pierre-François Loos
|
||||
- Jean-Paul Malrieu
|
||||
- Julien Paquier
|
||||
- Barthélémy Pradines
|
||||
- Peter Reinhardt
|
||||
- Anthony Scemama
|
||||
- Julien Toulouse
|
||||
- Mickaël Véril
|
@ -28,6 +28,12 @@ and need to be installed.
|
||||
When all dependencies have been installed, ( the :command:`configure` will tell you)
|
||||
source the :file:`quantum_package.rc` in order to load all environment variables and compile the |QP|.
|
||||
|
||||
Now all the requirements are met, you can compile the programs using
|
||||
|
||||
.. code:: bash
|
||||
|
||||
make
|
||||
|
||||
|
||||
Requirements
|
||||
============
|
||||
@ -48,6 +54,7 @@ Requirements
|
||||
- `Bubblewrap <https://github.com/projectatomic/bubblewrap>`_ : Sandboxing tool required by Opam
|
||||
- `libcap <https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git>`_ : POSIX capabilities required by Bubblewrap
|
||||
- |Ninja| : a parallel build system
|
||||
- |pkg-config| : a tool which returns information about installed libraries
|
||||
|
||||
|
||||
When all the dependencies have been installed, go into the :file:`config`
|
||||
@ -79,7 +86,7 @@ The command is to be used as follows:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
./configure --install <package>
|
||||
./configure --install=<package>
|
||||
|
||||
The following packages are supported by the :command:`configure` installer:
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Quantum Package 2.1
|
||||
# Quantum Package 2.2
|
||||
|
||||
<img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250">
|
||||
|
||||
|
85
RELEASE_NOTES.org
Normal file
85
RELEASE_NOTES.org
Normal file
@ -0,0 +1,85 @@
|
||||
#+TITLE: Quantum Package Release notes
|
||||
|
||||
* Version 2.2
|
||||
|
||||
** Changes
|
||||
|
||||
- Python3 replaces Python2
|
||||
- Travis CI uses 3 jobs
|
||||
- Moved Travis scripts into ~travis~ directory
|
||||
- IRPF90 and EZFIO are now git submodules
|
||||
- Now basis sets should be downloaded from basis-set-exchange website
|
||||
- Added ~bse~ in the installable tools
|
||||
- Documentation in ~src/README.rst~
|
||||
- Added two-body reduced density matrix
|
||||
- Added basis set correction
|
||||
- Added CAS-based on-top density functional
|
||||
- Improve PT2 computation for excited-states: Mostly 2x2
|
||||
diagonalization, and some (n+1)x(n+1) diagonalizations
|
||||
- Error bars for stochastic variance and norm of the perturbed wave function
|
||||
- Improve PT2-matching for excited-states
|
||||
- Compute the overlap of PT2 excited states
|
||||
- Renamed SOP into CFG
|
||||
- Improved parallelism in PT2 by splitting tasks
|
||||
- Use max in multi-state PT2 instead of sum for the selection weight
|
||||
- Added seniority
|
||||
- Added excitation_max
|
||||
- More tasks for distribueted Davidson
|
||||
- Random guess vectors in Davidson have zeros to preserve symmetry
|
||||
- Disk-based Davidson when too much memory is required
|
||||
- Fixed bug in DIIS
|
||||
- Fixed bug in molden (Au -> Angs)
|
||||
|
||||
*** User interface
|
||||
|
||||
- Added ~qp_basis~ script to install a basis set from the ~bse~
|
||||
command-line tool
|
||||
- Introduced ~n_det_qp_edit~, ~psi_det_qp_edit~, and
|
||||
~psi_coef_qp_edit~ to accelerate the opening of qp_edit with
|
||||
large wave functions
|
||||
- Removed ~etc/ninja.rc~
|
||||
- Added flag to specify if the AOs are normalized
|
||||
- Added flag to specify if the primitive Gaussians are normalized
|
||||
- Added ~lin_dep_cutoff~, the cutoff for linear dependencies
|
||||
- Davidson convergence threshold can be adapted from PT2
|
||||
- In ~density_for_dft~, ~no_core_density~ is now a logical
|
||||
- Default for ~weight_selection~ has changed from 2 to 1
|
||||
- Nullify_small_elements in matrices to keep symmetry
|
||||
- Default of density functional changed from LDA to PBE
|
||||
- Added ~no_vvvv_integrals~ flag
|
||||
- Added ~pt2_min_parallel_tasks~ to control parallelism in PT2
|
||||
- Added ~print_energy~
|
||||
- Added ~print_hamiltonian~
|
||||
- Added input for two body RDM
|
||||
- Added keyword ~save_wf_after_selection~
|
||||
|
||||
*** Code
|
||||
|
||||
- Many bug fixes
|
||||
- Changed electron-nucleus from ~e_n~ to ~n_e~ in names of variables
|
||||
- Changed ~occ_pattern~ to ~configuration~
|
||||
- Replaced ~List.map~ by a tail-recursive version ~Qputils.list_map~
|
||||
- Added possible imaginary part in OCaml MO coefficients
|
||||
- Added ~qp_clean_source_files.sh~ to remove non-ascii characters
|
||||
- Added flag ~is_periodic~ for periodic systems
|
||||
- Possibilities to handle complex integrals and complex MOs
|
||||
- Moved pseuodpotential integrals out of ~ao_one_e_integrals~
|
||||
- Removed Schwarz test and added logical functions
|
||||
~ao_two_e_integral_zero~ and ~ao_one_e_integral_zero~
|
||||
- Introduced type for ~pt2_data~
|
||||
- Banned excitations are used with far apart localized MOs
|
||||
- S_z2_Sz is now included in S2
|
||||
- S^2 in single precision
|
||||
- Added Shank function
|
||||
- Added utilities for periodic calculations
|
||||
- Added ~V_ne_psi_energy~
|
||||
- Added ~h_core_guess~ routine
|
||||
- Fixed Laplacians in real space (indices)
|
||||
- Added LIB file to add extra libs in plugin
|
||||
|
||||
ao_one_e_integral_zero
|
||||
banned_excitations
|
||||
|
||||
|
||||
|
||||
|
43
TODO
43
TODO
@ -1,43 +0,0 @@
|
||||
# qpsh
|
||||
|
||||
* Faire que le slave de Hartree-fock est le calcul des integrales AO en parallele
|
||||
|
||||
# Exterieur
|
||||
|
||||
* Un module pour lire les integrales Moleculaires depuis un FCIDUMP
|
||||
* Un module pour lire des integrales Atomiques (voir module de Mimi pour lire les AO Slater)
|
||||
* Format Fchk (gaussian)
|
||||
|
||||
# Tests:
|
||||
|
||||
* Extrapolation
|
||||
* DFT
|
||||
|
||||
|
||||
# User doc:
|
||||
|
||||
* Mettre le mp2 comme exercice
|
||||
* Interfaces : molden/fcidump
|
||||
|
||||
# Programmers doc:
|
||||
|
||||
* Example : Simple Hartree-Fock program from scratch
|
||||
* Examples : subroutine example_module
|
||||
|
||||
# enleverle psi_det_size for all complicated stuffs with dimension of psi_coef
|
||||
|
||||
# Config file for Cray
|
||||
|
||||
# Documentation de /etc
|
||||
|
||||
Ajouter les symetries dans devel
|
||||
|
||||
IMPORTANT:
|
||||
|
||||
Davidson Diagonalization
|
||||
------------------------
|
||||
|
||||
Not enough memory: aborting in davidson_diag_hjj_sjj
|
||||
|
||||
|
||||
qp man does not find the programs in external plugins
|
@ -30,7 +30,7 @@ try:
|
||||
from docopt import docopt
|
||||
from qp_path import QP_SRC, QP_ROOT
|
||||
except ImportError:
|
||||
print("source .quantum_package.rc")
|
||||
print("source quantum_package.rc")
|
||||
raise
|
||||
|
||||
|
||||
|
@ -49,7 +49,7 @@ import os.path
|
||||
try:
|
||||
import qp_path
|
||||
except ImportError:
|
||||
print("source .quantum_package.rc")
|
||||
print("source quantum_package.rc")
|
||||
raise
|
||||
|
||||
from docopt import docopt
|
||||
|
@ -23,7 +23,7 @@ import os.path
|
||||
try:
|
||||
import qp_path
|
||||
except ImportError:
|
||||
print("source .quantum_package.rc")
|
||||
print("source quantum_package.rc")
|
||||
raise
|
||||
|
||||
from docopt import docopt
|
||||
|
@ -10,10 +10,10 @@
|
||||
#
|
||||
#
|
||||
[COMMON]
|
||||
FC : gfortran -ffree-line-length-none -I . -fPIC
|
||||
LAPACK_LIB : -lblas -llapack
|
||||
FC : gfortran -g -ffree-line-length-none -I . -fPIC
|
||||
LAPACK_LIB : -lblas -llapack
|
||||
IRPF90 : irpf90
|
||||
IRPF90_FLAGS : --ninja --align=32
|
||||
IRPF90_FLAGS : --ninja --align=32 --assert
|
||||
|
||||
# Global options
|
||||
################
|
||||
@ -22,7 +22,7 @@ IRPF90_FLAGS : --ninja --align=32
|
||||
# 0 : Deactivate
|
||||
#
|
||||
[OPTION]
|
||||
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||
MODE : DEBUG ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||
CACHE : 0 ; Enable cache_compile.py
|
||||
OPENMP : 1 ; Append OpenMP flags
|
||||
|
||||
@ -35,7 +35,7 @@ OPENMP : 1 ; Append OpenMP flags
|
||||
# -ffast-math and the Fortran-specific
|
||||
# -fno-protect-parens and -fstack-arrays.
|
||||
[OPT]
|
||||
FCFLAGS : -Ofast -msse4.2
|
||||
FCFLAGS : -Ofast
|
||||
|
||||
# Profiling flags
|
||||
#################
|
||||
@ -51,7 +51,7 @@ FCFLAGS : -Ofast
|
||||
# -g : Extra debugging information
|
||||
#
|
||||
[DEBUG]
|
||||
FCFLAGS : -fcheck=all -g
|
||||
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
|
||||
#################
|
||||
|
@ -32,7 +32,7 @@ OPENMP : 1 ; Append OpenMP flags
|
||||
#
|
||||
[OPT]
|
||||
FC : -traceback
|
||||
FCFLAGS : -mavx -O2 -ip -ftz -g
|
||||
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||
|
||||
# Profiling flags
|
||||
#################
|
||||
|
@ -54,7 +54,7 @@ FCFLAGS : -msse4.2 -O2 -ip -ftz
|
||||
#
|
||||
[DEBUG]
|
||||
FC : -g -traceback
|
||||
FCFLAGS : -msse4.2 -C -fpe0 -implicitnone
|
||||
FCFLAGS : -msse4.2 -check all -debug all -fpe-all=0 -implicitnone
|
||||
|
||||
|
||||
# OpenMP flags
|
||||
|
63
config/ifort_xHost.cfg
Normal file
63
config/ifort_xHost.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=64
|
||||
|
||||
# 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 : -xHost -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
|
||||
|
52
configure
vendored
52
configure
vendored
@ -14,17 +14,16 @@ unset CCXX
|
||||
# Force GCC instead of ICC for dependencies
|
||||
export CC=gcc
|
||||
|
||||
# Download submodules
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
# /!\ When updating version, update also etc files
|
||||
|
||||
EZFIO_TGZ="EZFIO-v2.0.3.tar.gz"
|
||||
BATS_URL="https://github.com/bats-core/bats-core/archive/v1.1.0.tar.gz"
|
||||
BUBBLE_URL="https://github.com/projectatomic/bubblewrap/releases/download/v0.3.3/bubblewrap-0.3.3.tar.xz"
|
||||
DOCOPT_URL="https://github.com/docopt/docopt/archive/0.6.2.tar.gz"
|
||||
BSE_URL="https://github.com/MolSSI-BSE/basis_set_exchange/archive/v0.8.11.tar.gz"
|
||||
F77ZMQ_URL="https://github.com/scemama/f77_zmq/archive/v4.2.5.tar.gz"
|
||||
GMP_URL="ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2"
|
||||
IRPF90_URL="https://gitlab.com/scemama/irpf90/-/archive/v2.0.0/irpf90-v2.0.0.tar.gz"
|
||||
LIBCAP_URL="https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/snapshot/libcap-2.25.tar.gz"
|
||||
NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip"
|
||||
OCAML_URL="https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh"
|
||||
@ -126,13 +125,13 @@ source quantum_package.rc
|
||||
function fail() {
|
||||
echo "You can try to install it using the -i option."
|
||||
echo "Please refer to INSTALL.rst to install the missing dependencies."
|
||||
exit 1
|
||||
exit -1
|
||||
}
|
||||
|
||||
function success() {
|
||||
echo ""
|
||||
echo "Configuration successful."
|
||||
exit 1
|
||||
exit 0
|
||||
}
|
||||
|
||||
function download() {
|
||||
@ -178,15 +177,10 @@ function find_dir() {
|
||||
}
|
||||
|
||||
|
||||
# Extract EZFIO if needed
|
||||
EZFIO=$(find_dir "${QP_ROOT}"/external/ezfio)
|
||||
if [[ ${EZFIO} = $(not_found) ]] ; then
|
||||
execute << EOF
|
||||
cd "\${QP_ROOT}"/external
|
||||
tar --gunzip --extract --file ${EZFIO_TGZ}
|
||||
rm -rf ezfio
|
||||
mv EZFIO ezfio || mv EZFIO-v*/ ezfio
|
||||
EOF
|
||||
# Install IRPF90 if needed
|
||||
IRPF90=$(find_exe irpf90)
|
||||
if [[ ${IRPF90} = $(not_found) ]] ; then
|
||||
make -C ${QP_ROOT}/external/irpf90
|
||||
fi
|
||||
|
||||
|
||||
@ -211,7 +205,7 @@ if [[ "${PACKAGES}.x" != ".x" ]] ; then
|
||||
fi
|
||||
|
||||
if [[ ${PACKAGES} = all ]] ; then
|
||||
PACKAGES="zlib ninja irpf90 zeromq f77zmq gmp libcap bwrap ocaml ezfio docopt resultsFile bats"
|
||||
PACKAGES="zlib ninja irpf90 zeromq f77zmq gmp libcap bwrap ocaml docopt resultsFile bats"
|
||||
fi
|
||||
|
||||
|
||||
@ -228,12 +222,10 @@ EOF
|
||||
|
||||
elif [[ ${PACKAGE} = gmp ]] ; then
|
||||
|
||||
download ${GMP_URL} "${QP_ROOT}"/external/gmp.tar.bz2
|
||||
execute << EOF
|
||||
cd "\${QP_ROOT}"/external
|
||||
tar --bzip2 --extract --file gmp.tar.bz2
|
||||
rm gmp.tar.bz2
|
||||
cd gmp*
|
||||
tar --bzip2 --extract --file gmp-6.1.2.tar.bz2
|
||||
cd gmp-6.1.2
|
||||
./configure --prefix=$QP_ROOT && make -j 8
|
||||
make install
|
||||
EOF
|
||||
@ -246,7 +238,7 @@ EOF
|
||||
tar --gunzip --extract --file libcap.tar.gz
|
||||
rm libcap.tar.gz
|
||||
cd libcap-*/libcap
|
||||
prefix=$QP_ROOT make install
|
||||
prefix=$QP_ROOT make BUILD_GPERF=no install
|
||||
EOF
|
||||
|
||||
elif [[ ${PACKAGE} = bwrap ]] ; then
|
||||
@ -263,13 +255,12 @@ EOF
|
||||
|
||||
elif [[ ${PACKAGE} = irpf90 ]] ; then
|
||||
|
||||
# When changing version of irpf90, don't forget to update etc/irpf90.rc
|
||||
download ${IRPF90_URL} "${QP_ROOT}"/external/irpf90.tar.gz
|
||||
execute << EOF
|
||||
cd "\${QP_ROOT}"/external
|
||||
tar --gunzip --extract --file irpf90.tar.gz
|
||||
rm irpf90.tar.gz
|
||||
cd irpf90-*
|
||||
mv irpf90-* irpf90
|
||||
cd irpf90
|
||||
make
|
||||
EOF
|
||||
|
||||
@ -328,8 +319,8 @@ EOF
|
||||
rm ${QP_ROOT}/external/opam_installer.sh
|
||||
# source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
||||
#
|
||||
# opam switch create ocaml-base-compiler.4.10.0
|
||||
opam init --verbose --yes --compiler=4.10.0 --disable-sandboxing
|
||||
# opam switch create ocaml-base-compiler.4.11.1
|
||||
opam init --verbose --yes --compiler=4.11.1 --disable-sandboxing
|
||||
|
||||
eval $(opam env)
|
||||
opam install -y ${OCAML_PACKAGES} || exit 1
|
||||
@ -348,9 +339,9 @@ EOF
|
||||
EOF
|
||||
rm ${QP_ROOT}/external/opam_installer.sh
|
||||
# source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
||||
# opam switch create ocaml-base-compiler.4.10.0 || exit 1
|
||||
# opam switch create ocaml-base-compiler.4.11.1 || exit 1
|
||||
|
||||
opam init --verbose --yes --compiler=4.10.0 --disable-sandboxing
|
||||
opam init --verbose --yes --compiler=4.11.1 --disable-sandboxing
|
||||
eval $(opam env)
|
||||
execute << EOF
|
||||
opam install -y \${OCAML_PACKAGES} || exit 1
|
||||
@ -410,6 +401,9 @@ EOF
|
||||
rm --recursive --force -- bats-core-1.1.0 \ "\${QP_ROOT}"/external/bats.tar.gz
|
||||
EOF
|
||||
|
||||
else
|
||||
error "${PACKAGE} unknown."
|
||||
fail
|
||||
fi
|
||||
|
||||
|
||||
@ -425,7 +419,7 @@ fi
|
||||
|
||||
IRPF90=$(find_exe irpf90)
|
||||
if [[ ${IRPF90} = $(not_found) ]] ; then
|
||||
error "IRPf90 (irpf90) is not installed."
|
||||
error "IRPF90 (irpf90) is not installed."
|
||||
fail
|
||||
fi
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python2
|
||||
#!/usr/bin/env python3
|
||||
|
||||
|
||||
import os
|
||||
|
@ -24,9 +24,9 @@ copyright = '2019, A. Scemama, E. Giner'
|
||||
author = 'A. Scemama, E. Giner'
|
||||
|
||||
# The short X.Y version
|
||||
version = '2.0'
|
||||
version = '2.1'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = '2.0'
|
||||
release = '2.1'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
@ -50,7 +50,6 @@
|
||||
:hidden:
|
||||
|
||||
appendix/benchmarks
|
||||
appendix/research
|
||||
appendix/license
|
||||
appendix/contributors
|
||||
|
||||
|
@ -118,10 +118,12 @@ Providers
|
||||
|
||||
* :c:data:`ao_coef`
|
||||
* :c:data:`ao_expo`
|
||||
* :c:data:`ao_normalized`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_prim_num_max`
|
||||
* :c:data:`primitives_normalized`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -177,10 +179,12 @@ Providers
|
||||
|
||||
* :c:data:`ao_coef`
|
||||
* :c:data:`ao_expo`
|
||||
* :c:data:`ao_normalized`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_prim_num_max`
|
||||
* :c:data:`primitives_normalized`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -261,10 +265,7 @@ Providers
|
||||
* :c:data:`ao_pseudo_integrals_local`
|
||||
* :c:data:`ao_pseudo_integrals_non_local`
|
||||
* :c:data:`ao_spread_x`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
|
||||
@ -363,10 +364,7 @@ Providers
|
||||
* :c:data:`ao_pseudo_integrals_local`
|
||||
* :c:data:`ao_pseudo_integrals_non_local`
|
||||
* :c:data:`ao_spread_x`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
|
||||
@ -853,10 +851,7 @@ Providers
|
||||
|
||||
* :c:data:`ao_integrals_n_e`
|
||||
* :c:data:`ao_integrals_n_e_per_atom`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`gauleg_t2`
|
||||
|
||||
@ -888,10 +883,7 @@ Providers
|
||||
|
||||
* :c:data:`ao_integrals_n_e`
|
||||
* :c:data:`ao_integrals_n_e_per_atom`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`gauleg_t2`
|
||||
|
||||
@ -1088,10 +1080,10 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
|
||||
@ -1117,14 +1109,14 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`nucl_aos_transposed`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`nucl_num`
|
||||
|
||||
Called by:
|
||||
@ -1158,14 +1150,14 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`nucl_aos_transposed`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`nucl_num`
|
||||
|
||||
Called by:
|
||||
@ -1195,14 +1187,14 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_expo_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power_ordered_transp_per_nucl`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`nucl_aos_transposed`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_n_aos`
|
||||
* :c:data:`nucl_num`
|
||||
|
||||
Called by:
|
||||
@ -1233,6 +1225,6 @@ Subroutines / functions
|
||||
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
|
@ -12,12 +12,11 @@ All the one-electron integrals in the |AO| basis are here.
|
||||
|
||||
The most important providers for usual quantum-chemistry calculation are:
|
||||
|
||||
* `ao_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_ao_ints.irp.f`)
|
||||
* `ao_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_ao_ints.irp.f`)
|
||||
* `ao_one_e_integrals` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
|
||||
* `ao_kinetic_integrals` which are the kinetic operator integrals on the |AO| basis
|
||||
* `ao_integrals_n_e` which are the nuclear-elctron operator integrals on the |AO| basis
|
||||
* `ao_one_e_integrals` which are the the h_core operator integrals on the |AO| basis
|
||||
|
||||
|
||||
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
|
||||
|
||||
|
||||
|
||||
@ -144,6 +143,7 @@ Providers
|
||||
|
||||
* :c:data:`ao_cart_to_sphe_coef`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
|
||||
|
||||
|
||||
@ -570,6 +570,8 @@ Providers
|
||||
Nucleus-electron interaction, in the |AO| basis set.
|
||||
|
||||
:math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
|
||||
|
||||
These integrals also contain the pseudopotential integrals.
|
||||
|
||||
Needs:
|
||||
|
||||
@ -582,11 +584,13 @@ Providers
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_pseudo_integrals`
|
||||
* :c:data:`do_pseudo`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_charge`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_num`
|
||||
* :c:data:`read_ao_integrals_e_n`
|
||||
* :c:data:`read_ao_integrals_n_e`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -594,11 +598,33 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_one_e_integrals`
|
||||
* :c:data:`ao_ortho_canonical_nucl_elec_integrals`
|
||||
* :c:data:`ao_ortho_lowdin_nucl_elec_integrals`
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
|
||||
|
||||
.. c:var:: ao_integrals_n_e_imag
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/pot_ao_ints.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: ao_integrals_n_e_imag (ao_num,ao_num)
|
||||
|
||||
|
||||
Nucleus-electron interaction, in the |AO| basis set.
|
||||
|
||||
:math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`read_ao_integrals_n_e`
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_integrals_n_e_per_atom
|
||||
|
||||
|
||||
@ -669,6 +695,31 @@ Providers
|
||||
* :c:data:`mo_kinetic_integrals`
|
||||
|
||||
|
||||
.. c:var:: ao_kinetic_integrals_imag
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/kin_ao_ints.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: ao_kinetic_integrals_imag (ao_num,ao_num)
|
||||
|
||||
|
||||
Kinetic energy integrals in the |AO| basis.
|
||||
|
||||
:math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`read_ao_integrals_kinetic`
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_one_e_integrals
|
||||
|
||||
|
||||
@ -690,18 +741,8 @@ Providers
|
||||
* :c:data:`ao_integrals_n_e`
|
||||
* :c:data:`ao_kinetic_integrals`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_pseudo_integrals`
|
||||
* :c:data:`do_pseudo`
|
||||
* :c:data:`read_ao_one_e_integrals`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`hf_energy`
|
||||
* :c:data:`scf_energy`
|
||||
|
||||
|
||||
.. c:var:: ao_one_e_integrals_diag
|
||||
@ -725,18 +766,30 @@ Providers
|
||||
* :c:data:`ao_integrals_n_e`
|
||||
* :c:data:`ao_kinetic_integrals`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_pseudo_integrals`
|
||||
* :c:data:`do_pseudo`
|
||||
* :c:data:`read_ao_one_e_integrals`
|
||||
|
||||
Needed by:
|
||||
|
||||
|
||||
.. c:var:: ao_one_e_integrals_imag
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/ao_one_e_ints.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: ao_one_e_integrals_imag (ao_num,ao_num)
|
||||
|
||||
|
||||
One-electron Hamiltonian in the |AO| basis.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`hf_energy`
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`read_ao_one_e_integrals`
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_ortho_canonical_coef
|
||||
@ -764,6 +817,8 @@ Providers
|
||||
* :c:data:`ao_cartesian`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
* :c:data:`mpi_master`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -771,7 +826,6 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_ortho_canonical_coef_inv`
|
||||
* :c:data:`ao_ortho_canonical_nucl_elec_integrals`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
@ -830,6 +884,8 @@ Providers
|
||||
* :c:data:`ao_cartesian`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
* :c:data:`mpi_master`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -837,7 +893,6 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_ortho_canonical_coef_inv`
|
||||
* :c:data:`ao_ortho_canonical_nucl_elec_integrals`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
@ -906,9 +961,7 @@ Providers
|
||||
* :c:data:`ao_cart_to_sphe_overlap`
|
||||
* :c:data:`ao_ortho_canonical_coef`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`ao_ortho_lowdin_overlap`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`s_half`
|
||||
* :c:data:`s_half_inv`
|
||||
@ -939,19 +992,69 @@ Providers
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`is_periodic`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_overlap_complex
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/ao_overlap.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
complex*16, allocatable :: ao_overlap_complex (ao_num,ao_num)
|
||||
|
||||
|
||||
Overlap for complex AOs
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`ao_overlap_imag`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`mo_two_e_int_erf_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`s_inv_complex`
|
||||
|
||||
|
||||
.. c:var:: ao_overlap_imag
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/ao_overlap.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: ao_overlap_imag (ao_num,ao_num)
|
||||
|
||||
|
||||
Imaginary part of the overlap
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_complex`
|
||||
|
||||
|
||||
.. c:var:: ao_overlap_x
|
||||
@ -993,9 +1096,7 @@ Providers
|
||||
* :c:data:`ao_cart_to_sphe_overlap`
|
||||
* :c:data:`ao_ortho_canonical_coef`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`ao_ortho_lowdin_overlap`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`s_half`
|
||||
* :c:data:`s_half_inv`
|
||||
@ -1042,9 +1143,7 @@ Providers
|
||||
* :c:data:`ao_cart_to_sphe_overlap`
|
||||
* :c:data:`ao_ortho_canonical_coef`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`ao_ortho_lowdin_overlap`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`s_half`
|
||||
* :c:data:`s_half_inv`
|
||||
@ -1091,9 +1190,7 @@ Providers
|
||||
* :c:data:`ao_cart_to_sphe_overlap`
|
||||
* :c:data:`ao_ortho_canonical_coef`
|
||||
* :c:data:`ao_ortho_canonical_overlap`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`ao_ortho_lowdin_overlap`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`s_half`
|
||||
* :c:data:`s_half_inv`
|
||||
@ -1131,7 +1228,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_one_e_integrals`
|
||||
* :c:data:`ao_integrals_n_e`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
|
||||
|
||||
@ -1688,12 +1785,6 @@ Providers
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`eigenvalues_fock_matrix_ao`
|
||||
|
||||
|
||||
.. c:var:: s_inv
|
||||
@ -1715,6 +1806,30 @@ Providers
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
|
||||
|
||||
|
||||
.. c:var:: s_inv_complex
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/ao_overlap.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
complex*16, allocatable :: s_inv_complex (ao_num,ao_num)
|
||||
|
||||
|
||||
Inverse of the overlap matrix
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_complex`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
|
||||
|
||||
|
||||
@ -1722,6 +1837,28 @@ Providers
|
||||
Subroutines / functions
|
||||
-----------------------
|
||||
|
||||
.. c:function:: ao_one_e_integral_zero:
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/screening.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
logical function ao_one_e_integral_zero(i,k)
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`io_ao_integrals_overlap`
|
||||
* :c:data:`is_periodic`
|
||||
|
||||
|
||||
.. c:function:: give_all_erf_kl_ao:
|
||||
|
||||
|
||||
@ -1854,12 +1991,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
|
||||
@ -1949,14 +2086,14 @@ Subroutines / functions
|
||||
* :c:func:`overlap_bourrin_deriv_x`
|
||||
|
||||
|
||||
.. c:function:: v_e_n:
|
||||
.. c:function:: v_n_e:
|
||||
|
||||
|
||||
File : :file:`ao_one_e_ints/pot_ao_ints.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision function V_e_n(a_x,a_y,a_z,b_x,b_y,b_z,alpha,beta)
|
||||
double precision function V_n_e(a_x,a_y,a_z,b_x,b_y,b_z,alpha,beta)
|
||||
|
||||
|
||||
Primitve nuclear attraction between the two primitves centered on the same atom.
|
||||
|
@ -287,13 +287,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`mu_erf`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
Calls:
|
||||
@ -322,13 +322,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
Calls:
|
||||
@ -504,9 +504,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
|
||||
Called by:
|
||||
@ -541,7 +540,6 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
|
||||
@ -650,10 +648,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_erf_cache_min`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_integrals_erf_cache`
|
||||
* :c:data:`ao_integrals_erf_cache_min`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
|
||||
@ -685,7 +682,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
|
||||
@ -716,7 +712,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
@ -792,9 +787,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`gauleg_t2`
|
||||
* :c:data:`mu_erf`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`gauleg_t2`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -857,8 +852,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -894,8 +889,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -98,6 +98,7 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
|
||||
|
||||
.. c:var:: ao_integrals_cache_min
|
||||
@ -126,6 +127,30 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
|
||||
|
||||
.. c:var:: ao_integrals_cache_periodic
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
complex*16, allocatable :: ao_integrals_cache_periodic (0:64*64*64*64)
|
||||
|
||||
|
||||
Cache of AO integrals for fast access
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache_min`
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_integrals_map
|
||||
@ -153,9 +178,10 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
|
||||
|
||||
@ -185,14 +211,6 @@ Providers
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
|
||||
|
||||
.. c:var:: ao_two_e_integrals_in_map
|
||||
@ -237,9 +255,8 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
|
||||
@ -341,7 +358,6 @@ Providers
|
||||
* :c:func:`i_x1_new`
|
||||
* :c:func:`i_x2_new`
|
||||
* :c:func:`integrale_new`
|
||||
* :c:func:`integrale_new_erf`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -512,6 +528,84 @@ Providers
|
||||
Subroutines / functions
|
||||
-----------------------
|
||||
|
||||
.. c:function:: ao_idx2_sq:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine ao_idx2_sq(i,j,ij)
|
||||
|
||||
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`two_e_integrals_index_2fold`
|
||||
|
||||
|
||||
.. c:function:: ao_idx2_sq_rev:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine ao_idx2_sq_rev(i,k,ik)
|
||||
|
||||
|
||||
reverse square compound index
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`two_e_integrals_index_reverse_2fold`
|
||||
|
||||
|
||||
.. c:function:: ao_idx2_tri_key:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine ao_idx2_tri_key(i,j,ij)
|
||||
|
||||
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`two_e_integrals_index_2fold`
|
||||
|
||||
|
||||
.. c:function:: ao_idx2_tri_rev_key:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine ao_idx2_tri_rev_key(i,k,ik)
|
||||
|
||||
|
||||
return i<=k
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`two_e_integrals_index_reverse_2fold`
|
||||
|
||||
|
||||
.. c:function:: ao_l4:
|
||||
|
||||
|
||||
@ -550,12 +644,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
Calls:
|
||||
@ -584,13 +678,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_coef_normalized_ordered_transp`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_expo_ordered_transp`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_nucl`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
|
||||
Calls:
|
||||
@ -601,6 +695,29 @@ Subroutines / functions
|
||||
* :c:func:`give_explicit_poly_and_gaussian`
|
||||
|
||||
|
||||
.. c:function:: ao_two_e_integral_zero:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/screening.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
logical function ao_two_e_integral_zero(i,j,k,l)
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`is_periodic`
|
||||
* :c:data:`read_ao_two_e_integrals`
|
||||
|
||||
|
||||
.. c:function:: ao_two_e_integrals_in_map_collector:
|
||||
|
||||
|
||||
@ -766,10 +883,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_num`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -803,9 +918,7 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -816,34 +929,6 @@ Subroutines / functions
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
|
||||
|
||||
.. c:function:: dump_ao_integrals:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine dump_ao_integrals(filename)
|
||||
|
||||
|
||||
Save to disk the |AO| integrals
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`mpi_master`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_work_empty`
|
||||
|
||||
|
||||
.. c:function:: eri:
|
||||
|
||||
|
||||
@ -925,9 +1010,6 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_integrals_cache_min`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
@ -941,6 +1023,37 @@ Subroutines / functions
|
||||
* :c:func:`two_e_integrals_index`
|
||||
|
||||
|
||||
.. c:function:: get_ao_two_e_integral_periodic:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
complex*16 function get_ao_two_e_integral_periodic(i,j,k,l,map) result(result)
|
||||
|
||||
|
||||
Gets one AO bi-electronic integral from the AO map
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache_min`
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`map_get`
|
||||
* :c:func:`two_e_integrals_index_2fold`
|
||||
|
||||
|
||||
.. c:function:: get_ao_two_e_integrals:
|
||||
|
||||
|
||||
@ -961,8 +1074,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
Called by:
|
||||
@ -994,9 +1105,7 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
Called by:
|
||||
@ -1035,8 +1144,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
@ -1067,8 +1174,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
@ -1080,6 +1185,29 @@ Subroutines / functions
|
||||
* :c:func:`two_e_integrals_index`
|
||||
|
||||
|
||||
.. c:function:: get_ao_two_e_integrals_periodic:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine get_ao_two_e_integrals_periodic(j,k,l,sze,out_val)
|
||||
|
||||
|
||||
Gets multiple AO bi-electronic integral from the AO map .
|
||||
All i are retrieved for j,k,l fixed.
|
||||
physicist convention : <ij|kl>
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
|
||||
|
||||
.. c:function:: give_polynom_mult_center_x:
|
||||
|
||||
|
||||
@ -1101,7 +1229,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`general_primitive_integral`
|
||||
* :c:func:`general_primitive_integral_erf`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -1141,6 +1268,31 @@ Subroutines / functions
|
||||
* :c:func:`i_x2_pol_mult`
|
||||
|
||||
|
||||
.. c:function:: idx2_tri_int:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine idx2_tri_int(i,j,ij)
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: idx2_tri_rev_int:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine idx2_tri_rev_int(i,k,ik)
|
||||
|
||||
|
||||
return i<=k
|
||||
|
||||
|
||||
.. c:function:: insert_into_ao_integrals_map:
|
||||
|
||||
|
||||
@ -1195,8 +1347,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`gauleg_t2`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1213,35 +1365,6 @@ Subroutines / functions
|
||||
* :c:func:`i_x1_new`
|
||||
|
||||
|
||||
.. c:function:: load_ao_integrals:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
integer function load_ao_integrals(filename)
|
||||
|
||||
|
||||
Read from disk the |AO| integrals
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`cache_map_reallocate`
|
||||
* :c:func:`map_deinit`
|
||||
* :c:func:`map_sort`
|
||||
|
||||
|
||||
.. c:function:: n_pt_sup:
|
||||
|
||||
|
||||
@ -1275,7 +1398,6 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ao_two_e_integrals_erf_in_map_slave`
|
||||
* :c:func:`ao_two_e_integrals_in_map_slave`
|
||||
|
||||
|
||||
@ -1290,7 +1412,7 @@ Subroutines / functions
|
||||
|
||||
|
||||
Gives a unique index for i,j,k,l using permtuation symmetry.
|
||||
i <-> k, j <-> l, and (i,k) <-> (j,l)
|
||||
i <-> k, j <-> l, and (i,k) <-> (j,l) for non-periodic systems
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1298,33 +1420,45 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache`
|
||||
* :c:data:`ao_integrals_erf_cache`
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:func:`compute_ao_integrals_erf_jl`
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:func:`compute_ao_integrals_jl`
|
||||
* :c:func:`four_idx_novvvv`
|
||||
* :c:func:`get_ao_two_e_integral`
|
||||
* :c:func:`get_ao_two_e_integral_erf`
|
||||
* :c:func:`get_ao_two_e_integrals_erf_non_zero`
|
||||
* :c:func:`get_ao_two_e_integrals_non_zero`
|
||||
* :c:func:`get_ao_two_e_integrals_non_zero_jl`
|
||||
* :c:func:`get_ao_two_e_integrals_non_zero_jl_from_list`
|
||||
* :c:func:`get_mo_two_e_integral_erf`
|
||||
* :c:func:`get_mo_two_e_integrals_coulomb_ii`
|
||||
* :c:func:`get_mo_two_e_integrals_erf`
|
||||
* :c:func:`get_mo_two_e_integrals_erf_coulomb_ii`
|
||||
* :c:func:`get_mo_two_e_integrals_erf_exch_ii`
|
||||
* :c:func:`get_mo_two_e_integrals_erf_i1j1`
|
||||
* :c:func:`get_mo_two_e_integrals_erf_ij`
|
||||
* :c:func:`get_mo_two_e_integrals_exch_ii`
|
||||
* :c:func:`get_mo_two_e_integrals_i1j1`
|
||||
* :c:func:`get_mo_two_e_integrals_ij`
|
||||
* :c:func:`get_two_e_integral`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_erf_cache`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:func:`test`
|
||||
|
||||
|
||||
.. c:function:: two_e_integrals_index_2fold:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine two_e_integrals_index_2fold(i,j,k,l,i1)
|
||||
|
||||
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_cache_periodic`
|
||||
* :c:func:`get_ao_two_e_integral_periodic`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ao_idx2_sq`
|
||||
* :c:func:`ao_idx2_tri_key`
|
||||
|
||||
|
||||
.. c:function:: two_e_integrals_index_reverse:
|
||||
@ -1347,11 +1481,23 @@ Subroutines / functions
|
||||
This rule is applied 3 times. First for the symmetry of the
|
||||
pairs (i,k) and (j,l), and then for the symmetry within each pair.
|
||||
|
||||
Called by:
|
||||
|
||||
.. c:function:: two_e_integrals_index_reverse_2fold:
|
||||
|
||||
|
||||
File : :file:`ao_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine two_e_integrals_index_reverse_2fold(i,j,k,l,i1)
|
||||
|
||||
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:func:`test`
|
||||
* :c:func:`ao_idx2_sq_rev`
|
||||
* :c:func:`ao_idx2_tri_rev_key`
|
||||
|
||||
|
@ -128,7 +128,7 @@ Providers
|
||||
.. c:var:: angular_quadrature_points
|
||||
|
||||
|
||||
File : :file:`becke_numerical_grid/grid_becke.irp.f`
|
||||
File : :file:`becke_numerical_grid/angular_grid_pts.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -224,31 +224,26 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`aos_grad_in_r_array`
|
||||
* :c:data:`aos_grad_in_r_array_transp`
|
||||
* :c:data:`aos_grad_in_r_array_transp_xyz`
|
||||
* :c:data:`aos_in_r_array`
|
||||
* :c:data:`aos_lapl_in_r_array`
|
||||
* :c:data:`aos_sr_vc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_lda_w`
|
||||
* :c:data:`aos_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_sr_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_sr_pbe_w`
|
||||
* :c:data:`elec_beta_num_grid_becke`
|
||||
* :c:data:`energy_c_lda`
|
||||
* :c:data:`energy_c_pbe`
|
||||
* :c:data:`energy_c_sr_lda`
|
||||
* :c:data:`energy_sr_x_lda`
|
||||
* :c:data:`energy_sr_x_pbe`
|
||||
* :c:data:`energy_x_lda`
|
||||
* :c:data:`energy_x_pbe`
|
||||
* :c:data:`energy_x_sr_lda`
|
||||
* :c:data:`energy_x_sr_pbe`
|
||||
* :c:data:`mos_in_r_array`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`mos_in_r_array_omp`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: final_grid_points_per_atom
|
||||
@ -361,31 +356,26 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`aos_grad_in_r_array`
|
||||
* :c:data:`aos_grad_in_r_array_transp`
|
||||
* :c:data:`aos_grad_in_r_array_transp_xyz`
|
||||
* :c:data:`aos_in_r_array`
|
||||
* :c:data:`aos_lapl_in_r_array`
|
||||
* :c:data:`aos_sr_vc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_lda_w`
|
||||
* :c:data:`aos_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_sr_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_sr_pbe_w`
|
||||
* :c:data:`elec_beta_num_grid_becke`
|
||||
* :c:data:`energy_c_lda`
|
||||
* :c:data:`energy_c_pbe`
|
||||
* :c:data:`energy_c_sr_lda`
|
||||
* :c:data:`energy_sr_x_lda`
|
||||
* :c:data:`energy_sr_x_pbe`
|
||||
* :c:data:`energy_x_lda`
|
||||
* :c:data:`energy_x_pbe`
|
||||
* :c:data:`energy_x_sr_lda`
|
||||
* :c:data:`energy_x_sr_pbe`
|
||||
* :c:data:`mos_in_r_array`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`mos_in_r_array_omp`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: final_weight_at_r_vector_per_atom
|
||||
@ -484,7 +474,6 @@ Providers
|
||||
|
||||
* :c:data:`final_grid_points`
|
||||
* :c:data:`final_grid_points_per_atom`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`weight_at_r`
|
||||
|
||||
|
||||
@ -556,31 +545,26 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`aos_grad_in_r_array`
|
||||
* :c:data:`aos_grad_in_r_array_transp`
|
||||
* :c:data:`aos_grad_in_r_array_transp_xyz`
|
||||
* :c:data:`aos_in_r_array`
|
||||
* :c:data:`aos_lapl_in_r_array`
|
||||
* :c:data:`aos_sr_vc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_lda_w`
|
||||
* :c:data:`aos_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_sr_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_sr_pbe_w`
|
||||
* :c:data:`elec_beta_num_grid_becke`
|
||||
* :c:data:`energy_c_lda`
|
||||
* :c:data:`energy_c_pbe`
|
||||
* :c:data:`energy_c_sr_lda`
|
||||
* :c:data:`energy_sr_x_lda`
|
||||
* :c:data:`energy_sr_x_pbe`
|
||||
* :c:data:`energy_x_lda`
|
||||
* :c:data:`energy_x_pbe`
|
||||
* :c:data:`energy_x_sr_lda`
|
||||
* :c:data:`energy_x_sr_pbe`
|
||||
* :c:data:`mos_in_r_array`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`mos_in_r_array_omp`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: index_final_points_per_atom
|
||||
@ -690,31 +674,26 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`aos_grad_in_r_array`
|
||||
* :c:data:`aos_grad_in_r_array_transp`
|
||||
* :c:data:`aos_grad_in_r_array_transp_xyz`
|
||||
* :c:data:`aos_in_r_array`
|
||||
* :c:data:`aos_lapl_in_r_array`
|
||||
* :c:data:`aos_sr_vc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_lda_w`
|
||||
* :c:data:`aos_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_sr_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_sr_pbe_w`
|
||||
* :c:data:`elec_beta_num_grid_becke`
|
||||
* :c:data:`energy_c_lda`
|
||||
* :c:data:`energy_c_pbe`
|
||||
* :c:data:`energy_c_sr_lda`
|
||||
* :c:data:`energy_sr_x_lda`
|
||||
* :c:data:`energy_sr_x_pbe`
|
||||
* :c:data:`energy_x_lda`
|
||||
* :c:data:`energy_x_pbe`
|
||||
* :c:data:`energy_x_sr_lda`
|
||||
* :c:data:`energy_x_sr_pbe`
|
||||
* :c:data:`mos_in_r_array`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`mos_in_r_array_omp`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: m_knowles
|
||||
@ -765,43 +744,45 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`alpha_dens_kin_in_r`
|
||||
* :c:data:`aos_grad_in_r_array`
|
||||
* :c:data:`aos_grad_in_r_array_transp`
|
||||
* :c:data:`aos_grad_in_r_array_transp_xyz`
|
||||
* :c:data:`aos_in_r_array`
|
||||
* :c:data:`aos_in_r_array_transp`
|
||||
* :c:data:`aos_lapl_in_r_array`
|
||||
* :c:data:`aos_lapl_in_r_array_transp`
|
||||
* :c:data:`aos_sr_vc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_sr_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_lda_w`
|
||||
* :c:data:`aos_vc_alpha_pbe_w`
|
||||
* :c:data:`aos_vc_alpha_sr_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_lda_w`
|
||||
* :c:data:`aos_vxc_alpha_pbe_w`
|
||||
* :c:data:`aos_vxc_alpha_sr_pbe_w`
|
||||
* :c:data:`elec_beta_num_grid_becke`
|
||||
* :c:data:`energy_c_lda`
|
||||
* :c:data:`energy_c_pbe`
|
||||
* :c:data:`energy_c_sr_lda`
|
||||
* :c:data:`energy_sr_x_lda`
|
||||
* :c:data:`energy_sr_x_pbe`
|
||||
* :c:data:`energy_x_lda`
|
||||
* :c:data:`energy_x_pbe`
|
||||
* :c:data:`energy_x_sr_lda`
|
||||
* :c:data:`energy_x_sr_pbe`
|
||||
* :c:data:`final_grid_points`
|
||||
* :c:data:`kinetic_density_generalized`
|
||||
* :c:data:`mos_grad_in_r_array`
|
||||
* :c:data:`mos_grad_in_r_array_tranp`
|
||||
* :c:data:`mos_in_r_array`
|
||||
* :c:data:`mos_in_r_array_omp`
|
||||
* :c:data:`mos_in_r_array_transp`
|
||||
* :c:data:`mos_lapl_in_r_array`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
* :c:data:`pot_grad_x_alpha_ao_pbe`
|
||||
* :c:data:`pot_grad_x_alpha_ao_sr_pbe`
|
||||
* :c:data:`pot_grad_xc_alpha_ao_pbe`
|
||||
* :c:data:`pot_grad_xc_alpha_ao_sr_pbe`
|
||||
* :c:data:`pot_scal_x_alpha_ao_pbe`
|
||||
* :c:data:`pot_scal_x_alpha_ao_sr_pbe`
|
||||
* :c:data:`pot_scal_xc_alpha_ao_pbe`
|
||||
* :c:data:`pot_sr_grad_x_alpha_ao_pbe`
|
||||
* :c:data:`pot_sr_grad_xc_alpha_ao_pbe`
|
||||
* :c:data:`pot_sr_scal_x_alpha_ao_pbe`
|
||||
* :c:data:`pot_sr_scal_xc_alpha_ao_pbe`
|
||||
* :c:data:`pot_scal_xc_alpha_ao_sr_pbe`
|
||||
* :c:data:`potential_c_alpha_ao_lda`
|
||||
* :c:data:`potential_c_alpha_ao_sr_lda`
|
||||
* :c:data:`potential_x_alpha_ao_lda`
|
||||
@ -854,6 +835,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`grid_type_sgn`
|
||||
* :c:data:`my_grid_becke`
|
||||
* :c:data:`my_n_pt_a_grid`
|
||||
* :c:data:`my_n_pt_r_grid`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -869,7 +853,6 @@ Providers
|
||||
* :c:data:`n_points_final_grid`
|
||||
* :c:data:`n_points_grid_per_atom`
|
||||
* :c:data:`n_pts_per_atom`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`weight_at_r`
|
||||
|
||||
|
||||
@ -896,6 +879,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`grid_type_sgn`
|
||||
* :c:data:`my_grid_becke`
|
||||
* :c:data:`my_n_pt_a_grid`
|
||||
* :c:data:`my_n_pt_r_grid`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -911,7 +897,6 @@ Providers
|
||||
* :c:data:`n_points_final_grid`
|
||||
* :c:data:`n_points_grid_per_atom`
|
||||
* :c:data:`n_pts_per_atom`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`weight_at_r`
|
||||
|
||||
|
||||
@ -1019,7 +1004,7 @@ Providers
|
||||
.. c:var:: weights_angular_points
|
||||
|
||||
|
||||
File : :file:`becke_numerical_grid/grid_becke.irp.f`
|
||||
File : :file:`becke_numerical_grid/angular_grid_pts.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1069,10 +1054,10 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`nucl_dist_inv`
|
||||
* :c:data:`slater_bragg_type_inter_distance_ua`
|
||||
* :c:data:`nucl_coord_transp`
|
||||
* :c:data:`nucl_dist_inv`
|
||||
* :c:data:`nucl_num`
|
||||
* :c:data:`slater_bragg_type_inter_distance_ua`
|
||||
|
||||
|
||||
.. c:function:: derivative_knowles_function:
|
||||
@ -1105,11 +1090,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_points_final_grid`
|
||||
* :c:data:`final_weight_at_r`
|
||||
* :c:data:`n_points_radial_grid`
|
||||
* :c:data:`grid_points_per_atom`
|
||||
* :c:data:`final_grid_points`
|
||||
* :c:data:`final_weight_at_r`
|
||||
* :c:data:`grid_points_per_atom`
|
||||
* :c:data:`n_points_final_grid`
|
||||
* :c:data:`n_points_radial_grid`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_num`
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -87,20 +87,19 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`generators_bitmask`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`i_bitmask_gen`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`s2_eig`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -147,9 +146,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -185,9 +184,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -221,9 +220,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -259,9 +258,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -297,20 +296,19 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`generators_bitmask`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`i_bitmask_gen`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`s2_eig`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -357,9 +355,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -395,9 +393,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -432,9 +430,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -470,9 +468,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
|
@ -80,20 +80,26 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`generators_bitmask`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`i_bitmask_gen`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`s2_eig`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run_cisd`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -140,9 +146,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -178,9 +184,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -214,9 +220,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -252,9 +258,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -290,20 +296,26 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`generators_bitmask`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`i_bitmask_gen`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`s2_eig`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run_cisd`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -350,9 +362,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -388,9 +400,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -425,9 +437,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -463,9 +475,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -483,3 +495,52 @@ Subroutines / functions
|
||||
* :c:func:`connected_to_hf`
|
||||
* :c:func:`fill_h_apply_buffer_no_selection`
|
||||
|
||||
|
||||
.. c:function:: run_cisd:
|
||||
|
||||
|
||||
File : :file:`cisd_routine.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine run_cisd
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ci_electronic_energy`
|
||||
* :c:data:`ci_energy`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`pseudo_sym`
|
||||
* :c:data:`psi_coef`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_cisd_energy`
|
||||
* :c:func:`h_apply_cisd`
|
||||
* :c:func:`h_apply_cisd_sym`
|
||||
* :c:func:`save_wavefunction`
|
||||
|
||||
Touches:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_occ_pattern`
|
||||
* :c:data:`c0_weight`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_sorted_bit`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_size`
|
||||
* :c:data:`psi_det_sorted_bit`
|
||||
* :c:data:`psi_occ_pattern`
|
||||
|
||||
|
@ -117,7 +117,6 @@ Providers
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`s2_matrix_all_dets`
|
||||
* :c:data:`s_z`
|
||||
* :c:data:`threshold_davidson`
|
||||
|
||||
Needed by:
|
||||
@ -162,7 +161,6 @@ Providers
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`s2_matrix_all_dets`
|
||||
* :c:data:`s_z`
|
||||
* :c:data:`threshold_davidson`
|
||||
|
||||
Needed by:
|
||||
@ -234,7 +232,6 @@ Providers
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`s2_matrix_all_dets`
|
||||
* :c:data:`s_z`
|
||||
* :c:data:`threshold_davidson`
|
||||
|
||||
Needed by:
|
||||
@ -245,20 +242,6 @@ Providers
|
||||
* :c:data:`ci_energy`
|
||||
|
||||
|
||||
.. c:var:: davidson_criterion
|
||||
|
||||
|
||||
File : :file:`davidson/parameters.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
character(64) :: davidson_criterion
|
||||
|
||||
|
||||
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||
|
||||
|
||||
|
||||
.. c:var:: diag_algorithm
|
||||
|
||||
|
||||
@ -382,9 +365,9 @@ Providers
|
||||
double precision, allocatable :: psi_s2 (N_states)
|
||||
|
||||
|
||||
psi_energy(i) = :math:`\langle \Psi_i | H | \Psi_i \rangle`
|
||||
psi_energy(i) = :math:`\langle \Psi_i | H | \Psi_i \rangle`
|
||||
|
||||
psi_s2(i) = :math:`\langle \Psi_i | S^2 | \Psi_i \rangle`
|
||||
psi_s2(i) = :math:`\langle \Psi_i | S^2 | \Psi_i \rangle`
|
||||
|
||||
Needs:
|
||||
|
||||
@ -408,9 +391,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_energy_two_e`
|
||||
* :c:data:`psi_energy_with_nucl_rep`
|
||||
* :c:data:`pt2_e0_denominator`
|
||||
|
||||
|
||||
.. c:var:: psi_energy_two_e
|
||||
@ -436,7 +417,6 @@ Providers
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_size`
|
||||
* :c:data:`psi_energy`
|
||||
|
||||
|
||||
|
||||
@ -474,9 +454,9 @@ Providers
|
||||
double precision, allocatable :: psi_s2 (N_states)
|
||||
|
||||
|
||||
psi_energy(i) = :math:`\langle \Psi_i | H | \Psi_i \rangle`
|
||||
psi_energy(i) = :math:`\langle \Psi_i | H | \Psi_i \rangle`
|
||||
|
||||
psi_s2(i) = :math:`\langle \Psi_i | S^2 | \Psi_i \rangle`
|
||||
psi_s2(i) = :math:`\langle \Psi_i | S^2 | \Psi_i \rangle`
|
||||
|
||||
Needs:
|
||||
|
||||
@ -500,9 +480,28 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_energy_two_e`
|
||||
* :c:data:`psi_energy_with_nucl_rep`
|
||||
* :c:data:`pt2_e0_denominator`
|
||||
|
||||
|
||||
.. c:var:: threshold_davidson_pt2
|
||||
|
||||
|
||||
File : :file:`davidson/diagonalization_hs2_dressed.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision :: threshold_davidson_pt2
|
||||
|
||||
|
||||
Threshold of Davidson's algorithm, using PT2 as a guide
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`threshold_davidson`
|
||||
|
||||
|
||||
|
||||
|
||||
@ -543,42 +542,6 @@ Subroutines / functions
|
||||
* :c:func:`davidson_pull_results`
|
||||
|
||||
|
||||
.. c:function:: davidson_converged:
|
||||
|
||||
|
||||
File : :file:`davidson/parameters.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine davidson_converged(energy,residual,wall,iterations,cpu,N_st,converged)
|
||||
|
||||
|
||||
True if the Davidson algorithm is converged
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`threshold_davidson`
|
||||
* :c:data:`davidson_criterion`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`davidson_diag_hjj_sjj`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`cpu_time`
|
||||
* :c:func:`wall_time`
|
||||
|
||||
|
||||
.. c:function:: davidson_diag_hjj_sjj:
|
||||
|
||||
|
||||
@ -615,28 +578,30 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`dressed_column_idx`
|
||||
* :c:data:`expected_s2`
|
||||
* :c:data:`s_z`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`dressing_column_h`
|
||||
* :c:data:`ezfio_work_dir`
|
||||
* :c:data:`davidson_sze_max`
|
||||
* :c:data:`state_following`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`nuclear_repulsion`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`qp_max_mem`
|
||||
* :c:data:`disk_based_davidson`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`only_expected_s2`
|
||||
* :c:data:`distributed_davidson`
|
||||
* :c:data:`dressed_column_idx`
|
||||
* :c:data:`dressing_column_h`
|
||||
* :c:data:`expected_s2`
|
||||
* :c:data:`ezfio_work_dir`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`nuclear_repulsion`
|
||||
* :c:data:`only_expected_s2`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`qp_max_mem`
|
||||
* :c:data:`s2_eig`
|
||||
* :c:data:`state_following`
|
||||
* :c:data:`threshold_davidson`
|
||||
* :c:data:`threshold_davidson_from_pt2`
|
||||
* :c:data:`threshold_davidson_pt2`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -652,8 +617,6 @@ Subroutines / functions
|
||||
|
||||
* :c:func:`c_f_pointer`
|
||||
* :c:func:`check_mem`
|
||||
* :c:func:`cpu_time`
|
||||
* :c:func:`davidson_converged`
|
||||
* :c:func:`dgemm`
|
||||
* :c:func:`dswap`
|
||||
* :c:func:`h_s2_u_0_nstates_openmp`
|
||||
@ -662,11 +625,12 @@ Subroutines / functions
|
||||
* :c:func:`mmap`
|
||||
* :c:func:`munmap`
|
||||
* :c:func:`normalize`
|
||||
* :c:func:`nullify_small_elements`
|
||||
* :c:func:`ortho_qr`
|
||||
* :c:func:`ortho_qr_unblocked`
|
||||
* :c:func:`random_number`
|
||||
* :c:func:`resident_memory`
|
||||
* :c:func:`sgemm`
|
||||
* :c:func:`wall_time`
|
||||
* :c:func:`write_double`
|
||||
* :c:func:`write_int`
|
||||
* :c:func:`write_time`
|
||||
@ -711,6 +675,7 @@ Subroutines / functions
|
||||
|
||||
* :c:data:`dressing_column_h`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -751,8 +716,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -779,8 +744,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
|
||||
|
||||
.. c:function:: davidson_push_results_async_recv:
|
||||
@ -820,8 +785,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -848,8 +813,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -907,13 +872,6 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run_slave_main`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
@ -938,18 +896,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`mpi_rank`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`mpi_initialized`
|
||||
* :c:data:`mpi_rank`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -986,24 +944,15 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`ci_electronic_energy`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`ci_electronic_energy`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`ci_energy`
|
||||
* :c:data:`ci_electronic_energy`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`psi_energy`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`remove_small_contributions`
|
||||
* :c:func:`run_cipsi`
|
||||
* :c:func:`run_stochastic_cipsi`
|
||||
|
||||
Touches:
|
||||
|
||||
@ -1040,9 +989,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_det`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1081,9 +1030,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1108,7 +1057,7 @@ Subroutines / functions
|
||||
.. c:function:: h_s2_u_0_nstates_openmp_work_1:
|
||||
|
||||
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_645`
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_708`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1124,18 +1073,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1160,7 +1109,7 @@ Subroutines / functions
|
||||
.. c:function:: h_s2_u_0_nstates_openmp_work_2:
|
||||
|
||||
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_645`
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_708`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1176,18 +1125,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1212,7 +1161,7 @@ Subroutines / functions
|
||||
.. c:function:: h_s2_u_0_nstates_openmp_work_3:
|
||||
|
||||
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_645`
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_708`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1228,18 +1177,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1264,7 +1213,7 @@ Subroutines / functions
|
||||
.. c:function:: h_s2_u_0_nstates_openmp_work_4:
|
||||
|
||||
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_645`
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_708`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1280,18 +1229,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1316,7 +1265,7 @@ Subroutines / functions
|
||||
.. c:function:: h_s2_u_0_nstates_openmp_work_n_int:
|
||||
|
||||
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_645`
|
||||
File : :file:`davidson/u0_h_u0.irp.f_template_708`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
@ -1332,18 +1281,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`singles_beta_csc`
|
||||
* :c:data:`singles_beta_csc_idx`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1388,17 +1337,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`mpi_initialized`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1443,9 +1393,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_order_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_det`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1483,9 +1433,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1525,16 +1475,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1575,16 +1525,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1625,16 +1575,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1675,16 +1625,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1725,16 +1675,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`psi_bilinear_matrix_columns_loc`
|
||||
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
|
||||
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
|
||||
* :c:data:`psi_bilinear_matrix_transp_values`
|
||||
* :c:data:`psi_bilinear_matrix_values`
|
||||
* :c:data:`psi_det_alpha_unique`
|
||||
* :c:data:`psi_det_beta_unique`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1774,20 +1724,13 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`mo_kinetic_integrals`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`nuclear_repulsion`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`one_e_dm_mo_alpha`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`print_summary`
|
||||
* :c:data:`psi_energy`
|
||||
|
||||
|
||||
.. c:function:: u_0_h_u_0:
|
||||
@ -1812,11 +1755,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`h_matrix_all_dets`
|
||||
* :c:data:`s2_matrix_all_dets`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`distributed_davidson`
|
||||
* :c:data:`h_matrix_all_dets`
|
||||
* :c:data:`n_det_max_full`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`s2_matrix_all_dets`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -1881,9 +1824,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mpi_master`
|
||||
* :c:data:`n_states_diag`
|
||||
* :c:data:`zmq_state`
|
||||
* :c:data:`mpi_master`
|
||||
|
||||
Touches:
|
||||
|
||||
|
@ -146,14 +146,6 @@ Providers
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_alpha_ao_for_dft_no_core
|
||||
@ -181,12 +173,64 @@ Providers
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_average_alpha_mo_for_dft
|
||||
|
||||
|
||||
File : :file:`density_for_dft/density_for_dft.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: one_e_dm_average_alpha_mo_for_dft (mo_num,mo_num)
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`state_average_weight`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_average_mo_for_dft`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_average_beta_mo_for_dft
|
||||
|
||||
|
||||
File : :file:`density_for_dft/density_for_dft.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: one_e_dm_average_beta_mo_for_dft (mo_num,mo_num)
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
* :c:data:`state_average_weight`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_average_mo_for_dft`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_average_mo_for_dft
|
||||
@ -206,16 +250,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`one_e_dm_mo_for_dft`
|
||||
* :c:data:`state_average_weight`
|
||||
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
|
||||
* :c:data:`one_e_dm_average_beta_mo_for_dft`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`short_range_hartree_operator`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_beta_ao_for_dft
|
||||
@ -246,14 +283,6 @@ Providers
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_beta_ao_for_dft_no_core
|
||||
@ -281,12 +310,6 @@ Providers
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_mo_alpha_for_dft
|
||||
@ -311,7 +334,7 @@ Providers
|
||||
* :c:data:`data_one_e_dm_alpha_mo`
|
||||
* :c:data:`density_for_dft`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
@ -328,11 +351,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_for_dft`
|
||||
* :c:data:`psi_dft_energy_kinetic`
|
||||
* :c:data:`trace_v_xc`
|
||||
* :c:data:`trace_v_xc_new`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_mo_alpha_for_dft_no_core
|
||||
@ -352,7 +373,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_states`
|
||||
@ -388,7 +409,7 @@ Providers
|
||||
* :c:data:`data_one_e_dm_beta_mo`
|
||||
* :c:data:`density_for_dft`
|
||||
* :c:data:`elec_beta_num`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
@ -405,11 +426,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_average_beta_mo_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_for_dft`
|
||||
* :c:data:`psi_dft_energy_kinetic`
|
||||
* :c:data:`trace_v_xc`
|
||||
* :c:data:`trace_v_xc_new`
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_mo_beta_for_dft_no_core
|
||||
@ -429,7 +448,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_states`
|
||||
@ -464,11 +483,4 @@ Providers
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_average_mo_for_dft`
|
||||
* :c:data:`short_range_hartree_operator`
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -107,10 +107,4 @@ Providers
|
||||
* :c:data:`correlation_functional`
|
||||
* :c:data:`exchange_functional`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_potential_alpha_xc`
|
||||
|
||||
|
@ -76,7 +76,6 @@ Providers
|
||||
|
||||
* :c:data:`diagonal_h_matrix_on_psi_det`
|
||||
* :c:data:`psi_det_hii`
|
||||
* :c:data:`psi_selectors_diag_h_mat`
|
||||
|
||||
|
||||
.. c:var:: elec_num_tab
|
||||
@ -108,5 +107,4 @@ Providers
|
||||
|
||||
* :c:data:`diagonal_h_matrix_on_psi_det`
|
||||
* :c:data:`psi_det_hii`
|
||||
* :c:data:`psi_selectors_diag_h_mat`
|
||||
|
||||
|
@ -97,6 +97,7 @@ Providers
|
||||
.. code:: fortran
|
||||
|
||||
logical :: do_only_1h1p
|
||||
logical :: do_only_cas
|
||||
logical :: do_ddci
|
||||
|
||||
|
||||
@ -112,6 +113,23 @@ Providers
|
||||
.. code:: fortran
|
||||
|
||||
logical :: do_only_1h1p
|
||||
logical :: do_only_cas
|
||||
logical :: do_ddci
|
||||
|
||||
|
||||
In the FCI case, all those are always false
|
||||
|
||||
|
||||
|
||||
.. c:var:: do_only_cas
|
||||
|
||||
|
||||
File : :file:`fci/class.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
logical :: do_only_1h1p
|
||||
logical :: do_only_cas
|
||||
logical :: do_ddci
|
||||
|
||||
|
||||
|
@ -86,8 +86,10 @@ Providers
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`is_periodic`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`read_ao_two_e_integrals`
|
||||
* :c:data:`scf_density_matrix_ao_alpha`
|
||||
* :c:data:`scf_density_matrix_ao_beta`
|
||||
|
||||
@ -130,8 +132,10 @@ Providers
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`is_periodic`
|
||||
* :c:data:`n_pt_max_integrals`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`read_ao_two_e_integrals`
|
||||
* :c:data:`scf_density_matrix_ao_alpha`
|
||||
* :c:data:`scf_density_matrix_ao_beta`
|
||||
|
||||
@ -339,12 +343,14 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_guess_type`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
* :c:data:`ao_ortho_lowdin_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -361,6 +367,7 @@ Subroutines / functions
|
||||
* :c:func:`ezfio_has_mo_basis_mo_coef`
|
||||
* :c:func:`huckel_guess`
|
||||
* :c:func:`mo_as_eigvectors_of_mo_matrix`
|
||||
* :c:func:`restore_symmetry`
|
||||
|
||||
Touches:
|
||||
|
||||
@ -372,51 +379,3 @@ Subroutines / functions
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
|
||||
|
||||
.. c:function:: run:
|
||||
|
||||
|
||||
File : :file:`hartree_fock/scf.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine run
|
||||
|
||||
|
||||
Run SCF calculation
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`mo_label`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`pt2`
|
||||
* :c:func:`scf`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_hartree_fock_energy`
|
||||
* :c:func:`roothaan_hall_scf`
|
||||
|
||||
Touches:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`mo_coef`
|
||||
|
||||
|
@ -118,10 +118,10 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`extrapolated_energy`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`pt2_iterations`
|
||||
* :c:data:`n_iter`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`pt2_iterations`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -139,7 +139,7 @@ Subroutines / functions
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine print_summary(e_,pt2_,error_,variance_,norm_,n_det_,n_occ_pattern_,n_st,s2_)
|
||||
subroutine print_summary(e_,pt2_data,pt2_data_err,n_det_,n_occ_pattern_,n_st,s2_)
|
||||
|
||||
|
||||
Print the extrapolated energy in the output
|
||||
@ -185,11 +185,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_iter`
|
||||
* :c:data:`energy_iterations`
|
||||
* :c:data:`n_det_iterations`
|
||||
* :c:data:`n_iter`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`pt2_iterations`
|
||||
* :c:data:`n_det_iterations`
|
||||
|
||||
Called by:
|
||||
|
||||
|
@ -461,8 +461,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`exchange_functional`
|
||||
* :c:data:`correlation_functional`
|
||||
* :c:data:`exchange_functional`
|
||||
|
||||
Called by:
|
||||
|
||||
|
@ -68,6 +68,49 @@ EZFIO parameters
|
||||
Providers
|
||||
---------
|
||||
|
||||
.. c:var:: mo_class
|
||||
|
||||
|
||||
File : :file:`mo_basis/mo_class.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
character*(32), allocatable :: mo_class (mo_num)
|
||||
|
||||
|
||||
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mpi_master`
|
||||
* :c:data:`output_wall_time_0`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`full_ijkl_bitmask`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_all_but_del_orb`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`list_del`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_virt`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_all_but_del_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_del_orb`
|
||||
* :c:data:`n_inact_orb`
|
||||
* :c:data:`n_virt_orb`
|
||||
|
||||
|
||||
.. c:var:: mo_coef
|
||||
|
||||
|
||||
@ -100,11 +143,8 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_mo_alpha`
|
||||
* :c:data:`fock_matrix_mo_beta`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:data:`mo_coef_in_ao_ortho_basis`
|
||||
* :c:data:`mo_coef_novirt`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_dipole_x`
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
@ -113,32 +153,34 @@ Providers
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`mo_spread_x`
|
||||
* :c:data:`mo_two_e_int_erf_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_ao_alpha`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
* :c:data:`one_e_spin_density_ao`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`s_mo_coef`
|
||||
* :c:data:`scf_density_matrix_ao_alpha`
|
||||
* :c:data:`scf_density_matrix_ao_beta`
|
||||
|
||||
|
||||
.. c:var:: mo_coef_begin_iteration
|
||||
.. c:var:: mo_coef_imag
|
||||
|
||||
|
||||
File : :file:`mo_basis/track_orb.irp.f`
|
||||
File : :file:`mo_basis/mos.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: mo_coef_begin_iteration (ao_num,mo_num)
|
||||
double precision, allocatable :: mo_coef_imag (ao_num,mo_num)
|
||||
|
||||
|
||||
Void provider to store the coefficients of the |MO| basis at the beginning of the SCF iteration
|
||||
Molecular orbital coefficients on |AO| basis set
|
||||
|
||||
Usefull to track some orbitals
|
||||
mo_coef_imag(i,j) = coefficient of the i-th |AO| on the jth |MO|
|
||||
|
||||
mo_label : Label characterizing the |MOs| (local, canonical, natural, etc)
|
||||
|
||||
Needs:
|
||||
|
||||
@ -146,7 +188,9 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mpi_master`
|
||||
|
||||
|
||||
|
||||
@ -202,9 +246,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_int_erf_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
|
||||
@ -269,33 +311,31 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_ortho_canonical_nucl_elec_integrals`
|
||||
* :c:data:`ao_ortho_lowdin_nucl_elec_integrals`
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`big_array_coulomb_integrals`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`core_fock_operator_erf`
|
||||
* :c:data:`data_one_e_dm_alpha_mo`
|
||||
* :c:data:`data_one_e_dm_beta_mo`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_ao`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_mo_alpha`
|
||||
* :c:data:`fock_matrix_mo_beta`
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:data:`full_ijkl_bitmask`
|
||||
* :c:data:`int_erf_3_index`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_all_but_del_orb`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`list_core_inact`
|
||||
* :c:data:`list_core_inact_act`
|
||||
* :c:data:`list_del`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_inact_act`
|
||||
* :c:data:`list_virt`
|
||||
* :c:data:`mo_class`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_begin_iteration`
|
||||
* :c:data:`mo_coef_imag`
|
||||
* :c:data:`mo_coef_in_ao_ortho_basis`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_dipole_x`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_erf_cache_min`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
* :c:data:`mo_integrals_n_e_per_atom`
|
||||
@ -305,21 +345,34 @@ Providers
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`mo_spread_x`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_two_e_int_erf_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integral_jj_from_ao`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_two_e_integrals_jj`
|
||||
* :c:data:`mo_two_e_integrals_vv_from_ao`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_all_but_del_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_del_orb`
|
||||
* :c:data:`n_inact_orb`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_virt_orb`
|
||||
* :c:data:`one_body_dm_mo_alpha_one_det`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_ao_alpha`
|
||||
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
|
||||
* :c:data:`one_e_dm_average_beta_mo_for_dft`
|
||||
* :c:data:`one_e_dm_average_mo_for_dft`
|
||||
* :c:data:`one_e_dm_dagger_mo_spin_index`
|
||||
* :c:data:`one_e_dm_mo`
|
||||
* :c:data:`one_e_dm_mo_alpha`
|
||||
* :c:data:`one_e_dm_mo_alpha_average`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
|
||||
* :c:data:`one_e_dm_mo_diff`
|
||||
* :c:data:`one_e_dm_mo_for_dft`
|
||||
* :c:data:`one_e_dm_mo_spin_index`
|
||||
* :c:data:`one_e_spin_density_ao`
|
||||
* :c:data:`one_e_spin_density_mo`
|
||||
@ -408,23 +461,23 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_mo_alpha`
|
||||
* :c:data:`fock_matrix_mo_beta`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:func:`four_idx_novvvv`
|
||||
* :c:data:`mo_dipole_x`
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
* :c:data:`mo_integrals_n_e_per_atom`
|
||||
* :c:data:`mo_kinetic_integrals`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`mo_spread_x`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -432,6 +485,7 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`dgemm`
|
||||
* :c:func:`restore_symmetry`
|
||||
|
||||
|
||||
.. c:function:: give_all_mos_and_grad_and_lapl_at_r:
|
||||
@ -451,8 +505,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -479,8 +533,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -507,8 +561,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -519,36 +573,6 @@ Subroutines / functions
|
||||
* :c:func:`give_all_aos_at_r`
|
||||
|
||||
|
||||
.. c:function:: initialize_mo_coef_begin_iteration:
|
||||
|
||||
|
||||
File : :file:`mo_basis/track_orb.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine initialize_mo_coef_begin_iteration
|
||||
|
||||
|
||||
|
||||
Initialize :c:data:`mo_coef_begin_iteration` to the current :c:data:`mo_coef`
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef_begin_iteration`
|
||||
* :c:data:`mo_coef`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`damping_scf`
|
||||
* :c:func:`roothaan_hall_scf`
|
||||
|
||||
|
||||
.. c:function:: mix_mo_jk:
|
||||
|
||||
|
||||
@ -593,20 +617,10 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`create_guess`
|
||||
* :c:func:`damping_scf`
|
||||
* :c:func:`hcore_guess`
|
||||
* :c:func:`roothaan_hall_scf`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -634,10 +648,10 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -665,10 +679,10 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -687,45 +701,36 @@ Subroutines / functions
|
||||
* :c:func:`write_time`
|
||||
|
||||
|
||||
.. c:function:: reorder_core_orb:
|
||||
.. c:function:: mo_coef_new_as_svd_vectors_of_mo_matrix_eig:
|
||||
|
||||
|
||||
File : :file:`mo_basis/track_orb.irp.f`
|
||||
File : :file:`mo_basis/utils.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine reorder_core_orb
|
||||
subroutine mo_coef_new_as_svd_vectors_of_mo_matrix_eig(matrix,lda,m,n,mo_coef_before,eig,mo_coef_new)
|
||||
|
||||
|
||||
routines that takes the current :c:data:`mo_coef` and reorder the core orbitals (see :c:data:`list_core` and :c:data:`n_core_orb`) according to the overlap with :c:data:`mo_coef_begin_iteration`
|
||||
You enter with matrix in the MO basis defined with the mo_coef_before.
|
||||
|
||||
You SVD the matrix and set the eigenvectors as mo_coef_new ordered by increasing singular values
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef_begin_iteration`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`list_inact`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`damping_scf`
|
||||
* :c:func:`roothaan_hall_scf`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`dsort`
|
||||
* :c:func:`dgemm`
|
||||
* :c:func:`svd`
|
||||
* :c:func:`write_time`
|
||||
|
||||
|
||||
.. c:function:: save_mos:
|
||||
@ -744,28 +749,21 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`ao_md5`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_class`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_occ`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`damping_scf`
|
||||
* :c:func:`hcore_guess`
|
||||
* :c:func:`huckel_guess`
|
||||
* :c:func:`roothaan_hall_scf`
|
||||
* :c:func:`rotate_mos`
|
||||
* :c:func:`save_natural_mos`
|
||||
* :c:func:`save_ortho_mos`
|
||||
* :c:func:`sort_by_fock_energies`
|
||||
* :c:func:`swap_mos`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -773,6 +771,7 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_mo_basis_ao_md5`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_class`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_coef`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_label`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_num`
|
||||
@ -780,6 +779,36 @@ Subroutines / functions
|
||||
* :c:func:`system`
|
||||
|
||||
|
||||
.. c:function:: save_mos_no_occ:
|
||||
|
||||
|
||||
File : :file:`mo_basis/utils.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine save_mos_no_occ
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_mo_basis_mo_coef`
|
||||
* :c:func:`system`
|
||||
|
||||
|
||||
.. c:function:: save_mos_truncated:
|
||||
|
||||
|
||||
@ -796,12 +825,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`ao_md5`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_class`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_occ`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -809,6 +839,7 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_mo_basis_ao_md5`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_class`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_coef`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_label`
|
||||
* :c:func:`ezfio_set_mo_basis_mo_num`
|
||||
|
@ -176,7 +176,7 @@ Providers
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`read_mo_integrals_e_n`
|
||||
* :c:data:`read_mo_integrals_n_e`
|
||||
|
||||
Needed by:
|
||||
|
||||
@ -264,11 +264,9 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`do_pseudo`
|
||||
* :c:data:`mo_integrals_n_e`
|
||||
* :c:data:`mo_kinetic_integrals`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_pseudo_integrals`
|
||||
* :c:data:`read_mo_one_e_integrals`
|
||||
|
||||
Needed by:
|
||||
@ -277,7 +275,6 @@ Providers
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`core_energy`
|
||||
* :c:data:`core_energy_erf`
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`psi_energy_h_core`
|
||||
* :c:data:`ref_bitmask_energy`
|
||||
@ -331,12 +328,6 @@ Providers
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`read_mo_integrals_pseudo`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
|
||||
|
||||
.. c:var:: mo_spread_x
|
||||
@ -445,12 +436,6 @@ Providers
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao`
|
||||
|
||||
|
||||
|
||||
@ -477,15 +462,8 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`s_mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao`
|
||||
* :c:data:`s_mo_coef`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -513,8 +491,16 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -540,26 +526,27 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_overlap`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`lin_dep_cutoff`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_overlap`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`save_ortho_mos`
|
||||
* :c:func:`scf`
|
||||
* :c:func:`save_natural_mos`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`nullify_small_elements`
|
||||
* :c:func:`ortho_lowdin`
|
||||
* :c:func:`restore_symmetry`
|
||||
|
||||
Touches:
|
||||
|
||||
@ -567,5 +554,4 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
|
||||
|
@ -57,7 +57,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`n_core_orb`
|
||||
@ -82,12 +82,14 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_integrals_erf_cache`
|
||||
* :c:data:`mo_integrals_erf_cache_min`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
||||
|
||||
@ -403,7 +405,6 @@ Providers
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
@ -472,7 +473,6 @@ Providers
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
@ -506,7 +506,6 @@ Providers
|
||||
* :c:data:`ao_integrals_erf_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
@ -578,14 +577,14 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -796,8 +795,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -830,8 +829,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -925,11 +924,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_two_e_int_erf_jj`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
|
||||
|
||||
.. c:function:: save_erf_two_e_integrals_mo:
|
||||
@ -948,9 +947,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -985,9 +984,9 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_integrals_erf_map`
|
||||
* :c:data:`mo_two_e_integrals_erf_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -43,28 +43,40 @@ EZFIO parameters
|
||||
|
||||
Default: 1.e-15
|
||||
|
||||
.. option:: no_vvvv_integrals
|
||||
|
||||
If `True`, computes all integrals except for the integrals having 4 virtual indices
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: no_ivvv_integrals
|
||||
|
||||
Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual indices and 1 belonging to the core inactive active orbitals
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: no_vvv_integrals
|
||||
|
||||
Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual orbitals
|
||||
|
||||
Default: False
|
||||
|
||||
|
||||
Providers
|
||||
---------
|
||||
|
||||
.. c:var:: banned_excitation
|
||||
|
||||
|
||||
File : :file:`mo_two_e_ints/map_integrals.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
logical, allocatable :: banned_excitation (mo_num,mo_num)
|
||||
|
||||
|
||||
If true, the excitation is banned in the selection. Useful with local MOs.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Needed by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`big_array_coulomb_integrals`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`mo_two_e_integrals_jj`
|
||||
|
||||
|
||||
.. c:var:: big_array_coulomb_integrals
|
||||
|
||||
|
||||
@ -85,6 +97,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
@ -96,7 +109,6 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`coef_hf_selector`
|
||||
* :c:data:`h_matrix_all_dets`
|
||||
* :c:data:`h_matrix_cas`
|
||||
|
||||
@ -121,6 +133,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
@ -132,7 +145,6 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`coef_hf_selector`
|
||||
* :c:data:`h_matrix_all_dets`
|
||||
* :c:data:`h_matrix_cas`
|
||||
|
||||
@ -154,7 +166,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
* :c:data:`mo_two_e_integrals_jj`
|
||||
* :c:data:`n_core_orb`
|
||||
@ -179,12 +191,15 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
||||
|
||||
@ -226,6 +241,30 @@ Providers
|
||||
* :c:func:`map_update`
|
||||
|
||||
|
||||
.. c:var:: mo_coef_novirt
|
||||
|
||||
|
||||
File : :file:`mo_two_e_ints/four_idx_novvvv.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
double precision, allocatable :: mo_coef_novirt (ao_num,n_core_inact_act_orb)
|
||||
|
||||
|
||||
MO coefficients without virtual MOs
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`list_core_inact_act`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`n_core_inact_act_orb`
|
||||
|
||||
|
||||
|
||||
.. c:var:: mo_integrals_cache
|
||||
|
||||
|
||||
@ -417,8 +456,8 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`big_array_coulomb_integrals`
|
||||
* :c:data:`coef_hf_selector`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
@ -453,8 +492,6 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`mo_coef`
|
||||
@ -480,12 +517,12 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`core_inact_act_bitmask_4`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`full_ijkl_bitmask_4`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_core_inact_act`
|
||||
* :c:data:`mo_class`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
@ -493,9 +530,8 @@ Providers
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mpi_master`
|
||||
* :c:data:`n_core_inact_act_orb`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`no_ivvv_integrals`
|
||||
* :c:data:`no_vvv_integrals`
|
||||
* :c:data:`no_vvvv_integrals`
|
||||
* :c:data:`read_mo_two_e_integrals`
|
||||
|
||||
@ -504,9 +540,12 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`act_2_rdm_aa_mo`
|
||||
* :c:data:`act_2_rdm_ab_mo`
|
||||
* :c:data:`act_2_rdm_bb_mo`
|
||||
* :c:data:`act_2_rdm_spin_trace_mo`
|
||||
* :c:data:`big_array_coulomb_integrals`
|
||||
* :c:data:`ci_electronic_energy`
|
||||
* :c:data:`coef_hf_selector`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
@ -537,6 +576,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
@ -573,6 +613,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
@ -612,8 +653,6 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`mo_coef`
|
||||
@ -643,6 +682,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_integrals_map`
|
||||
@ -682,8 +722,6 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`mo_coef`
|
||||
@ -717,15 +755,13 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_virt`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_virt_orb`
|
||||
|
||||
|
||||
|
||||
@ -754,15 +790,13 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_virt`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_virt_orb`
|
||||
|
||||
|
||||
|
||||
@ -791,15 +825,13 @@ Providers
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_integrals_threshold`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_overlap_abs`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`do_direct_integrals`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_virt`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`n_virt_orb`
|
||||
|
||||
|
||||
|
||||
@ -824,13 +856,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
@ -838,6 +870,7 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`four_idx_novvvv2`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
@ -846,7 +879,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`bitstring_to_list`
|
||||
* :c:func:`bitstring_to_str`
|
||||
* :c:func:`cpu_time`
|
||||
* :c:func:`get_ao_two_e_integrals`
|
||||
* :c:func:`insert_into_mo_integrals_map`
|
||||
@ -872,22 +904,15 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
@ -919,29 +944,21 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_coef_transp`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_int`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`bitstring_to_list`
|
||||
* :c:func:`bitstring_to_str`
|
||||
* :c:func:`cpu_time`
|
||||
* :c:func:`get_ao_two_e_integrals`
|
||||
* :c:func:`insert_into_mo_integrals_map`
|
||||
@ -950,6 +967,44 @@ Subroutines / functions
|
||||
* :c:func:`wall_time`
|
||||
|
||||
|
||||
.. c:function:: ao_to_mo_novirt:
|
||||
|
||||
|
||||
File : :file:`mo_two_e_ints/four_idx_novvvv.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine ao_to_mo_novirt(A_ao,LDA_ao,A_mo,LDA_mo)
|
||||
|
||||
|
||||
Transform A from the |AO| basis to the |MO| basis excluding virtuals
|
||||
|
||||
$C^\dagger.A_{ao}.C$
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_coef_novirt`
|
||||
* :c:data:`n_core_inact_act_orb`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`four_idx_novvvv`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`dgemm`
|
||||
|
||||
|
||||
.. c:function:: clear_mo_map:
|
||||
|
||||
|
||||
@ -1005,6 +1060,81 @@ Subroutines / functions
|
||||
* :c:func:`ezfio_set_work_empty`
|
||||
|
||||
|
||||
.. c:function:: four_idx_novvvv:
|
||||
|
||||
|
||||
File : :file:`mo_two_e_ints/four_idx_novvvv.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine four_idx_novvvv
|
||||
|
||||
|
||||
Retransform MO integrals for next CAS-SCF step
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_integrals_map`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`list_core_inact_act`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_core_inact_act_orb`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ao_to_mo`
|
||||
* :c:func:`ao_to_mo_novirt`
|
||||
* :c:func:`map_append`
|
||||
* :c:func:`map_shrink`
|
||||
* :c:func:`map_sort`
|
||||
* :c:func:`map_unique`
|
||||
* :c:func:`two_e_integrals_index`
|
||||
|
||||
|
||||
.. c:function:: four_idx_novvvv2:
|
||||
|
||||
|
||||
File : :file:`mo_two_e_ints/four_idx_novvvv.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine four_idx_novvvv2
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`core_inact_act_bitmask_4`
|
||||
* :c:data:`full_ijkl_bitmask_4`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`virt_bitmask`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`add_integrals_to_map`
|
||||
|
||||
|
||||
.. c:function:: get_mo_map_size:
|
||||
|
||||
|
||||
@ -1043,17 +1173,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`get_d0`
|
||||
* :c:func:`get_d1`
|
||||
* :c:func:`get_mo_two_e_integrals_i1j1`
|
||||
* :c:func:`get_mo_two_e_integrals_ij`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -1092,14 +1223,6 @@ Subroutines / functions
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`map_get_many`
|
||||
* :c:func:`two_e_integrals_index`
|
||||
|
||||
|
||||
.. c:function:: get_mo_two_e_integrals_exch_ii:
|
||||
|
||||
@ -1130,14 +1253,6 @@ Subroutines / functions
|
||||
* :c:data:`fock_operator_closed_shell_ref_bitmask`
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`map_get_many`
|
||||
* :c:func:`two_e_integrals_index`
|
||||
|
||||
|
||||
.. c:function:: get_mo_two_e_integrals_i1j1:
|
||||
|
||||
@ -1159,18 +1274,13 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_integrals_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`i2radix_sort`
|
||||
* :c:func:`i8radix_sort`
|
||||
* :c:func:`iradix_sort`
|
||||
* :c:func:`map_get_many`
|
||||
* :c:func:`two_e_integrals_index`
|
||||
* :c:func:`get_mo_two_e_integrals`
|
||||
|
||||
|
||||
.. c:function:: get_mo_two_e_integrals_ij:
|
||||
@ -1187,24 +1297,12 @@ Subroutines / functions
|
||||
i(1)j(2) 1/r12 k(1)l(2)
|
||||
i, j for k,l fixed.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`mo_integrals_map`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`i2radix_sort`
|
||||
* :c:func:`i8radix_sort`
|
||||
* :c:func:`iradix_sort`
|
||||
* :c:func:`map_get_many`
|
||||
* :c:func:`two_e_integrals_index`
|
||||
* :c:func:`get_mo_two_e_integrals`
|
||||
|
||||
|
||||
.. c:function:: get_two_e_integral:
|
||||
@ -1224,9 +1322,10 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`banned_excitation`
|
||||
* :c:data:`mo_integrals_cache`
|
||||
* :c:data:`mo_integrals_cache_min`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -1306,7 +1405,6 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`add_integrals_to_map`
|
||||
* :c:func:`add_integrals_to_map_erf`
|
||||
* :c:func:`add_integrals_to_map_no_exit_34`
|
||||
* :c:func:`add_integrals_to_map_three_indices`
|
||||
|
||||
|
@ -38,7 +38,7 @@ EZFIO parameters
|
||||
Nuclear coordinates in the format (:, {x,y,z})
|
||||
|
||||
|
||||
.. option:: disk_access_nuclear_repulsion
|
||||
.. option:: io_nuclear_repulsion
|
||||
|
||||
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
|
||||
|
||||
@ -255,10 +255,7 @@ Providers
|
||||
* :c:data:`ao_pseudo_integrals_local`
|
||||
* :c:data:`ao_pseudo_integrals_non_local`
|
||||
* :c:data:`ao_spread_x`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`ao_two_e_integral_erf_schwartz`
|
||||
* :c:data:`ao_two_e_integral_schwartz`
|
||||
* :c:data:`ao_two_e_integrals_erf_in_map`
|
||||
* :c:data:`ao_two_e_integrals_in_map`
|
||||
* :c:data:`center_of_mass`
|
||||
* :c:data:`inertia_tensor`
|
||||
@ -498,7 +495,7 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`disk_access_nuclear_repulsion`
|
||||
* :c:data:`io_nuclear_repulsion`
|
||||
* :c:data:`mpi_master`
|
||||
* :c:data:`nucl_charge`
|
||||
* :c:data:`nucl_coord`
|
||||
@ -512,11 +509,7 @@ Providers
|
||||
|
||||
* :c:data:`ci_energy`
|
||||
* :c:data:`core_energy`
|
||||
* :c:data:`core_energy_erf`
|
||||
* :c:data:`hf_energy`
|
||||
* :c:data:`psi_energy_with_nucl_rep`
|
||||
* :c:data:`pt2_e0_denominator`
|
||||
* :c:data:`scf_energy`
|
||||
|
||||
|
||||
.. c:var:: slater_bragg_radii
|
||||
|
@ -218,10 +218,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`selection_criterion`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`elec_beta_num`
|
||||
* :c:data:`h_apply_buffer_allocated`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`selection_criterion`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -252,11 +254,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -287,11 +290,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -322,11 +326,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -357,11 +362,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -392,11 +398,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -427,11 +434,12 @@ Subroutines / functions
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -461,11 +469,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -497,11 +506,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -533,11 +543,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -569,11 +580,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -605,11 +617,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -641,11 +654,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det_generators`
|
||||
* :c:data:`psi_selectors`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -676,11 +690,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`selection_criterion`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`selection_criterion`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -721,11 +735,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`selection_criterion`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`selection_criterion`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -766,10 +781,11 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -811,11 +827,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -856,12 +873,13 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ref_bitmask`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`ref_bitmask`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -902,11 +920,12 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_det_selectors`
|
||||
* :c:data:`selection_criterion`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_selectors`
|
||||
* :c:data:`psi_selectors_size`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`selection_criterion`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -944,16 +963,16 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`selection_criterion`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`psi_det_size`
|
||||
* :c:data:`n_det_generators`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det_sorted`
|
||||
* :c:data:`psi_det`
|
||||
* :c:data:`psi_det_size`
|
||||
* :c:data:`psi_det_sorted`
|
||||
* :c:data:`selection_criterion`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -178,9 +178,11 @@ Providers
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
||||
|
||||
@ -206,8 +208,8 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`max_dim_diis`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`max_dim_diis`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -221,8 +223,10 @@ Providers
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`dgecon`
|
||||
* :c:func:`dgemm`
|
||||
* :c:func:`dsysvx`
|
||||
* :c:func:`dgesv`
|
||||
* :c:func:`dgetrf`
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_ao
|
||||
@ -297,8 +301,10 @@ Providers
|
||||
* :c:data:`fock_matrix_mo_alpha`
|
||||
* :c:data:`fock_matrix_mo_beta`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
||||
Needed by:
|
||||
@ -346,8 +352,10 @@ Providers
|
||||
* :c:data:`fock_matrix_mo_alpha`
|
||||
* :c:data:`fock_matrix_mo_beta`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`list_core`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
||||
Needed by:
|
||||
@ -637,18 +645,18 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`scf_density_matrix_ao_beta`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`scf_density_matrix_ao_alpha`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_ao`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`n_it_scf_max`
|
||||
* :c:data:`scf_density_matrix_ao_alpha`
|
||||
* :c:data:`scf_density_matrix_ao_beta`
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`thresh_scf`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -690,14 +698,15 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_one_e_integrals`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_one_e_integrals`
|
||||
* :c:data:`ao_overlap`
|
||||
* :c:data:`ao_two_e_integral_alpha`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -711,6 +720,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`orthonormalize_mos`
|
||||
* :c:func:`restore_symmetry`
|
||||
* :c:func:`save_mos`
|
||||
|
||||
Touches:
|
||||
@ -740,34 +751,27 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`max_dim_diis`
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`ao_md5`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`thresh_scf`
|
||||
* :c:data:`scf_algorithm`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`eigenvectors_fock_matrix_mo`
|
||||
* :c:data:`fock_matrix_ao`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`n_it_scf_max`
|
||||
* :c:data:`threshold_diis_nonzero`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`max_dim_diis`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`n_it_scf_max`
|
||||
* :c:data:`scf_algorithm`
|
||||
* :c:data:`scf_energy`
|
||||
* :c:data:`thresh_scf`
|
||||
* :c:data:`threshold_diis_nonzero`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -777,6 +781,8 @@ Subroutines / functions
|
||||
* :c:func:`extrapolate_fock_matrix`
|
||||
* :c:func:`initialize_mo_coef_begin_iteration`
|
||||
* :c:func:`mo_as_eigvectors_of_mo_matrix`
|
||||
* :c:func:`nullify_small_elements`
|
||||
* :c:func:`orthonormalize_mos`
|
||||
* :c:func:`reorder_core_orb`
|
||||
* :c:func:`save_mos`
|
||||
* :c:func:`write_double`
|
||||
|
@ -33,6 +33,76 @@ Programs
|
||||
Subroutines / functions
|
||||
-----------------------
|
||||
|
||||
.. c:function:: print_energy:
|
||||
|
||||
|
||||
File : :file:`print_energy.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine print_energy
|
||||
|
||||
|
||||
Prints the energy of the wave function stored in the |EZFIO| directory.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`read_wf`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run`
|
||||
|
||||
Touches:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`read_wf`
|
||||
|
||||
|
||||
.. c:function:: print_hamiltonian:
|
||||
|
||||
|
||||
File : :file:`print_hamiltonian.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine print_hamiltonian
|
||||
|
||||
|
||||
Prints the Hamiltonian matrix defined in the space of determinants
|
||||
present in the |EZFIO| directory.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`read_wf`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`run`
|
||||
|
||||
Touches:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`read_wf`
|
||||
|
||||
|
||||
.. c:function:: routine:
|
||||
|
||||
|
||||
@ -80,8 +150,8 @@ Subroutines / functions
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`n_states`
|
||||
|
||||
Called by:
|
||||
|
||||
@ -138,3 +208,41 @@ Subroutines / functions
|
||||
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_ao`
|
||||
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_mo`
|
||||
|
||||
|
||||
.. c:function:: run:
|
||||
|
||||
|
||||
File : :file:`print_hamiltonian.irp.f`
|
||||
|
||||
.. code:: fortran
|
||||
|
||||
subroutine run
|
||||
|
||||
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_det`
|
||||
* :c:data:`n_int`
|
||||
* :c:data:`psi_det`
|
||||
|
||||
Called by:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`print_energy`
|
||||
* :c:func:`print_hamiltonian`
|
||||
* :c:func:`pt2`
|
||||
* :c:func:`scf`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`i_h_j`
|
||||
|
||||
|
@ -29,7 +29,7 @@ be used. In addition, all the shell scripts should be under
|
||||
|
||||
The exit code of the script should be 0 upon success only.
|
||||
|
||||
Bash and Python2 are the only shell scripting language permitted for
|
||||
Bash and Python3 are the only shell scripting language permitted for
|
||||
executables.
|
||||
|
||||
|
||||
@ -73,11 +73,10 @@ Bash
|
||||
Python
|
||||
------
|
||||
|
||||
Only Python2 is supported. The reason is that some dependencies use Python2,
|
||||
and we do not want yet to add an extra dependency to Python3.
|
||||
Only Python3 is supported.
|
||||
|
||||
Python scripts should start with ``#!/usr/bin/env python2`` to mention
|
||||
explicitly that Python2 has to be used.
|
||||
Python scripts should start with ``#!/usr/bin/env python3`` to mention
|
||||
explicitly that Python3 has to be used, possibly from a conda installation.
|
||||
|
||||
:command:`pylint` should be used to increase the quality of the source code.
|
||||
|
||||
|
@ -6,7 +6,7 @@ To program in the |qp|, it is required that you are familiar with the |IRPF90|
|
||||
code generator. A GitBook can be found `here <http://scemama.gitbooks.io/irpf90>`_,
|
||||
and programmers are encouraged to visit this manual.
|
||||
|
||||
|IRPF90| make programming very simple. The only information a programmer needs
|
||||
|IRPF90| makes programming very simple. The only information a programmer needs
|
||||
in order to write a new program is the name of the required |IRPF90| entities
|
||||
which may already exist in other modules. For example, writing a program which
|
||||
prints the Hartree-Fock energy is as simple as:
|
||||
@ -24,7 +24,7 @@ prints the Hartree-Fock energy is as simple as:
|
||||
|
||||
|
||||
The only required information was the existence of a provider for
|
||||
:command:`hf_energy`. A detailed list of all the providers, subroutines
|
||||
:command:`HF_energy`. A detailed list of all the providers, subroutines
|
||||
and functions of the |qp| can be found in the appendix of this manual.
|
||||
|
||||
|
||||
@ -32,10 +32,10 @@ and functions of the |qp| can be found in the appendix of this manual.
|
||||
Architecture
|
||||
============
|
||||
|
||||
As |IRPF90| is used, the programmer doesn't have a full control of the sequence
|
||||
As |IRPF90| is used, the programmer doesn't have full control of the sequence
|
||||
of instructions in the produced Fortran code. This explains why the input data
|
||||
is stored in a database rather than in sequential text files. Indeed, the
|
||||
programmer can't know by advance in which order the files will be read, so a
|
||||
is stored in a database rather than in sequential text files. Consequently, the
|
||||
programmer can't know in advance the order in which the files will be read, so a
|
||||
simple random access to persistent data is needed. The |EZFIO| library generator
|
||||
is a practical answer to this problem.
|
||||
|
||||
@ -45,10 +45,10 @@ This is done mostly using the command line or scripting.
|
||||
|
||||
.. important::
|
||||
|
||||
Each command modifies the state of the |EZFIO| database, so running twice the
|
||||
same program on the same database may have different behaviors because of the
|
||||
Each command modifies the state of the |EZFIO| database, so running the
|
||||
same program twice on the same database may have different behavior because of the
|
||||
state of the database. For reproducibility, users are encouraged to run scripts
|
||||
where a fresg new |EZFIO| database is created at the beginning of the
|
||||
where a fresh new |EZFIO| database is created at the beginning of the
|
||||
script. This way of running the |qp| makes calculations reproducible.
|
||||
|
||||
|
||||
@ -97,7 +97,7 @@ in the `FCIDUMP` format (see :ref:`fcidump`).
|
||||
|
||||
All the results are stored in the |EZFIO| directory, so users willing to fetch
|
||||
data such as the |MOs| or the |CI| coefficients should use the |EZFIO| API.
|
||||
There multiple major ways to do this:
|
||||
There are multiple major ways to do this:
|
||||
|
||||
* Write a script in Python or OCaml and use the Python |EZFIO| API. The script
|
||||
:file:`$QP_ROOT/bin/qp_convert_output_to_ezfio` is a good example to understand
|
||||
|
@ -22,7 +22,7 @@ cisd
|
||||
* **Ground state calculation**: if even after a :c:func:`cis` calculation, natural
|
||||
orbitals (see :c:func:`save_natorb`) and then :c:func:`scf` optimization, you are not sure to have the lowest scf
|
||||
solution,
|
||||
do the same strategy with the :c:func:`cisd` executable instead of the :c:func:`cis` exectuable to generate the natural
|
||||
do the same strategy with the :c:func:`cisd` executable instead of the :c:func:`cis` exectuable to generate the natural
|
||||
orbitals as a guess for the :c:func:`scf`.
|
||||
|
||||
|
||||
@ -57,6 +57,7 @@ cisd
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`n_states`
|
||||
* :c:data:`read_wf`
|
||||
|
||||
Calls:
|
||||
|
@ -48,10 +48,10 @@ fci
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`is_zmq_slave`
|
||||
* :c:data:`do_pt2`
|
||||
* :c:data:`is_zmq_slave`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`psi_coef`
|
||||
* :c:data:`psi_det`
|
||||
|
||||
Calls:
|
||||
@ -87,9 +87,11 @@ fci
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`pt2_e0_denominator`
|
||||
* :c:data:`pt2_match_weight`
|
||||
* :c:data:`pt2_overlap`
|
||||
* :c:data:`pt2_stoch_istate`
|
||||
* :c:data:`read_wf`
|
||||
* :c:data:`selection_weight`
|
||||
* :c:data:`state_average_weight`
|
||||
* :c:data:`threshold_davidson_pt2`
|
||||
* :c:data:`threshold_generators`
|
||||
* :c:data:`variance_match_weight`
|
||||
|
@ -31,15 +31,16 @@ fcidump
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`elec_beta_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`elec_num`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
* :c:data:`n_core_orb`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`list_inact`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`core_energy`
|
||||
* :c:data:`core_fock_operator`
|
||||
* :c:data:`elec_alpha_num`
|
||||
* :c:data:`elec_beta_num`
|
||||
* :c:data:`elec_num`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`list_act`
|
||||
* :c:data:`mo_integrals_map`
|
||||
* :c:data:`mo_integrals_threshold`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`n_act_orb`
|
||||
* :c:data:`n_core_orb`
|
||||
|
@ -19,10 +19,10 @@ ks_scf
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`io_mo_one_e_integrals`
|
||||
* :c:data:`mu_erf_dft`
|
||||
* :c:data:`density_for_dft`
|
||||
* :c:data:`io_ao_one_e_integrals`
|
||||
* :c:data:`io_mo_one_e_integrals`
|
||||
* :c:data:`mu_erf_dft`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -16,21 +16,21 @@ molden
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`nucl_list_shell_aos`
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`ao_coef`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`ao_l`
|
||||
* :c:data:`nucl_charge`
|
||||
* :c:data:`ao_expo`
|
||||
* :c:data:`ao_l`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`ao_power`
|
||||
* :c:data:`ao_prim_num`
|
||||
* :c:data:`element_name`
|
||||
* :c:data:`ezfio_filename`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`nucl_charge`
|
||||
* :c:data:`nucl_coord`
|
||||
* :c:data:`nucl_list_shell_aos`
|
||||
* :c:data:`nucl_num`
|
||||
|
||||
Calls:
|
||||
|
@ -30,8 +30,8 @@ pt2
|
||||
* :c:data:`is_zmq_slave`
|
||||
* :c:data:`mo_two_e_integrals_in_map`
|
||||
* :c:data:`psi_energy`
|
||||
* :c:data:`threshold_generators`
|
||||
* :c:data:`read_wf`
|
||||
* :c:data:`threshold_generators`
|
||||
|
||||
Calls:
|
||||
|
||||
@ -46,12 +46,7 @@ pt2
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`distributed_davidson`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`pt2_e0_denominator`
|
||||
* :c:data:`pt2_stoch_istate`
|
||||
* :c:data:`read_wf`
|
||||
|
@ -19,8 +19,8 @@ rotate_mos
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -19,10 +19,10 @@ rs_ks_scf
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`io_mo_one_e_integrals`
|
||||
* :c:data:`mu_erf_dft`
|
||||
* :c:data:`density_for_dft`
|
||||
* :c:data:`io_ao_one_e_integrals`
|
||||
* :c:data:`io_mo_one_e_integrals`
|
||||
* :c:data:`mu_erf_dft`
|
||||
* :c:data:`read_wf`
|
||||
|
||||
Calls:
|
||||
|
@ -32,8 +32,8 @@ save_natorb
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`ezfio_set_mo_one_e_ints_io_mo_integrals_e_n`
|
||||
* :c:func:`ezfio_set_mo_one_e_ints_io_mo_integrals_kinetic`
|
||||
* :c:func:`ezfio_set_mo_one_e_ints_io_mo_integrals_n_e`
|
||||
* :c:func:`ezfio_set_mo_one_e_ints_io_mo_integrals_pseudo`
|
||||
* :c:func:`ezfio_set_mo_one_e_ints_io_mo_one_e_integrals`
|
||||
* :c:func:`ezfio_set_mo_two_e_ints_io_mo_two_e_integrals`
|
||||
@ -45,5 +45,6 @@ save_natorb
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_occ`
|
||||
* :c:data:`read_wf`
|
||||
|
@ -17,6 +17,13 @@ save_ortho_mos
|
||||
|
||||
Thanks to the Lowdin orthonormalization, the new MOs are the most similar to the guess MOs.
|
||||
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`mo_label`
|
||||
|
||||
Calls:
|
||||
|
||||
.. hlist::
|
||||
|
@ -58,9 +58,5 @@ scf
|
||||
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`fock_matrix_ao_alpha`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`level_shift`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_label`
|
||||
|
@ -18,10 +18,10 @@ sort_by_fock_energies
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`ao_num`
|
||||
* :c:data:`mo_num`
|
||||
* :c:data:`fock_matrix_mo`
|
||||
* :c:data:`mo_coef`
|
||||
* :c:data:`mo_num`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -10,10 +10,9 @@ test
|
||||
|
||||
|
||||
|
||||
Calls:
|
||||
Needs:
|
||||
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:func:`two_e_integrals_index`
|
||||
* :c:func:`two_e_integrals_index_reverse`
|
||||
* :c:data:`mo_one_e_integrals`
|
||||
|
@ -17,8 +17,8 @@ write_integrals_erf
|
||||
.. hlist::
|
||||
:columns: 3
|
||||
|
||||
* :c:data:`io_mo_two_e_integrals`
|
||||
* :c:data:`io_ao_two_e_integrals`
|
||||
* :c:data:`io_mo_two_e_integrals`
|
||||
|
||||
Calls:
|
||||
|
||||
|
@ -1,493 +0,0 @@
|
||||
%%% ARXIV TO BE UPDATED %%%
|
||||
@article{Loos2020Jan,
|
||||
author = {Loos, Pierre-François and Scemama, Anthony and Jacquemin, Denis},
|
||||
title = {{The Quest For Highly Accurate Excitation Energies: A Computational Perspective}},
|
||||
journal = {arXiv},
|
||||
year = {2020},
|
||||
month = {Jan},
|
||||
eprint = {2001.00416},
|
||||
url = {https://arxiv.org/abs/2001.00416}
|
||||
}
|
||||
|
||||
@article{Loos2019Dec,
|
||||
author = {Loos, Pierre-François and Lipparini, Filippo and Boggio-Pasqua, Martial and Scemama, Anthony and Jacquemin, Denis},
|
||||
title = {{A Mountaineering Strategy to Excited States: Highly-Accurate Energies and Benchmarks for Medium Size Molecules}},
|
||||
journal = {arXiv},
|
||||
year = {2019},
|
||||
month = {Dec},
|
||||
eprint = {1912.04173},
|
||||
url = {https://arxiv.org/abs/1912.04173}
|
||||
}
|
||||
|
||||
@article{Loos2019Oct,
|
||||
author = {Loos, Pierre-François and Pradines, Barthélémy and Scemama, Anthony and Giner, Emmanuel and Toulouse, Julien},
|
||||
title = {{A Density-Based Basis-Set Incompleteness Correction for GW Methods}},
|
||||
journal = {arXiv},
|
||||
year = {2019},
|
||||
month = {Oct},
|
||||
eprint = {1910.12238},
|
||||
url = {https://arxiv.org/abs/1910.12238}
|
||||
}
|
||||
|
||||
%%%% PUBLISHED PAPERS
|
||||
@article{Hollett2020Jan,
|
||||
author = {Hollett, Joshua W. and Loos, Pierre-Fran{\c{c}}ois},
|
||||
title = {{Capturing static and dynamic correlation with {$\Delta$}NO-MP2 and {$\Delta$}NO-CCSD}},
|
||||
journal = {J. Chem. Phys.},
|
||||
volume = {152},
|
||||
number = {1},
|
||||
pages = {014101},
|
||||
year = {2020},
|
||||
month = {Jan},
|
||||
issn = {0021-9606},
|
||||
publisher = {American Institute of Physics},
|
||||
doi = {10.1063/1.5140669}
|
||||
}
|
||||
|
||||
@article{Giner2019Oct,
|
||||
author = {Giner, Emmanuel and Scemama, Anthony and Toulouse, Julien and Loos, Pierre-Fran{\c{c}}ois},
|
||||
title = {{Chemically accurate excitation energies with small basis sets}},
|
||||
journal = {J. Chem. Phys.},
|
||||
volume = {151},
|
||||
number = {14},
|
||||
pages = {144118},
|
||||
year = {2019},
|
||||
month = {Oct},
|
||||
issn = {0021-9606},
|
||||
publisher = {American Institute of Physics},
|
||||
doi = {10.1063/1.5122976}
|
||||
}
|
||||
|
||||
|
||||
@article{Burton2019Sep,
|
||||
author = {Burton, Hugh G. A. and Thom, Alex J. W.},
|
||||
title = {{General Approach for Multireference Ground and Excited States Using Nonorthogonal Configuration Interaction}},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = {15},
|
||||
number = {9},
|
||||
pages = {4851--4861},
|
||||
year = {2019},
|
||||
month = {Sep},
|
||||
issn = {1549-9618},
|
||||
publisher = {American Chemical Society},
|
||||
doi = {10.1021/acs.jctc.9b00441}
|
||||
}
|
||||
|
||||
@article{Dash_2019,
|
||||
author = {Dash, Monika and Feldt, Jonas and Moroni, Saverio and Scemama, Anthony and Filippi, Claudia},
|
||||
title = {{Excited States with Selected Configuration Interaction-Quantum Monte Carlo: Chemically Accurate Excitation Energies and Geometries}},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = {15},
|
||||
number = {9},
|
||||
pages = {4896--4906},
|
||||
year = {2019},
|
||||
month = {Sep},
|
||||
issn = {1549-9618},
|
||||
publisher = {American Chemical Society},
|
||||
doi = {10.1021/acs.jctc.9b00476}
|
||||
}
|
||||
|
||||
@article{Ferte_2019,
|
||||
doi = {10.1063/1.5082638},
|
||||
url = {https://doi.org/10.1063%2F1.5082638},
|
||||
year = 2019,
|
||||
month = {feb},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {150},
|
||||
number = {8},
|
||||
pages = {084103},
|
||||
author = {Anthony Fert{\'{e}} and Emmanuel Giner and Julien Toulouse},
|
||||
title = {Range-separated multideterminant density-functional theory with a short-range correlation functional of the on-top pair density},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
|
||||
@article{Caffarel_2019,
|
||||
doi = {10.1063/1.5114703},
|
||||
url = {https://doi.org/10.1063%2F1.5114703},
|
||||
year = 2019,
|
||||
month = {aug},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {151},
|
||||
number = {6},
|
||||
pages = {064101},
|
||||
author = {Michel Caffarel},
|
||||
title = {Evaluating two-electron-repulsion integrals over arbitrary orbitals using zero variance Monte Carlo: Application to full configuration interaction calculations with Slater-type orbitals},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
|
||||
@article{Loos_2019,
|
||||
doi = {10.1021/acs.jpclett.9b01176},
|
||||
url = {https://doi.org/10.1021%2Facs.jpclett.9b01176},
|
||||
year = 2019,
|
||||
month = {may},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
volume = {10},
|
||||
number = {11},
|
||||
pages = {2931--2937},
|
||||
author = {Pierre-Fran{\c{c}}ois Loos and Barth{\'{e}}l{\'{e}}my Pradines and Anthony Scemama and Julien Toulouse and Emmanuel Giner},
|
||||
title = {A Density-Based Basis-Set Correction for Wave Function Theory},
|
||||
journal = {The Journal of Physical Chemistry Letters}
|
||||
}
|
||||
|
||||
|
||||
@article{Garniron_2019,
|
||||
doi = {10.1021/acs.jctc.9b00176},
|
||||
url = {https://doi.org/10.1021%2Facs.jctc.9b00176},
|
||||
year = 2019,
|
||||
month = {may},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
author = {Yann Garniron and Thomas Applencourt and Kevin Gasperich and Anouar Benali and Anthony Fert{\'{e}} and Julien Paquier and Barth{\'{e}}l{\'{e}}my Pradines and Roland Assaraf and Peter Reinhardt and Julien Toulouse and Pierrette Barbaresco and Nicolas Renon and Gr{\'{e}}goire David and Jean-Paul Malrieu and Mickaël V{\'{e}}ril and Michel Caffarel and Pierre-Fran{\c{c}}ois Loos and Emmanuel Giner and Anthony Scemama},
|
||||
title = {Quantum Package 2.0: An Open-Source Determinant-Driven Suite of Programs},
|
||||
journal = {Journal of Chemical Theory and Computation}
|
||||
}
|
||||
|
||||
@article{Scemama_2019,
|
||||
doi = {10.1016/j.rechem.2019.100002},
|
||||
url = {https://doi.org/10.1016%2Fj.rechem.2019.100002},
|
||||
year = 2019,
|
||||
month = {may},
|
||||
publisher = {Elsevier {BV}},
|
||||
pages = {100002},
|
||||
author = {Anthony Scemama and Michel Caffarel and Anouar Benali and Denis Jacquemin and Pierre-Fran{\c{c}}ois Loos},
|
||||
title = {Influence of pseudopotentials on excitation energies from selected configuration interaction and diffusion Monte Carlo},
|
||||
journal = {Results in Chemistry}
|
||||
}
|
||||
|
||||
|
||||
@article{Applencourt2018Dec,
|
||||
author = {Applencourt, Thomas and Gasperich, Kevin and Scemama, Anthony},
|
||||
title = {{Spin adaptation with determinant-based selected configuration interaction}},
|
||||
journal = {arXiv},
|
||||
year = {2018},
|
||||
month = {Dec},
|
||||
eprint = {1812.06902},
|
||||
url = {https://arxiv.org/abs/1812.06902}
|
||||
}
|
||||
|
||||
@article{Loos2019Mar,
|
||||
author = {Loos, Pierre-Fran\c{c}ois and Boggio-Pasqua, Martial and Scemama, Anthony and Caffarel, Michel and Jacquemin, Denis},
|
||||
title = {{Reference Energies for Double Excitations}},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
volume = {15},
|
||||
number = {3},
|
||||
pages = {1939--1956},
|
||||
year = {2019},
|
||||
month = {Mar},
|
||||
issn = {1549-9618},
|
||||
publisher = {American Chemical Society},
|
||||
doi = {10.1021/acs.jctc.8b01205}
|
||||
}
|
||||
|
||||
@article{PinedaFlores2019Feb,
|
||||
author = {Pineda Flores, Sergio and Neuscamman, Eric},
|
||||
title = {{Excited State Specific Multi-Slater Jastrow Wave Functions}},
|
||||
journal = {J. Phys. Chem. A},
|
||||
volume = {123},
|
||||
number = {8},
|
||||
pages = {1487--1497},
|
||||
year = {2019},
|
||||
month = {Feb},
|
||||
issn = {1089-5639},
|
||||
publisher = {American Chemical Society},
|
||||
doi = {10.1021/acs.jpca.8b10671}
|
||||
}
|
||||
|
||||
@phdthesis{yann_garniron_2019_2558127,
|
||||
author = {Yann Garniron},
|
||||
title = {{Development and parallel implementation of
|
||||
selected configuration interaction methods}},
|
||||
school = {Université de Toulouse},
|
||||
year = 2019,
|
||||
month = feb,
|
||||
doi = {10.5281/zenodo.2558127},
|
||||
url = {https://doi.org/10.5281/zenodo.2558127}
|
||||
}
|
||||
|
||||
@article{Giner_2018,
|
||||
doi = {10.1063/1.5052714},
|
||||
url = {https://doi.org/10.1063%2F1.5052714},
|
||||
year = 2018,
|
||||
month = {nov},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {149},
|
||||
number = {19},
|
||||
pages = {194301},
|
||||
author = {Emmanuel Giner and Barth{\'{e}}lemy Pradines and Anthony Fert{\'{e}} and Roland Assaraf and Andreas Savin and Julien Toulouse},
|
||||
title = {Curing basis-set convergence of wave-function theory using density-functional theory: A systematically improvable approach},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
|
||||
|
||||
@article{Giner2018Oct,
|
||||
author = {Giner, Emmanuel and Tew, David and Garniron, Yann and Alavi, Ali},
|
||||
title = {{Interplay between electronic correlation and metal-ligand delocalization in the spectroscopy of transition metal compounds: case study on a series of planar Cu2+complexes.}},
|
||||
journal = {J. Chem. Theory Comput.},
|
||||
year = {2018},
|
||||
month = {Oct},
|
||||
issn = {1549-9618},
|
||||
publisher = {American Chemical Society},
|
||||
doi = {10.1021/acs.jctc.8b00591}
|
||||
}
|
||||
|
||||
@article{Loos_2018,
|
||||
doi = {10.1021/acs.jctc.8b00406},
|
||||
url = {https://doi.org/10.1021%2Facs.jctc.8b00406},
|
||||
year = 2018,
|
||||
month = {jul},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
volume = {14},
|
||||
number = {8},
|
||||
pages = {4360--4379},
|
||||
author = {Pierre-Fran{\c{c}}ois Loos and Anthony Scemama and Aymeric Blondel and Yann Garniron and Michel Caffarel and Denis Jacquemin},
|
||||
title = {A Mountaineering Strategy to Excited States: Highly Accurate Reference Energies and Benchmarks},
|
||||
journal = {Journal of Chemical Theory and Computation}
|
||||
}
|
||||
@article{Scemama_2018,
|
||||
doi = {10.1021/acs.jctc.7b01250},
|
||||
url = {https://doi.org/10.1021%2Facs.jctc.7b01250},
|
||||
year = 2018,
|
||||
month = {jan},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
volume = {14},
|
||||
number = {3},
|
||||
pages = {1395--1402},
|
||||
author = {Anthony Scemama and Yann Garniron and Michel Caffarel and Pierre-Fran{\c{c}}ois Loos},
|
||||
title = {Deterministic Construction of Nodal Surfaces within Quantum Monte Carlo: The Case of {FeS}},
|
||||
journal = {Journal of Chemical Theory and Computation}
|
||||
}
|
||||
@article{Scemama_2018.2,
|
||||
doi = {10.1063/1.5041327},
|
||||
url = {https://doi.org/10.1063%2F1.5041327},
|
||||
year = 2018,
|
||||
month = {jul},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {149},
|
||||
number = {3},
|
||||
pages = {034108},
|
||||
author = {Anthony Scemama and Anouar Benali and Denis Jacquemin and Michel Caffarel and Pierre-Fran{\c{c}}ois Loos},
|
||||
title = {Excitation energies from diffusion Monte Carlo using selected configuration interaction nodes},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Dash_2018,
|
||||
doi = {10.1021/acs.jctc.8b00393},
|
||||
url = {https://doi.org/10.1021%2Facs.jctc.8b00393},
|
||||
year = 2018,
|
||||
month = {jun},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
volume = {14},
|
||||
number = {8},
|
||||
pages = {4176--4182},
|
||||
author = {Monika Dash and Saverio Moroni and Anthony Scemama and Claudia Filippi},
|
||||
title = {Perturbatively Selected Configuration-Interaction Wave Functions for Efficient Geometry Optimization in Quantum Monte Carlo},
|
||||
journal = {Journal of Chemical Theory and Computation}
|
||||
}
|
||||
@article{Garniron_2018,
|
||||
doi = {10.1063/1.5044503},
|
||||
url = {https://doi.org/10.1063%2F1.5044503},
|
||||
year = 2018,
|
||||
month = {aug},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {149},
|
||||
number = {6},
|
||||
pages = {064103},
|
||||
author = {Yann Garniron and Anthony Scemama and Emmanuel Giner and Michel Caffarel and Pierre-Fran{\c{c}}ois Loos},
|
||||
title = {Selected configuration interaction dressed by perturbation},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Giner_2017,
|
||||
doi = {10.1063/1.4984616},
|
||||
url = {https://doi.org/10.1063%2F1.4984616},
|
||||
year = 2017,
|
||||
month = {jun},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {146},
|
||||
number = {22},
|
||||
pages = {224108},
|
||||
author = {Emmanuel Giner and Celestino Angeli and Yann Garniron and Anthony Scemama and Jean-Paul Malrieu},
|
||||
title = {A Jeziorski-Monkhorst fully uncontracted multi-reference perturbative treatment. I. Principles, second-order versions, and tests on ground state potential energy curves},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Garniron_2017,
|
||||
doi = {10.1063/1.4980034},
|
||||
url = {https://doi.org/10.1063%2F1.4980034},
|
||||
year = 2017,
|
||||
month = {apr},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {146},
|
||||
number = {15},
|
||||
pages = {154107},
|
||||
author = {Yann Garniron and Emmanuel Giner and Jean-Paul Malrieu and Anthony Scemama},
|
||||
title = {Alternative definition of excitation amplitudes in multi-reference state-specific coupled cluster},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Garniron_2017.2,
|
||||
doi = {10.1063/1.4992127},
|
||||
url = {https://doi.org/10.1063%2F1.4992127},
|
||||
year = 2017,
|
||||
month = {jul},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {147},
|
||||
number = {3},
|
||||
pages = {034101},
|
||||
author = {Yann Garniron and Anthony Scemama and Pierre-Fran{\c{c}}ois Loos and Michel Caffarel},
|
||||
title = {Hybrid stochastic-deterministic calculation of the second-order perturbative contribution of multireference perturbation theory},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Giner_2017.2,
|
||||
doi = {10.1016/j.comptc.2017.03.001},
|
||||
url = {https://doi.org/10.1016%2Fj.comptc.2017.03.001},
|
||||
year = 2017,
|
||||
month = {sep},
|
||||
publisher = {Elsevier {BV}},
|
||||
volume = {1116},
|
||||
pages = {134--140},
|
||||
author = {E. Giner and C. Angeli and A. Scemama and J.-P. Malrieu},
|
||||
title = {Orthogonal Valence Bond Hamiltonians incorporating dynamical correlation effects},
|
||||
journal = {Computational and Theoretical Chemistry}
|
||||
}
|
||||
|
||||
@article{Giner_2017.3,
|
||||
author = {Giner, Emmanuel and Tenti, Lorenzo and Angeli, Celestino and Ferré, Nicolas},
|
||||
title = {Computation of the Isotropic Hyperfine Coupling Constant: Efficiency and Insights from a New Approach Based on Wave Function Theory},
|
||||
journal = {Journal of Chemical Theory and Computation},
|
||||
volume = {13},
|
||||
number = {2},
|
||||
pages = {475-487},
|
||||
year = {2017},
|
||||
doi = {10.1021/acs.jctc.6b00827},
|
||||
note ={PMID: 28094936},
|
||||
URL = {https://doi.org/10.1021/acs.jctc.6b00827},
|
||||
eprint = {https://doi.org/10.1021/acs.jctc.6b00827}
|
||||
}
|
||||
@article{Giner2016Mar,
|
||||
author = {Giner, Emmanuel and Angeli, Celestino},
|
||||
title = {{Spin density and orbital optimization in open shell systems: A rational and computationally efficient proposal}},
|
||||
journal = {J. Chem. Phys.},
|
||||
volume = {144},
|
||||
number = {10},
|
||||
pages = {104104},
|
||||
year = {2016},
|
||||
month = {Mar},
|
||||
issn = {0021-9606},
|
||||
publisher = {American Institute of Physics},
|
||||
doi = {10.1063/1.4943187}
|
||||
}
|
||||
@article{Giner_2016,
|
||||
doi = {10.1063/1.4940781},
|
||||
url = {https://doi.org/10.1063%2F1.4940781},
|
||||
year = 2016,
|
||||
month = {feb},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {144},
|
||||
number = {6},
|
||||
pages = {064101},
|
||||
author = {E. Giner and G. David and A. Scemama and J. P. Malrieu},
|
||||
title = {A simple approach to the state-specific {MR}-{CC} using the intermediate Hamiltonian formalism},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
|
||||
@article{Caffarel_2016,
|
||||
doi = {10.1063/1.4947093},
|
||||
url = {https://doi.org/10.1063%2F1.4947093},
|
||||
year = 2016,
|
||||
month = {apr},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {144},
|
||||
number = {15},
|
||||
pages = {151103},
|
||||
author = {Michel Caffarel and Thomas Applencourt and Emmanuel Giner and Anthony Scemama},
|
||||
title = {Communication: Toward an improved control of the fixed-node error in quantum Monte Carlo: The case of the water molecule},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@incollection{Caffarel_2016.2,
|
||||
doi = {10.1021/bk-2016-1234.ch002},
|
||||
url = {https://doi.org/10.1021%2Fbk-2016-1234.ch002},
|
||||
year = 2016,
|
||||
month = {jan},
|
||||
publisher = {American Chemical Society},
|
||||
pages = {15--46},
|
||||
author = {Michel Caffarel and Thomas Applencourt and Emmanuel Giner and Anthony Scemama},
|
||||
title = {Using CIPSI Nodes in Diffusion Monte Carlo},
|
||||
booktitle = {{ACS} Symposium Series}
|
||||
}
|
||||
@article{Giner_2015,
|
||||
doi = {10.1063/1.4905528},
|
||||
url = {https://doi.org/10.1063%2F1.4905528},
|
||||
year = 2015,
|
||||
month = {jan},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {142},
|
||||
number = {4},
|
||||
pages = {044115},
|
||||
author = {Emmanuel Giner and Anthony Scemama and Michel Caffarel},
|
||||
title = {Fixed-node diffusion Monte Carlo potential energy curve of the fluorine molecule F2 using selected configuration interaction trial wavefunctions},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
|
||||
@article{Giner2015Sep,
|
||||
author = {Giner, Emmanuel and Angeli, Celestino},
|
||||
title = {{Metal-ligand delocalization and spin density in the CuCl2 and [CuCl4]2{-} molecules: Some insights from wave function theory}},
|
||||
journal = {J. Chem. Phys.},
|
||||
volume = {143},
|
||||
number = {12},
|
||||
pages = {124305},
|
||||
year = {2015},
|
||||
month = {Sep},
|
||||
issn = {0021-9606},
|
||||
publisher = {American Institute of Physics},
|
||||
doi = {10.1063/1.4931639}
|
||||
}
|
||||
|
||||
@article{Scemama_2014,
|
||||
doi = {10.1063/1.4903985},
|
||||
url = {https://doi.org/10.1063%2F1.4903985},
|
||||
year = 2014,
|
||||
month = {dec},
|
||||
publisher = {{AIP} Publishing},
|
||||
volume = {141},
|
||||
number = {24},
|
||||
pages = {244110},
|
||||
author = {A. Scemama and T. Applencourt and E. Giner and M. Caffarel},
|
||||
title = {Accurate nonrelativistic ground-state energies of 3d transition metal atoms},
|
||||
journal = {The Journal of Chemical Physics}
|
||||
}
|
||||
@article{Caffarel_2014,
|
||||
doi = {10.1021/ct5004252},
|
||||
url = {https://doi.org/10.1021%2Fct5004252},
|
||||
year = 2014,
|
||||
month = {nov},
|
||||
publisher = {American Chemical Society ({ACS})},
|
||||
volume = {10},
|
||||
number = {12},
|
||||
pages = {5286--5296},
|
||||
author = {Michel Caffarel and Emmanuel Giner and Anthony Scemama and Alejandro Ram{\'{\i}}rez-Sol{\'{\i}}s},
|
||||
title = {Spin Density Distribution in Open-Shell Transition Metal Systems: A Comparative Post-Hartree-Fock, Density Functional Theory, and Quantum Monte Carlo Study of the CuCl2 Molecule},
|
||||
journal = {Journal of Chemical Theory and Computation}
|
||||
}
|
||||
@article{Giner_2013,
|
||||
doi = {10.1139/cjc-2013-0017},
|
||||
url = {https://doi.org/10.1139%2Fcjc-2013-0017},
|
||||
year = 2013,
|
||||
month = {sep},
|
||||
publisher = {Canadian Science Publishing},
|
||||
volume = {91},
|
||||
number = {9},
|
||||
pages = {879--885},
|
||||
author = {Emmanuel Giner and Anthony Scemama and Michel Caffarel},
|
||||
title = {Using perturbatively selected configuration interaction in quantum Monte Carlo calculations},
|
||||
journal = {Canadian Journal of Chemistry}
|
||||
}
|
||||
|
||||
@article{Scemama2013Nov,
|
||||
author = {Scemama, Anthony and Giner, Emmanuel},
|
||||
title = {{An efficient implementation of Slater-Condon rules}},
|
||||
journal = {arXiv},
|
||||
year = {2013},
|
||||
month = {Nov},
|
||||
eprint = {1311.6244},
|
||||
url = {https://arxiv.org/abs/1311.6244}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -128,6 +128,12 @@ and the atomic basis set:
|
||||
ao_two_e_erf_ints density_for_dft electrons mo_two_e_ints scf_utils
|
||||
ao_two_e_ints determinants ezfio nuclei work
|
||||
|
||||
If you need to run using an already existing EZFIO database, use
|
||||
|
||||
.. code:: bash
|
||||
|
||||
qp set_file hcn
|
||||
|
||||
|
||||
Run a Hartree-Fock calculation
|
||||
------------------------------
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Configuration of IRPF90 package
|
||||
|
||||
# Set the path of IRPF90 here:
|
||||
export IRPF90_PATH=${QP_ROOT}/external/irpf90-v2.0.0
|
||||
export IRPF90_PATH=${QP_ROOT}/external/irpf90
|
||||
export PATH=${PATH}:${IRPF90_PATH}/bin
|
||||
|
||||
export IRPF90=${IRPF90_PATH}/bin/irpf90
|
||||
|
13
etc/ninja.rc
13
etc/ninja.rc
@ -1,13 +0,0 @@
|
||||
# Configuration for the Ninja package
|
||||
|
||||
export NINJA=${QP_ROOT}/bin/ninja
|
||||
|
||||
function ninja () {
|
||||
if [[ -f ${QP_ROOT}/build.ninja ]] ; then
|
||||
${QP_ROOT}/bin/ninja "$@"
|
||||
else
|
||||
>&2 echo "Error: build.ninja does not exists.
|
||||
You need to run ./configure first."
|
||||
fi
|
||||
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
QP_PYTHON=
|
||||
|
||||
# Load dependencies
|
||||
for i in ezfio.rc irpf90.rc ninja.rc ocaml.rc
|
||||
for i in ezfio.rc irpf90.rc ocaml.rc
|
||||
do
|
||||
source $i
|
||||
done
|
||||
|
@ -93,7 +93,7 @@ function qp()
|
||||
|
||||
"prompt")
|
||||
shift
|
||||
python2 $QP_ROOT/scripts/hello.py
|
||||
python3 $QP_ROOT/scripts/hello.py
|
||||
function _check_ezfio() {
|
||||
if [[ -d ${EZFIO_FILE} ]] ; then
|
||||
printf "\e[0;32m|${EZFIO_FILE}>\e[m"
|
||||
|
2
external/.gitignore
vendored
2
external/.gitignore
vendored
@ -1,2 +1,2 @@
|
||||
*
|
||||
#*
|
||||
|
||||
|
BIN
external/EZFIO-v2.0.3.tar.gz
vendored
BIN
external/EZFIO-v2.0.3.tar.gz
vendored
Binary file not shown.
1
external/ezfio
vendored
Submodule
1
external/ezfio
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit ccee52d00c2cde1d628b0d34f4a247143747bf36
|
BIN
external/gmp-6.1.2.tar.bz2
vendored
Normal file
BIN
external/gmp-6.1.2.tar.bz2
vendored
Normal file
Binary file not shown.
1
external/irpf90
vendored
Submodule
1
external/irpf90
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 132a4a1661c9878d21dcbf0ac14f7fe9a3b110d0
|
@ -80,7 +80,7 @@ git:
|
||||
./create_git_sha1.sh
|
||||
|
||||
${QP_EZFIO}/Ocaml/ezfio.ml:
|
||||
$(NINJA) -C ${QP_ROOT}/config ${QP_ROOT}/lib/libezfio_irp.a
|
||||
ninja -C ${QP_ROOT}/config ${QP_ROOT}/lib/libezfio_irp.a
|
||||
|
||||
qp_edit.ml: ../scripts/ezfio_interface/qp_edit_template
|
||||
|
||||
|
@ -220,16 +220,16 @@ end = struct
|
||||
type t =
|
||||
| EN
|
||||
| HF
|
||||
| SOP
|
||||
| CFG
|
||||
[@@deriving sexp]
|
||||
|
||||
let to_string = function
|
||||
| EN -> \"EN\"
|
||||
| HF -> \"HF\"
|
||||
| SOP -> \"SOP\"
|
||||
| CFG -> \"CFG\"
|
||||
let of_string s =
|
||||
match (String.lowercase_ascii s) with
|
||||
| \"sop\" -> SOP
|
||||
| \"cfg\" -> CFG
|
||||
| \"en\" -> EN
|
||||
| \"hf\" -> HF
|
||||
| _ -> raise (Invalid_argument (\"Wrong Perturbation type : \"^s))
|
||||
|
@ -38,11 +38,12 @@ def comp_path(path):
|
||||
|
||||
from qp_path import QP_ROOT, QP_SRC, QP_EZFIO
|
||||
|
||||
LIB = " -lz"
|
||||
LIB = " -lz"
|
||||
EZFIO_LIB = join("$QP_ROOT", "lib", "libezfio_irp.a")
|
||||
ZMQ_LIB = join("$QP_ROOT", "lib", "libf77zmq.a") + " " + join("$QP_ROOT", "lib", "libzmq.a") + " -lstdc++ -lrt -ldl"
|
||||
ROOT_BUILD_NINJA = join("$QP_ROOT", "config", "build.ninja")
|
||||
ROOT_BUILD_NINJA_EXP = join(QP_ROOT, "config", "build.ninja")
|
||||
ROOT_BUILD_NINJA_EXP_tmp = join(QP_ROOT, "config", "build.ninja.tmp")
|
||||
header = r"""#
|
||||
# _______ _____
|
||||
# __ __ \___ _______ _________ /____ ________ ___
|
||||
@ -57,7 +58,7 @@ header = r"""#
|
||||
# /_/ \__,_/ \___/ /_/|_| \__,_/ _\__, / \___/
|
||||
# /____/
|
||||
#
|
||||
# https://github.com/LCPQ/quantum_package,
|
||||
# https://github.com/QuantumPackage/qp2,
|
||||
#
|
||||
# Generated automatically by {0}
|
||||
#
|
||||
@ -107,6 +108,17 @@ def ninja_create_env_variable(pwd_config_file):
|
||||
lib_usr = get_compilation_option(pwd_config_file, "LIB")
|
||||
|
||||
str_lib = " ".join([lib_lapack, EZFIO_LIB, ZMQ_LIB, LIB, lib_usr])
|
||||
|
||||
# Read all LIB files in modules
|
||||
libfile = "LIB"
|
||||
try:
|
||||
content = ""
|
||||
with open(libfile,'r') as f:
|
||||
content = f.read()
|
||||
str_lib += " "+content
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
l_string.append("LIB = {0} ".format(str_lib))
|
||||
|
||||
l_string.append("")
|
||||
@ -149,7 +161,7 @@ def get_l_module_with_ezfio_cfg():
|
||||
from os import listdir
|
||||
from os.path import isfile
|
||||
|
||||
return [real_join(QP_SRC, m) for m in listdir(QP_SRC)
|
||||
return [real_join(QP_SRC, m) for m in sorted(listdir(QP_SRC))
|
||||
if isfile(real_join(QP_SRC, m, "EZFIO.cfg"))]
|
||||
|
||||
|
||||
@ -328,13 +340,13 @@ def ninja_symlink_build(path_module, l_symlink):
|
||||
if not l_symlink:
|
||||
return []
|
||||
|
||||
l_folder = [s.destination for s in l_symlink]
|
||||
l_folder = [s.destination for s in sorted(l_symlink,key=lambda x:x.destination)]
|
||||
|
||||
l_string = ["build l_symlink_{0} : phony {1}".format(path_module.rel,
|
||||
" ".join(map(comp_path,l_folder))),
|
||||
""]
|
||||
|
||||
for symlink in l_symlink:
|
||||
for symlink in sorted(l_symlink, key=lambda x: x.source+x.destination):
|
||||
l_string += ["build {0}: build_symlink {1}".format(*list(map(comp_path,(symlink.destination, symlink.source)))), ""]
|
||||
|
||||
return l_string
|
||||
@ -360,7 +372,7 @@ def ninja_gitignore_build(path_module, d_binaries, l_symlink):
|
||||
|
||||
path_gitignore = comp_path(join(path_module.abs, ".gitignore"))
|
||||
|
||||
l_b = list(map(comp_path,[i.abs for i in d_binaries[path_module]]))
|
||||
l_b = sorted(list(map(comp_path,[i.abs for i in d_binaries[path_module]])))
|
||||
|
||||
root = "build {0}: build_gitignore {1}".format(path_gitignore,
|
||||
" ".join(l_b))
|
||||
@ -389,7 +401,7 @@ def get_l_file_for_module(path_module):
|
||||
|
||||
l_template = []
|
||||
|
||||
for f in os.listdir(path_module.abs):
|
||||
for f in sorted(os.listdir(path_module.abs)):
|
||||
if f.lower().endswith(tuple([".template.f", ".include.f"])):
|
||||
l_template.append(join(path_module.abs, f))
|
||||
elif f.endswith(".irp.f"):
|
||||
@ -416,7 +428,7 @@ def get_l_file_for_module(path_module):
|
||||
|
||||
def get_file_dependency(d_info_module):
|
||||
"""
|
||||
For a module return all the irp.f90 needed files
|
||||
For a module return all the irp.f90 needed files
|
||||
"""
|
||||
d_irp = defaultdict(dict)
|
||||
|
||||
@ -495,10 +507,10 @@ def ninja_irpf90_make_build(path_module, l_needed_molule, d_irp):
|
||||
# D e p e n d a n c y #
|
||||
# ~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
l_depend = list(map(comp_path,d_irp[path_module]["l_depend"]))
|
||||
l_src = list(map(comp_path,d_irp[path_module]["l_src"]))
|
||||
l_obj = list(map(comp_path,d_irp[path_module]["l_obj"]))
|
||||
l_template = list(map(comp_path,d_irp[path_module]["l_template"]))
|
||||
l_depend = sorted(list(map(comp_path,d_irp[path_module]["l_depend"])))
|
||||
l_src = sorted(list(map(comp_path,d_irp[path_module]["l_src"])))
|
||||
l_obj = sorted(list(map(comp_path,d_irp[path_module]["l_obj"])))
|
||||
l_template = sorted(list(map(comp_path,d_irp[path_module]["l_template"])))
|
||||
|
||||
if l_needed_molule:
|
||||
l_symlink = ["l_symlink_{0}".format(path_module.rel)]
|
||||
@ -511,7 +523,7 @@ def ninja_irpf90_make_build(path_module, l_needed_molule, d_irp):
|
||||
# N i n j a _ b u i l d #
|
||||
# ~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
l_include_dir = ["-I {0}".format(m.rel) for m in l_needed_molule]
|
||||
l_include_dir = ["-I {0}".format(m.rel) for m in sorted(l_needed_molule, key=lambda x:x.rel+x.abs) ]
|
||||
|
||||
l_string = [
|
||||
"build {0}: build_irpf90.ninja {1}".format(str_creation, str_depend),
|
||||
@ -642,7 +654,7 @@ def ninja_binaries_build(path_module, l_children, d_binaries):
|
||||
# ~#~#~ #
|
||||
|
||||
ninja_module_path = join(comp_path(path_module.abs), "IRPF90_temp/build.ninja")
|
||||
l_abs_bin = list(map(comp_path,[binary.abs for binary in d_binaries[path_module]]))
|
||||
l_abs_bin = sorted(list(map(comp_path,[binary.abs for binary in d_binaries[path_module]])))
|
||||
|
||||
# ~#~#~#~#~#~ #
|
||||
# s t r i n g #
|
||||
@ -659,8 +671,7 @@ def ninja_binaries_build(path_module, l_children, d_binaries):
|
||||
|
||||
def ninja_module_build(path_module, d_binaries):
|
||||
|
||||
l_abs_bin = list(map(comp_path,[binary.abs for binary in d_binaries[path_module]]))
|
||||
|
||||
l_abs_bin = sorted(list(map(comp_path,[binary.abs for binary in d_binaries[path_module]])))
|
||||
path_readme = os.path.join(comp_path(path_module.abs), "README.rst")
|
||||
|
||||
l_string = ["build module_{0}: phony {1}".format(path_module.rel,
|
||||
@ -711,7 +722,7 @@ def save_subninja_file(path_module):
|
||||
""]
|
||||
|
||||
path_ninja_cur = join(path_module.abs, "build.ninja")
|
||||
|
||||
|
||||
with open(path_ninja_cur, "w") as f:
|
||||
f.write(header)
|
||||
f.write("\n".join(l_string))
|
||||
@ -830,14 +841,14 @@ if __name__ == "__main__":
|
||||
dict_root = module_instance.dict_root
|
||||
dict_root_path = dict_module_genelogy_path(dict_root)
|
||||
|
||||
l_all_module = list(d_genealogy_path.keys())
|
||||
l_all_module = sorted(list(d_genealogy_path.keys()))
|
||||
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
# M o d u l e _ t o _ i r p #
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
d_binaries = get_dict_binaries(l_all_module, mode="development")
|
||||
l_module = list(d_binaries.keys())
|
||||
l_module = sorted(list(d_binaries.keys()), key=lambda x: x.rel+x.abs)
|
||||
|
||||
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
@ -851,7 +862,6 @@ if __name__ == "__main__":
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
for module_to_compile in l_module:
|
||||
|
||||
if module_to_compile.rel == "dummy":
|
||||
continue
|
||||
|
||||
@ -884,6 +894,21 @@ if __name__ == "__main__":
|
||||
# S a v e s #
|
||||
# ~#~#~#~#~ #
|
||||
|
||||
with open(ROOT_BUILD_NINJA_EXP, "w+") as f:
|
||||
with open(ROOT_BUILD_NINJA_EXP_tmp, "w+") as f:
|
||||
f.write(header)
|
||||
f.write("\n".join(l_string))
|
||||
|
||||
with open(ROOT_BUILD_NINJA_EXP_tmp, "r") as f:
|
||||
a = f.read()
|
||||
|
||||
try:
|
||||
with open(ROOT_BUILD_NINJA_EXP, "r") as f:
|
||||
b = f.read()
|
||||
except:
|
||||
b = None
|
||||
|
||||
if a != b:
|
||||
os.rename(ROOT_BUILD_NINJA_EXP_tmp, ROOT_BUILD_NINJA_EXP)
|
||||
else:
|
||||
os.remove(ROOT_BUILD_NINJA_EXP_tmp)
|
||||
|
||||
|
@ -398,7 +398,7 @@ def create_ezfio_stuff(dict_ezfio_cfg, config_or_default="config"):
|
||||
try:
|
||||
(begin, end) = list(map(str.strip, dim.split(":")))
|
||||
except ValueError:
|
||||
a_size_raw.append(dim)
|
||||
a_size_raw.append(dim.strip())
|
||||
else:
|
||||
if begin[0] == '-':
|
||||
a_size_raw.append("{0}+{1}+1".format(end, begin[1:]))
|
||||
|
@ -82,6 +82,8 @@ END_PROVIDER
|
||||
mpi_correspondance = {"integer": "MPI_INTEGER",
|
||||
"integer*8": "MPI_INTEGER8",
|
||||
"character*(32)": "MPI_CHARACTER",
|
||||
"character*(64)": "MPI_CHARACTER",
|
||||
"character*(256)": "MPI_CHARACTER",
|
||||
"logical": "MPI_LOGICAL",
|
||||
"double precision": "MPI_DOUBLE_PRECISION"}
|
||||
|
||||
|
@ -98,3 +98,11 @@ type: Threshold
|
||||
doc: Remove linear dependencies when the eigenvalues of the overlap matrix are below this value
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.e-6
|
||||
|
||||
[ao_one_e_integrals_threshold]
|
||||
type: Threshold
|
||||
doc: If | (p|q) | < `ao_one_e_integrals_threshold` then (p|q) is zero
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.e-15
|
||||
ezfio_name: threshold_ao
|
||||
|
||||
|
@ -137,6 +137,7 @@ END_PROVIDER
|
||||
|
||||
deallocate(S)
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, ao_ortho_canonical_overlap, (ao_ortho_canonical_num,ao_ortho_canonical_num)]
|
||||
|
@ -4,7 +4,7 @@ logical function ao_one_e_integral_zero(i,k)
|
||||
|
||||
ao_one_e_integral_zero = .False.
|
||||
if (.not.((io_ao_integrals_overlap/='None').or.is_periodic)) then
|
||||
if (ao_overlap_abs(i,k) < ao_integrals_threshold) then
|
||||
if (ao_overlap_abs(i,k) < ao_one_e_integrals_threshold) then
|
||||
ao_one_e_integral_zero = .True.
|
||||
return
|
||||
endif
|
||||
|
@ -116,7 +116,7 @@ subroutine ao_two_e_integrals_in_map_slave(thread,iproc)
|
||||
exit
|
||||
endif
|
||||
if (task_id == 0) exit
|
||||
read(task,*) j, l
|
||||
call sscanf_dd(task, j, l)
|
||||
integer, external :: task_done_to_taskserver
|
||||
call compute_ao_integrals_jl(j,l,n_integrals,buffer_i,buffer_value)
|
||||
if (task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,task_id) == -1) then
|
||||
|
@ -698,81 +698,3 @@ subroutine insert_into_ao_integrals_map(n_integrals,buffer_i, buffer_values)
|
||||
end
|
||||
|
||||
|
||||
!subroutine dump_ao_integrals(filename)
|
||||
! use map_module
|
||||
! implicit none
|
||||
! BEGIN_DOC
|
||||
! ! Save to disk the |AO| integrals
|
||||
! END_DOC
|
||||
! character*(*), intent(in) :: filename
|
||||
! integer(cache_key_kind), pointer :: key(:)
|
||||
! real(integral_kind), pointer :: val(:)
|
||||
! integer*8 :: i,j, n
|
||||
! if (.not.mpi_master) then
|
||||
! return
|
||||
! endif
|
||||
! call ezfio_set_work_empty(.False.)
|
||||
! open(unit=66,file=filename,FORM='unformatted')
|
||||
! write(66) integral_kind, key_kind
|
||||
! write(66) ao_integrals_map%sorted, ao_integrals_map%map_size, &
|
||||
! ao_integrals_map%n_elements
|
||||
! do i=0_8,ao_integrals_map%map_size
|
||||
! write(66) ao_integrals_map%map(i)%sorted, ao_integrals_map%map(i)%map_size,&
|
||||
! ao_integrals_map%map(i)%n_elements
|
||||
! enddo
|
||||
! do i=0_8,ao_integrals_map%map_size
|
||||
! key => ao_integrals_map%map(i)%key
|
||||
! val => ao_integrals_map%map(i)%value
|
||||
! n = ao_integrals_map%map(i)%n_elements
|
||||
! write(66) (key(j), j=1,n), (val(j), j=1,n)
|
||||
! enddo
|
||||
! close(66)
|
||||
!
|
||||
!end
|
||||
|
||||
|
||||
!integer function load_ao_integrals(filename)
|
||||
! implicit none
|
||||
! BEGIN_DOC
|
||||
! ! Read from disk the |AO| integrals
|
||||
! END_DOC
|
||||
! character*(*), intent(in) :: filename
|
||||
! integer*8 :: i
|
||||
! integer(cache_key_kind), pointer :: key(:)
|
||||
! real(integral_kind), pointer :: val(:)
|
||||
! integer :: iknd, kknd
|
||||
! integer*8 :: n, j
|
||||
! load_ao_integrals = 1
|
||||
! open(unit=66,file=filename,FORM='unformatted',STATUS='UNKNOWN')
|
||||
! read(66,err=98,end=98) iknd, kknd
|
||||
! if (iknd /= integral_kind) then
|
||||
! print *, 'Wrong integrals kind in file :', iknd
|
||||
! stop 1
|
||||
! endif
|
||||
! if (kknd /= key_kind) then
|
||||
! print *, 'Wrong key kind in file :', kknd
|
||||
! stop 1
|
||||
! endif
|
||||
! read(66,err=98,end=98) ao_integrals_map%sorted, ao_integrals_map%map_size,&
|
||||
! ao_integrals_map%n_elements
|
||||
! do i=0_8, ao_integrals_map%map_size
|
||||
! read(66,err=99,end=99) ao_integrals_map%map(i)%sorted, &
|
||||
! ao_integrals_map%map(i)%map_size, ao_integrals_map%map(i)%n_elements
|
||||
! call cache_map_reallocate(ao_integrals_map%map(i),ao_integrals_map%map(i)%map_size)
|
||||
! enddo
|
||||
! do i=0_8, ao_integrals_map%map_size
|
||||
! key => ao_integrals_map%map(i)%key
|
||||
! val => ao_integrals_map%map(i)%value
|
||||
! n = ao_integrals_map%map(i)%n_elements
|
||||
! read(66,err=99,end=99) (key(j), j=1,n), (val(j), j=1,n)
|
||||
! enddo
|
||||
! call map_sort(ao_integrals_map)
|
||||
! load_ao_integrals = 0
|
||||
! return
|
||||
! 99 continue
|
||||
! call map_deinit(ao_integrals_map)
|
||||
! 98 continue
|
||||
! stop 'Problem reading ao_integrals_map file in work/'
|
||||
!
|
||||
!end
|
||||
!
|
||||
|
@ -1162,17 +1162,17 @@ subroutine compute_ao_integrals_jl(j,l,n_integrals,buffer_i,buffer_value)
|
||||
! Parallel client for AO integrals
|
||||
END_DOC
|
||||
|
||||
integer, intent(in) :: j,l
|
||||
integer,intent(out) :: n_integrals
|
||||
integer(key_kind),intent(out) :: buffer_i(ao_num*ao_num)
|
||||
integer, intent(in) :: j,l
|
||||
integer,intent(out) :: n_integrals
|
||||
integer(key_kind),intent(out) :: buffer_i(ao_num*ao_num)
|
||||
real(integral_kind),intent(out) :: buffer_value(ao_num*ao_num)
|
||||
logical, external :: ao_two_e_integral_zero
|
||||
|
||||
integer :: i,k
|
||||
double precision :: ao_two_e_integral,cpu_1,cpu_2, wall_1, wall_2
|
||||
double precision :: integral, wall_0
|
||||
double precision :: thr
|
||||
integer :: kk, m, j1, i1
|
||||
logical, external :: ao_two_e_integral_zero
|
||||
integer :: i,k
|
||||
double precision :: ao_two_e_integral,cpu_1,cpu_2, wall_1, wall_2
|
||||
double precision :: integral, wall_0
|
||||
double precision :: thr
|
||||
integer :: kk, m, j1, i1
|
||||
|
||||
thr = ao_integrals_threshold
|
||||
|
||||
|
@ -125,6 +125,41 @@ subroutine bitstring_to_str( output, string, Nint )
|
||||
output(ibuf:ibuf) = '|'
|
||||
end
|
||||
|
||||
subroutine configuration_to_str( output, string, Nint )
|
||||
use bitmasks
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Transform the bit string of a configuration to a string for printing
|
||||
END_DOC
|
||||
character*(*), intent(out) :: output
|
||||
integer, intent(in) :: Nint
|
||||
integer(bit_kind), intent(in) :: string(Nint,2)
|
||||
|
||||
integer :: i, j, ibuf
|
||||
integer(bit_kind) :: itemp
|
||||
|
||||
ibuf = 1
|
||||
output = ''
|
||||
output(ibuf:ibuf) = '|'
|
||||
ibuf = ibuf+1
|
||||
do i=1,Nint
|
||||
itemp = 1_bit_kind
|
||||
do j=1,bit_kind_size
|
||||
if (iand(itemp,string(i,2)) == itemp) then
|
||||
output(ibuf:ibuf) = '2'
|
||||
else if (iand(itemp,string(i,1)) == itemp) then
|
||||
output(ibuf:ibuf) = '1'
|
||||
else
|
||||
output(ibuf:ibuf) = '0'
|
||||
endif
|
||||
ibuf = ibuf+1
|
||||
itemp = shiftl(itemp,1)
|
||||
enddo
|
||||
enddo
|
||||
output(ibuf:ibuf) = '|'
|
||||
end
|
||||
|
||||
|
||||
|
||||
subroutine bitstring_to_hexa( output, string, Nint )
|
||||
use bitmasks
|
||||
@ -166,6 +201,25 @@ subroutine debug_det(string,Nint)
|
||||
|
||||
end
|
||||
|
||||
subroutine debug_cfg(string,Nint)
|
||||
use bitmasks
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Subroutine to print the content of a determinant in '+-' notation and
|
||||
! hexadecimal representation.
|
||||
END_DOC
|
||||
integer, intent(in) :: Nint
|
||||
integer(bit_kind), intent(in) :: string(Nint,2)
|
||||
character*(2048) :: output(2)
|
||||
call bitstring_to_hexa( output(1), string(1,1), Nint )
|
||||
call bitstring_to_hexa( output(2), string(1,2), Nint )
|
||||
print *, trim(output(1)) , '|', trim(output(2))
|
||||
|
||||
call configuration_to_str( output(1), string, Nint )
|
||||
print *, trim(output(1))
|
||||
|
||||
end
|
||||
|
||||
subroutine print_det(string,Nint)
|
||||
use bitmasks
|
||||
implicit none
|
||||
|
@ -3,3 +3,40 @@ type: logical
|
||||
doc: If true, computes the one- and two-body rdms with perturbation theory
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[save_wf_after_selection]
|
||||
type: logical
|
||||
doc: If true, saves the wave function after the selection, before the diagonalization
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[seniority_max]
|
||||
type: integer
|
||||
doc: Maximum number of allowed open shells. Using -1 selects all determinants
|
||||
interface: ezfio,ocaml,provider
|
||||
default: -1
|
||||
|
||||
[excitation_ref]
|
||||
type: integer
|
||||
doc: 1: Hartree-Fock determinant, 2:All determinants of the dominant configuration
|
||||
interface: ezfio,ocaml,provider
|
||||
default: 1
|
||||
|
||||
[excitation_max]
|
||||
type: integer
|
||||
doc: Maximum number of excitation with respect to the Hartree-Fock determinant. Using -1 selects all determinants
|
||||
interface: ezfio,ocaml,provider
|
||||
default: -1
|
||||
|
||||
[excitation_alpha_max]
|
||||
type: integer
|
||||
doc: Maximum number of excitation for alpha determinants with respect to the Hartree-Fock determinant. Using -1 selects all determinants
|
||||
interface: ezfio,ocaml,provider
|
||||
default: -1
|
||||
|
||||
[excitation_beta_max]
|
||||
type: integer
|
||||
doc: Maximum number of excitation for beta determinants with respect to the Hartree-Fock determinant. Using -1 selects all determinants
|
||||
interface: ezfio,ocaml,provider
|
||||
default: -1
|
||||
|
||||
|
@ -4,3 +4,4 @@ mpi
|
||||
davidson_undressed
|
||||
iterations
|
||||
two_body_rdm
|
||||
csf
|
||||
|
@ -102,7 +102,7 @@ subroutine run_cipsi
|
||||
|
||||
call write_double(6,correlation_energy_ratio, 'Correlation ratio')
|
||||
call print_summary(psi_energy_with_nucl_rep, &
|
||||
pt2_data, pt2_data_err, N_det,N_occ_pattern,N_states,psi_s2)
|
||||
pt2_data, pt2_data_err, N_det,N_configuration,N_states,psi_s2)
|
||||
|
||||
call save_energy(psi_energy_with_nucl_rep, pt2_data % pt2)
|
||||
|
||||
@ -114,7 +114,10 @@ subroutine run_cipsi
|
||||
|
||||
! Add selected determinants
|
||||
call copy_H_apply_buffer_to_wf()
|
||||
! call save_wavefunction
|
||||
|
||||
if (save_wf_after_selection) then
|
||||
call save_wavefunction
|
||||
endif
|
||||
|
||||
PROVIDE psi_coef
|
||||
PROVIDE psi_det
|
||||
@ -144,13 +147,13 @@ subroutine run_cipsi
|
||||
SOFT_TOUCH threshold_generators
|
||||
endif
|
||||
print *, 'N_det = ', N_det
|
||||
print *, 'N_sop = ', N_occ_pattern
|
||||
print *, 'N_cfg = ', N_configuration
|
||||
print *, 'N_states = ', N_states
|
||||
print*, 'correlation_ratio = ', correlation_energy_ratio
|
||||
|
||||
call save_energy(psi_energy_with_nucl_rep, pt2_data % pt2)
|
||||
call print_summary(psi_energy_with_nucl_rep(1:N_states), &
|
||||
pt2_data, pt2_data_err, N_det,N_occ_pattern,N_states,psi_s2)
|
||||
pt2_data, pt2_data_err, N_det,N_configuration,N_states,psi_s2)
|
||||
call save_iterations(psi_energy_with_nucl_rep(1:N_states),pt2_data % rpt2,N_det)
|
||||
call print_extrapolated_energy()
|
||||
endif
|
||||
|
@ -22,7 +22,7 @@ BEGIN_PROVIDER [ double precision, pt2_E0_denominator, (N_states) ]
|
||||
enddo
|
||||
else if (h0_type == "Barycentric") then
|
||||
pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states)
|
||||
else if (h0_type == "SOP") then
|
||||
else if (h0_type == "CFG") then
|
||||
pt2_E0_denominator(1:N_states) = psi_energy(1:N_states)
|
||||
else
|
||||
print *, h0_type, ' not implemented'
|
||||
|
@ -71,9 +71,9 @@ subroutine fill_buffer_double_rdm(i_generator, sp, h1, h2, bannedOrb, banned, fo
|
||||
call apply_holes(psi_det_generators(1,1,i_generator), s1, h1, s2, h2, mask, ok, N_int)
|
||||
E_shift = 0.d0
|
||||
|
||||
if (h0_type == 'SOP') then
|
||||
j = det_to_occ_pattern(i_generator)
|
||||
E_shift = psi_det_Hii(i_generator) - psi_occ_pattern_Hii(j)
|
||||
if (h0_type == 'CFG') then
|
||||
j = det_to_configuration(i_generator)
|
||||
E_shift = psi_det_Hii(i_generator) - psi_configuration_Hii(j)
|
||||
endif
|
||||
|
||||
do p1=1,mo_num
|
||||
|
@ -15,7 +15,7 @@ END_PROVIDER
|
||||
pt2_n_tasks_max = min(pt2_n_tasks_max,1+N_det_generators/10000)
|
||||
call write_int(6,pt2_n_tasks_max,'pt2_n_tasks_max')
|
||||
|
||||
pt2_F(:) = int(sqrt(float(pt2_n_tasks_max)))
|
||||
pt2_F(:) = max(int(sqrt(float(pt2_n_tasks_max))),1)
|
||||
do i=1,pt2_n_0(1+pt2_N_teeth/4)
|
||||
pt2_F(i) = pt2_n_tasks_max*pt2_min_parallel_tasks
|
||||
enddo
|
||||
@ -26,7 +26,6 @@ END_PROVIDER
|
||||
pt2_F(i) = 1
|
||||
enddo
|
||||
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ integer, pt2_N_teeth ]
|
||||
@ -134,8 +133,8 @@ subroutine ZMQ_pt2(E, pt2_data, pt2_data_err, relative_error, N_in)
|
||||
PROVIDE psi_bilinear_matrix_transp_order psi_selectors_coef_transp psi_det_sorted
|
||||
PROVIDE psi_det_hii selection_weight pseudo_sym
|
||||
|
||||
if (h0_type == 'SOP') then
|
||||
PROVIDE psi_occ_pattern_hii det_to_occ_pattern
|
||||
if (h0_type == 'CFG') then
|
||||
PROVIDE psi_configuration_hii det_to_configuration
|
||||
endif
|
||||
|
||||
if (N_det <= max(4,N_states) .or. pt2_N_teeth < 2) then
|
||||
@ -187,7 +186,7 @@ subroutine ZMQ_pt2(E, pt2_data, pt2_data_err, relative_error, N_in)
|
||||
if (zmq_put_ivector(zmq_to_qp_run_socket,1,'pt2_stoch_istate',pt2_stoch_istate,1) == -1) then
|
||||
stop 'Unable to put pt2_stoch_istate on ZMQ server'
|
||||
endif
|
||||
if (zmq_put_dvector(zmq_to_qp_run_socket,1,'threshold_generators',threshold_generators,1) == -1) then
|
||||
if (zmq_put_dvector(zmq_to_qp_run_socket,1,'threshold_generators',(/threshold_generators/),1) == -1) then
|
||||
stop 'Unable to put threshold_generators on ZMQ server'
|
||||
endif
|
||||
|
||||
@ -352,9 +351,9 @@ subroutine ZMQ_pt2(E, pt2_data, pt2_data_err, relative_error, N_in)
|
||||
|
||||
state_average_weight(:) = state_average_weight_save(:)
|
||||
TOUCH state_average_weight
|
||||
call update_pt2_and_variance_weights(pt2_data, N_states)
|
||||
endif
|
||||
|
||||
call update_pt2_and_variance_weights(pt2_data, N_states)
|
||||
|
||||
end subroutine
|
||||
|
||||
|
@ -103,7 +103,7 @@ subroutine run_pt2_slave_small(thread,iproc,energy)
|
||||
if (n_tasks == 0) exit
|
||||
|
||||
do k=1,n_tasks
|
||||
read (task(k),*) subset(k), i_generator(k), N
|
||||
call sscanf_ddd(task(k), subset(k), i_generator(k), N)
|
||||
enddo
|
||||
if (b%N == 0) then
|
||||
! Only first time
|
||||
@ -183,9 +183,9 @@ subroutine run_pt2_slave_large(thread,iproc,energy)
|
||||
type(selection_buffer) :: b
|
||||
logical :: done, buffer_ready
|
||||
|
||||
type(pt2_type) :: pt2_data(1)
|
||||
type(pt2_type) :: pt2_data
|
||||
integer :: n_tasks, k, N
|
||||
integer :: i_generator(1), subset
|
||||
integer :: i_generator, subset
|
||||
|
||||
integer :: bsize ! Size of selection buffers
|
||||
logical :: sending
|
||||
@ -220,7 +220,11 @@ subroutine run_pt2_slave_large(thread,iproc,energy)
|
||||
endif
|
||||
if (n_tasks == 0) exit
|
||||
|
||||
read (task,*) subset, i_generator(1), N
|
||||
call sscanf_ddd(task, subset, i_generator, N)
|
||||
if( pt2_F(i_generator) <= 0 .or. pt2_F(i_generator) > N_det ) then
|
||||
print *, irp_here
|
||||
stop 'bug in selection'
|
||||
endif
|
||||
if (b%N == 0) then
|
||||
! Only first time
|
||||
bsize = min(N, (elec_alpha_num * (mo_num-elec_alpha_num))**2)
|
||||
@ -232,15 +236,10 @@ subroutine run_pt2_slave_large(thread,iproc,energy)
|
||||
|
||||
double precision :: time0, time1
|
||||
call wall_time(time0)
|
||||
call pt2_alloc(pt2_data(1),N_states)
|
||||
call pt2_alloc(pt2_data,N_states)
|
||||
b%cur = 0
|
||||
!double precision :: time2
|
||||
!call wall_time(time2)
|
||||
call select_connected(i_generator(1),energy,pt2_data(1),b,subset,pt2_F(i_generator(1)))
|
||||
!call wall_time(time1)
|
||||
!print *, i_generator(1), time1-time2, n_tasks, pt2_F(i_generator(1))
|
||||
call select_connected(i_generator,energy,pt2_data,b,subset,pt2_F(i_generator))
|
||||
call wall_time(time1)
|
||||
!print *, '-->', i_generator(1), time1-time0, n_tasks
|
||||
|
||||
integer, external :: tasks_done_to_taskserver
|
||||
if (tasks_done_to_taskserver(zmq_to_qp_run_socket,worker_id,task_id,n_tasks) == -1) then
|
||||
@ -255,14 +254,14 @@ subroutine run_pt2_slave_large(thread,iproc,energy)
|
||||
call omp_unset_lock(global_selection_buffer_lock)
|
||||
if ( iproc == 1 ) then
|
||||
call omp_set_lock(global_selection_buffer_lock)
|
||||
call push_pt2_results_async_send(zmq_socket_push, i_generator, pt2_data, global_selection_buffer, task_id, n_tasks,sending)
|
||||
call push_pt2_results_async_send(zmq_socket_push, (/i_generator/), (/pt2_data/), global_selection_buffer, (/task_id/), 1,sending)
|
||||
global_selection_buffer%cur = 0
|
||||
call omp_unset_lock(global_selection_buffer_lock)
|
||||
else
|
||||
call push_pt2_results_async_send(zmq_socket_push, i_generator, pt2_data, b, task_id, n_tasks,sending)
|
||||
call push_pt2_results_async_send(zmq_socket_push, (/i_generator/), (/pt2_data/), b, (/task_id/), 1,sending)
|
||||
endif
|
||||
|
||||
call pt2_dealloc(pt2_data(1))
|
||||
call pt2_dealloc(pt2_data)
|
||||
end do
|
||||
call push_pt2_results_async_recv(zmq_socket_push,b%mini,sending)
|
||||
|
||||
|
@ -52,7 +52,7 @@ subroutine run_selection_slave(thread,iproc,energy)
|
||||
ctask = ctask - 1
|
||||
else
|
||||
integer :: i_generator, N, subset, bsize
|
||||
read(task,*) subset, i_generator, N
|
||||
call sscanf_ddd(task, subset, i_generator, N)
|
||||
if(buf%N == 0) then
|
||||
! Only first time
|
||||
call create_selection_buffer(N, N*2, buf)
|
||||
|
@ -1,148 +1,5 @@
|
||||
use bitmasks
|
||||
|
||||
BEGIN_PROVIDER [ double precision, pt2_match_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights adjusted along the selection to make the PT2 contributions
|
||||
! of each state coincide.
|
||||
END_DOC
|
||||
pt2_match_weight(:) = 1.d0
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, variance_match_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights adjusted along the selection to make the variances
|
||||
! of each state coincide.
|
||||
END_DOC
|
||||
variance_match_weight(:) = 1.d0
|
||||
END_PROVIDER
|
||||
|
||||
subroutine update_pt2_and_variance_weights(pt2_data, N_st)
|
||||
implicit none
|
||||
use selection_types
|
||||
BEGIN_DOC
|
||||
! Updates the PT2- and Variance- matching weights.
|
||||
END_DOC
|
||||
integer, intent(in) :: N_st
|
||||
type(pt2_type), intent(in) :: pt2_data
|
||||
double precision :: pt2(N_st)
|
||||
double precision :: variance(N_st)
|
||||
|
||||
double precision :: avg, element, dt, x
|
||||
integer :: k
|
||||
integer, save :: i_iter=0
|
||||
integer, parameter :: i_itermax = 1
|
||||
double precision, allocatable, save :: memo_variance(:,:), memo_pt2(:,:)
|
||||
|
||||
pt2(:) = pt2_data % pt2(:)
|
||||
variance(:) = pt2_data % variance(:)
|
||||
|
||||
if (i_iter == 0) then
|
||||
allocate(memo_variance(N_st,i_itermax), memo_pt2(N_st,i_itermax))
|
||||
memo_pt2(:,:) = 1.d0
|
||||
memo_variance(:,:) = 1.d0
|
||||
endif
|
||||
|
||||
i_iter = i_iter+1
|
||||
if (i_iter > i_itermax) then
|
||||
i_iter = 1
|
||||
endif
|
||||
|
||||
dt = 2.0d0
|
||||
|
||||
avg = sum(pt2(1:N_st)) / dble(N_st) - 1.d-32 ! Avoid future division by zero
|
||||
do k=1,N_st
|
||||
element = exp(dt*(pt2(k)/avg -1.d0))
|
||||
element = min(2.0d0 , element)
|
||||
element = max(0.5d0 , element)
|
||||
memo_pt2(k,i_iter) = element
|
||||
pt2_match_weight(k) *= product(memo_pt2(k,:))
|
||||
enddo
|
||||
|
||||
avg = sum(variance(1:N_st)) / dble(N_st) + 1.d-32 ! Avoid future division by zero
|
||||
do k=1,N_st
|
||||
element = exp(dt*(variance(k)/avg -1.d0))
|
||||
element = min(2.0d0 , element)
|
||||
element = max(0.5d0 , element)
|
||||
memo_variance(k,i_iter) = element
|
||||
variance_match_weight(k) *= product(memo_variance(k,:))
|
||||
enddo
|
||||
|
||||
if (N_det < 100) then
|
||||
! For tiny wave functions, weights are 1.d0
|
||||
pt2_match_weight(:) = 1.d0
|
||||
variance_match_weight(:) = 1.d0
|
||||
endif
|
||||
|
||||
threshold_davidson_pt2 = min(1.d-6, &
|
||||
max(threshold_davidson, 1.e-1 * PT2_relative_error * minval(abs(pt2(1:N_states)))) )
|
||||
|
||||
SOFT_TOUCH pt2_match_weight variance_match_weight threshold_davidson_pt2
|
||||
end
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, selection_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights used in the selection criterion
|
||||
END_DOC
|
||||
select case (weight_selection)
|
||||
|
||||
case (0)
|
||||
print *, 'Using input weights in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
|
||||
case (1)
|
||||
print *, 'Using 1/c_max^2 weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states)
|
||||
|
||||
case (2)
|
||||
print *, 'Using pt2-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * pt2_match_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
|
||||
case (3)
|
||||
print *, 'Using variance-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (4)
|
||||
print *, 'Using variance- and pt2-matching weights in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * sqrt(variance_match_weight(1:N_states) * pt2_match_weight(1:N_states))
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (5)
|
||||
print *, 'Using variance-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (6)
|
||||
print *, 'Using CI coefficient-based selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states)
|
||||
|
||||
case (7)
|
||||
print *, 'Input weights multiplied by variance- and pt2-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * sqrt(variance_match_weight(1:N_states) * pt2_match_weight(1:N_states)) * state_average_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (8)
|
||||
print *, 'Input weights multiplied by pt2-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * pt2_match_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
|
||||
case (9)
|
||||
print *, 'Input weights multiplied by variance-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
end select
|
||||
print *, '# Total weight ', real(selection_weight(:),4)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
subroutine get_mask_phase(det1, pm, Nint)
|
||||
use bitmasks
|
||||
implicit none
|
||||
@ -151,27 +8,56 @@ subroutine get_mask_phase(det1, pm, Nint)
|
||||
integer(bit_kind), intent(out) :: pm(Nint,2)
|
||||
integer(bit_kind) :: tmp1, tmp2
|
||||
integer :: i
|
||||
pm(1:Nint,1:2) = det1(1:Nint,1:2)
|
||||
tmp1 = 0_8
|
||||
tmp2 = 0_8
|
||||
do i=1,Nint
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 1))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 1))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 2))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 2))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 4))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 4))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 8))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 8))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 16))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 16))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 32))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 32))
|
||||
pm(i,1) = ieor(pm(i,1), tmp1)
|
||||
pm(i,2) = ieor(pm(i,2), tmp2)
|
||||
if(iand(popcnt(det1(i,1)), 1) == 1) tmp1 = not(tmp1)
|
||||
if(iand(popcnt(det1(i,2)), 1) == 1) tmp2 = not(tmp2)
|
||||
end do
|
||||
select case (Nint)
|
||||
|
||||
BEGIN_TEMPLATE
|
||||
case ($Nint)
|
||||
do i=1,$Nint
|
||||
pm(i,1) = ieor(det1(i,1), shiftl(det1(i,1), 1))
|
||||
pm(i,2) = ieor(det1(i,2), shiftl(det1(i,2), 1))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 2))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 2))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 4))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 4))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 8))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 8))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 16))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 16))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 32))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 32))
|
||||
pm(i,1) = ieor(pm(i,1), tmp1)
|
||||
pm(i,2) = ieor(pm(i,2), tmp2)
|
||||
if(iand(popcnt(det1(i,1)), 1) == 1) tmp1 = not(tmp1)
|
||||
if(iand(popcnt(det1(i,2)), 1) == 1) tmp2 = not(tmp2)
|
||||
end do
|
||||
SUBST [ Nint ]
|
||||
1;;
|
||||
2;;
|
||||
3;;
|
||||
4;;
|
||||
END_TEMPLATE
|
||||
case default
|
||||
do i=1,Nint
|
||||
pm(i,1) = ieor(det1(i,1), shiftl(det1(i,1), 1))
|
||||
pm(i,2) = ieor(det1(i,2), shiftl(det1(i,2), 1))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 2))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 2))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 4))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 4))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 8))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 8))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 16))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 16))
|
||||
pm(i,1) = ieor(pm(i,1), shiftl(pm(i,1), 32))
|
||||
pm(i,2) = ieor(pm(i,2), shiftl(pm(i,2), 32))
|
||||
pm(i,1) = ieor(pm(i,1), tmp1)
|
||||
pm(i,2) = ieor(pm(i,2), tmp2)
|
||||
if(iand(popcnt(det1(i,1)), 1) == 1) tmp1 = not(tmp1)
|
||||
if(iand(popcnt(det1(i,2)), 1) == 1) tmp2 = not(tmp2)
|
||||
end do
|
||||
end select
|
||||
|
||||
end subroutine
|
||||
|
||||
@ -309,15 +195,18 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
|
||||
|
||||
integer :: l_a, nmax, idx
|
||||
integer, allocatable :: indices(:), exc_degree(:), iorder(:)
|
||||
double precision, parameter :: norm_thr = 1.d-16
|
||||
allocate (indices(N_det), &
|
||||
exc_degree(max(N_det_alpha_unique,N_det_beta_unique)))
|
||||
|
||||
! Pre-compute excitation degrees wrt alpha determinants
|
||||
k=1
|
||||
do i=1,N_det_alpha_unique
|
||||
call get_excitation_degree_spin(psi_det_alpha_unique(1,i), &
|
||||
psi_det_generators(1,1,i_generator), exc_degree(i), N_int)
|
||||
enddo
|
||||
|
||||
! Iterate on 0SD beta, and find alphas 0SDTQ such that exc_degree <= 4
|
||||
do j=1,N_det_beta_unique
|
||||
call get_excitation_degree_spin(psi_det_beta_unique(1,j), &
|
||||
psi_det_generators(1,2,i_generator), nt, N_int)
|
||||
@ -326,7 +215,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
|
||||
i = psi_bilinear_matrix_rows(l_a)
|
||||
if (nt + exc_degree(i) <= 4) then
|
||||
idx = psi_det_sorted_order(psi_bilinear_matrix_order(l_a))
|
||||
if (psi_average_norm_contrib_sorted(idx) > 1.d-20) then
|
||||
if (psi_average_norm_contrib_sorted(idx) > norm_thr) then
|
||||
indices(k) = idx
|
||||
k=k+1
|
||||
endif
|
||||
@ -334,11 +223,14 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
|
||||
enddo
|
||||
enddo
|
||||
|
||||
! Pre-compute excitation degrees wrt beta determinants
|
||||
do i=1,N_det_beta_unique
|
||||
call get_excitation_degree_spin(psi_det_beta_unique(1,i), &
|
||||
psi_det_generators(1,2,i_generator), exc_degree(i), N_int)
|
||||
enddo
|
||||
|
||||
! Iterate on 0S alpha, and find betas TQ such that exc_degree <= 4
|
||||
! Remove also contributions < 1.d-20)
|
||||
do j=1,N_det_alpha_unique
|
||||
call get_excitation_degree_spin(psi_det_alpha_unique(1,j), &
|
||||
psi_det_generators(1,1,i_generator), nt, N_int)
|
||||
@ -350,7 +242,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
|
||||
idx = psi_det_sorted_order( &
|
||||
psi_bilinear_matrix_order( &
|
||||
psi_bilinear_matrix_transp_order(l_a)))
|
||||
if (psi_average_norm_contrib_sorted(idx) > 1.d-20) then
|
||||
if (psi_average_norm_contrib_sorted(idx) > norm_thr) then
|
||||
indices(k) = idx
|
||||
k=k+1
|
||||
endif
|
||||
@ -587,11 +479,17 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
|
||||
endif
|
||||
|
||||
do i=1,fullinteresting(0)
|
||||
fullminilist(1:N_int,1:2,i) = psi_det_sorted(1:N_int,1:2,fullinteresting(i))
|
||||
do k=1,N_int
|
||||
fullminilist(k,1,i) = psi_det_sorted(k,1,fullinteresting(i))
|
||||
fullminilist(k,2,i) = psi_det_sorted(k,2,fullinteresting(i))
|
||||
enddo
|
||||
enddo
|
||||
|
||||
do i=1,interesting(0)
|
||||
minilist(1:N_int,1:2,i) = psi_det_sorted(1:N_int,1:2,interesting(i))
|
||||
do k=1,N_int
|
||||
minilist(k,1,i) = psi_det_sorted(k,1,interesting(i))
|
||||
minilist(k,2,i) = psi_det_sorted(k,2,interesting(i))
|
||||
enddo
|
||||
enddo
|
||||
|
||||
do s2=s1,2
|
||||
@ -678,12 +576,8 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
double precision :: delta_E, val, Hii, w, tmp, alpha_h_psi
|
||||
double precision, external :: diag_H_mat_elem_fock
|
||||
double precision :: E_shift
|
||||
|
||||
logical, external :: detEq
|
||||
double precision, allocatable :: values(:)
|
||||
integer, allocatable :: keys(:,:)
|
||||
integer :: nkeys
|
||||
double precision :: s_weight(N_states,N_states)
|
||||
PROVIDE dominant_dets_of_cfgs N_dominant_dets_of_cfgs
|
||||
do jstate=1,N_states
|
||||
do istate=1,N_states
|
||||
s_weight(istate,jstate) = dsqrt(selection_weight(istate)*selection_weight(jstate))
|
||||
@ -700,9 +594,9 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
call apply_holes(psi_det_generators(1,1,i_generator), s1, h1, s2, h2, mask, ok, N_int)
|
||||
E_shift = 0.d0
|
||||
|
||||
if (h0_type == 'SOP') then
|
||||
j = det_to_occ_pattern(i_generator)
|
||||
E_shift = psi_det_Hii(i_generator) - psi_occ_pattern_Hii(j)
|
||||
if (h0_type == 'CFG') then
|
||||
j = det_to_configuration(i_generator)
|
||||
E_shift = psi_det_Hii(i_generator) - psi_configuration_Hii(j)
|
||||
endif
|
||||
|
||||
do p1=1,mo_num
|
||||
@ -735,6 +629,12 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
if(bannedOrb(p2, s2)) cycle
|
||||
if(banned(p1,p2)) cycle
|
||||
|
||||
if(pseudo_sym)then
|
||||
if(dabs(mat(1, p1, p2)).lt.thresh_sym)then
|
||||
w = 0.d0
|
||||
endif
|
||||
endif
|
||||
|
||||
val = maxval(abs(mat(1:N_states, p1, p2)))
|
||||
if( val == 0d0) cycle
|
||||
call apply_particles(mask, s1, p1, s2, p2, det, ok, N_int)
|
||||
@ -761,14 +661,67 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
if (.not.is_a_1h1p(det)) cycle
|
||||
endif
|
||||
|
||||
if (seniority_max >= 0) then
|
||||
integer :: s
|
||||
s = 0
|
||||
do k=1,N_int
|
||||
s = s + popcnt(ieor(det(k,1),det(k,2)))
|
||||
enddo
|
||||
|
||||
if (s > seniority_max) cycle
|
||||
endif
|
||||
|
||||
|
||||
integer :: degree
|
||||
logical :: do_cycle
|
||||
if (excitation_max >= 0) then
|
||||
do_cycle = .True.
|
||||
if (excitation_ref == 1) then
|
||||
call get_excitation_degree(HF_bitmask,det(1,1),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||
else if (excitation_ref == 2) then
|
||||
do k=1,N_dominant_dets_of_cfgs
|
||||
call get_excitation_degree(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||
enddo
|
||||
endif
|
||||
if (do_cycle) cycle
|
||||
endif
|
||||
|
||||
|
||||
if (excitation_alpha_max >= 0) then
|
||||
do_cycle = .True.
|
||||
if (excitation_ref == 1) then
|
||||
call get_excitation_degree_spin(HF_bitmask,det(1,1),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||
else if (excitation_ref == 2) then
|
||||
do k=1,N_dominant_dets_of_cfgs
|
||||
call get_excitation_degree_spin(dominant_dets_of_cfgs(1,1,k),det(1,1),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_alpha_max)
|
||||
enddo
|
||||
endif
|
||||
if (do_cycle) cycle
|
||||
endif
|
||||
|
||||
|
||||
if (excitation_beta_max >= 0) then
|
||||
do_cycle = .True.
|
||||
if (excitation_ref == 1) then
|
||||
call get_excitation_degree_spin(HF_bitmask,det(1,2),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_max)
|
||||
else if (excitation_ref == 2) then
|
||||
do k=1,N_dominant_dets_of_cfgs
|
||||
call get_excitation_degree(dominant_dets_of_cfgs(1,2,k),det(1,2),degree,N_int)
|
||||
do_cycle = do_cycle .and. (degree > excitation_beta_max)
|
||||
enddo
|
||||
endif
|
||||
if (do_cycle) cycle
|
||||
endif
|
||||
|
||||
Hii = diag_H_mat_elem_fock(psi_det_generators(1,1,i_generator),det,fock_diag_tmp,N_int)
|
||||
|
||||
w = 0d0
|
||||
|
||||
! integer(bit_kind) :: occ(N_int,2), n
|
||||
! call occ_pattern_of_det(det,occ,N_int)
|
||||
! call occ_pattern_to_dets_size(occ,n,elec_alpha_num,N_int)
|
||||
|
||||
e_pert = 0.d0
|
||||
coef = 0.d0
|
||||
logical :: do_diag
|
||||
@ -792,11 +745,11 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
endif
|
||||
enddo
|
||||
|
||||
do_diag = sum(dabs(coef)) > 0.001d0
|
||||
do_diag = sum(dabs(coef)) > 0.001d0 .and. N_states > 1
|
||||
|
||||
double precision :: eigvalues(N_states+1)
|
||||
double precision :: work(1+6*(N_states+1)+2*(N_states+1)**2)
|
||||
integer :: iwork(3+5*(N_states+1)), info, k ,n
|
||||
integer :: iwork(3+5*(N_states+1)), info, k
|
||||
|
||||
if (do_diag) then
|
||||
double precision :: pt2_matrix(N_states+1,N_states+1)
|
||||
@ -822,6 +775,7 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
endif
|
||||
|
||||
|
||||
|
||||
! ! Gram-Schmidt using input overlap matrix
|
||||
! do istate=1,N_states
|
||||
! do jstate=1,istate-1
|
||||
@ -834,12 +788,9 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
|
||||
alpha_h_psi = mat(istate, p1, p2)
|
||||
|
||||
do jstate=1,N_states
|
||||
pt2_data % overlap(jstate,istate) += coef(jstate) * coef(istate)
|
||||
enddo
|
||||
|
||||
pt2_data % variance(istate) += alpha_h_psi * alpha_h_psi
|
||||
pt2_data % pt2(istate) += e_pert(istate)
|
||||
pt2_data % overlap(:,istate) = pt2_data % overlap(:,istate) + coef(:) * coef(istate)
|
||||
pt2_data % variance(istate) = pt2_data % variance(istate) + alpha_h_psi * alpha_h_psi
|
||||
pt2_data % pt2(istate) = pt2_data % pt2(istate) + e_pert(istate)
|
||||
|
||||
!!!DEBUG
|
||||
! delta_E = E0(istate) - Hii + E_shift
|
||||
@ -864,42 +815,44 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d
|
||||
|
||||
case(5)
|
||||
! Variance selection
|
||||
! w = w - alpha_h_psi * alpha_h_psi * s_weight(istate,istate)
|
||||
w = min(w, - alpha_h_psi * alpha_h_psi * s_weight(istate,istate))
|
||||
! do jstate=1,N_states
|
||||
! if (istate == jstate) cycle
|
||||
! w = w + dabs(alpha_h_psi*mat(jstate,p1,p2)) * s_weight(istate,jstate)
|
||||
! enddo
|
||||
if (h0_type == 'CFG') then
|
||||
w = min(w, - alpha_h_psi * alpha_h_psi * s_weight(istate,istate)) &
|
||||
/ c0_weight(istate)
|
||||
else
|
||||
w = min(w, - alpha_h_psi * alpha_h_psi * s_weight(istate,istate))
|
||||
endif
|
||||
|
||||
case(6)
|
||||
! w = w - coef(istate) * coef(istate) * s_weight(istate,istate)
|
||||
w = min(w,- coef(istate) * coef(istate) * s_weight(istate,istate))
|
||||
! do jstate=1,N_states
|
||||
! if (istate == jstate) cycle
|
||||
! w = w + dabs(coef(istate)*coef(jstate)) * s_weight(istate,jstate)
|
||||
! enddo
|
||||
if (h0_type == 'CFG') then
|
||||
w = min(w,- coef(istate) * coef(istate) * s_weight(istate,istate)) &
|
||||
/ c0_weight(istate)
|
||||
else
|
||||
w = min(w,- coef(istate) * coef(istate) * s_weight(istate,istate))
|
||||
endif
|
||||
|
||||
case default
|
||||
! Energy selection
|
||||
! w = w + e_pert(istate) * s_weight(istate,istate)
|
||||
w = min(w, e_pert(istate) * s_weight(istate,istate))
|
||||
! do jstate=1,N_states
|
||||
! if (istate == jstate) cycle
|
||||
! w = w + dabs(X(istate)*X(jstate)) * s_weight(istate,jstate)
|
||||
! enddo
|
||||
if (h0_type == 'CFG') then
|
||||
w = min(w, e_pert(istate) * s_weight(istate,istate)) / c0_weight(istate)
|
||||
else
|
||||
w = min(w, e_pert(istate) * s_weight(istate,istate))
|
||||
endif
|
||||
|
||||
end select
|
||||
end do
|
||||
|
||||
|
||||
if(pseudo_sym)then
|
||||
if(dabs(mat(1, p1, p2)).lt.thresh_sym)then
|
||||
w = 0.d0
|
||||
endif
|
||||
integer(bit_kind) :: occ(N_int,2), n
|
||||
if (h0_type == 'CFG') then
|
||||
do k=1,N_int
|
||||
occ(k,1) = ieor(det(k,1),det(k,2))
|
||||
occ(k,2) = iand(det(k,1),det(k,2))
|
||||
enddo
|
||||
call configuration_to_dets_size(occ,n,elec_alpha_num,N_int)
|
||||
n = max(n,1)
|
||||
w *= dsqrt(dble(n))
|
||||
endif
|
||||
|
||||
! w = dble(n) * w
|
||||
|
||||
if(w <= buf%mini) then
|
||||
call add_to_selection_buffer(buf, det, w)
|
||||
end if
|
||||
@ -1675,7 +1628,7 @@ subroutine get_d0_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
phase = get_phase_bi(phasemask, 1, 2, h1, p1, h2, p2, N_int)
|
||||
hij = mo_two_e_integral(p1, p2, h1, h2) * phase
|
||||
end if
|
||||
mat(:, p1, p2) += coefs(:) * hij
|
||||
mat(:, p1, p2) = mat(:, p1, p2) + coefs(:) * hij
|
||||
end do
|
||||
end do
|
||||
else ! AA BB
|
||||
@ -1692,7 +1645,7 @@ subroutine get_d0_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
else
|
||||
hij = (mo_two_e_integral(p1, p2, puti, putj) - mo_two_e_integral(p2, p1, puti, putj))* get_phase_bi(phasemask, sp, sp, puti, p1 , putj, p2, N_int)
|
||||
end if
|
||||
mat(:, puti, putj) += coefs(:) * hij
|
||||
mat(:, puti, putj) = mat(:, puti, putj) + coefs(:) * hij
|
||||
end do
|
||||
end do
|
||||
end if
|
||||
@ -1751,18 +1704,18 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
do putj=1, hfix-1
|
||||
if(lbanned(putj, ma) .or. banned(putj, puti,bant)) cycle
|
||||
hij = (mo_two_e_integral(p1, p2, putj, hfix)-mo_two_e_integral(p2,p1,putj,hfix)) * get_phase_bi(phasemask, ma, ma, putj, p1, hfix, p2, N_int)
|
||||
tmp_row(1:N_states,putj) += hij * coefs(1:N_states)
|
||||
tmp_row(1:N_states,putj) = tmp_row(1:N_states,putj) + hij * coefs(1:N_states)
|
||||
end do
|
||||
do putj=hfix+1, mo_num
|
||||
if(lbanned(putj, ma) .or. banned(putj, puti,bant)) cycle
|
||||
hij = (mo_two_e_integral(p1, p2, hfix, putj)-mo_two_e_integral(p2,p1,hfix,putj)) * get_phase_bi(phasemask, ma, ma, hfix, p1, putj, p2, N_int)
|
||||
tmp_row(1:N_states,putj) += hij * coefs(1:N_states)
|
||||
tmp_row(1:N_states,putj) = tmp_row(1:N_states,putj) + hij * coefs(1:N_states)
|
||||
end do
|
||||
|
||||
if(ma == 1) then
|
||||
mat(1:N_states,1:mo_num,puti) += tmp_row(1:N_states,1:mo_num)
|
||||
mat(1:N_states,1:mo_num,puti) = mat(1:N_states,1:mo_num,puti) + tmp_row(1:N_states,1:mo_num)
|
||||
else
|
||||
mat(1:N_states,puti,1:mo_num) += tmp_row(1:N_states,1:mo_num)
|
||||
mat(1:N_states,puti,1:mo_num) = mat(1:N_states,puti,1:mo_num) + tmp_row(1:N_states,1:mo_num)
|
||||
end if
|
||||
end if
|
||||
|
||||
@ -1776,22 +1729,22 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
putj = p1
|
||||
if(.not. banned(putj,puti,bant)) then
|
||||
hij = mo_two_e_integral(p2,pfix,hfix,puti) * get_phase_bi(phasemask, ma, mi, hfix, p2, puti, pfix, N_int)
|
||||
tmp_row(:,puti) += hij * coefs(:)
|
||||
tmp_row(:,puti) = tmp_row(:,puti) + hij * coefs(:)
|
||||
end if
|
||||
|
||||
putj = p2
|
||||
if(.not. banned(putj,puti,bant)) then
|
||||
hij = mo_two_e_integral(p1,pfix,hfix,puti) * get_phase_bi(phasemask, ma, mi, hfix, p1, puti, pfix, N_int)
|
||||
tmp_row2(:,puti) += hij * coefs(:)
|
||||
tmp_row2(:,puti) = tmp_row2(:,puti) + hij * coefs(:)
|
||||
end if
|
||||
end do
|
||||
|
||||
if(mi == 1) then
|
||||
mat(:,:,p1) += tmp_row(:,:)
|
||||
mat(:,:,p2) += tmp_row2(:,:)
|
||||
mat(:,:,p1) = mat(:,:,p1) + tmp_row(:,:)
|
||||
mat(:,:,p2) = mat(:,:,p2) + tmp_row2(:,:)
|
||||
else
|
||||
mat(:,p1,:) += tmp_row(:,:)
|
||||
mat(:,p2,:) += tmp_row2(:,:)
|
||||
mat(:,p1,:) = mat(:,p1,:) + tmp_row(:,:)
|
||||
mat(:,p2,:) = mat(:,p2,:) + tmp_row2(:,:)
|
||||
end if
|
||||
else
|
||||
if(p(0,ma) == 3) then
|
||||
@ -1804,16 +1757,16 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
do putj=1,hfix-1
|
||||
if(lbanned(putj,ma) .or. banned(puti,putj,1)) cycle
|
||||
hij = (mo_two_e_integral(p1, p2, putj, hfix)-mo_two_e_integral(p2,p1,putj,hfix)) * get_phase_bi(phasemask, ma, ma, putj, p1, hfix, p2, N_int)
|
||||
tmp_row(:,putj) += hij * coefs(:)
|
||||
tmp_row(:,putj) = tmp_row(:,putj) + hij * coefs(:)
|
||||
end do
|
||||
do putj=hfix+1,mo_num
|
||||
if(lbanned(putj,ma) .or. banned(puti,putj,1)) cycle
|
||||
hij = (mo_two_e_integral(p1, p2, hfix, putj)-mo_two_e_integral(p2,p1,hfix,putj)) * get_phase_bi(phasemask, ma, ma, hfix, p1, putj, p2, N_int)
|
||||
tmp_row(:,putj) += hij * coefs(:)
|
||||
tmp_row(:,putj) = tmp_row(:,putj) + hij * coefs(:)
|
||||
end do
|
||||
|
||||
mat(:, :puti-1, puti) += tmp_row(:,:puti-1)
|
||||
mat(:, puti, puti:) += tmp_row(:,puti:)
|
||||
mat(:, :puti-1, puti) = mat(:, :puti-1, puti) + tmp_row(:,:puti-1)
|
||||
mat(:, puti, puti:) = mat(:, puti, puti:) + tmp_row(:,puti:)
|
||||
end do
|
||||
else
|
||||
hfix = h(1,mi)
|
||||
@ -1827,19 +1780,19 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
putj = p2
|
||||
if(.not. banned(puti,putj,1)) then
|
||||
hij = mo_two_e_integral(pfix, p1, hfix, puti) * get_phase_bi(phasemask, mi, ma, hfix, pfix, puti, p1, N_int)
|
||||
tmp_row(:,puti) += hij * coefs(:)
|
||||
tmp_row(:,puti) = tmp_row(:,puti) + hij * coefs(:)
|
||||
end if
|
||||
|
||||
putj = p1
|
||||
if(.not. banned(puti,putj,1)) then
|
||||
hij = mo_two_e_integral(pfix, p2, hfix, puti) * get_phase_bi(phasemask, mi, ma, hfix, pfix, puti, p2, N_int)
|
||||
tmp_row2(:,puti) += hij * coefs(:)
|
||||
tmp_row2(:,puti) = tmp_row2(:,puti) + hij * coefs(:)
|
||||
end if
|
||||
end do
|
||||
mat(:,:p2-1,p2) += tmp_row(:,:p2-1)
|
||||
mat(:,p2,p2:) += tmp_row(:,p2:)
|
||||
mat(:,:p1-1,p1) += tmp_row2(:,:p1-1)
|
||||
mat(:,p1,p1:) += tmp_row2(:,p1:)
|
||||
mat(:,:p2-1,p2) = mat(:,:p2-1,p2) + tmp_row(:,:p2-1)
|
||||
mat(:,p2,p2:) = mat(:,p2,p2:) + tmp_row(:,p2:)
|
||||
mat(:,:p1-1,p1) = mat(:,:p1-1,p1) + tmp_row2(:,:p1-1)
|
||||
mat(:,p1,p1:) = mat(:,p1,p1:) + tmp_row2(:,p1:)
|
||||
end if
|
||||
end if
|
||||
deallocate(lbanned)
|
||||
@ -1862,7 +1815,7 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
if(bannedOrb(p1, s1) .or. bannedOrb(p2, s2) .or. banned(p1, p2, 1)) cycle
|
||||
call apply_particles(mask, s1, p1, s2, p2, det, ok, N_int)
|
||||
call i_h_j(gen, det, N_int, hij)
|
||||
mat(:, p1, p2) += coefs(:) * hij
|
||||
mat(:, p1, p2) = mat(:, p1, p2) + coefs(:) * hij
|
||||
end do
|
||||
end do
|
||||
end
|
||||
@ -1915,9 +1868,9 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
|
||||
hij = (mo_two_e_integral(p1, p2, h1, h2) - mo_two_e_integral(p2,p1, h1, h2)) * get_phase_bi(phasemask, ma, ma, h1, p1, h2, p2, N_int)
|
||||
if(ma == 1) then
|
||||
mat(:, putj, puti) += coefs(:) * hij
|
||||
mat(:, putj, puti) = mat(:, putj, puti) + coefs(:) * hij
|
||||
else
|
||||
mat(:, puti, putj) += coefs(:) * hij
|
||||
mat(:, puti, putj) = mat(:, puti, putj) + coefs(:) * hij
|
||||
end if
|
||||
end do
|
||||
else
|
||||
@ -1933,7 +1886,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
p1 = p(turn2(i), 1)
|
||||
|
||||
hij = mo_two_e_integral(p1, p2, h1, h2) * get_phase_bi(phasemask, 1, 2, h1, p1, h2, p2,N_int)
|
||||
mat(:, puti, putj) += coefs(:) * hij
|
||||
mat(:, puti, putj) = mat(:, puti, putj) + coefs(:) * hij
|
||||
end do
|
||||
end do
|
||||
end if
|
||||
@ -1953,7 +1906,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
p1 = p(i1, ma)
|
||||
p2 = p(i2, ma)
|
||||
hij = (mo_two_e_integral(p1, p2, h1, h2) - mo_two_e_integral(p2,p1, h1, h2)) * get_phase_bi(phasemask, ma, ma, h1, p1, h2, p2,N_int)
|
||||
mat(:, puti, putj) += coefs(:) * hij
|
||||
mat(:, puti, putj) = mat(:, puti, putj) + coefs(:) * hij
|
||||
end do
|
||||
end do
|
||||
else if(tip == 3) then
|
||||
@ -1967,7 +1920,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
p2 = p(i, ma)
|
||||
|
||||
hij = mo_two_e_integral(p1, p2, h1, h2) * get_phase_bi(phasemask, mi, ma, h1, p1, h2, p2,N_int)
|
||||
mat(:, min(puti, putj), max(puti, putj)) += coefs(:) * hij
|
||||
mat(:, min(puti, putj), max(puti, putj)) = mat(:, min(puti, putj), max(puti, putj)) + coefs(:) * hij
|
||||
end do
|
||||
else ! tip == 4
|
||||
puti = p(1, sp)
|
||||
@ -1978,7 +1931,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p,
|
||||
h1 = h(1, mi)
|
||||
h2 = h(2, mi)
|
||||
hij = (mo_two_e_integral(p1, p2, h1, h2) - mo_two_e_integral(p2,p1, h1, h2)) * get_phase_bi(phasemask, mi, mi, h1, p1, h2, p2,N_int)
|
||||
mat(:, puti, putj) += coefs(:) * hij
|
||||
mat(:, puti, putj) = mat(:, puti, putj) + coefs(:) * hij
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
|
@ -175,7 +175,7 @@ subroutine make_selection_buffer_s2(b)
|
||||
! Sort
|
||||
integer, allocatable :: iorder(:)
|
||||
integer*8, allocatable :: bit_tmp(:)
|
||||
integer*8, external :: occ_pattern_search_key
|
||||
integer*8, external :: configuration_search_key
|
||||
integer(bit_kind), allocatable :: tmp_array(:,:,:)
|
||||
logical, allocatable :: duplicate(:)
|
||||
|
||||
@ -193,7 +193,7 @@ subroutine make_selection_buffer_s2(b)
|
||||
o(k,2,i) = iand(b%det(k,1,i), b%det(k,2,i))
|
||||
enddo
|
||||
iorder(i) = i
|
||||
bit_tmp(i) = occ_pattern_search_key(o(1,1,i),N_int)
|
||||
bit_tmp(i) = configuration_search_key(o(1,1,i),N_int)
|
||||
enddo
|
||||
|
||||
deallocate(b%det)
|
||||
@ -279,7 +279,7 @@ subroutine make_selection_buffer_s2(b)
|
||||
! Create determinants
|
||||
n_d = 0
|
||||
do i=1,n_p
|
||||
call occ_pattern_to_dets_size(o(1,1,i),sze,elec_alpha_num,N_int)
|
||||
call configuration_to_dets_size(o(1,1,i),sze,elec_alpha_num,N_int)
|
||||
n_d = n_d + sze
|
||||
if (n_d > b%cur) then
|
||||
! if (n_d - b%cur > b%cur - n_d + sze) then
|
||||
@ -295,8 +295,8 @@ subroutine make_selection_buffer_s2(b)
|
||||
k=1
|
||||
do i=1,n_p
|
||||
n=n_d
|
||||
call occ_pattern_to_dets_size(o(1,1,i),n,elec_alpha_num,N_int)
|
||||
call occ_pattern_to_dets(o(1,1,i),b%det(1,1,k),n,elec_alpha_num,N_int)
|
||||
call configuration_to_dets_size(o(1,1,i),n,elec_alpha_num,N_int)
|
||||
call configuration_to_dets(o(1,1,i),b%det(1,1,k),n,elec_alpha_num,N_int)
|
||||
do j=k,k+n-1
|
||||
b%val(j) = val(i)
|
||||
enddo
|
||||
|
134
src/cipsi/selection_weight.irp.f
Normal file
134
src/cipsi/selection_weight.irp.f
Normal file
@ -0,0 +1,134 @@
|
||||
BEGIN_PROVIDER [ double precision, pt2_match_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights adjusted along the selection to make the PT2 contributions
|
||||
! of each state coincide.
|
||||
END_DOC
|
||||
pt2_match_weight(:) = 1.d0
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, variance_match_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights adjusted along the selection to make the variances
|
||||
! of each state coincide.
|
||||
END_DOC
|
||||
variance_match_weight(:) = 1.d0
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
subroutine update_pt2_and_variance_weights(pt2_data, N_st)
|
||||
implicit none
|
||||
use selection_types
|
||||
BEGIN_DOC
|
||||
! Updates the PT2- and Variance- matching weights.
|
||||
END_DOC
|
||||
integer, intent(in) :: N_st
|
||||
type(pt2_type), intent(in) :: pt2_data
|
||||
double precision :: pt2(N_st)
|
||||
double precision :: variance(N_st)
|
||||
|
||||
double precision :: avg, element, dt, x
|
||||
integer :: k
|
||||
pt2(:) = pt2_data % pt2(:)
|
||||
variance(:) = pt2_data % variance(:)
|
||||
|
||||
avg = sum(pt2(1:N_st)) / dble(N_st) + 1.d-32 ! Avoid future division by zero
|
||||
|
||||
dt = 8.d0 !* selection_factor
|
||||
do k=1,N_st
|
||||
element = exp(dt*(pt2(k)/avg - 1.d0))
|
||||
element = min(2.0d0 , element)
|
||||
element = max(0.5d0 , element)
|
||||
pt2_match_weight(k) *= element
|
||||
enddo
|
||||
|
||||
|
||||
avg = sum(variance(1:N_st)) / dble(N_st) + 1.d-32 ! Avoid future division by zero
|
||||
|
||||
do k=1,N_st
|
||||
element = exp(dt*(variance(k)/avg -1.d0))
|
||||
element = min(2.0d0 , element)
|
||||
element = max(0.5d0 , element)
|
||||
variance_match_weight(k) *= element
|
||||
enddo
|
||||
|
||||
if (N_det < 100) then
|
||||
! For tiny wave functions, weights are 1.d0
|
||||
pt2_match_weight(:) = 1.d0
|
||||
variance_match_weight(:) = 1.d0
|
||||
endif
|
||||
|
||||
threshold_davidson_pt2 = min(1.d-6, &
|
||||
max(threshold_davidson, 1.e-1 * PT2_relative_error * minval(abs(pt2(1:N_states)))) )
|
||||
|
||||
SOFT_TOUCH pt2_match_weight variance_match_weight threshold_davidson_pt2
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, selection_weight, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Weights used in the selection criterion
|
||||
END_DOC
|
||||
select case (weight_selection)
|
||||
|
||||
case (0)
|
||||
print *, 'Using input weights in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
|
||||
case (1)
|
||||
print *, 'Using 1/c_max^2 weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states)
|
||||
|
||||
case (2)
|
||||
print *, 'Using pt2-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * pt2_match_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
|
||||
case (3)
|
||||
print *, 'Using variance-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (4)
|
||||
print *, 'Using variance- and pt2-matching weights in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * sqrt(variance_match_weight(1:N_states) * pt2_match_weight(1:N_states))
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (5)
|
||||
print *, 'Using variance-matching weight in selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (6)
|
||||
print *, 'Using CI coefficient-based selection'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states)
|
||||
|
||||
case (7)
|
||||
print *, 'Input weights multiplied by variance- and pt2-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * sqrt(variance_match_weight(1:N_states) * pt2_match_weight(1:N_states)) * state_average_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
case (8)
|
||||
print *, 'Input weights multiplied by pt2-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * pt2_match_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
print *, '# PT2 weight ', real(pt2_match_weight(:),4)
|
||||
|
||||
case (9)
|
||||
print *, 'Input weights multiplied by variance-matching'
|
||||
selection_weight(1:N_states) = c0_weight(1:N_states) * variance_match_weight(1:N_states) * state_average_weight(1:N_states)
|
||||
print *, '# var weight ', real(variance_match_weight(:),4)
|
||||
|
||||
end select
|
||||
print *, '# Total weight ', real(selection_weight(:),4)
|
||||
|
||||
END_PROVIDER
|
||||
|
@ -4,7 +4,7 @@ subroutine run_slave_cipsi
|
||||
! Helper program for distributed parallelism
|
||||
END_DOC
|
||||
|
||||
call omp_set_nested(.false.)
|
||||
call omp_set_max_active_levels(1)
|
||||
distributed_davidson = .False.
|
||||
read_wf = .False.
|
||||
SOFT_TOUCH read_wf distributed_davidson
|
||||
@ -100,7 +100,7 @@ subroutine run_slave_main
|
||||
IRP_IF MPI_DEBUG
|
||||
call mpi_print('zmq_get_dvector threshold_generators')
|
||||
IRP_ENDIF
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'threshold_generators',threshold_generators,1) == -1) cycle
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'threshold_generators',(/threshold_generators/),1) == -1) cycle
|
||||
IRP_IF MPI_DEBUG
|
||||
call mpi_print('zmq_get_dvector energy')
|
||||
IRP_ENDIF
|
||||
@ -122,7 +122,7 @@ subroutine run_slave_main
|
||||
IRP_ENDIF
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'selection_weight',selection_weight,N_states) == -1) cycle
|
||||
pt2_e0_denominator(1:N_states) = energy(1:N_states)
|
||||
TOUCH pt2_e0_denominator state_average_weight threshold_generators selection_weight
|
||||
TOUCH pt2_e0_denominator state_average_weight threshold_generators selection_weight psi_det psi_coef
|
||||
|
||||
if (mpi_master) then
|
||||
print *, 'N_det', N_det
|
||||
@ -171,9 +171,9 @@ subroutine run_slave_main
|
||||
call write_double(6,(t1-t0),'Broadcast time')
|
||||
|
||||
!---
|
||||
call omp_set_nested(.True.)
|
||||
call omp_set_max_active_levels(8)
|
||||
call davidson_slave_tcp(0)
|
||||
call omp_set_nested(.False.)
|
||||
call omp_set_max_active_levels(1)
|
||||
print *, mpi_rank, ': Davidson done'
|
||||
!---
|
||||
|
||||
@ -212,7 +212,7 @@ subroutine run_slave_main
|
||||
IRP_IF MPI_DEBUG
|
||||
call mpi_print('zmq_get_dvector threshold_generators')
|
||||
IRP_ENDIF
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'threshold_generators',threshold_generators,1) == -1) cycle
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'threshold_generators',(/threshold_generators/),1) == -1) cycle
|
||||
IRP_IF MPI_DEBUG
|
||||
call mpi_print('zmq_get_dvector energy')
|
||||
IRP_ENDIF
|
||||
@ -230,7 +230,8 @@ subroutine run_slave_main
|
||||
IRP_ENDIF
|
||||
if (zmq_get_dvector(zmq_to_qp_run_socket,1,'selection_weight',selection_weight,N_states) == -1) cycle
|
||||
pt2_e0_denominator(1:N_states) = energy(1:N_states)
|
||||
SOFT_TOUCH pt2_e0_denominator state_average_weight pt2_stoch_istate threshold_generators selection_weight
|
||||
SOFT_TOUCH pt2_e0_denominator state_average_weight pt2_stoch_istate threshold_generators selection_weight psi_det psi_coef N_det_generators N_det_selectors
|
||||
|
||||
|
||||
call wall_time(t1)
|
||||
call write_double(6,(t1-t0),'Broadcast time')
|
||||
@ -296,11 +297,17 @@ subroutine run_slave_main
|
||||
print *, 'Number of threads', nproc_target
|
||||
endif
|
||||
|
||||
if (h0_type == 'SOP') then
|
||||
PROVIDE det_to_occ_pattern
|
||||
if (h0_type == 'CFG') then
|
||||
PROVIDE det_to_configuration
|
||||
endif
|
||||
|
||||
PROVIDE global_selection_buffer
|
||||
PROVIDE global_selection_buffer pt2_N_teeth pt2_F N_det_generators
|
||||
PROVIDE psi_bilinear_matrix_columns_loc psi_det_alpha_unique psi_det_beta_unique
|
||||
PROVIDE psi_bilinear_matrix_rows psi_det_sorted_order psi_bilinear_matrix_order
|
||||
PROVIDE psi_bilinear_matrix_transp_rows_loc psi_bilinear_matrix_transp_columns
|
||||
PROVIDE psi_bilinear_matrix_transp_order psi_selectors_coef_transp psi_det_sorted
|
||||
PROVIDE psi_det_hii selection_weight pseudo_sym pt2_min_parallel_tasks
|
||||
|
||||
if (mpi_master) then
|
||||
print *, 'Running PT2'
|
||||
endif
|
||||
|
@ -92,7 +92,7 @@ subroutine run_stochastic_cipsi
|
||||
|
||||
call write_double(6,correlation_energy_ratio, 'Correlation ratio')
|
||||
call print_summary(psi_energy_with_nucl_rep, &
|
||||
pt2_data, pt2_data_err, N_det,N_occ_pattern,N_states,psi_s2)
|
||||
pt2_data, pt2_data_err, N_det,N_configuration,N_states,psi_s2)
|
||||
|
||||
call save_energy(psi_energy_with_nucl_rep, pt2_data % pt2)
|
||||
|
||||
@ -104,7 +104,9 @@ subroutine run_stochastic_cipsi
|
||||
|
||||
! Add selected determinants
|
||||
call copy_H_apply_buffer_to_wf()
|
||||
! call save_wavefunction
|
||||
if (save_wf_after_selection) then
|
||||
call save_wavefunction
|
||||
endif
|
||||
|
||||
PROVIDE psi_coef
|
||||
PROVIDE psi_det
|
||||
@ -131,7 +133,7 @@ subroutine run_stochastic_cipsi
|
||||
|
||||
call save_energy(psi_energy_with_nucl_rep, pt2_data % pt2)
|
||||
call print_summary(psi_energy_with_nucl_rep, &
|
||||
pt2_data , pt2_data_err, N_det, N_occ_pattern, N_states, psi_s2)
|
||||
pt2_data , pt2_data_err, N_det, N_configuration, N_states, psi_s2)
|
||||
call save_iterations(psi_energy_with_nucl_rep(1:N_states),pt2_data % rpt2,N_det)
|
||||
call print_extrapolated_energy()
|
||||
endif
|
||||
|
@ -48,7 +48,7 @@ subroutine ZMQ_selection(N_in, pt2_data)
|
||||
if (zmq_put_dvector(zmq_to_qp_run_socket,1,'selection_weight',selection_weight,N_states) == -1) then
|
||||
stop 'Unable to put selection_weight on ZMQ server'
|
||||
endif
|
||||
if (zmq_put_dvector(zmq_to_qp_run_socket,1,'threshold_generators',threshold_generators,1) == -1) then
|
||||
if (zmq_put_dvector(zmq_to_qp_run_socket,1,'threshold_generators',(/threshold_generators/),1) == -1) then
|
||||
stop 'Unable to put threshold_generators on ZMQ server'
|
||||
endif
|
||||
call create_selection_buffer(N, N*2, b)
|
||||
|
@ -129,7 +129,8 @@ function run() {
|
||||
|
||||
@test "[Cu(NH3)4]2+" { # 29.7711s 3.45478m
|
||||
[[ -n ${TRAVIS} ]] && skip
|
||||
run cu_nh3_4_2plus.ezfio -1862.97958709248 -1862.92454796197 -1862.91130872182
|
||||
run cu_nh3_4_2plus.ezfio -1862.97958885180 -1862.92457657404 -1862.91134959451
|
||||
|
||||
}
|
||||
|
||||
@test "SO2" { # 32.092s 1.47785m
|
||||
|
@ -79,6 +79,6 @@ subroutine run
|
||||
call ezfio_set_cis_energy(CI_energy)
|
||||
psi_coef = ci_eigenvectors
|
||||
SOFT_TOUCH psi_coef
|
||||
call save_wavefunction
|
||||
call save_wavefunction_truncated(1.d-12)
|
||||
|
||||
end
|
||||
|
@ -110,7 +110,8 @@ function run() {
|
||||
[[ -n $TRAVIS ]] && skip
|
||||
qp set_file cu_nh3_4_2plus.ezfio
|
||||
qp set_mo_class --core="[1-24]" --act="[25-45]" --del="[46-87]"
|
||||
run -1862.98611018932 -1862.68751252590
|
||||
run -1862.98689579931 -1862.6883044626563
|
||||
|
||||
}
|
||||
|
||||
@test "ClF" { # 30.3225s
|
||||
|
1
src/csf/NEED
Normal file
1
src/csf/NEED
Normal file
@ -0,0 +1 @@
|
||||
determinants
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user