10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-10-19 22:41:48 +02:00

Merge pull request #62 from scemama/master

merge
This commit is contained in:
Emmanuel Giner 2019-01-16 15:03:47 +01:00 committed by GitHub
commit 6ada723926
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
113 changed files with 5916 additions and 4629 deletions

9
TODO
View File

@ -19,7 +19,7 @@ Problem with EMSL
* Molden format : http://cheminf.cmbi.ru.nl/molden/molden_format.html : read+write. Thomas est dessus * Molden format : http://cheminf.cmbi.ru.nl/molden/molden_format.html : read+write. Thomas est dessus
* Un module pour lire les integrales Moleculaires depuis un FCIDUMP * 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) * Un module pour lire des integrales Atomiques (voir module de Mimi pour lire les AO Slater)
* Format Fchk (gaussian)
# Tests: # Tests:
@ -60,4 +60,9 @@ Refaire les benchmarks
# Toto # Toto
Si un provider est un programme, generer une page a lui tout seul avec le man Si un provider est un programme, generer une page a lui tout seul avec le man
# qp_stop : pour forcer a terminer proprement le programme (kill clean) qp_stop : pour forcer a terminer proprement le programme (kill clean)
Virer EMSL

View File

@ -2,17 +2,12 @@
export QP_ROOT=$(dirname $0)/.. export QP_ROOT=$(dirname $0)/..
python2 ${QP_ROOT}/scripts/hello.py bash --init-file <(cat << EOF
echo "" [[ -f /etc/bashrc ]] && source /etc/bashrc
echo " -- Quantum Package Shell -- " source ${QP_ROOT}/quantum_package.rc
echo "" qp prompt
exec bash --init-file <(cat << EOF
[[ -f \${HOME}/.bashrc ]] && source \${HOME}/.bashrc
source \${QP_ROOT}/quantum_package.rc
qp prompt
EOF EOF
) ) -i $@

40
configure vendored
View File

@ -3,7 +3,7 @@
# Quantum Package configuration script # Quantum Package configuration script
# #
TEMP=`getopt -o c:i:h -l config:,install:,help -n $0 -- "$@"` || exit 1 TEMP=$(getopt -o c:i:h -l config:,install:,help -n $0 -- "$@") || exit 1
eval set -- "$TEMP" eval set -- "$TEMP"
export QP_ROOT="$( cd "$(dirname "$0")" ; pwd -P )" export QP_ROOT="$( cd "$(dirname "$0")" ; pwd -P )"
@ -25,8 +25,8 @@ Options:
in "${QP_ROOT}/config/". in "${QP_ROOT}/config/".
-h, --help Print the HELP message -h, --help Print the HELP message
-i, --install=<package> INSTALL <package>. Use at your OWN RISK: -i, --install=<package> INSTALL <package>. Use at your OWN RISK:
no support will be provided for the installation of no support will be provided for the installation of
dependencies. dependencies.
Example: Example:
./$(basename $0) -c config/gfortran.cfg ./$(basename $0) -c config/gfortran.cfg
@ -62,7 +62,7 @@ function execute () {
PACKAGES="" PACKAGES=""
OCAML_PACKAGES="ocamlbuild cryptokit zmq core sexplib ppx_sexp_conv ppx_deriving getopt" OCAML_PACKAGES="ocamlbuild cryptokit zmq core sexplib ppx_sexp_conv ppx_deriving getopt"
while true : ; do while true ; do
case "$1" in case "$1" in
-c|--config) -c|--config)
case "$2" in case "$2" in
@ -158,17 +158,17 @@ function find_dir() {
if [[ "${PACKAGES}.x" != ".x" ]] ; then if [[ "${PACKAGES}.x" != ".x" ]] ; then
printf "\e[0;31m" printf "\e[0;31m"
echo "" echo ""
echo "#########################################################" echo "#########################################################"
echo "# #" echo "# #"
echo "# Automatic installation of dependencies #" echo "# Automatic installation of dependencies #"
echo "# #" echo "# #"
echo "# USE AT YOUR OWN RISK : #" echo "# USE AT YOUR OWN RISK : #"
echo "# No support will be provided by the quantum package #" echo "# No support will be provided by the quantum package #"
echo "# developers for the installation of external software. #" echo "# developers for the installation of external software. #"
echo "# #" echo "# #"
echo "# You may refer to the INSTALL.rst file for help. #" echo "# You may refer to the INSTALL.rst file for help. #"
echo "# #" echo "# #"
echo "#########################################################" echo "#########################################################"
printf "\e[m" printf "\e[m"
echo "" echo ""
sleep 1 sleep 1
@ -433,11 +433,11 @@ fi
if [[ -f ${QP_ROOT}/build.ninja ]] ; then if [[ -f ${QP_ROOT}/build.ninja ]] ; then
[[ -z ${TRAVIS} ]] && exec ${QP_ROOT}/bin/qpsh [[ -z ${TRAVIS} ]] && exec ${QP_ROOT}/bin/qpsh
else else
echo "" echo ""
echo "${QP_ROOT}/build.ninja does not exist," echo "${QP_ROOT}/build.ninja does not exist,"
echo "you need to specify the COMPILATION configuration file." echo "you need to specify the COMPILATION configuration file."
echo "See ./configure --help for more details." echo "See ./configure --help for more details."
echo "" echo ""
fi fi

View File

@ -1,3 +1,5 @@
* To reference the QP program prog, use :ref:`.prog.`
* See docs/source/_static/links.rst file for many useful macros * See docs/source/_static/links.rst file for many useful macros
* option provider :option:`name_of_module provider` * option provider :option:`name_of_module provider`
* subroutine :c:func:`my_subroutine` * subroutine :c:func:`my_subroutine`

View File

@ -2,8 +2,11 @@
from __future__ import print_function from __future__ import print_function
import os import os
import sys
import ConfigParser import ConfigParser
from module_handler import get_binaries
def generate_modules(abs_module, entities): def generate_modules(abs_module, entities):
MODULE = os.path.split(abs_module)[-1] MODULE = os.path.split(abs_module)[-1]
@ -37,16 +40,29 @@ def generate_modules(abs_module, entities):
rst += [ ".. option:: %s\n"%(section), doc, default ] rst += [ ".. option:: %s\n"%(section), doc, default ]
providers = [] providers = []
subroutines = [] subroutines = {}
for k in sorted(entities.keys()): for k in sorted(entities.keys()):
e = entities[k] e = entities[k]
if e["module"].lower() == module.lower(): if e["module"].lower() == module.lower():
if "/" not in e["file"] and e["file"] != "ezfio_interface.irp.f": if "/" not in e["file"] and e["file"] != "ezfio_interface.irp.f":
if e["type"] == 's': if e["type"] == 's':
subroutines.append(e) subroutines[e["name"]] = e
elif e["type"] == 'p': elif e["type"] == 'p':
providers.append(e) providers.append(e)
binaries = [ os.path.basename(f) for f in get_binaries(abs_module) ]
if binaries:
rst += ["", "Programs", "--------", ""]
for b in binaries:
try:
b = subroutines[b]
except KeyError:
print("Error: The program %s in %s does not have the same name as the file"%
(b, abs_module))
sys.exit(1)
rst += [" * :ref:`%s`"%(b["name"])]
if providers: if providers:
rst += [ "", "Providers", "---------", "" ] rst += [ "", "Providers", "---------", "" ]
for p in providers: for p in providers:
@ -72,7 +88,10 @@ def generate_modules(abs_module, entities):
if subroutines: if subroutines:
rst += [ "", "Subroutines / functions", "-----------------------", "" ] rst += [ "", "Subroutines / functions", "-----------------------", "" ]
for p in subroutines: for p in sorted(subroutines.keys()):
p = subroutines[p]
if p["name"] in binaries:
continue
rst += [ """ rst += [ """
.. c:function:: %s .. c:function:: %s
@ -93,10 +112,21 @@ def generate_modules(abs_module, entities):
) ] ) ]
rst_file = os.path.join('modules',module+".rst") rst_file = os.path.join('modules',module+".rst")
with open(rst_file,'w') as f: with open(rst_file,'w') as f:
f.write("\n".join(rst)) f.write(" \n".join(rst))
for b in binaries:
rst = [
".. _.%s.:"%(b), "",
".. program:: %s"%(b), "",
"="*len(b), b, "="*len(b), "", "",
" ".join(subroutines[b]["doc"]), "",
"File: :file:`%s`"%(os.path.join(module, subroutines[b]["file"]))
]
rst_file = os.path.join('programs',b+".rst")
with open(rst_file,'w') as f:
f.write(" \n".join(rst))
@ -202,7 +232,7 @@ def generate_index(entities):
if e["type"] == 's': if e["type"] == 's':
rst.append("* :c:func:`%s`" % (e["name"])) rst.append("* :c:func:`%s`" % (e["name"]))
f.write("\n".join(rst)) f.write(" \n".join(rst))

View File

@ -166,6 +166,12 @@ for f in os.listdir("users_guide"):
filename = os.path.join("users_guide",name) filename = os.path.join("users_guide",name)
man_pages.append( (filename, name, qpdoc, [author], 1) ) man_pages.append( (filename, name, qpdoc, [author], 1) )
for f in os.listdir("programs"):
name = f.split('.')[0]
if name not in []:
filename = os.path.join("programs",name)
man_pages.append( (filename, name, qpdoc, [author], 1) )
# -- Options for Texinfo output ---------------------------------------------- # -- Options for Texinfo output ----------------------------------------------

View File

@ -1,9 +1,9 @@
.. _ao_basis: .. _ao_basis:
.. program:: ao_basis .. program:: ao_basis
.. default-role:: option .. default-role:: option
======== ========
ao_basis ao_basis
======== ========
@ -32,68 +32,68 @@ the two electron integrals.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: ao_basis .. option:: ao_basis
Name of the |AO| basis set Name of the |AO| basis set
.. option:: ao_num .. option:: ao_num
Number of |AOs| Number of |AOs|
.. option:: ao_prim_num .. option:: ao_prim_num
Number of primitives per |AO| Number of primitives per |AO|
.. option:: ao_prim_num_max .. option:: ao_prim_num_max
Maximum number of primitives Maximum number of primitives
Default: =maxval(ao_basis.ao_prim_num) Default: =maxval(ao_basis.ao_prim_num)
.. option:: ao_nucl .. option:: ao_nucl
Index of the nucleus on which the |AO| is centered Index of the nucleus on which the |AO| is centered
.. option:: ao_power .. option:: ao_power
Powers of x, y and z for each |AO| Powers of x, y and z for each |AO|
.. option:: ao_coef .. option:: ao_coef
Primitive coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs. Primitive coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs.
.. option:: ao_expo .. option:: ao_expo
Exponents for each primitive of each |AO| Exponents for each primitive of each |AO|
.. option:: ao_md5 .. option:: ao_md5
MD5 key, specific of the |AO| basis MD5 key, specific of the |AO| basis
.. option:: ao_cartesian .. option:: ao_cartesian
If |true|, use |AOs| in Cartesian coordinates (6d,10f,...) If |true|, use |AOs| in Cartesian coordinates (6d,10f,...)
Default: false Default: false
Providers Providers
--------- ---------
.. c:var:: ao_coef_normalization_factor .. c:var:: ao_coef_normalization_factor
@ -107,7 +107,7 @@ Providers
Coefficients including the |AO| normalization Coefficients including the |AO| normalization
.. c:var:: ao_coef_normalization_libint_factor .. c:var:: ao_coef_normalization_libint_factor
@ -120,7 +120,7 @@ Providers
|AO| normalization for interfacing with libint |AO| normalization for interfacing with libint
.. c:var:: ao_coef_normalized .. c:var:: ao_coef_normalized
@ -134,7 +134,7 @@ Providers
Coefficients including the |AO| normalization Coefficients including the |AO| normalization
.. c:var:: ao_coef_normalized_ordered .. c:var:: ao_coef_normalized_ordered
@ -148,7 +148,7 @@ Providers
Sorted primitives to accelerate 4 index |MO| transformation Sorted primitives to accelerate 4 index |MO| transformation
.. c:var:: ao_coef_normalized_ordered_transp .. c:var:: ao_coef_normalized_ordered_transp
@ -161,7 +161,7 @@ Providers
Transposed :c:data:`ao_coef_normalized_ordered` Transposed :c:data:`ao_coef_normalized_ordered`
.. c:var:: ao_coef_normalized_ordered_transp_per_nucl .. c:var:: ao_coef_normalized_ordered_transp_per_nucl
@ -174,7 +174,7 @@ Providers
.. c:var:: ao_expo_ordered .. c:var:: ao_expo_ordered
@ -188,7 +188,7 @@ Providers
Sorted primitives to accelerate 4 index |MO| transformation Sorted primitives to accelerate 4 index |MO| transformation
.. c:var:: ao_expo_ordered_transp .. c:var:: ao_expo_ordered_transp
@ -201,7 +201,7 @@ Providers
Transposed :c:data:`ao_expo_ordered` Transposed :c:data:`ao_expo_ordered`
.. c:var:: ao_expo_ordered_transp_per_nucl .. c:var:: ao_expo_ordered_transp_per_nucl
@ -214,7 +214,7 @@ Providers
.. c:var:: ao_l .. c:var:: ao_l
@ -229,7 +229,7 @@ Providers
:math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c` :math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c`
.. c:var:: ao_l_char .. c:var:: ao_l_char
@ -244,7 +244,7 @@ Providers
:math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c` :math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c`
.. c:var:: ao_l_char_space .. c:var:: ao_l_char_space
@ -257,7 +257,7 @@ Providers
Converts an l value to a string Converts an l value to a string
.. c:var:: ao_l_max .. c:var:: ao_l_max
@ -272,7 +272,7 @@ Providers
:math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c` :math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c`
.. c:var:: ao_power_ordered_transp_per_nucl .. c:var:: ao_power_ordered_transp_per_nucl
@ -285,7 +285,7 @@ Providers
.. c:var:: ao_prim_num_max .. c:var:: ao_prim_num_max
@ -298,7 +298,7 @@ Providers
Max number of primitives. Max number of primitives.
.. c:var:: cart_to_sphe_0 .. c:var:: cart_to_sphe_0
@ -311,7 +311,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=0 Spherical -> Cartesian Transformation matrix for l=0
.. c:var:: cart_to_sphe_1 .. c:var:: cart_to_sphe_1
@ -324,7 +324,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=1 Spherical -> Cartesian Transformation matrix for l=1
.. c:var:: cart_to_sphe_2 .. c:var:: cart_to_sphe_2
@ -337,7 +337,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=2 Spherical -> Cartesian Transformation matrix for l=2
.. c:var:: cart_to_sphe_3 .. c:var:: cart_to_sphe_3
@ -350,7 +350,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=3 Spherical -> Cartesian Transformation matrix for l=3
.. c:var:: cart_to_sphe_4 .. c:var:: cart_to_sphe_4
@ -363,7 +363,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=4 Spherical -> Cartesian Transformation matrix for l=4
.. c:var:: cart_to_sphe_5 .. c:var:: cart_to_sphe_5
@ -376,7 +376,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=5 Spherical -> Cartesian Transformation matrix for l=5
.. c:var:: cart_to_sphe_6 .. c:var:: cart_to_sphe_6
@ -389,7 +389,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=6 Spherical -> Cartesian Transformation matrix for l=6
.. c:var:: cart_to_sphe_7 .. c:var:: cart_to_sphe_7
@ -402,7 +402,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=7 Spherical -> Cartesian Transformation matrix for l=7
.. c:var:: cart_to_sphe_8 .. c:var:: cart_to_sphe_8
@ -415,7 +415,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=8 Spherical -> Cartesian Transformation matrix for l=8
.. c:var:: cart_to_sphe_9 .. c:var:: cart_to_sphe_9
@ -428,7 +428,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=9 Spherical -> Cartesian Transformation matrix for l=9
.. c:var:: l_to_charater .. c:var:: l_to_charater
@ -441,7 +441,7 @@ Providers
Character corresponding to the "l" value of an |AO| Character corresponding to the "l" value of an |AO|
.. c:var:: n_aos_max .. c:var:: n_aos_max
@ -455,7 +455,7 @@ Providers
Number of |AOs| per atom Number of |AOs| per atom
.. c:var:: n_pt_max_i_x .. c:var:: n_pt_max_i_x
@ -469,7 +469,7 @@ Providers
Number of points used in the numerical integrations. Number of points used in the numerical integrations.
.. c:var:: n_pt_max_integrals .. c:var:: n_pt_max_integrals
@ -483,7 +483,7 @@ Providers
Number of points used in the numerical integrations. Number of points used in the numerical integrations.
.. c:var:: nucl_aos .. c:var:: nucl_aos
@ -496,7 +496,7 @@ Providers
List of |AOs| centered on each atom List of |AOs| centered on each atom
.. c:var:: nucl_aos_transposed .. c:var:: nucl_aos_transposed
@ -509,7 +509,7 @@ Providers
List of AOs attached on each atom List of AOs attached on each atom
.. c:var:: nucl_list_shell_aos .. c:var:: nucl_list_shell_aos
@ -523,7 +523,7 @@ Providers
Index of the shell type |AOs| and of the corresponding |AOs| By convention, for p,d,f and g |AOs|, we take the index of the |AO| with the the corresponding power in the x axis Index of the shell type |AOs| and of the corresponding |AOs| By convention, for p,d,f and g |AOs|, we take the index of the |AO| with the the corresponding power in the x axis
.. c:var:: nucl_n_aos .. c:var:: nucl_n_aos
@ -537,7 +537,7 @@ Providers
Number of |AOs| per atom Number of |AOs| per atom
.. c:var:: nucl_num_shell_aos .. c:var:: nucl_num_shell_aos
@ -551,11 +551,11 @@ Providers
Index of the shell type |AOs| and of the corresponding |AOs| By convention, for p,d,f and g |AOs|, we take the index of the |AO| with the the corresponding power in the x axis Index of the shell type |AOs| and of the corresponding |AOs| By convention, for p,d,f and g |AOs|, we take the index of the |AO| with the the corresponding power in the x axis
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: ao_power_index .. c:function:: ao_power_index
@ -571,7 +571,7 @@ Subroutines / functions
:math:`\frac{1}{2} (l-n_x) (l-n_x+1) + n_z + 1` :math:`\frac{1}{2} (l-n_x) (l-n_x+1) + n_z + 1`
.. c:function:: ao_value .. c:function:: ao_value
@ -585,7 +585,7 @@ Subroutines / functions
return the value of the ith ao at point r return the value of the ith ao at point r
.. c:function:: give_all_aos_and_grad_and_lapl_at_r .. c:function:: give_all_aos_and_grad_and_lapl_at_r
@ -599,7 +599,7 @@ Subroutines / functions
input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : aos_array(i) = ao(i) evaluated at r : aos_grad_array(1,i) = gradient X of the ao(i) evaluated at r input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : aos_array(i) = ao(i) evaluated at r : aos_grad_array(1,i) = gradient X of the ao(i) evaluated at r
.. c:function:: give_all_aos_and_grad_at_r .. c:function:: give_all_aos_and_grad_at_r
@ -613,7 +613,7 @@ Subroutines / functions
input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : aos_array(i) = ao(i) evaluated at r : aos_grad_array(1,i) = gradient X of the ao(i) evaluated at r input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : aos_array(i) = ao(i) evaluated at r : aos_grad_array(1,i) = gradient X of the ao(i) evaluated at r
.. c:function:: give_all_aos_at_r .. c:function:: give_all_aos_at_r
@ -627,7 +627,7 @@ Subroutines / functions
input : r == r(1) = x and so on aos_array(i) = aos(i) evaluated in r input : r == r(1) = x and so on aos_array(i) = aos(i) evaluated in r
.. c:function:: give_all_aos_at_r_old .. c:function:: give_all_aos_at_r_old
@ -641,7 +641,7 @@ Subroutines / functions
gives the values of aos at a given point r gives the values of aos at a given point r
.. c:function:: primitive_value .. c:function:: primitive_value

View File

@ -1,88 +1,88 @@
.. _ao_one_e_ints: .. _ao_one_e_ints:
.. program:: ao_one_e_ints .. program:: ao_one_e_ints
.. default-role:: option .. default-role:: option
================== ==================
ao_one_e_integrals ao_one_e_integrals
================== ==================
All the one-electron integrals in the |AO| basis are here. All the one-electron integrals in the |AO| basis are here.
The most important providers for usual quantum-chemistry calculation are: 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_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_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_one_e_integrals` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`. Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: ao_integrals_e_n .. option:: ao_integrals_e_n
Nucleus-electron integrals in |AO| basis set Nucleus-electron integrals in |AO| basis set
.. option:: io_ao_integrals_e_n .. option:: io_ao_integrals_e_n
Read/Write |AO| nucleus-electron attraction integrals from/to disk [ Write | Read | None ] Read/Write |AO| nucleus-electron attraction integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: ao_integrals_kinetic .. option:: ao_integrals_kinetic
Kinetic energy integrals in |AO| basis set Kinetic energy integrals in |AO| basis set
.. option:: io_ao_integrals_kinetic .. option:: io_ao_integrals_kinetic
Read/Write |AO| kinetic integrals from/to disk [ Write | Read | None ] Read/Write |AO| kinetic integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: ao_integrals_pseudo .. option:: ao_integrals_pseudo
Pseudopotential integrals in |AO| basis set Pseudopotential integrals in |AO| basis set
.. option:: io_ao_integrals_pseudo .. option:: io_ao_integrals_pseudo
Read/Write |AO| pseudopotential integrals from/to disk [ Write | Read | None ] Read/Write |AO| pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: ao_integrals_overlap .. option:: ao_integrals_overlap
Overlap integrals in |AO| basis set Overlap integrals in |AO| basis set
.. option:: io_ao_integrals_overlap .. option:: io_ao_integrals_overlap
Read/Write |AO| overlap integrals from/to disk [ Write | Read | None ] Read/Write |AO| overlap integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: ao_one_e_integrals .. option:: ao_one_e_integrals
Combined integrals in |AO| basis set Combined integrals in |AO| basis set
.. option:: io_ao_one_e_integrals .. option:: io_ao_one_e_integrals
Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ] Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
Default: None Default: None
Providers Providers
--------- ---------
.. c:var:: ao_cart_to_sphe_coef .. c:var:: ao_cart_to_sphe_coef
@ -96,7 +96,7 @@ Providers
Coefficients to go from cartesian to spherical coordinates in the current basis set Coefficients to go from cartesian to spherical coordinates in the current basis set
.. c:var:: ao_cart_to_sphe_inv .. c:var:: ao_cart_to_sphe_inv
@ -109,7 +109,7 @@ Providers
Inverse of :c:data:`ao_cart_to_sphe_coef` Inverse of :c:data:`ao_cart_to_sphe_coef`
.. c:var:: ao_cart_to_sphe_num .. c:var:: ao_cart_to_sphe_num
@ -123,7 +123,7 @@ Providers
Coefficients to go from cartesian to spherical coordinates in the current basis set Coefficients to go from cartesian to spherical coordinates in the current basis set
.. c:var:: ao_cart_to_sphe_overlap .. c:var:: ao_cart_to_sphe_overlap
@ -136,7 +136,7 @@ Providers
|AO| overlap matrix in the spherical basis set |AO| overlap matrix in the spherical basis set
.. c:var:: ao_deriv2_x .. c:var:: ao_deriv2_x
@ -155,7 +155,7 @@ Providers
.. c:var:: ao_deriv2_y .. c:var:: ao_deriv2_y
@ -174,7 +174,7 @@ Providers
.. c:var:: ao_deriv2_z .. c:var:: ao_deriv2_z
@ -193,7 +193,7 @@ Providers
.. c:var:: ao_deriv_1_x .. c:var:: ao_deriv_1_x
@ -212,7 +212,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j * array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_deriv_1_y .. c:var:: ao_deriv_1_y
@ -231,7 +231,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j * array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_deriv_1_z .. c:var:: ao_deriv_1_z
@ -250,7 +250,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j * array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_dipole_x .. c:var:: ao_dipole_x
@ -269,7 +269,7 @@ Providers
* array of the integrals of AO_i * z AO_j * array of the integrals of AO_i * z AO_j
.. c:var:: ao_dipole_y .. c:var:: ao_dipole_y
@ -288,7 +288,7 @@ Providers
* array of the integrals of AO_i * z AO_j * array of the integrals of AO_i * z AO_j
.. c:var:: ao_dipole_z .. c:var:: ao_dipole_z
@ -307,7 +307,7 @@ Providers
* array of the integrals of AO_i * z AO_j * array of the integrals of AO_i * z AO_j
.. c:var:: ao_integrals_n_e .. c:var:: ao_integrals_n_e
@ -322,7 +322,7 @@ Providers
:math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle` :math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
.. c:var:: ao_integrals_n_e_per_atom .. c:var:: ao_integrals_n_e_per_atom
@ -337,7 +337,7 @@ Providers
:math:`\langle \chi_i | -\frac{1}{|r-R_A|} | \chi_j \rangle` :math:`\langle \chi_i | -\frac{1}{|r-R_A|} | \chi_j \rangle`
.. c:var:: ao_kinetic_integrals .. c:var:: ao_kinetic_integrals
@ -352,7 +352,7 @@ Providers
:math:`\langle \chi_i |\hat{T}| \chi_j \rangle` :math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
.. c:var:: ao_one_e_integrals .. c:var:: ao_one_e_integrals
@ -366,7 +366,7 @@ Providers
One-electron Hamiltonian in the |AO| basis. One-electron Hamiltonian in the |AO| basis.
.. c:var:: ao_one_e_integrals_diag .. c:var:: ao_one_e_integrals_diag
@ -380,7 +380,7 @@ Providers
One-electron Hamiltonian in the |AO| basis. One-electron Hamiltonian in the |AO| basis.
.. c:var:: ao_ortho_canonical_coef .. c:var:: ao_ortho_canonical_coef
@ -394,7 +394,7 @@ Providers
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
.. c:var:: ao_ortho_canonical_coef_inv .. c:var:: ao_ortho_canonical_coef_inv
@ -407,7 +407,7 @@ Providers
ao_ortho_canonical_coef^(-1) ao_ortho_canonical_coef^(-1)
.. c:var:: ao_ortho_canonical_num .. c:var:: ao_ortho_canonical_num
@ -421,7 +421,7 @@ Providers
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
.. c:var:: ao_ortho_canonical_overlap .. c:var:: ao_ortho_canonical_overlap
@ -434,7 +434,7 @@ Providers
overlap matrix of the ao_ortho_canonical. Expected to be the Identity overlap matrix of the ao_ortho_canonical. Expected to be the Identity
.. c:var:: ao_overlap .. c:var:: ao_overlap
@ -452,7 +452,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr` :math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_abs .. c:var:: ao_overlap_abs
@ -467,7 +467,7 @@ Providers
:math:`\int |\chi_i(r)| |\chi_j(r)| dr` :math:`\int |\chi_i(r)| |\chi_j(r)| dr`
.. c:var:: ao_overlap_x .. c:var:: ao_overlap_x
@ -485,7 +485,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr` :math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_y .. c:var:: ao_overlap_y
@ -503,7 +503,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr` :math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_z .. c:var:: ao_overlap_z
@ -521,7 +521,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr` :math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_pseudo_integrals .. c:var:: ao_pseudo_integrals
@ -534,7 +534,7 @@ Providers
Pseudo-potential integrals in the |AO| basis set. Pseudo-potential integrals in the |AO| basis set.
.. c:var:: ao_pseudo_integrals_local .. c:var:: ao_pseudo_integrals_local
@ -547,7 +547,7 @@ Providers
Local pseudo-potential Local pseudo-potential
.. c:var:: ao_pseudo_integrals_non_local .. c:var:: ao_pseudo_integrals_non_local
@ -560,7 +560,7 @@ Providers
Non-local pseudo-potential Non-local pseudo-potential
.. c:var:: ao_spread_x .. c:var:: ao_spread_x
@ -579,7 +579,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j * array of the integrals of AO_i * z^2 AO_j
.. c:var:: ao_spread_y .. c:var:: ao_spread_y
@ -598,7 +598,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j * array of the integrals of AO_i * z^2 AO_j
.. c:var:: ao_spread_z .. c:var:: ao_spread_z
@ -617,7 +617,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j * array of the integrals of AO_i * z^2 AO_j
.. c:var:: give_polynomial_mult_center_one_e_erf .. c:var:: give_polynomial_mult_center_one_e_erf
@ -633,7 +633,7 @@ Providers
:math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` . :math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` .
.. c:var:: give_polynomial_mult_center_one_e_erf_opt .. c:var:: give_polynomial_mult_center_one_e_erf_opt
@ -649,7 +649,7 @@ Providers
:math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` . :math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` .
.. c:var:: i_x1_pol_mult_one_e .. c:var:: i_x1_pol_mult_one_e
@ -662,7 +662,7 @@ Providers
Recursive routine involved in the electron-nucleus potential Recursive routine involved in the electron-nucleus potential
.. c:var:: i_x2_pol_mult_one_e .. c:var:: i_x2_pol_mult_one_e
@ -675,7 +675,7 @@ Providers
Recursive routine involved in the electron-nucleus potential Recursive routine involved in the electron-nucleus potential
.. c:var:: pseudo_dz_k_transp .. c:var:: pseudo_dz_k_transp
@ -690,7 +690,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: pseudo_dz_kl_transp .. c:var:: pseudo_dz_kl_transp
@ -705,7 +705,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: pseudo_n_k_transp .. c:var:: pseudo_n_k_transp
@ -720,7 +720,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: pseudo_n_kl_transp .. c:var:: pseudo_n_kl_transp
@ -735,7 +735,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: pseudo_v_k_transp .. c:var:: pseudo_v_k_transp
@ -750,7 +750,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: pseudo_v_kl_transp .. c:var:: pseudo_v_kl_transp
@ -765,7 +765,7 @@ Providers
Transposed arrays for pseudopotentials Transposed arrays for pseudopotentials
.. c:var:: s_half .. c:var:: s_half
@ -778,7 +778,7 @@ Providers
:math:`S^{1/2}` :math:`S^{1/2}`
.. c:var:: s_half_inv .. c:var:: s_half_inv
@ -791,7 +791,7 @@ Providers
:math:`X = S^{-1/2}` obtained by SVD :math:`X = S^{-1/2}` obtained by SVD
.. c:var:: s_inv .. c:var:: s_inv
@ -804,11 +804,11 @@ Providers
Inverse of the overlap matrix Inverse of the overlap matrix
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: give_all_erf_kl_ao .. c:function:: give_all_erf_kl_ao
@ -822,7 +822,7 @@ Subroutines / functions
Subroutine that returns all integrals over :math:`r` of type :math:`\frac{ \erf(\mu * |r-R_C|) }{ |r-R_C| }` Subroutine that returns all integrals over :math:`r` of type :math:`\frac{ \erf(\mu * |r-R_C|) }{ |r-R_C| }`
.. c:function:: give_polynomial_mult_center_one_e .. c:function:: give_polynomial_mult_center_one_e
@ -838,7 +838,7 @@ Subroutines / functions
:math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` . :math:`I_{x1}(a_x, d_x,p,q) \times I_{x1}(a_y, d_y,p,q) \times I_{x1}(a_z, d_z,p,q)` .
.. c:function:: int_gaus_pol .. c:function:: int_gaus_pol
@ -854,7 +854,7 @@ Subroutines / functions
:math:`\int_{-\infty}^{\infty} x^n \exp(-\alpha x^2) dx` . :math:`\int_{-\infty}^{\infty} x^n \exp(-\alpha x^2) dx` .
.. c:function:: nai_pol_mult .. c:function:: nai_pol_mult
@ -870,7 +870,7 @@ Subroutines / functions
:math:`\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle` :math:`\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle`
.. c:function:: nai_pol_mult_erf .. c:function:: nai_pol_mult_erf
@ -884,7 +884,7 @@ Subroutines / functions
Computes the following integral : :math:`\int dr (x-A_x)^a (x-B_x)^b \exp(-\alpha (x-A_x)^2 - \beta (x-B_x)^2 ) \frac{\erf(\mu |r-R_C|)}{|r-R_c|}` . Computes the following integral : :math:`\int dr (x-A_x)^a (x-B_x)^b \exp(-\alpha (x-A_x)^2 - \beta (x-B_x)^2 ) \frac{\erf(\mu |r-R_C|)}{|r-R_c|}` .
.. c:function:: nai_pol_mult_erf_ao .. c:function:: nai_pol_mult_erf_ao
@ -898,7 +898,7 @@ Subroutines / functions
Computes the following integral : :math:`\int_{-\infty}^{infty} dr \chi_i(r) \chi_j(r) \frac{\erf(\mu |r-R_C|)}{|r-R_C|}` . Computes the following integral : :math:`\int_{-\infty}^{infty} dr \chi_i(r) \chi_j(r) \frac{\erf(\mu |r-R_C|)}{|r-R_C|}` .
.. c:function:: overlap_bourrin_deriv_x .. c:function:: overlap_bourrin_deriv_x
@ -912,7 +912,7 @@ Subroutines / functions
.. c:function:: overlap_bourrin_dipole .. c:function:: overlap_bourrin_dipole
@ -926,7 +926,7 @@ Subroutines / functions
.. c:function:: overlap_bourrin_spread .. c:function:: overlap_bourrin_spread
@ -940,7 +940,7 @@ Subroutines / functions
Computes the following integral : int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) * x ] needed for the dipole and those things Computes the following integral : int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) * x ] needed for the dipole and those things
.. c:function:: overlap_bourrin_x .. c:function:: overlap_bourrin_x
@ -954,7 +954,7 @@ Subroutines / functions
.. c:function:: v_e_n .. c:function:: v_e_n
@ -972,7 +972,7 @@ Subroutines / functions
:math:`p_2 = x^{b_x} y^{b_y} z^{b_z} \exp(-\beta r^2)` :math:`p_2 = x^{b_x} y^{b_y} z^{b_z} \exp(-\beta r^2)`
.. c:function:: v_phi .. c:function:: v_phi
@ -988,7 +988,7 @@ Subroutines / functions
:math:`\int_{0}^{2 \pi} \cos(\phi)^n \sin(\phi)^m d\phi` . :math:`\int_{0}^{2 \pi} \cos(\phi)^n \sin(\phi)^m d\phi` .
.. c:function:: v_r .. c:function:: v_r
@ -1006,7 +1006,7 @@ Subroutines / functions
.. c:function:: v_theta .. c:function:: v_theta
@ -1022,7 +1022,7 @@ Subroutines / functions
:math:`\int_{0}^{\pi} \cos(\theta)^n \sin(\theta)^m d\theta` :math:`\int_{0}^{\pi} \cos(\theta)^n \sin(\theta)^m d\theta`
.. c:function:: wallis .. c:function:: wallis

View File

@ -1,9 +1,9 @@
.. _ao_two_e_erf_ints: .. _ao_two_e_erf_ints:
.. program:: ao_two_e_erf_ints .. program:: ao_two_e_erf_ints
.. default-role:: option .. default-role:: option
====================== ======================
ao_two_e_erf_ints ao_two_e_erf_ints
====================== ======================
@ -12,10 +12,10 @@ Here, all two-electron integrals (:math:`erf(\mu r_{12})/r_{12}`) are computed.
As they have 4 indices and many are zero, they are stored in a map, as defined As they have 4 indices and many are zero, they are stored in a map, as defined
in :file:`utils/map_module.f90`. in :file:`utils/map_module.f90`.
The main parameter of this module is :option:`ao_two_e_erf_ints mu_erf` which is the range-separation parameter. The main parameter of this module is :option:`ao_two_e_erf_ints mu_erf` which is the range-separation parameter.
To fetch an |AO| integral, use the To fetch an |AO| integral, use the
`get_ao_two_e_integral_erf(i,j,k,l,ao_integrals_erf_map)` function. `get_ao_two_e_integral_erf(i,j,k,l,ao_integrals_erf_map)` function.
The conventions are: The conventions are:
@ -23,28 +23,28 @@ The conventions are:
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: io_ao_two_e_integrals_erf .. option:: io_ao_two_e_integrals_erf
Read/Write |AO| integrals with the long range interaction from/to disk [ Write | Read | None ] Read/Write |AO| integrals with the long range interaction from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: mu_erf .. option:: mu_erf
cutting of the interaction in the range separated model cutting of the interaction in the range separated model
Default: 0.5 Default: 0.5
Providers Providers
--------- ---------
.. c:var:: ao_integrals_erf_cache .. c:var:: ao_integrals_erf_cache
@ -57,7 +57,7 @@ Providers
Cache of |AO| integrals for fast access Cache of |AO| integrals for fast access
.. c:var:: ao_integrals_erf_cache_max .. c:var:: ao_integrals_erf_cache_max
@ -71,7 +71,7 @@ Providers
Min and max values of the AOs for which the integrals are in the cache Min and max values of the AOs for which the integrals are in the cache
.. c:var:: ao_integrals_erf_cache_min .. c:var:: ao_integrals_erf_cache_min
@ -85,7 +85,7 @@ Providers
Min and max values of the AOs for which the integrals are in the cache Min and max values of the AOs for which the integrals are in the cache
.. c:var:: ao_integrals_erf_map .. c:var:: ao_integrals_erf_map
@ -98,7 +98,7 @@ Providers
|AO| integrals |AO| integrals
.. c:var:: ao_two_e_integral_erf_schwartz .. c:var:: ao_two_e_integral_erf_schwartz
@ -111,7 +111,7 @@ Providers
Needed to compute Schwartz inequalities Needed to compute Schwartz inequalities
.. c:var:: ao_two_e_integrals_erf_in_map .. c:var:: ao_two_e_integrals_erf_in_map
@ -124,7 +124,7 @@ Providers
Map of Atomic integrals i(r1) j(r2) 1/r12 k(r1) l(r2) Map of Atomic integrals i(r1) j(r2) 1/r12 k(r1) l(r2)
.. c:var:: general_primitive_integral_erf .. c:var:: general_primitive_integral_erf
@ -139,11 +139,11 @@ Providers
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: ao_two_e_integral_erf .. c:function:: ao_two_e_integral_erf
@ -157,7 +157,7 @@ Subroutines / functions
integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2)
.. c:function:: ao_two_e_integral_schwartz_accel_erf .. c:function:: ao_two_e_integral_schwartz_accel_erf
@ -171,7 +171,7 @@ Subroutines / functions
integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2)
.. c:function:: ao_two_e_integrals_erf_in_map_collector .. c:function:: ao_two_e_integrals_erf_in_map_collector
@ -185,7 +185,7 @@ Subroutines / functions
Collects results from the AO integral calculation Collects results from the AO integral calculation
.. c:function:: ao_two_e_integrals_erf_in_map_slave .. c:function:: ao_two_e_integrals_erf_in_map_slave
@ -199,7 +199,7 @@ Subroutines / functions
Computes a buffer of integrals Computes a buffer of integrals
.. c:function:: ao_two_e_integrals_erf_in_map_slave_inproc .. c:function:: ao_two_e_integrals_erf_in_map_slave_inproc
@ -213,7 +213,7 @@ Subroutines / functions
Computes a buffer of integrals. i is the ID of the current thread. Computes a buffer of integrals. i is the ID of the current thread.
.. c:function:: ao_two_e_integrals_erf_in_map_slave_tcp .. c:function:: ao_two_e_integrals_erf_in_map_slave_tcp
@ -227,7 +227,7 @@ Subroutines / functions
Computes a buffer of integrals. i is the ID of the current thread. Computes a buffer of integrals. i is the ID of the current thread.
.. c:function:: clear_ao_erf_map .. c:function:: clear_ao_erf_map
@ -241,7 +241,7 @@ Subroutines / functions
Frees the memory of the |AO| map Frees the memory of the |AO| map
.. c:function:: compute_ao_integrals_erf_jl .. c:function:: compute_ao_integrals_erf_jl
@ -255,7 +255,7 @@ Subroutines / functions
Parallel client for AO integrals Parallel client for AO integrals
.. c:function:: compute_ao_two_e_integrals_erf .. c:function:: compute_ao_two_e_integrals_erf
@ -269,7 +269,7 @@ Subroutines / functions
Compute AO 1/r12 integrals for all i and fixed j,k,l Compute AO 1/r12 integrals for all i and fixed j,k,l
.. c:function:: dump_ao_integrals_erf .. c:function:: dump_ao_integrals_erf
@ -283,7 +283,7 @@ Subroutines / functions
Save to disk the |AO| erf integrals Save to disk the |AO| erf integrals
.. c:function:: eri_erf .. c:function:: eri_erf
@ -297,7 +297,7 @@ Subroutines / functions
ATOMIC PRIMTIVE two-electron integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2) ATOMIC PRIMTIVE two-electron integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2)
.. c:function:: get_ao_erf_map_size .. c:function:: get_ao_erf_map_size
@ -311,7 +311,7 @@ Subroutines / functions
Returns the number of elements in the |AO| map Returns the number of elements in the |AO| map
.. c:function:: get_ao_two_e_integral_erf .. c:function:: get_ao_two_e_integral_erf
@ -325,7 +325,7 @@ Subroutines / functions
Gets one |AO| two-electron integral from the |AO| map Gets one |AO| two-electron integral from the |AO| map
.. c:function:: get_ao_two_e_integrals_erf .. c:function:: get_ao_two_e_integrals_erf
@ -339,7 +339,7 @@ Subroutines / functions
Gets multiple |AO| two-electron integral from the |AO| map . All i are retrieved for j,k,l fixed. Gets multiple |AO| two-electron integral from the |AO| map . All i are retrieved for j,k,l fixed.
.. c:function:: get_ao_two_e_integrals_erf_non_zero .. c:function:: get_ao_two_e_integrals_erf_non_zero
@ -353,7 +353,7 @@ Subroutines / functions
Gets multiple |AO| two-electron integrals from the |AO| map . All non-zero i are retrieved for j,k,l fixed. Gets multiple |AO| two-electron integrals from the |AO| map . All non-zero i are retrieved for j,k,l fixed.
.. c:function:: insert_into_ao_integrals_erf_map .. c:function:: insert_into_ao_integrals_erf_map
@ -367,7 +367,7 @@ Subroutines / functions
Create new entry into |AO| map Create new entry into |AO| map
.. c:function:: integrale_new_erf .. c:function:: integrale_new_erf
@ -381,7 +381,7 @@ Subroutines / functions
calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1) calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1)
.. c:function:: load_ao_integrals_erf .. c:function:: load_ao_integrals_erf
@ -395,7 +395,7 @@ Subroutines / functions
Read from disk the |AO| erf integrals Read from disk the |AO| erf integrals
.. c:function:: save_erf_two_e_integrals_ao .. c:function:: save_erf_two_e_integrals_ao
@ -409,7 +409,7 @@ Subroutines / functions
.. c:function:: save_erf_two_e_ints_ao_into_ints_ao .. c:function:: save_erf_two_e_ints_ao_into_ints_ao

View File

@ -1,9 +1,9 @@
.. _ao_two_e_ints: .. _ao_two_e_ints:
.. program:: ao_two_e_ints .. program:: ao_two_e_ints
.. default-role:: option .. default-role:: option
================== ==================
ao_two_e_ints ao_two_e_ints
================== ==================
@ -13,7 +13,7 @@ As they have 4 indices and many are zero, they are stored in a map, as defined
in :file:`utils/map_module.f90`. in :file:`utils/map_module.f90`.
To fetch an |AO| integral, use the To fetch an |AO| integral, use the
`get_ao_two_e_integral(i,j,k,l,ao_integrals_map)` function. `get_ao_two_e_integral(i,j,k,l,ao_integrals_map)` function.
The conventions are: The conventions are:
@ -21,34 +21,34 @@ The conventions are:
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: io_ao_two_e_integrals .. option:: io_ao_two_e_integrals
Read/Write |AO| integrals from/to disk [ Write | Read | None ] Read/Write |AO| integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: ao_integrals_threshold .. option:: ao_integrals_threshold
If | (pq|rs) | < `ao_integrals_threshold` then (pq|rs) is zero If | (pq|rs) | < `ao_integrals_threshold` then (pq|rs) is zero
Default: 1.e-15 Default: 1.e-15
.. option:: do_direct_integrals .. option:: do_direct_integrals
Compute integrals on the fly (very slow, only for debugging) Compute integrals on the fly (very slow, only for debugging)
Default: False Default: False
Providers Providers
--------- ---------
.. c:var:: ao_integrals_cache .. c:var:: ao_integrals_cache
@ -61,7 +61,7 @@ Providers
Cache of AO integrals for fast access Cache of AO integrals for fast access
.. c:var:: ao_integrals_cache_max .. c:var:: ao_integrals_cache_max
@ -75,7 +75,7 @@ Providers
Min and max values of the AOs for which the integrals are in the cache Min and max values of the AOs for which the integrals are in the cache
.. c:var:: ao_integrals_cache_min .. c:var:: ao_integrals_cache_min
@ -89,7 +89,7 @@ Providers
Min and max values of the AOs for which the integrals are in the cache Min and max values of the AOs for which the integrals are in the cache
.. c:var:: ao_integrals_map .. c:var:: ao_integrals_map
@ -102,7 +102,7 @@ Providers
AO integrals AO integrals
.. c:var:: ao_two_e_integral_schwartz .. c:var:: ao_two_e_integral_schwartz
@ -115,7 +115,7 @@ Providers
Needed to compute Schwartz inequalities Needed to compute Schwartz inequalities
.. c:var:: ao_two_e_integrals_in_map .. c:var:: ao_two_e_integrals_in_map
@ -128,7 +128,7 @@ Providers
Map of Atomic integrals i(r1) j(r2) 1/r12 k(r1) l(r2) Map of Atomic integrals i(r1) j(r2) 1/r12 k(r1) l(r2)
.. c:var:: gauleg_t2 .. c:var:: gauleg_t2
@ -142,7 +142,7 @@ Providers
t_w(i,1,k) = w(i) t_w(i,2,k) = t(i) t_w(i,1,k) = w(i) t_w(i,2,k) = t(i)
.. c:var:: gauleg_w .. c:var:: gauleg_w
@ -156,7 +156,7 @@ Providers
t_w(i,1,k) = w(i) t_w(i,2,k) = t(i) t_w(i,1,k) = w(i) t_w(i,2,k) = t(i)
.. c:var:: general_primitive_integral .. c:var:: general_primitive_integral
@ -171,7 +171,7 @@ Providers
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
.. c:var:: i_x1_new .. c:var:: i_x1_new
@ -184,7 +184,7 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_a1 .. c:var:: i_x1_pol_mult_a1
@ -197,7 +197,7 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_a2 .. c:var:: i_x1_pol_mult_a2
@ -210,7 +210,7 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_recurs .. c:var:: i_x1_pol_mult_recurs
@ -223,7 +223,7 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:var:: i_x2_new .. c:var:: i_x2_new
@ -236,7 +236,7 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:var:: i_x2_pol_mult .. c:var:: i_x2_pol_mult
@ -249,11 +249,11 @@ Providers
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: ao_l4 .. c:function:: ao_l4
@ -267,7 +267,7 @@ Subroutines / functions
Computes the product of l values of i,j,k,and l Computes the product of l values of i,j,k,and l
.. c:function:: ao_two_e_integral .. c:function:: ao_two_e_integral
@ -281,7 +281,7 @@ Subroutines / functions
integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2)
.. c:function:: ao_two_e_integral_schwartz_accel .. c:function:: ao_two_e_integral_schwartz_accel
@ -295,7 +295,7 @@ Subroutines / functions
integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) integral of the AO basis <ik|jl> or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2)
.. c:function:: ao_two_e_integrals_in_map_collector .. c:function:: ao_two_e_integrals_in_map_collector
@ -309,7 +309,7 @@ Subroutines / functions
Collects results from the AO integral calculation Collects results from the AO integral calculation
.. c:function:: ao_two_e_integrals_in_map_slave .. c:function:: ao_two_e_integrals_in_map_slave
@ -323,7 +323,7 @@ Subroutines / functions
Computes a buffer of integrals Computes a buffer of integrals
.. c:function:: ao_two_e_integrals_in_map_slave_inproc .. c:function:: ao_two_e_integrals_in_map_slave_inproc
@ -337,7 +337,7 @@ Subroutines / functions
Computes a buffer of integrals. i is the ID of the current thread. Computes a buffer of integrals. i is the ID of the current thread.
.. c:function:: ao_two_e_integrals_in_map_slave_tcp .. c:function:: ao_two_e_integrals_in_map_slave_tcp
@ -351,7 +351,7 @@ Subroutines / functions
Computes a buffer of integrals. i is the ID of the current thread. Computes a buffer of integrals. i is the ID of the current thread.
.. c:function:: clear_ao_map .. c:function:: clear_ao_map
@ -365,7 +365,7 @@ Subroutines / functions
Frees the memory of the AO map Frees the memory of the AO map
.. c:function:: compute_ao_integrals_jl .. c:function:: compute_ao_integrals_jl
@ -379,7 +379,7 @@ Subroutines / functions
Parallel client for AO integrals Parallel client for AO integrals
.. c:function:: compute_ao_two_e_integrals .. c:function:: compute_ao_two_e_integrals
@ -393,7 +393,7 @@ Subroutines / functions
Compute AO 1/r12 integrals for all i and fixed j,k,l Compute AO 1/r12 integrals for all i and fixed j,k,l
.. c:function:: dump_ao_integrals .. c:function:: dump_ao_integrals
@ -407,7 +407,7 @@ Subroutines / functions
Save to disk the |AO| integrals Save to disk the |AO| integrals
.. c:function:: eri .. c:function:: eri
@ -421,7 +421,7 @@ Subroutines / functions
ATOMIC PRIMTIVE two-electron integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2) ATOMIC PRIMTIVE two-electron integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2)
.. c:function:: gauleg .. c:function:: gauleg
@ -435,7 +435,7 @@ Subroutines / functions
Gauss-Legendre Gauss-Legendre
.. c:function:: get_ao_map_size .. c:function:: get_ao_map_size
@ -449,7 +449,7 @@ Subroutines / functions
Returns the number of elements in the AO map Returns the number of elements in the AO map
.. c:function:: get_ao_two_e_integral .. c:function:: get_ao_two_e_integral
@ -463,7 +463,7 @@ Subroutines / functions
Gets one AO bi-electronic integral from the AO map Gets one AO bi-electronic integral from the AO map
.. c:function:: get_ao_two_e_integrals .. c:function:: get_ao_two_e_integrals
@ -477,7 +477,7 @@ Subroutines / functions
Gets multiple AO bi-electronic integral from the AO map . All i are retrieved for j,k,l fixed. Gets multiple AO bi-electronic integral from the AO map . All i are retrieved for j,k,l fixed.
.. c:function:: get_ao_two_e_integrals_non_zero .. c:function:: get_ao_two_e_integrals_non_zero
@ -491,7 +491,7 @@ Subroutines / functions
Gets multiple AO bi-electronic integral from the AO map . All non-zero i are retrieved for j,k,l fixed. Gets multiple AO bi-electronic integral from the AO map . All non-zero i are retrieved for j,k,l fixed.
.. c:function:: give_polynom_mult_center_x .. c:function:: give_polynom_mult_center_x
@ -505,7 +505,7 @@ Subroutines / functions
subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw : I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw : I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q)
.. c:function:: i_x1_pol_mult .. c:function:: i_x1_pol_mult
@ -519,7 +519,7 @@ Subroutines / functions
recursive function involved in the two-electron integral recursive function involved in the two-electron integral
.. c:function:: insert_into_ao_integrals_map .. c:function:: insert_into_ao_integrals_map
@ -533,7 +533,7 @@ Subroutines / functions
Create new entry into AO map Create new entry into AO map
.. c:function:: integrale_new .. c:function:: integrale_new
@ -547,7 +547,7 @@ Subroutines / functions
calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1) calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1)
.. c:function:: load_ao_integrals .. c:function:: load_ao_integrals
@ -561,7 +561,7 @@ Subroutines / functions
Read from disk the |AO| integrals Read from disk the |AO| integrals
.. c:function:: n_pt_sup .. c:function:: n_pt_sup
@ -575,7 +575,7 @@ Subroutines / functions
Returns the upper boundary of the degree of the polynomial involved in the bielctronic integral : Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z) Returns the upper boundary of the degree of the polynomial involved in the bielctronic integral : Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z)
.. c:function:: push_integrals .. c:function:: push_integrals
@ -589,7 +589,7 @@ Subroutines / functions
Push integrals in the push socket Push integrals in the push socket
.. c:function:: two_e_integrals_index .. c:function:: two_e_integrals_index
@ -603,7 +603,7 @@ Subroutines / functions
.. c:function:: two_e_integrals_index_reverse .. c:function:: two_e_integrals_index_reverse

View File

@ -1,9 +1,9 @@
.. _aux_quantities: .. _aux_quantities:
.. program:: aux_quantities .. program:: aux_quantities
.. default-role:: option .. default-role:: option
============== ==============
aux_quantities aux_quantities
============== ==============
@ -14,7 +14,7 @@ which are stored in the EZFIO folder in a different place than determinants.
This is used in practice to store density matrices which can be obtained from This is used in practice to store density matrices which can be obtained from
any methods, as long as they are stored in the same MO basis which is used for any methods, as long as they are stored in the same MO basis which is used for
the calculations. In |RSDFT| calculations, this can be done to perform damping the calculations. In |RSDFT| calculations, this can be done to perform damping
on the density in order to speed up convergence. on the density in order to speed up convergence.
The main providers of that module are: The main providers of that module are:
@ -24,29 +24,29 @@ The main providers of that module are:
Thanks to these providers you can use any density matrix that does not Thanks to these providers you can use any density matrix that does not
necessary corresponds to that of the current wave function. necessary corresponds to that of the current wave function.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: data_energy_var .. option:: data_energy_var
Variational energy computed with the wave function Variational energy computed with the wave function
.. option:: data_energy_proj .. option:: data_energy_proj
Projected energy computed with the wave function Projected energy computed with the wave function
.. option:: data_one_e_dm_alpha_mo .. option:: data_one_e_dm_alpha_mo
Alpha one body density matrix on the |MO| basis computed with the wave function Alpha one body density matrix on the |MO| basis computed with the wave function
.. option:: data_one_e_dm_beta_mo .. option:: data_one_e_dm_beta_mo
Beta one body density matrix on the |MO| basis computed with the wave function Beta one body density matrix on the |MO| basis computed with the wave function

View File

@ -1,97 +1,97 @@
.. _becke_numerical_grid: .. _becke_numerical_grid:
.. program:: becke_numerical_grid .. program:: becke_numerical_grid
.. default-role:: option .. default-role:: option
==================== ====================
becke_numerical_grid becke_numerical_grid
==================== ====================
This module contains all quantities needed to build the Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions. This module contains all quantities needed to build the Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions.
This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains
a certain number of radial and angular points. No pruning is done on the angular part of the grid. a certain number of radial and angular points. No pruning is done on the angular part of the grid.
The main keyword for that modue is: The main keyword for that modue is:
* :option:`becke_numerical_grid grid_type_sgn` which controls the precision of the grid according the standard **SG-n** grids. This keyword controls the two providers `n_points_integration_angular` `n_points_radial_grid`. * :option:`becke_numerical_grid grid_type_sgn` which controls the precision of the grid according the standard **SG-n** grids. This keyword controls the two providers `n_points_integration_angular` `n_points_radial_grid`.
The main providers of that module are: The main providers of that module are:
* `n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 170 | 194 | 266 | 302 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details. * `n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 170 | 194 | 266 | 302 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details.
* `n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary. * `n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary.
* `final_grid_points` which are the (x,y,z) coordinates of the grid points. * `final_grid_points` which are the (x,y,z) coordinates of the grid points.
* `final_weight_at_r_vector` which are the weights at each grid point * `final_weight_at_r_vector` which are the weights at each grid point
For a simple example of how to use the grid, see :file:`example.irp.f`. For a simple example of how to use the grid, see :file:`example.irp.f`.
The spherical integration uses Lebedev-Laikov grids, which was used from the code distributed through CCL (http://www.ccl.net/). The spherical integration uses Lebedev-Laikov grids, which was used from the code distributed through CCL (http://www.ccl.net/).
See next section for explanations and citation policies. See next section for explanations and citation policies.
.. code-block:: text .. code-block:: text
This subroutine is part of a set of subroutines that generate This subroutine is part of a set of subroutines that generate
Lebedev grids [1-6] for integration on a sphere. The original Lebedev grids [1-6] for integration on a sphere. The original
C-code [1] was kindly provided by Dr. Dmitri N. Laikov and C-code [1] was kindly provided by Dr. Dmitri N. Laikov and
translated into fortran by Dr. Christoph van Wuellen. translated into fortran by Dr. Christoph van Wuellen.
This subroutine was translated using a C to fortran77 conversion This subroutine was translated using a C to fortran77 conversion
tool written by Dr. Christoph van Wuellen. tool written by Dr. Christoph van Wuellen.
Users of this code are asked to include reference [1] in their Users of this code are asked to include reference [1] in their
publications, and in the user- and programmers-manuals publications, and in the user- and programmers-manuals
describing their codes. describing their codes.
This code was distributed through CCL (http://www.ccl.net/). This code was distributed through CCL (http://www.ccl.net/).
[1] V.I. Lebedev, and D.N. Laikov [1] V.I. Lebedev, and D.N. Laikov
"A quadrature formula for the sphere of the 131st "A quadrature formula for the sphere of the 131st
algebraic order of accuracy" algebraic order of accuracy"
Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481. Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481.
[2] V.I. Lebedev [2] V.I. Lebedev
"A quadrature formula for the sphere of 59th algebraic "A quadrature formula for the sphere of 59th algebraic
order of accuracy" order of accuracy"
Russian Acad. Sci. Dokl. Math., Vol. 50, 1995, pp. 283-286. Russian Acad. Sci. Dokl. Math., Vol. 50, 1995, pp. 283-286.
[3] V.I. Lebedev, and A.L. Skorokhodov [3] V.I. Lebedev, and A.L. Skorokhodov
"Quadrature formulas of orders 41, 47, and 53 for the sphere" "Quadrature formulas of orders 41, 47, and 53 for the sphere"
Russian Acad. Sci. Dokl. Math., Vol. 45, 1992, pp. 587-592. Russian Acad. Sci. Dokl. Math., Vol. 45, 1992, pp. 587-592.
[4] V.I. Lebedev [4] V.I. Lebedev
"Spherical quadrature formulas exact to orders 25-29" "Spherical quadrature formulas exact to orders 25-29"
Siberian Mathematical Journal, Vol. 18, 1977, pp. 99-107. Siberian Mathematical Journal, Vol. 18, 1977, pp. 99-107.
[5] V.I. Lebedev [5] V.I. Lebedev
"Quadratures on a sphere" "Quadratures on a sphere"
Computational Mathematics and Mathematical Physics, Vol. 16, Computational Mathematics and Mathematical Physics, Vol. 16,
1976, pp. 10-24. 1976, pp. 10-24.
[6] V.I. Lebedev [6] V.I. Lebedev
"Values of the nodes and weights of ninth to seventeenth "Values of the nodes and weights of ninth to seventeenth
order Gauss-Markov quadrature formulae invariant under the order Gauss-Markov quadrature formulae invariant under the
octahedron group with inversion" octahedron group with inversion"
Computational Mathematics and Mathematical Physics, Vol. 15, Computational Mathematics and Mathematical Physics, Vol. 15,
1975, pp. 44-51. 1975, pp. 44-51.
EZFIO parameters
---------------- EZFIO parameters
----------------
.. option:: grid_type_sgn .. option:: grid_type_sgn
Type of grid used for the Becke's numerical grid. Can be, by increasing accuracy: [ 0 | 1 | 2 | 3 ] Type of grid used for the Becke's numerical grid. Can be, by increasing accuracy: [ 0 | 1 | 2 | 3 ]
Default: 2 Default: 2
Providers Providers
--------- ---------
.. c:var:: alpha_knowles .. c:var:: alpha_knowles
@ -104,7 +104,7 @@ Providers
Recommended values for the alpha parameters according to the paper of Knowles (JCP, 104, 1996) as a function of the nuclear charge Recommended values for the alpha parameters according to the paper of Knowles (JCP, 104, 1996) as a function of the nuclear charge
.. c:var:: angular_quadrature_points .. c:var:: angular_quadrature_points
@ -118,7 +118,7 @@ Providers
weights and grid points for the integration on the angular variables on the unit sphere centered on (0,0,0) According to the LEBEDEV scheme weights and grid points for the integration on the angular variables on the unit sphere centered on (0,0,0) According to the LEBEDEV scheme
.. c:var:: dr_radial_integral .. c:var:: dr_radial_integral
@ -132,7 +132,7 @@ Providers
points in [0,1] to map the radial integral [0,\infty] points in [0,1] to map the radial integral [0,\infty]
.. c:var:: final_grid_points .. c:var:: final_grid_points
@ -154,7 +154,7 @@ Providers
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: final_weight_at_r .. c:var:: final_weight_at_r
@ -167,7 +167,7 @@ Providers
Total weight on each grid point which takes into account all Lebedev, Voronoi and radial weights. Total weight on each grid point which takes into account all Lebedev, Voronoi and radial weights.
.. c:var:: final_weight_at_r_vector .. c:var:: final_weight_at_r_vector
@ -189,7 +189,7 @@ Providers
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: grid_points_per_atom .. c:var:: grid_points_per_atom
@ -202,7 +202,7 @@ Providers
x,y,z coordinates of grid points used for integration in 3d space x,y,z coordinates of grid points used for integration in 3d space
.. c:var:: grid_points_radial .. c:var:: grid_points_radial
@ -216,7 +216,7 @@ Providers
points in [0,1] to map the radial integral [0,\infty] points in [0,1] to map the radial integral [0,\infty]
.. c:var:: index_final_points .. c:var:: index_final_points
@ -238,7 +238,7 @@ Providers
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: index_final_points_reverse .. c:var:: index_final_points_reverse
@ -260,7 +260,7 @@ Providers
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: m_knowles .. c:var:: m_knowles
@ -273,7 +273,7 @@ Providers
value of the "m" parameter in the equation (7) of the paper of Knowles (JCP, 104, 1996) value of the "m" parameter in the equation (7) of the paper of Knowles (JCP, 104, 1996)
.. c:var:: n_points_final_grid .. c:var:: n_points_final_grid
@ -286,7 +286,7 @@ Providers
Number of points which are non zero Number of points which are non zero
.. c:var:: n_points_grid_per_atom .. c:var:: n_points_grid_per_atom
@ -299,7 +299,7 @@ Providers
Number of grid points per atom Number of grid points per atom
.. c:var:: n_points_integration_angular .. c:var:: n_points_integration_angular
@ -317,7 +317,7 @@ Providers
These numbers are automatically set by setting the grid_type_sgn parameter These numbers are automatically set by setting the grid_type_sgn parameter
.. c:var:: n_points_radial_grid .. c:var:: n_points_radial_grid
@ -335,7 +335,7 @@ Providers
These numbers are automatically set by setting the grid_type_sgn parameter These numbers are automatically set by setting the grid_type_sgn parameter
.. c:var:: weight_at_r .. c:var:: weight_at_r
@ -350,7 +350,7 @@ Providers
The "n" discrete variable represents the nucleis which in this array is represented by the last dimension and the points are labelled by the other dimensions. The "n" discrete variable represents the nucleis which in this array is represented by the last dimension and the points are labelled by the other dimensions.
.. c:var:: weights_angular_points .. c:var:: weights_angular_points
@ -364,11 +364,11 @@ Providers
weights and grid points for the integration on the angular variables on the unit sphere centered on (0,0,0) According to the LEBEDEV scheme weights and grid points for the integration on the angular variables on the unit sphere centered on (0,0,0) According to the LEBEDEV scheme
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: cell_function_becke .. c:function:: cell_function_becke
@ -382,7 +382,7 @@ Subroutines / functions
atom_number :: atom on which the cell function of Becke (1988, JCP,88(4)) r(1:3) :: x,y,z coordinantes of the current point atom_number :: atom on which the cell function of Becke (1988, JCP,88(4)) r(1:3) :: x,y,z coordinantes of the current point
.. c:function:: derivative_knowles_function .. c:function:: derivative_knowles_function
@ -396,7 +396,7 @@ Subroutines / functions
Derivative of the function proposed by Knowles (JCP, 104, 1996) for distributing the radial points Derivative of the function proposed by Knowles (JCP, 104, 1996) for distributing the radial points
.. c:function:: example_becke_numerical_grid .. c:function:: example_becke_numerical_grid
@ -410,7 +410,7 @@ Subroutines / functions
subroutine that illustrates the main features available in becke_numerical_grid subroutine that illustrates the main features available in becke_numerical_grid
.. c:function:: f_function_becke .. c:function:: f_function_becke
@ -424,7 +424,7 @@ Subroutines / functions
.. c:function:: knowles_function .. c:function:: knowles_function
@ -438,7 +438,7 @@ Subroutines / functions
Function proposed by Knowles (JCP, 104, 1996) for distributing the radial points : the Log "m" function ( equation (7) in the paper ) Function proposed by Knowles (JCP, 104, 1996) for distributing the radial points : the Log "m" function ( equation (7) in the paper )
.. c:function:: step_function_becke .. c:function:: step_function_becke

View File

@ -1,9 +1,9 @@
.. _bitmask: .. _bitmask:
.. program:: bitmask .. program:: bitmask
.. default-role:: option .. default-role:: option
============== ==============
bitmask module bitmask module
============== ==============
@ -31,13 +31,13 @@ transforming a bit string to a list of integers for example.
bit_kind = bit_kind_size / 8 bit_kind = bit_kind_size / 8
For an example of how to use the bitmaks, see the file :file:`example.irp.f`. For an example of how to use the bitmaks, see the file :file:`example.irp.f`.
Providers Providers
--------- ---------
.. c:var:: cas_bitmask .. c:var:: cas_bitmask
@ -50,7 +50,7 @@ Providers
Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference) Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
.. c:var:: closed_shell_ref_bitmask .. c:var:: closed_shell_ref_bitmask
@ -63,7 +63,7 @@ Providers
.. c:var:: core_bitmask .. c:var:: core_bitmask
@ -77,7 +77,7 @@ Providers
Core + deleted orbitals bitmask Core + deleted orbitals bitmask
.. c:var:: core_inact_act_bitmask_4 .. c:var:: core_inact_act_bitmask_4
@ -90,7 +90,7 @@ Providers
.. c:var:: core_inact_virt_bitmask .. c:var:: core_inact_virt_bitmask
@ -104,7 +104,7 @@ Providers
Reunion of the inactive and virtual bitmasks Reunion of the inactive and virtual bitmasks
.. c:var:: full_ijkl_bitmask .. c:var:: full_ijkl_bitmask
@ -117,7 +117,7 @@ Providers
Bitmask to include all possible MOs Bitmask to include all possible MOs
.. c:var:: full_ijkl_bitmask_4 .. c:var:: full_ijkl_bitmask_4
@ -130,7 +130,7 @@ Providers
.. c:var:: generators_bitmask .. c:var:: generators_bitmask
@ -159,7 +159,7 @@ Providers
.. c:var:: generators_bitmask_restart .. c:var:: generators_bitmask_restart
@ -188,7 +188,7 @@ Providers
.. c:var:: hf_bitmask .. c:var:: hf_bitmask
@ -201,7 +201,7 @@ Providers
Hartree Fock bit mask Hartree Fock bit mask
.. c:var:: i_bitmask_gen .. c:var:: i_bitmask_gen
@ -214,7 +214,7 @@ Providers
Current bitmask for the generators Current bitmask for the generators
.. c:var:: inact_bitmask .. c:var:: inact_bitmask
@ -230,7 +230,7 @@ Providers
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals
.. c:var:: inact_virt_bitmask .. c:var:: inact_virt_bitmask
@ -244,7 +244,7 @@ Providers
Reunion of the inactive and virtual bitmasks Reunion of the inactive and virtual bitmasks
.. c:var:: index_holes_bitmask .. c:var:: index_holes_bitmask
@ -257,7 +257,7 @@ Providers
Index of the holes in the generators_bitmasks Index of the holes in the generators_bitmasks
.. c:var:: index_particl_bitmask .. c:var:: index_particl_bitmask
@ -270,7 +270,7 @@ Providers
Index of the holes in the generators_bitmasks Index of the holes in the generators_bitmasks
.. c:var:: list_act .. c:var:: list_act
@ -286,7 +286,7 @@ Providers
list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital
.. c:var:: list_act_reverse .. c:var:: list_act_reverse
@ -302,7 +302,7 @@ Providers
list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital
.. c:var:: list_core .. c:var:: list_core
@ -316,7 +316,7 @@ Providers
List of the core orbitals that are never excited in post CAS method List of the core orbitals that are never excited in post CAS method
.. c:var:: list_core_inact .. c:var:: list_core_inact
@ -330,7 +330,7 @@ Providers
.. c:var:: list_core_inact_act .. c:var:: list_core_inact_act
@ -344,7 +344,7 @@ Providers
.. c:var:: list_core_inact_act_reverse .. c:var:: list_core_inact_act_reverse
@ -358,7 +358,7 @@ Providers
.. c:var:: list_core_inact_reverse .. c:var:: list_core_inact_reverse
@ -372,7 +372,7 @@ Providers
.. c:var:: list_core_reverse .. c:var:: list_core_reverse
@ -386,7 +386,7 @@ Providers
List of the core orbitals that are never excited in post CAS method List of the core orbitals that are never excited in post CAS method
.. c:var:: list_inact .. c:var:: list_inact
@ -402,7 +402,7 @@ Providers
list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual
.. c:var:: list_inact_reverse .. c:var:: list_inact_reverse
@ -418,7 +418,7 @@ Providers
list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual
.. c:var:: list_virt .. c:var:: list_virt
@ -434,7 +434,7 @@ Providers
list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual
.. c:var:: list_virt_reverse .. c:var:: list_virt_reverse
@ -450,7 +450,7 @@ Providers
list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons in post CAS methods list_inact_reverse : reverse list of inactive orbitals list_inact_reverse(i) = 0 ::> not an inactive list_inact_reverse(i) = k ::> IS the kth inactive list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual
.. c:var:: mpi_bit_kind .. c:var:: mpi_bit_kind
@ -463,7 +463,7 @@ Providers
MPI bit kind type MPI bit kind type
.. c:var:: n_act_orb .. c:var:: n_act_orb
@ -476,7 +476,7 @@ Providers
number of active orbitals number of active orbitals
.. c:var:: n_cas_bitmask .. c:var:: n_cas_bitmask
@ -489,7 +489,7 @@ Providers
Number of bitmasks for CAS Number of bitmasks for CAS
.. c:var:: n_core_inact_act_orb .. c:var:: n_core_inact_act_orb
@ -503,7 +503,7 @@ Providers
Reunion of the core, inactive and active bitmasks Reunion of the core, inactive and active bitmasks
.. c:var:: n_core_inact_orb .. c:var:: n_core_inact_orb
@ -516,7 +516,7 @@ Providers
.. c:var:: n_core_orb .. c:var:: n_core_orb
@ -530,7 +530,7 @@ Providers
Core + deleted orbitals bitmask Core + deleted orbitals bitmask
.. c:var:: n_core_orb_allocate .. c:var:: n_core_orb_allocate
@ -543,7 +543,7 @@ Providers
.. c:var:: n_generators_bitmask .. c:var:: n_generators_bitmask
@ -556,7 +556,7 @@ Providers
Number of bitmasks for generators Number of bitmasks for generators
.. c:var:: n_generators_bitmask_restart .. c:var:: n_generators_bitmask_restart
@ -569,7 +569,7 @@ Providers
Number of bitmasks for generators Number of bitmasks for generators
.. c:var:: n_inact_orb .. c:var:: n_inact_orb
@ -585,7 +585,7 @@ Providers
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals
.. c:var:: n_inact_orb_allocate .. c:var:: n_inact_orb_allocate
@ -598,7 +598,7 @@ Providers
.. c:var:: n_int .. c:var:: n_int
@ -611,7 +611,7 @@ Providers
Number of 64-bit integers needed to represent determinants as binary strings Number of 64-bit integers needed to represent determinants as binary strings
.. c:var:: n_virt_orb .. c:var:: n_virt_orb
@ -627,7 +627,7 @@ Providers
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals
.. c:var:: n_virt_orb_allocate .. c:var:: n_virt_orb_allocate
@ -640,7 +640,7 @@ Providers
.. c:var:: ref_bitmask .. c:var:: ref_bitmask
@ -653,7 +653,7 @@ Providers
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
.. c:var:: reunion_of_bitmask .. c:var:: reunion_of_bitmask
@ -666,7 +666,7 @@ Providers
Reunion of the inactive, active and virtual bitmasks Reunion of the inactive, active and virtual bitmasks
.. c:var:: reunion_of_cas_inact_bitmask .. c:var:: reunion_of_cas_inact_bitmask
@ -679,7 +679,7 @@ Providers
Reunion of the inactive, active and virtual bitmasks Reunion of the inactive, active and virtual bitmasks
.. c:var:: reunion_of_core_inact_act_bitmask .. c:var:: reunion_of_core_inact_act_bitmask
@ -693,7 +693,7 @@ Providers
Reunion of the core, inactive and active bitmasks Reunion of the core, inactive and active bitmasks
.. c:var:: reunion_of_core_inact_bitmask .. c:var:: reunion_of_core_inact_bitmask
@ -706,7 +706,7 @@ Providers
Reunion of the core and inactive and virtual bitmasks Reunion of the core and inactive and virtual bitmasks
.. c:var:: unpaired_alpha_electrons .. c:var:: unpaired_alpha_electrons
@ -719,7 +719,7 @@ Providers
Bitmask reprenting the unpaired alpha electrons in the HF_bitmask Bitmask reprenting the unpaired alpha electrons in the HF_bitmask
.. c:var:: virt_bitmask .. c:var:: virt_bitmask
@ -735,7 +735,7 @@ Providers
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited in post CAS methods n_inact_orb : Number of inactive orbitals virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals
.. c:var:: virt_bitmask_4 .. c:var:: virt_bitmask_4
@ -748,11 +748,11 @@ Providers
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: bitstring_to_hexa .. c:function:: bitstring_to_hexa
@ -766,7 +766,7 @@ Subroutines / functions
Transform a bit string to a string in hexadecimal format for printing Transform a bit string to a string in hexadecimal format for printing
.. c:function:: bitstring_to_list .. c:function:: bitstring_to_list
@ -780,7 +780,7 @@ Subroutines / functions
Gives the inidices(+1) of the bits set to 1 in the bit string Gives the inidices(+1) of the bits set to 1 in the bit string
.. c:function:: bitstring_to_str .. c:function:: bitstring_to_str
@ -794,7 +794,7 @@ Subroutines / functions
Transform a bit string to a string for printing Transform a bit string to a string for printing
.. c:function:: broadcast_chunks_bit_kind .. c:function:: broadcast_chunks_bit_kind
@ -808,7 +808,7 @@ Subroutines / functions
Broadcast with chunks of ~2GB Broadcast with chunks of ~2GB
.. c:function:: clear_bit_to_integer .. c:function:: clear_bit_to_integer
@ -822,7 +822,7 @@ Subroutines / functions
set to 0 the bit number i_physical in the bitstring key set to 0 the bit number i_physical in the bitstring key
.. c:function:: debug_det .. c:function:: debug_det
@ -836,7 +836,7 @@ Subroutines / functions
Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation. Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation.
.. c:function:: debug_spindet .. c:function:: debug_spindet
@ -850,7 +850,7 @@ Subroutines / functions
Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation. Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation.
.. c:function:: example_bitmask .. c:function:: example_bitmask
@ -864,7 +864,7 @@ Subroutines / functions
subroutine that illustrates the main features available in bitmask subroutine that illustrates the main features available in bitmask
.. c:function:: initialize_bitmask_to_restart_ones .. c:function:: initialize_bitmask_to_restart_ones
@ -878,7 +878,7 @@ Subroutines / functions
Initialization of the generators_bitmask to the restart bitmask Initialization of the generators_bitmask to the restart bitmask
.. c:function:: is_a_1h .. c:function:: is_a_1h
@ -892,7 +892,7 @@ Subroutines / functions
.. c:function:: is_a_1h1p .. c:function:: is_a_1h1p
@ -906,7 +906,7 @@ Subroutines / functions
.. c:function:: is_a_1h2p .. c:function:: is_a_1h2p
@ -920,7 +920,7 @@ Subroutines / functions
.. c:function:: is_a_1p .. c:function:: is_a_1p
@ -934,7 +934,7 @@ Subroutines / functions
.. c:function:: is_a_2h .. c:function:: is_a_2h
@ -948,7 +948,7 @@ Subroutines / functions
.. c:function:: is_a_2h1p .. c:function:: is_a_2h1p
@ -962,7 +962,7 @@ Subroutines / functions
.. c:function:: is_a_2p .. c:function:: is_a_2p
@ -976,7 +976,7 @@ Subroutines / functions
.. c:function:: is_a_two_holes_two_particles .. c:function:: is_a_two_holes_two_particles
@ -990,7 +990,7 @@ Subroutines / functions
logical function that returns True if the determinant 'key_in' belongs to the 2h-2p excitation class of the DDCI space this is calculated using the CAS_bitmask that defines the active orbital space, the inact_bitmasl that defines the inactive oribital space and the virt_bitmask that defines the virtual orbital space logical function that returns True if the determinant 'key_in' belongs to the 2h-2p excitation class of the DDCI space this is calculated using the CAS_bitmask that defines the active orbital space, the inact_bitmasl that defines the inactive oribital space and the virt_bitmask that defines the virtual orbital space
.. c:function:: is_i_in_virtual .. c:function:: is_i_in_virtual
@ -1004,7 +1004,7 @@ Subroutines / functions
.. c:function:: is_the_hole_in_det .. c:function:: is_the_hole_in_det
@ -1018,7 +1018,7 @@ Subroutines / functions
.. c:function:: is_the_particl_in_det .. c:function:: is_the_particl_in_det
@ -1032,7 +1032,7 @@ Subroutines / functions
.. c:function:: list_to_bitstring .. c:function:: list_to_bitstring
@ -1046,7 +1046,7 @@ Subroutines / functions
Returns the physical string "string(N_int,2)" from the array of occupations "list(N_int*bit_kind_size,2) Returns the physical string "string(N_int,2)" from the array of occupations "list(N_int*bit_kind_size,2)
.. c:function:: modify_bitmasks_for_hole .. c:function:: modify_bitmasks_for_hole
@ -1060,7 +1060,7 @@ Subroutines / functions
modify the generators_bitmask in order that one can only excite the electrons occupying i_hole modify the generators_bitmask in order that one can only excite the electrons occupying i_hole
.. c:function:: modify_bitmasks_for_hole_in_out .. c:function:: modify_bitmasks_for_hole_in_out
@ -1074,7 +1074,7 @@ Subroutines / functions
modify the generators_bitmask in order that one can only excite the electrons occupying i_hole modify the generators_bitmask in order that one can only excite the electrons occupying i_hole
.. c:function:: modify_bitmasks_for_particl .. c:function:: modify_bitmasks_for_particl
@ -1088,7 +1088,7 @@ Subroutines / functions
modify the generators_bitmask in order that one can only excite the electrons to the orbital i_part modify the generators_bitmask in order that one can only excite the electrons to the orbital i_part
.. c:function:: number_of_holes .. c:function:: number_of_holes
@ -1102,7 +1102,7 @@ Subroutines / functions
Function that returns the number of holes in the inact space Function that returns the number of holes in the inact space
.. c:function:: number_of_holes_verbose .. c:function:: number_of_holes_verbose
@ -1116,7 +1116,7 @@ Subroutines / functions
function that returns the number of holes in the inact space function that returns the number of holes in the inact space
.. c:function:: number_of_particles .. c:function:: number_of_particles
@ -1130,7 +1130,7 @@ Subroutines / functions
function that returns the number of particles in the virtual space function that returns the number of particles in the virtual space
.. c:function:: number_of_particles_verbose .. c:function:: number_of_particles_verbose
@ -1144,7 +1144,7 @@ Subroutines / functions
function that returns the number of particles in the inact space function that returns the number of particles in the inact space
.. c:function:: print_det .. c:function:: print_det
@ -1158,7 +1158,7 @@ Subroutines / functions
Subroutine to print the content of a determinant using the '+-' notation Subroutine to print the content of a determinant using the '+-' notation
.. c:function:: print_generators_bitmasks_holes .. c:function:: print_generators_bitmasks_holes
@ -1172,7 +1172,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_holes_for_one_generator .. c:function:: print_generators_bitmasks_holes_for_one_generator
@ -1186,7 +1186,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_particles .. c:function:: print_generators_bitmasks_particles
@ -1200,7 +1200,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_particles_for_one_generator .. c:function:: print_generators_bitmasks_particles_for_one_generator
@ -1214,7 +1214,7 @@ Subroutines / functions
.. c:function:: print_spindet .. c:function:: print_spindet
@ -1228,7 +1228,7 @@ Subroutines / functions
Subroutine to print the content of a determinant using the '+-' notation Subroutine to print the content of a determinant using the '+-' notation
.. c:function:: set_bit_to_integer .. c:function:: set_bit_to_integer
@ -1242,7 +1242,7 @@ Subroutines / functions
set to 1 the bit number i_physical in the bitstring key set to 1 the bit number i_physical in the bitstring key
.. c:function:: set_bitmask_hole_as_input .. c:function:: set_bitmask_hole_as_input
@ -1256,7 +1256,7 @@ Subroutines / functions
set the generators_bitmask for the holes as the input_bimask set the generators_bitmask for the holes as the input_bimask
.. c:function:: set_bitmask_particl_as_input .. c:function:: set_bitmask_particl_as_input

View File

@ -1,9 +1,9 @@
.. _cipsi: .. _cipsi:
.. program:: cipsi .. program:: cipsi
.. default-role:: option .. default-role:: option
===== =====
cipsi cipsi
===== =====
@ -76,17 +76,17 @@ When the deterministic algorithm is chosen (:option:`perturbation do_pt2`
is set to |false|), :math:`Psi_G` is a truncation of |Psi| using is set to |false|), :math:`Psi_G` is a truncation of |Psi| using
:option:`determinants threshold_generators`, and :math:`Psi_S` is a truncation :option:`determinants threshold_generators`, and :math:`Psi_S` is a truncation
of |Psi| using :option:`determinants threshold_selectors`, and re-weighted of |Psi| using :option:`determinants threshold_selectors`, and re-weighted
by :math:`1/\langle \Psi_s | \Psi_s \rangle`. by :math:`1/\langle \Psi_s | \Psi_s \rangle`.
At every iteration, while computing the |PT2|, the variance of the wave At every iteration, while computing the |PT2|, the variance of the wave
function is also computed: function is also computed:
.. math:: .. math::
\sigma^2 & = \langle \Psi | \hat{H}^2 | \Psi \rangle - \sigma^2 & = \langle \Psi | \hat{H}^2 | \Psi \rangle -
\langle \Psi | \hat{H} | \Psi \rangle^2 \\ \langle \Psi | \hat{H} | \Psi \rangle^2 \\
& = \sum_{i \in \text{FCI}} & = \sum_{i \in \text{FCI}}
\langle \Psi | \hat{H} | i \rangle \langle \Psi | \hat{H} | i \rangle
\langle i | \hat{H} | \Psi \rangle - \langle i | \hat{H} | \Psi \rangle -
\langle \Psi | \hat{H} | \Psi \rangle^2 \\ \langle \Psi | \hat{H} | \Psi \rangle^2 \\
& = \sum_{ \alpha } & = \sum_{ \alpha }
@ -101,7 +101,7 @@ a selection method by minimization of the energy.
If :option:`perturbation do_pt2` is set to |false|, then the stochastic If :option:`perturbation do_pt2` is set to |false|, then the stochastic
|PT2| is not computed, and an approximate value is obtained from the |CIPSI| |PT2| is not computed, and an approximate value is obtained from the |CIPSI|
selection. The calculation is faster, but the extrapolated |FCI| value is selection. The calculation is faster, but the extrapolated |FCI| value is
less accurate. This way of running the code should be used when the only less accurate. This way of running the code should be used when the only
goal is to generate a wave function, as for using |CIPSI| wave functions as goal is to generate a wave function, as for using |CIPSI| wave functions as
trial wave functions of |QMC| calculations for example. trial wave functions of |QMC| calculations for example.
@ -132,12 +132,12 @@ The extrapolations are given considering the 2 last points, the 3 last points, .
the 7 last points. The extrapolated value should be chosen such that the extrpolated the 7 last points. The extrapolated value should be chosen such that the extrpolated
value is stable with the number of points. value is stable with the number of points.
Providers Providers
--------- ---------
.. c:var:: initialize_pt2_e0_denominator .. c:var:: initialize_pt2_e0_denominator
@ -150,7 +150,7 @@ Providers
If true, initialize pt2_E0_denominator If true, initialize pt2_E0_denominator
.. c:var:: pt2_collector .. c:var:: pt2_collector
@ -164,7 +164,7 @@ Providers
.. c:var:: pt2_cw .. c:var:: pt2_cw
@ -181,7 +181,7 @@ Providers
.. c:var:: pt2_e0_denominator .. c:var:: pt2_e0_denominator
@ -194,7 +194,7 @@ Providers
E0 in the denominator of the PT2 E0 in the denominator of the PT2
.. c:var:: pt2_f .. c:var:: pt2_f
@ -208,7 +208,7 @@ Providers
.. c:var:: pt2_j .. c:var:: pt2_j
@ -222,7 +222,7 @@ Providers
.. c:var:: pt2_mindetinfirstteeth .. c:var:: pt2_mindetinfirstteeth
@ -236,7 +236,7 @@ Providers
.. c:var:: pt2_n_0 .. c:var:: pt2_n_0
@ -253,7 +253,7 @@ Providers
.. c:var:: pt2_n_tasks .. c:var:: pt2_n_tasks
@ -266,7 +266,7 @@ Providers
Number of parallel tasks for the Monte Carlo Number of parallel tasks for the Monte Carlo
.. c:var:: pt2_n_tasks_max .. c:var:: pt2_n_tasks_max
@ -280,7 +280,7 @@ Providers
.. c:var:: pt2_n_teeth .. c:var:: pt2_n_teeth
@ -294,7 +294,7 @@ Providers
.. c:var:: pt2_r .. c:var:: pt2_r
@ -308,7 +308,7 @@ Providers
.. c:var:: pt2_stoch_istate .. c:var:: pt2_stoch_istate
@ -321,7 +321,7 @@ Providers
State for stochatsic PT2 State for stochatsic PT2
.. c:var:: pt2_u .. c:var:: pt2_u
@ -334,7 +334,7 @@ Providers
.. c:var:: pt2_u_0 .. c:var:: pt2_u_0
@ -351,7 +351,7 @@ Providers
.. c:var:: pt2_w .. c:var:: pt2_w
@ -368,7 +368,7 @@ Providers
.. c:var:: pt2_w_t .. c:var:: pt2_w_t
@ -385,7 +385,7 @@ Providers
.. c:var:: selection_weight .. c:var:: selection_weight
@ -395,14 +395,14 @@ Providers
File: :file:`selection.irp.f` File: :file:`selection.irp.f`
Weights in the state-average calculation of the density matrix Weights used in the selection criterion
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: add_to_selection_buffer .. c:function:: add_to_selection_buffer
@ -416,7 +416,7 @@ Subroutines / functions
.. c:function:: bitstring_to_list_in_selection .. c:function:: bitstring_to_list_in_selection
@ -430,7 +430,7 @@ Subroutines / functions
Gives the inidices(+1) of the bits set to 1 in the bit string Gives the inidices(+1) of the bits set to 1 in the bit string
.. c:function:: create_selection_buffer .. c:function:: create_selection_buffer
@ -444,7 +444,7 @@ Subroutines / functions
.. c:function:: delete_selection_buffer .. c:function:: delete_selection_buffer
@ -458,7 +458,7 @@ Subroutines / functions
.. c:function:: fill_buffer_double .. c:function:: fill_buffer_double
@ -472,7 +472,7 @@ Subroutines / functions
.. c:function:: get_d0 .. c:function:: get_d0
@ -486,7 +486,7 @@ Subroutines / functions
.. c:function:: get_d1 .. c:function:: get_d1
@ -500,7 +500,7 @@ Subroutines / functions
.. c:function:: get_d2 .. c:function:: get_d2
@ -514,7 +514,7 @@ Subroutines / functions
.. c:function:: get_mask_phase .. c:function:: get_mask_phase
@ -528,7 +528,7 @@ Subroutines / functions
.. c:function:: get_phase_bi .. c:function:: get_phase_bi
@ -542,7 +542,7 @@ Subroutines / functions
.. c:function:: make_selection_buffer_s2 .. c:function:: make_selection_buffer_s2
@ -556,7 +556,7 @@ Subroutines / functions
.. c:function:: merge_selection_buffers .. c:function:: merge_selection_buffers
@ -570,7 +570,7 @@ Subroutines / functions
Merges the selection buffers b1 and b2 into b2 Merges the selection buffers b1 and b2 into b2
.. c:function:: past_d1 .. c:function:: past_d1
@ -584,7 +584,7 @@ Subroutines / functions
.. c:function:: past_d2 .. c:function:: past_d2
@ -598,7 +598,7 @@ Subroutines / functions
.. c:function:: provide_everything .. c:function:: provide_everything
@ -612,7 +612,7 @@ Subroutines / functions
.. c:function:: pt2_find_sample .. c:function:: pt2_find_sample
@ -626,7 +626,7 @@ Subroutines / functions
.. c:function:: pt2_find_sample_lr .. c:function:: pt2_find_sample_lr
@ -640,7 +640,7 @@ Subroutines / functions
.. c:function:: pt2_slave_inproc .. c:function:: pt2_slave_inproc
@ -654,7 +654,7 @@ Subroutines / functions
.. c:function:: pull_pt2_results .. c:function:: pull_pt2_results
@ -668,7 +668,7 @@ Subroutines / functions
.. c:function:: pull_selection_results .. c:function:: pull_selection_results
@ -682,7 +682,7 @@ Subroutines / functions
.. c:function:: push_pt2_results .. c:function:: push_pt2_results
@ -696,7 +696,7 @@ Subroutines / functions
.. c:function:: push_selection_results .. c:function:: push_selection_results
@ -710,7 +710,7 @@ Subroutines / functions
.. c:function:: remove_duplicates_in_selection_buffer .. c:function:: remove_duplicates_in_selection_buffer
@ -724,7 +724,7 @@ Subroutines / functions
.. c:function:: run_cipsi .. c:function:: run_cipsi
@ -738,7 +738,7 @@ Subroutines / functions
Selected Full Configuration Interaction with deterministic selection and stochastic PT2. Selected Full Configuration Interaction with deterministic selection and stochastic PT2.
.. c:function:: run_pt2_slave .. c:function:: run_pt2_slave
@ -752,7 +752,7 @@ Subroutines / functions
.. c:function:: run_selection_slave .. c:function:: run_selection_slave
@ -766,7 +766,7 @@ Subroutines / functions
.. c:function:: run_slave_cipsi .. c:function:: run_slave_cipsi
@ -780,7 +780,7 @@ Subroutines / functions
Helper program for distributed parallelism Helper program for distributed parallelism
.. c:function:: run_slave_main .. c:function:: run_slave_main
@ -794,7 +794,7 @@ Subroutines / functions
.. c:function:: run_stochastic_cipsi .. c:function:: run_stochastic_cipsi
@ -808,7 +808,7 @@ Subroutines / functions
Selected Full Configuration Interaction with Stochastic selection and PT2. Selected Full Configuration Interaction with Stochastic selection and PT2.
.. c:function:: select_connected .. c:function:: select_connected
@ -822,7 +822,7 @@ Subroutines / functions
.. c:function:: select_singles_and_doubles .. c:function:: select_singles_and_doubles
@ -836,7 +836,7 @@ Subroutines / functions
WARNING /!\ : It is assumed that the generators and selectors are psi_det_sorted WARNING /!\ : It is assumed that the generators and selectors are psi_det_sorted
.. c:function:: selection_collector .. c:function:: selection_collector
@ -850,7 +850,7 @@ Subroutines / functions
.. c:function:: selection_slave_inproc .. c:function:: selection_slave_inproc
@ -864,7 +864,7 @@ Subroutines / functions
.. c:function:: sort_selection_buffer .. c:function:: sort_selection_buffer
@ -878,7 +878,7 @@ Subroutines / functions
.. c:function:: splash_pq .. c:function:: splash_pq
@ -892,7 +892,7 @@ Subroutines / functions
.. c:function:: spot_isinwf .. c:function:: spot_isinwf
@ -906,7 +906,7 @@ Subroutines / functions
.. c:function:: testteethbuilding .. c:function:: testteethbuilding
@ -920,7 +920,7 @@ Subroutines / functions
.. c:function:: zmq_pt2 .. c:function:: zmq_pt2
@ -934,7 +934,7 @@ Subroutines / functions
.. c:function:: zmq_selection .. c:function:: zmq_selection

View File

@ -1,24 +1,24 @@
.. _cis: .. _cis:
.. program:: cis .. program:: cis
.. default-role:: option .. default-role:: option
=== ===
cis cis
=== ===
This module contains a CIS program. This module contains a CIS program.
The user point of view The user point of view
---------------------- ----------------------
The :command:`cis` program performs the CI of the ROHF-like + all single excitations on top of it. The :command:`cis` program performs the CI of the ROHF-like + all single excitations on top of it.
This program can be very useful to : This program can be very useful to :
* **Ground state calculations**: generate a guess for the ground state wave function if one is not sure that the :c:func:`scf` program gave the lowest SCF solution. In combination with :c:func:`save_natorb` it can produce new |MOs| in order to reperform an :c:func:`scf` optimization. * **Ground state calculations**: generate a guess for the ground state wave function if one is not sure that the :c:func:`scf` program gave the lowest SCF solution. In combination with :c:func:`save_natorb` it can produce new |MOs| in order to reperform an :c:func:`scf` optimization.
* **Excited states calculations**: generate guess for all the :option:`determinants n_states` wave functions, that will be used by the :c:func:`fci` program. * **Excited states calculations**: generate guess for all the :option:`determinants n_states` wave functions, that will be used by the :c:func:`fci` program.
The main keywords/options to be used are: The main keywords/options to be used are:
@ -44,63 +44,26 @@ This module have been built by setting the following rules:
These rules are set in the ``H_apply.irp.f`` file. These rules are set in the ``H_apply.irp.f`` file.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: energy .. option:: energy
Variational |CIS| energy Variational |CIS| energy
Subroutines / functions Programs
----------------------- --------
* :ref:`cis`
.. c:function:: cis Subroutines / functions
-----------------------
.. code:: text
subroutine cis
File: :file:`cis.irp.f`
Configuration Interaction with Single excitations.
This program takes a reference Slater determinant of ROHF-like occupancy,
and performs all single excitations on top of it, disregarding spatial symmetry and compute the "n_states" lowest eigenstates of that CI matrix. (see :option:`determinants n_states`)
This program can be useful in many cases:
* GROUND STATE CALCULATION: to be sure to have the lowest scf solution, perform an :c:func:`scf` (see the :ref:`hartree_fock` module), then a :c:func:`cis`, save the natural orbitals (see :c:func:`save_natorb`) and reperform an :c:func:`scf` optimization from this MO guess
* EXCITED STATES CALCULATIONS: the lowest excited states are much likely to be dominanted by single-excitations. Therefore, running a :c:func:`cis` will save the "n_states" lowest states within the CIS space in the EZFIO folder, which can afterward be used as guess wave functions for a further multi-state fci calculation if you specify "read_wf" = True before running the fci executable (see :option:`determinants read_wf`). Also, if you specify "s2_eig" = True, the cis will only retain states having the good value :math:`S^2` value (see :option:`determinants s2_eig` and :option:`determinants expected_s2`). If "s2_eig" = False, it will take the lowest n_states, whatever multiplicity they are.
Note: if you would like to discard some orbitals, use :ref:`qp_set_mo_class` to specify:
* "core" orbitals which will be always doubly occupied
* "act" orbitals where an electron can be either excited from or to
* "del" orbitals which will be never occupied
.. c:function:: h_apply_cis .. c:function:: h_apply_cis
@ -114,7 +77,7 @@ Subroutines / functions
Calls H_apply on the |HF| determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. Calls H_apply on the |HF| determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
.. c:function:: h_apply_cis_diexc .. c:function:: h_apply_cis_diexc
@ -128,7 +91,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexcorg .. c:function:: h_apply_cis_diexcorg
@ -142,7 +105,7 @@ Subroutines / functions
Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
.. c:function:: h_apply_cis_diexcp .. c:function:: h_apply_cis_diexcp
@ -156,7 +119,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_monoexc .. c:function:: h_apply_cis_monoexc

View File

@ -1,24 +1,24 @@
.. _cisd: .. _cisd:
.. program:: cisd .. program:: cisd
.. default-role:: option .. default-role:: option
==== ====
cisd cisd
==== ====
This module contains a CI of single and double excitations. This module contains a CI of single and double excitations.
The user point of view The user point of view
---------------------- ----------------------
The :command:`cisd` program performs the CI of the ROHF-like + all single and double excitations on top of it. The :command:`cisd` program performs the CI of the ROHF-like + all single and double excitations on top of it.
This program can be very useful to : This program can be very useful to :
* **Ground state calculations**: generate a guess for the ground state wave function if one is not sure that the :c:func:`scf` program gave the lowest SCF solution. In combination with :c:func:`save_natorb` it can produce new |MOs| in order to reperform an :c:func:`scf` optimization. * **Ground state calculations**: generate a guess for the ground state wave function if one is not sure that the :c:func:`scf` program gave the lowest SCF solution. In combination with :c:func:`save_natorb` it can produce new |MOs| in order to reperform an :c:func:`scf` optimization.
* **Excited states calculations**: generate guess for all the :option:`determinants n_states` wave functions, that will be used by the :c:func:`fci` program. * **Excited states calculations**: generate guess for all the :option:`determinants n_states` wave functions, that will be used by the :c:func:`fci` program.
The main keywords/options to be used are: The main keywords/options to be used are:
@ -42,61 +42,26 @@ This module have been built by setting the following rules:
These rules are set in the ``H_apply.irp.f`` file. These rules are set in the ``H_apply.irp.f`` file.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: energy .. option:: energy
Variational |CISD| energy Variational |CISD| energy
Subroutines / functions Programs
----------------------- --------
* :ref:`cisd`
.. c:function:: cisd Subroutines / functions
-----------------------
.. code:: text
subroutine cisd
File: :file:`cisd.irp.f`
Configuration Interaction with Single and Double excitations.
This program takes a reference Slater determinant of ROHF-like occupancy,
and performs all single and double excitations on top of it, disregarding spatial symmetry and compute the "n_states" lowest eigenstates of that CI matrix (see :option:`determinants n_states`).
This program can be useful in many cases:
* 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 orbitals as a guess for the :c:func:`scf`.
* EXCITED STATES CALCULATIONS: the lowest excited states are much likely to be dominanted by single- or double-excitations. Therefore, running a :c:func:`cisd` will save the "n_states" lowest states within the CISD space in the EZFIO folder, which can afterward be used as guess wave functions for a further multi-state fci calculation if you specify "read_wf" = True before running the fci executable (see :option:`determinants read_wf`). Also, if you specify "s2_eig" = True, the cisd will only retain states having the good value :math:`S^2` value (see :option:`determinants expected_s2` and :option:`determinants s2_eig`). If "s2_eig" = False, it will take the lowest n_states, whatever multiplicity they are.
Note: if you would like to discard some orbitals, use :ref:`qp_set_mo_class` to specify:
* "core" orbitals which will be always doubly occupied
* "act" orbitals where an electron can be either excited from or to
* "del" orbitals which will be never occupied
.. c:function:: h_apply_cisd .. c:function:: h_apply_cisd
@ -110,7 +75,7 @@ Subroutines / functions
Calls H_apply on the |HF| determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. Calls H_apply on the |HF| determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
.. c:function:: h_apply_cisd_diexc .. c:function:: h_apply_cisd_diexc
@ -124,7 +89,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexcorg .. c:function:: h_apply_cisd_diexcorg
@ -138,7 +103,7 @@ Subroutines / functions
Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
.. c:function:: h_apply_cisd_diexcp .. c:function:: h_apply_cisd_diexcp
@ -152,7 +117,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_monoexc .. c:function:: h_apply_cisd_monoexc

View File

@ -1,9 +1,9 @@
.. _davidson: .. _davidson:
.. program:: davidson .. program:: davidson
.. default-role:: option .. default-role:: option
======== ========
davidson davidson
======== ========
@ -16,60 +16,60 @@ the :ref:`davidson` module should be used, and it has a default zero dressing ve
The important providers for that module are: The important providers for that module are:
# `psi_energy` which is the expectation value over the wave function (`psi_det`, `psi_coef`) of the Hamiltonian, dressed or not. It uses the general subroutine `u_0_H_u_0`. # `psi_energy` which is the expectation value over the wave function (`psi_det`, `psi_coef`) of the Hamiltonian, dressed or not. It uses the general subroutine `u_0_H_u_0`.
# `psi_energy_two_e` which is the expectation value over the wave function (`psi_det`, `psi_coef`) of the standard two-electrons coulomb operator. It uses the general routine `u_0_H_u_0_two_e`. # `psi_energy_two_e` which is the expectation value over the wave function (`psi_det`, `psi_coef`) of the standard two-electrons coulomb operator. It uses the general routine `u_0_H_u_0_two_e`.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: threshold_davidson .. option:: threshold_davidson
Thresholds of Davidson's algorithm Thresholds of Davidson's algorithm
Default: 1.e-10 Default: 1.e-10
.. option:: n_states_diag .. option:: n_states_diag
Number of states to consider during the Davdison diagonalization Number of states to consider during the Davdison diagonalization
Default: 4 Default: 4
.. option:: davidson_sze_max .. option:: davidson_sze_max
Number of micro-iterations before re-contracting Number of micro-iterations before re-contracting
Default: 8 Default: 8
.. option:: state_following .. option:: state_following
If |true|, the states are re-ordered to match the input states If |true|, the states are re-ordered to match the input states
Default: False Default: False
.. option:: disk_based_davidson .. option:: disk_based_davidson
If |true|, disk space is used to store the vectors If |true|, disk space is used to store the vectors
Default: False Default: False
.. option:: distributed_davidson .. option:: distributed_davidson
If |true|, use the distributed algorithm If |true|, use the distributed algorithm
Default: True Default: True
.. option:: only_expected_s2 .. option:: only_expected_s2
If |true|, use filter out all vectors with bad |S^2| values If |true|, use filter out all vectors with bad |S^2| values
Default: True Default: True
Providers Providers
--------- ---------
.. c:var:: ci_eigenvectors .. c:var:: ci_eigenvectors
@ -84,7 +84,7 @@ Providers
Eigenvectors/values of the |CI| matrix Eigenvectors/values of the |CI| matrix
.. c:var:: ci_eigenvectors_s2 .. c:var:: ci_eigenvectors_s2
@ -99,7 +99,7 @@ Providers
Eigenvectors/values of the |CI| matrix Eigenvectors/values of the |CI| matrix
.. c:var:: ci_electronic_energy .. c:var:: ci_electronic_energy
@ -114,7 +114,7 @@ Providers
Eigenvectors/values of the |CI| matrix Eigenvectors/values of the |CI| matrix
.. c:var:: ci_energy .. c:var:: ci_energy
@ -127,7 +127,7 @@ Providers
:c:data:`n_states` lowest eigenvalues of the |CI| matrix :c:data:`n_states` lowest eigenvalues of the |CI| matrix
.. c:var:: davidson_criterion .. c:var:: davidson_criterion
@ -140,7 +140,7 @@ Providers
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ] Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
.. c:var:: dressed_column_idx .. c:var:: dressed_column_idx
@ -153,7 +153,7 @@ Providers
Index of the dressed columns Index of the dressed columns
.. c:var:: n_states_diag .. c:var:: n_states_diag
@ -166,7 +166,7 @@ Providers
Number of states to consider during the Davdison diagonalization Number of states to consider during the Davdison diagonalization
.. c:var:: nthreads_davidson .. c:var:: nthreads_davidson
@ -179,7 +179,7 @@ Providers
Number of threads for Davidson Number of threads for Davidson
.. c:var:: psi_energy .. c:var:: psi_energy
@ -192,7 +192,7 @@ Providers
Electronic energy of the current wave function Electronic energy of the current wave function
.. c:var:: psi_energy_two_e .. c:var:: psi_energy_two_e
@ -205,7 +205,7 @@ Providers
Energy of the current wave function Energy of the current wave function
.. c:var:: psi_energy_with_nucl_rep .. c:var:: psi_energy_with_nucl_rep
@ -218,11 +218,11 @@ Providers
Energy of the wave function with the nuclear repulsion energy. Energy of the wave function with the nuclear repulsion energy.
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: davidson_collector .. c:function:: davidson_collector
@ -236,7 +236,7 @@ Subroutines / functions
Routine collecting the results of the workers in Davidson's algorithm. Routine collecting the results of the workers in Davidson's algorithm.
.. c:function:: davidson_converged .. c:function:: davidson_converged
@ -250,7 +250,7 @@ Subroutines / functions
True if the Davidson algorithm is converged True if the Davidson algorithm is converged
.. c:function:: davidson_diag_hjj_sjj .. c:function:: davidson_diag_hjj_sjj
@ -282,7 +282,7 @@ Subroutines / functions
Initial guess vectors are not necessarily orthonormal Initial guess vectors are not necessarily orthonormal
.. c:function:: davidson_diag_hs2 .. c:function:: davidson_diag_hs2
@ -308,7 +308,7 @@ Subroutines / functions
Initial guess vectors are not necessarily orthonormal Initial guess vectors are not necessarily orthonormal
.. c:function:: davidson_pull_results .. c:function:: davidson_pull_results
@ -322,7 +322,7 @@ Subroutines / functions
Pull the results of :math:`H|U \rangle` on the master. Pull the results of :math:`H|U \rangle` on the master.
.. c:function:: davidson_push_results .. c:function:: davidson_push_results
@ -336,7 +336,7 @@ Subroutines / functions
Push the results of :math:`H|U \rangle` from a worker to the master. Push the results of :math:`H|U \rangle` from a worker to the master.
.. c:function:: davidson_run_slave .. c:function:: davidson_run_slave
@ -350,7 +350,7 @@ Subroutines / functions
Slave routine for Davidson's diagonalization. Slave routine for Davidson's diagonalization.
.. c:function:: davidson_slave_inproc .. c:function:: davidson_slave_inproc
@ -364,7 +364,7 @@ Subroutines / functions
.. c:function:: davidson_slave_tcp .. c:function:: davidson_slave_tcp
@ -378,7 +378,7 @@ Subroutines / functions
.. c:function:: davidson_slave_work .. c:function:: davidson_slave_work
@ -392,7 +392,7 @@ Subroutines / functions
.. c:function:: diagonalize_ci .. c:function:: diagonalize_ci
@ -406,7 +406,7 @@ Subroutines / functions
Replace the coefficients of the |CI| states by the coefficients of the eigenstates of the |CI| matrix. Replace the coefficients of the |CI| states by the coefficients of the eigenstates of the |CI| matrix.
.. c:function:: h_s2_u_0_nstates_openmp .. c:function:: h_s2_u_0_nstates_openmp
@ -424,7 +424,7 @@ Subroutines / functions
istart, iend, ishift, istep are used in ZMQ parallelization. istart, iend, ishift, istep are used in ZMQ parallelization.
.. c:function:: h_s2_u_0_nstates_openmp_work .. c:function:: h_s2_u_0_nstates_openmp_work
@ -440,7 +440,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_1 .. c:function:: h_s2_u_0_nstates_openmp_work_1
@ -456,7 +456,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_2 .. c:function:: h_s2_u_0_nstates_openmp_work_2
@ -472,7 +472,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_3 .. c:function:: h_s2_u_0_nstates_openmp_work_3
@ -488,7 +488,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_4 .. c:function:: h_s2_u_0_nstates_openmp_work_4
@ -504,7 +504,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_n_int .. c:function:: h_s2_u_0_nstates_openmp_work_n_int
@ -520,7 +520,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_zmq .. c:function:: h_s2_u_0_nstates_zmq
@ -540,7 +540,7 @@ Subroutines / functions
S2_jj : array of :math:`\langle j|S^2|j \rangle` S2_jj : array of :math:`\langle j|S^2|j \rangle`
.. c:function:: h_s2_u_0_two_e_nstates_openmp .. c:function:: h_s2_u_0_two_e_nstates_openmp
@ -558,7 +558,7 @@ Subroutines / functions
istart, iend, ishift, istep are used in ZMQ parallelization. istart, iend, ishift, istep are used in ZMQ parallelization.
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work .. c:function:: h_s2_u_0_two_e_nstates_openmp_work
@ -574,7 +574,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work_1 .. c:function:: h_s2_u_0_two_e_nstates_openmp_work_1
@ -590,7 +590,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work_2 .. c:function:: h_s2_u_0_two_e_nstates_openmp_work_2
@ -606,7 +606,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work_3 .. c:function:: h_s2_u_0_two_e_nstates_openmp_work_3
@ -622,7 +622,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work_4 .. c:function:: h_s2_u_0_two_e_nstates_openmp_work_4
@ -638,7 +638,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_two_e_nstates_openmp_work_n_int .. c:function:: h_s2_u_0_two_e_nstates_openmp_work_n_int
@ -654,7 +654,7 @@ Subroutines / functions
Default should be 1,N_det,0,1 Default should be 1,N_det,0,1
.. c:function:: u_0_h_u_0 .. c:function:: u_0_h_u_0
@ -672,7 +672,7 @@ Subroutines / functions
.. c:function:: u_0_h_u_0_two_e .. c:function:: u_0_h_u_0_two_e
@ -690,7 +690,7 @@ Subroutines / functions
.. c:function:: zmq_get_n_states_diag .. c:function:: zmq_get_n_states_diag
@ -704,7 +704,7 @@ Subroutines / functions
Get N_states_diag from the qp_run scheduler Get N_states_diag from the qp_run scheduler
.. c:function:: zmq_put_n_states_diag .. c:function:: zmq_put_n_states_diag

View File

@ -1,13 +1,13 @@
.. _davidson_dressed: .. _davidson_dressed:
.. program:: davidson_dressed .. program:: davidson_dressed
.. default-role:: option .. default-role:: option
================ ================
davidson_dressed davidson_dressed
================ ================
Davidson with single-column dressing. Davidson with single-column dressing.

View File

@ -1,21 +1,21 @@
.. _davidson_undressed: .. _davidson_undressed:
.. program:: davidson_undressed .. program:: davidson_undressed
.. default-role:: option .. default-role:: option
================== ==================
davidson_undressed davidson_undressed
================== ==================
Module for main files Davidson's algorithm with no dressing. Module for main files Davidson's algorithm with no dressing.
Providers Providers
--------- ---------
.. c:var:: dressing_column_h .. c:var:: dressing_column_h
@ -29,7 +29,7 @@ Providers
Null dressing vectors Null dressing vectors
.. c:var:: dressing_column_s .. c:var:: dressing_column_s

View File

@ -1,43 +1,43 @@
.. _density_for_dft: .. _density_for_dft:
.. program:: density_for_dft .. program:: density_for_dft
.. default-role:: option .. default-role:: option
=============== ===============
density_for_dft density_for_dft
=============== ===============
This module defines the *provider* of the density used for the DFT related calculations. This module defines the *provider* of the density used for the DFT related calculations.
This definition is done through the keyword :option:`density_for_dft density_for_dft`. This definition is done through the keyword :option:`density_for_dft density_for_dft`.
The density can be: The density can be:
* WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``) * WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``)
* damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft` * damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: density_for_dft .. option:: density_for_dft
Type of density used for DFT calculation. If set to WFT , it uses the density of the wave function stored in (psi_det,psi_coef). If set to input_density it uses the one-body dm stored in aux_quantities/ . If set to damping_rs_dft it uses the damped density between WFT and input_density. In the ks_scf and rs_ks_scf programs, it is set to WFT. Type of density used for DFT calculation. If set to WFT , it uses the density of the wave function stored in (psi_det,psi_coef). If set to input_density it uses the one-body dm stored in aux_quantities/ . If set to damping_rs_dft it uses the damped density between WFT and input_density. In the ks_scf and rs_ks_scf programs, it is set to WFT.
Default: WFT Default: WFT
.. option:: damping_for_rs_dft .. option:: damping_for_rs_dft
damping factor for the density used in RSFT. damping factor for the density used in RSFT.
Default: 0.5 Default: 0.5
Providers Providers
--------- ---------
.. c:var:: one_body_dm_mo_alpha_one_det .. c:var:: one_body_dm_mo_alpha_one_det
@ -51,7 +51,7 @@ Providers
One body density matrix on the |MO| basis for a single determinant One body density matrix on the |MO| basis for a single determinant
.. c:var:: one_body_dm_mo_beta_one_det .. c:var:: one_body_dm_mo_beta_one_det
@ -65,7 +65,7 @@ Providers
One body density matrix on the |MO| basis for a single determinant One body density matrix on the |MO| basis for a single determinant
.. c:var:: one_e_dm_alpha_ao_for_dft .. c:var:: one_e_dm_alpha_ao_for_dft
@ -79,7 +79,7 @@ Providers
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
.. c:var:: one_e_dm_average_mo_for_dft .. c:var:: one_e_dm_average_mo_for_dft
@ -92,7 +92,7 @@ Providers
.. c:var:: one_e_dm_beta_ao_for_dft .. c:var:: one_e_dm_beta_ao_for_dft
@ -106,7 +106,7 @@ Providers
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
.. c:var:: one_e_dm_mo_alpha_for_dft .. c:var:: one_e_dm_mo_alpha_for_dft
@ -119,7 +119,7 @@ Providers
density matrix for alpha electrons in the MO basis used for all DFT calculations based on the density density matrix for alpha electrons in the MO basis used for all DFT calculations based on the density
.. c:var:: one_e_dm_mo_beta_for_dft .. c:var:: one_e_dm_mo_beta_for_dft
@ -132,7 +132,7 @@ Providers
density matrix for beta electrons in the MO basis used for all DFT calculations based on the density density matrix for beta electrons in the MO basis used for all DFT calculations based on the density
.. c:var:: one_e_dm_mo_for_dft .. c:var:: one_e_dm_mo_for_dft

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
.. _dft_keywords: .. _dft_keywords:
.. program:: dft_keywords .. program:: dft_keywords
.. default-role:: option .. default-role:: option
============ ============
dft_keywords dft_keywords
============ ============
@ -14,37 +14,37 @@ This module contains the main keywords related to a DFT calculation or RS-DFT ca
* :option:`dft_keywords correlation_functional` * :option:`dft_keywords correlation_functional`
* :option:`dft_keywords HF_exchange` : only relevent for the :c:func:`rs_ks_scf` program * :option:`dft_keywords HF_exchange` : only relevent for the :c:func:`rs_ks_scf` program
The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_ints mu_erf` keyword. The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_ints mu_erf` keyword.
The keyword for the type of density used in RS-DFT calculation with a multi-configurational wave function is the :option:`density_for_dft density_for_dft` keyword. The keyword for the type of density used in RS-DFT calculation with a multi-configurational wave function is the :option:`density_for_dft density_for_dft` keyword.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: exchange_functional .. option:: exchange_functional
name of the exchange functional name of the exchange functional
Default: short_range_LDA Default: short_range_LDA
.. option:: correlation_functional .. option:: correlation_functional
name of the correlation functional name of the correlation functional
Default: short_range_LDA Default: short_range_LDA
.. option:: HF_exchange .. option:: HF_exchange
Percentage of HF exchange in the DFT model Percentage of HF exchange in the DFT model
Default: 0. Default: 0.
Providers Providers
--------- ---------
.. c:var:: dft_type .. c:var:: dft_type

View File

@ -1,16 +1,16 @@
.. _dft_utils_in_r: .. _dft_utils_in_r:
.. program:: dft_utils_in_r .. program:: dft_utils_in_r
.. default-role:: option .. default-role:: option
============== ==============
dft_utils_in_r dft_utils_in_r
============== ==============
This module contains most of the fundamental quantities (AOs, MOs or density derivatives) evaluated in real-space representation that are needed for the various DFT modules. This module contains most of the fundamental quantities (AOs, MOs or density derivatives) evaluated in real-space representation that are needed for the various DFT modules.
As these quantities might be used and re-used, the values at each point of the grid are stored (see ``becke_numerical_grid`` for more information on the grid). As these quantities might be used and re-used, the values at each point of the grid are stored (see ``becke_numerical_grid`` for more information on the grid).
The main providers for this module are: The main providers for this module are:
@ -18,12 +18,12 @@ The main providers for this module are:
* `mos_in_r_array`: values of the |MO| basis on the grid point. * `mos_in_r_array`: values of the |MO| basis on the grid point.
* `one_e_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points. * `one_e_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points.
Providers Providers
--------- ---------
.. c:var:: aos_grad_in_r_array .. c:var:: aos_grad_in_r_array
@ -42,7 +42,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_grad_in_r_array_transp .. c:var:: aos_grad_in_r_array_transp
@ -61,7 +61,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_grad_in_r_array_transp_xyz .. c:var:: aos_grad_in_r_array_transp_xyz
@ -80,7 +80,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_in_r_array .. c:var:: aos_in_r_array
@ -96,7 +96,7 @@ Providers
aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point
.. c:var:: aos_in_r_array_transp .. c:var:: aos_in_r_array_transp
@ -112,7 +112,7 @@ Providers
aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point
.. c:var:: aos_lapl_in_r_array .. c:var:: aos_lapl_in_r_array
@ -130,7 +130,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_lapl_in_r_array_transp .. c:var:: aos_lapl_in_r_array_transp
@ -148,7 +148,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: mos_grad_in_r_array .. c:var:: mos_grad_in_r_array
@ -165,7 +165,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: mos_in_r_array .. c:var:: mos_in_r_array
@ -181,7 +181,7 @@ Providers
mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point
.. c:var:: mos_in_r_array_transp .. c:var:: mos_in_r_array_transp
@ -197,7 +197,7 @@ Providers
mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point
.. c:var:: mos_lapl_in_r_array .. c:var:: mos_lapl_in_r_array
@ -214,7 +214,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z k = 1 : x, k= 2, y, k 3, z
.. c:var:: one_e_dm_alpha_at_r .. c:var:: one_e_dm_alpha_at_r
@ -228,7 +228,7 @@ Providers
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
.. c:var:: one_e_dm_alpha_in_r .. c:var:: one_e_dm_alpha_in_r
@ -242,7 +242,7 @@ Providers
.. c:var:: one_e_dm_and_grad_alpha_in_r .. c:var:: one_e_dm_and_grad_alpha_in_r
@ -258,7 +258,7 @@ Providers
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
.. c:var:: one_e_dm_and_grad_beta_in_r .. c:var:: one_e_dm_and_grad_beta_in_r
@ -274,7 +274,7 @@ Providers
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
.. c:var:: one_e_dm_beta_at_r .. c:var:: one_e_dm_beta_at_r
@ -288,7 +288,7 @@ Providers
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
.. c:var:: one_e_dm_beta_in_r .. c:var:: one_e_dm_beta_in_r
@ -302,7 +302,7 @@ Providers
.. c:var:: one_e_grad_2_dm_alpha_at_r .. c:var:: one_e_grad_2_dm_alpha_at_r
@ -318,7 +318,7 @@ Providers
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
.. c:var:: one_e_grad_2_dm_beta_at_r .. c:var:: one_e_grad_2_dm_beta_at_r
@ -334,11 +334,11 @@ Providers
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r .. c:function:: density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r
@ -352,7 +352,7 @@ Subroutines / functions
input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r : dm_b = beta density evaluated at r : aos_array(i) = ao(i) evaluated at r : grad_dm_a(1) = X gradient of the alpha density evaluated in r : grad_dm_a(1) = X gradient of the beta density evaluated in r : grad_aos_array(1) = X gradient of the aos(i) evaluated at r input : r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r : dm_b = beta density evaluated at r : aos_array(i) = ao(i) evaluated at r : grad_dm_a(1) = X gradient of the alpha density evaluated in r : grad_dm_a(1) = X gradient of the beta density evaluated in r : grad_aos_array(1) = X gradient of the aos(i) evaluated at r
.. c:function:: dm_dft_alpha_beta_and_all_aos_at_r .. c:function:: dm_dft_alpha_beta_and_all_aos_at_r
@ -366,7 +366,7 @@ Subroutines / functions
input: r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r output : dm_b = beta density evaluated at r output : aos_array(i) = ao(i) evaluated at r input: r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r output : dm_b = beta density evaluated at r output : aos_array(i) = ao(i) evaluated at r
.. c:function:: dm_dft_alpha_beta_at_r .. c:function:: dm_dft_alpha_beta_at_r

View File

@ -1,15 +1,15 @@
.. _dft_utils_one_e: .. _dft_utils_one_e:
.. program:: dft_utils_one_e .. program:: dft_utils_one_e
.. default-role:: option .. default-role:: option
=============== ===============
dft_utils_one_e dft_utils_one_e
=============== ===============
This module contains all the one-body related quantities needed to perform DFT or RS-DFT calculations. This module contains all the one-body related quantities needed to perform DFT or RS-DFT calculations.
Therefore, it contains most of the properties which depends on the one-body density and density matrix. Therefore, it contains most of the properties which depends on the one-body density and density matrix.
The most important files and variables are: The most important files and variables are:
@ -17,10 +17,10 @@ The most important files and variables are:
* The general *providers* for the x/c potentials in :file:`pot_general.irp.f` * The general *providers* for the x/c potentials in :file:`pot_general.irp.f`
* The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f` * The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f`
These *providers* will be used in many DFT-related programs, such as :file:`ks_scf.irp.f` or :file:`rs_ks_scf.irp.f`. These *providers* will be used in many DFT-related programs, such as :file:`ks_scf.irp.f` or :file:`rs_ks_scf.irp.f`.
It is also needed to compute the effective one-body operator needed in multi-determinant RS-DFT (see plugins by eginer). It is also needed to compute the effective one-body operator needed in multi-determinant RS-DFT (see plugins by eginer).
Some other interesting quantities: Some other interesting quantities:
* The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f` * The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f`
* The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f` * The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f`
@ -28,12 +28,44 @@ Some other interesting quantities:
* LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f` * LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f`
Providers
---------
.. c:var:: ao_effective_one_e_potential
.. code:: text
double precision, allocatable :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable :: ao_effective_one_e_potential_without_kin (ao_num,ao_num,N_states)
File: :file:`effective_pot.irp.f`
ao_effective_one_e_potential(i,j) = :math:`\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle`
Providers
---------
.. c:var:: ao_effective_one_e_potential_without_kin
.. code:: text
double precision, allocatable :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable :: ao_effective_one_e_potential_without_kin (ao_num,ao_num,N_states)
File: :file:`effective_pot.irp.f`
ao_effective_one_e_potential(i,j) = :math:`\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle`
.. c:var:: aos_dsr_vc_alpha_pbe_w .. c:var:: aos_dsr_vc_alpha_pbe_w
@ -57,7 +89,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dsr_vc_beta_pbe_w .. c:var:: aos_dsr_vc_beta_pbe_w
@ -81,7 +113,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dsr_vx_alpha_pbe_w .. c:var:: aos_dsr_vx_alpha_pbe_w
@ -105,7 +137,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dsr_vx_beta_pbe_w .. c:var:: aos_dsr_vx_beta_pbe_w
@ -129,7 +161,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dvc_alpha_pbe_w .. c:var:: aos_dvc_alpha_pbe_w
@ -153,7 +185,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dvc_beta_pbe_w .. c:var:: aos_dvc_beta_pbe_w
@ -177,7 +209,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dvx_alpha_pbe_w .. c:var:: aos_dvx_alpha_pbe_w
@ -201,7 +233,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_dvx_beta_pbe_w .. c:var:: aos_dvx_beta_pbe_w
@ -225,7 +257,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vc_alpha_lda_w .. c:var:: aos_sr_vc_alpha_lda_w
@ -241,7 +273,7 @@ Providers
aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j) aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vc_alpha_pbe_w .. c:var:: aos_sr_vc_alpha_pbe_w
@ -265,7 +297,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vc_beta_lda_w .. c:var:: aos_sr_vc_beta_lda_w
@ -281,7 +313,7 @@ Providers
aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j) aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vc_beta_pbe_w .. c:var:: aos_sr_vc_beta_pbe_w
@ -305,7 +337,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vx_alpha_lda_w .. c:var:: aos_sr_vx_alpha_lda_w
@ -321,7 +353,7 @@ Providers
aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j) aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vx_alpha_pbe_w .. c:var:: aos_sr_vx_alpha_pbe_w
@ -345,7 +377,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vx_beta_lda_w .. c:var:: aos_sr_vx_beta_lda_w
@ -361,7 +393,7 @@ Providers
aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j) aos_sr_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (sr_v^x_alpha(r_j) + sr_v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_sr_vx_beta_pbe_w .. c:var:: aos_sr_vx_beta_pbe_w
@ -385,7 +417,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vc_alpha_lda_w .. c:var:: aos_vc_alpha_lda_w
@ -401,7 +433,7 @@ Providers
aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vc_alpha_pbe_w .. c:var:: aos_vc_alpha_pbe_w
@ -425,7 +457,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vc_beta_lda_w .. c:var:: aos_vc_beta_lda_w
@ -441,7 +473,7 @@ Providers
aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vc_beta_pbe_w .. c:var:: aos_vc_beta_pbe_w
@ -465,7 +497,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vx_alpha_lda_w .. c:var:: aos_vx_alpha_lda_w
@ -481,7 +513,7 @@ Providers
aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vx_alpha_pbe_w .. c:var:: aos_vx_alpha_pbe_w
@ -505,7 +537,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vx_beta_lda_w .. c:var:: aos_vx_beta_lda_w
@ -521,7 +553,7 @@ Providers
aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: aos_vx_beta_pbe_w .. c:var:: aos_vx_beta_pbe_w
@ -545,7 +577,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: effective_one_e_potential .. c:var:: effective_one_e_potential
@ -563,7 +595,7 @@ Providers
shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal
.. c:var:: effective_one_e_potential_without_kin .. c:var:: effective_one_e_potential_without_kin
@ -581,7 +613,7 @@ Providers
shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal
.. c:var:: energy_c .. c:var:: energy_c
@ -595,7 +627,7 @@ Providers
correlation and exchange energies general providers. correlation and exchange energies general providers.
.. c:var:: energy_c_lda .. c:var:: energy_c_lda
@ -609,7 +641,7 @@ Providers
exchange/correlation energy with the short range LDA functional exchange/correlation energy with the short range LDA functional
.. c:var:: energy_c_pbe .. c:var:: energy_c_pbe
@ -623,7 +655,7 @@ Providers
exchange/correlation energy with the short range PBE functional exchange/correlation energy with the short range PBE functional
.. c:var:: energy_sr_c_lda .. c:var:: energy_sr_c_lda
@ -637,7 +669,7 @@ Providers
exchange/correlation energy with the short range LDA functional exchange/correlation energy with the short range LDA functional
.. c:var:: energy_sr_c_pbe .. c:var:: energy_sr_c_pbe
@ -651,7 +683,7 @@ Providers
exchange/correlation energy with the short range PBE functional exchange/correlation energy with the short range PBE functional
.. c:var:: energy_sr_x_lda .. c:var:: energy_sr_x_lda
@ -665,7 +697,7 @@ Providers
exchange/correlation energy with the short range LDA functional exchange/correlation energy with the short range LDA functional
.. c:var:: energy_sr_x_pbe .. c:var:: energy_sr_x_pbe
@ -679,7 +711,7 @@ Providers
exchange/correlation energy with the short range PBE functional exchange/correlation energy with the short range PBE functional
.. c:var:: energy_x .. c:var:: energy_x
@ -693,7 +725,7 @@ Providers
correlation and exchange energies general providers. correlation and exchange energies general providers.
.. c:var:: energy_x_lda .. c:var:: energy_x_lda
@ -707,7 +739,7 @@ Providers
exchange/correlation energy with the short range LDA functional exchange/correlation energy with the short range LDA functional
.. c:var:: energy_x_pbe .. c:var:: energy_x_pbe
@ -721,7 +753,7 @@ Providers
exchange/correlation energy with the short range PBE functional exchange/correlation energy with the short range PBE functional
.. c:var:: gga_sr_type_functionals .. c:var:: gga_sr_type_functionals
@ -736,7 +768,7 @@ Providers
routine that helps in building the x/c potentials on the AO basis for a GGA functional with a short-range interaction routine that helps in building the x/c potentials on the AO basis for a GGA functional with a short-range interaction
.. c:var:: gga_type_functionals .. c:var:: gga_type_functionals
@ -751,7 +783,7 @@ Providers
routine that helps in building the x/c potentials on the AO basis for a GGA functional routine that helps in building the x/c potentials on the AO basis for a GGA functional
.. c:var:: grad_aos_dsr_vc_alpha_pbe_w .. c:var:: grad_aos_dsr_vc_alpha_pbe_w
@ -775,7 +807,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dsr_vc_beta_pbe_w .. c:var:: grad_aos_dsr_vc_beta_pbe_w
@ -799,7 +831,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dsr_vx_alpha_pbe_w .. c:var:: grad_aos_dsr_vx_alpha_pbe_w
@ -823,7 +855,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dsr_vx_beta_pbe_w .. c:var:: grad_aos_dsr_vx_beta_pbe_w
@ -847,7 +879,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dvc_alpha_pbe_w .. c:var:: grad_aos_dvc_alpha_pbe_w
@ -871,7 +903,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dvc_beta_pbe_w .. c:var:: grad_aos_dvc_beta_pbe_w
@ -895,7 +927,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dvx_alpha_pbe_w .. c:var:: grad_aos_dvx_alpha_pbe_w
@ -919,7 +951,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: grad_aos_dvx_beta_pbe_w .. c:var:: grad_aos_dvx_beta_pbe_w
@ -943,7 +975,7 @@ Providers
aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j)
.. c:var:: mu_erf_dft .. c:var:: mu_erf_dft
@ -956,7 +988,7 @@ Providers
range separation parameter used in RS-DFT. It is set to mu_erf in order to be consistent with the two electrons integrals erf range separation parameter used in RS-DFT. It is set to mu_erf in order to be consistent with the two electrons integrals erf
.. c:var:: potential_c_alpha_ao .. c:var:: potential_c_alpha_ao
@ -972,7 +1004,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. c:var:: potential_c_alpha_ao_lda .. c:var:: potential_c_alpha_ao_lda
@ -988,7 +1020,7 @@ Providers
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
.. c:var:: potential_c_alpha_ao_pbe .. c:var:: potential_c_alpha_ao_pbe
@ -1004,7 +1036,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_c_alpha_mo .. c:var:: potential_c_alpha_mo
@ -1020,7 +1052,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: potential_c_beta_ao .. c:var:: potential_c_beta_ao
@ -1036,7 +1068,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. c:var:: potential_c_beta_ao_lda .. c:var:: potential_c_beta_ao_lda
@ -1052,7 +1084,7 @@ Providers
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
.. c:var:: potential_c_beta_ao_pbe .. c:var:: potential_c_beta_ao_pbe
@ -1068,7 +1100,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_c_beta_mo .. c:var:: potential_c_beta_mo
@ -1084,7 +1116,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: potential_sr_c_alpha_ao_lda .. c:var:: potential_sr_c_alpha_ao_lda
@ -1098,7 +1130,7 @@ Providers
short range correlation alpha/beta potentials with LDA functional on the |AO| basis short range correlation alpha/beta potentials with LDA functional on the |AO| basis
.. c:var:: potential_sr_c_alpha_ao_pbe .. c:var:: potential_sr_c_alpha_ao_pbe
@ -1114,7 +1146,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_sr_c_beta_ao_lda .. c:var:: potential_sr_c_beta_ao_lda
@ -1128,7 +1160,7 @@ Providers
short range correlation alpha/beta potentials with LDA functional on the |AO| basis short range correlation alpha/beta potentials with LDA functional on the |AO| basis
.. c:var:: potential_sr_c_beta_ao_pbe .. c:var:: potential_sr_c_beta_ao_pbe
@ -1144,7 +1176,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_sr_x_alpha_ao_lda .. c:var:: potential_sr_x_alpha_ao_lda
@ -1158,7 +1190,7 @@ Providers
short range exchange alpha/beta potentials with LDA functional on the |AO| basis short range exchange alpha/beta potentials with LDA functional on the |AO| basis
.. c:var:: potential_sr_x_alpha_ao_pbe .. c:var:: potential_sr_x_alpha_ao_pbe
@ -1174,7 +1206,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_sr_x_beta_ao_lda .. c:var:: potential_sr_x_beta_ao_lda
@ -1188,7 +1220,7 @@ Providers
short range exchange alpha/beta potentials with LDA functional on the |AO| basis short range exchange alpha/beta potentials with LDA functional on the |AO| basis
.. c:var:: potential_sr_x_beta_ao_pbe .. c:var:: potential_sr_x_beta_ao_pbe
@ -1204,7 +1236,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_x_alpha_ao .. c:var:: potential_x_alpha_ao
@ -1220,7 +1252,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. c:var:: potential_x_alpha_ao_lda .. c:var:: potential_x_alpha_ao_lda
@ -1236,7 +1268,7 @@ Providers
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
.. c:var:: potential_x_alpha_ao_pbe .. c:var:: potential_x_alpha_ao_pbe
@ -1252,7 +1284,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_x_alpha_mo .. c:var:: potential_x_alpha_mo
@ -1268,7 +1300,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: potential_x_beta_ao .. c:var:: potential_x_beta_ao
@ -1284,7 +1316,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. c:var:: potential_x_beta_ao_lda .. c:var:: potential_x_beta_ao_lda
@ -1300,7 +1332,7 @@ Providers
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
.. c:var:: potential_x_beta_ao_pbe .. c:var:: potential_x_beta_ao_pbe
@ -1316,7 +1348,7 @@ Providers
exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis
.. c:var:: potential_x_beta_mo .. c:var:: potential_x_beta_mo
@ -1332,7 +1364,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: psi_dft_energy_h_core .. c:var:: psi_dft_energy_h_core
@ -1347,7 +1379,7 @@ Providers
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
.. c:var:: psi_dft_energy_kinetic .. c:var:: psi_dft_energy_kinetic
@ -1362,7 +1394,7 @@ Providers
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
.. c:var:: psi_dft_energy_nuclear_elec .. c:var:: psi_dft_energy_nuclear_elec
@ -1377,7 +1409,7 @@ Providers
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
.. c:var:: shifting_constant .. c:var:: shifting_constant
@ -1390,7 +1422,7 @@ Providers
shifting_constant = (E_{Hxc} - <\Psi | V_{Hxc} | \Psi>) / N_elec constant to add to the potential in order to obtain the variational energy as the eigenvalue of the effective long-range Hamiltonian (see original paper of Levy PRL 113, 113002 (2014), equation (17) ) shifting_constant = (E_{Hxc} - <\Psi | V_{Hxc} | \Psi>) / N_elec constant to add to the potential in order to obtain the variational energy as the eigenvalue of the effective long-range Hamiltonian (see original paper of Levy PRL 113, 113002 (2014), equation (17) )
.. c:var:: short_range_hartree .. c:var:: short_range_hartree
@ -1408,7 +1440,7 @@ Providers
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}` = :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
.. c:var:: short_range_hartree_operator .. c:var:: short_range_hartree_operator
@ -1426,7 +1458,7 @@ Providers
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}` = :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
.. c:var:: trace_v_h .. c:var:: trace_v_h
@ -1441,7 +1473,7 @@ Providers
Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij} Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij}
.. c:var:: trace_v_hxc .. c:var:: trace_v_hxc
@ -1456,7 +1488,7 @@ Providers
Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij} Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij}
.. c:var:: trace_v_xc .. c:var:: trace_v_xc
@ -1471,11 +1503,11 @@ Providers
Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij} Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij}
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: berf .. c:function:: berf
@ -1489,7 +1521,7 @@ Subroutines / functions
.. c:function:: dberfda .. c:function:: dberfda
@ -1503,7 +1535,7 @@ Subroutines / functions
.. c:function:: dpol .. c:function:: dpol
@ -1517,7 +1549,7 @@ Subroutines / functions
.. c:function:: dpold .. c:function:: dpold
@ -1531,7 +1563,7 @@ Subroutines / functions
.. c:function:: dpoldd .. c:function:: dpoldd
@ -1545,7 +1577,7 @@ Subroutines / functions
.. c:function:: ec_lda .. c:function:: ec_lda
@ -1559,7 +1591,7 @@ Subroutines / functions
.. c:function:: ec_lda_sr .. c:function:: ec_lda_sr
@ -1573,7 +1605,7 @@ Subroutines / functions
.. c:function:: ec_only_lda_sr .. c:function:: ec_only_lda_sr
@ -1587,7 +1619,7 @@ Subroutines / functions
.. c:function:: ec_pbe_only .. c:function:: ec_pbe_only
@ -1619,7 +1651,7 @@ Subroutines / functions
.. c:function:: ec_pbe_sr .. c:function:: ec_pbe_sr
@ -1661,7 +1693,7 @@ Subroutines / functions
vsigmaoo = derivative with respect to the square of the gradient of the psin density vsigmaoo = derivative with respect to the square of the gradient of the psin density
.. c:function:: ecorrlr .. c:function:: ecorrlr
@ -1675,7 +1707,7 @@ Subroutines / functions
.. c:function:: ecpw .. c:function:: ecpw
@ -1689,7 +1721,7 @@ Subroutines / functions
.. c:function:: ex_lda .. c:function:: ex_lda
@ -1703,7 +1735,7 @@ Subroutines / functions
.. c:function:: ex_lda_sr .. c:function:: ex_lda_sr
@ -1717,7 +1749,7 @@ Subroutines / functions
.. c:function:: ex_pbe_sr .. c:function:: ex_pbe_sr
@ -1731,7 +1763,7 @@ Subroutines / functions
mu = range separation parameter rho_a = density alpha rho_b = density beta grd_rho_a_2 = (gradient rho_a)^2 grd_rho_b_2 = (gradient rho_b)^2 grd_rho_a_b = (gradient rho_a).(gradient rho_b) ex = exchange energy density at the density and corresponding gradients of the density vx_rho_a = d ex / d rho_a vx_rho_b = d ex / d rho_b vx_grd_rho_a_2 = d ex / d grd_rho_a_2 vx_grd_rho_b_2 = d ex / d grd_rho_b_2 vx_grd_rho_a_b = d ex / d grd_rho_a_b mu = range separation parameter rho_a = density alpha rho_b = density beta grd_rho_a_2 = (gradient rho_a)^2 grd_rho_b_2 = (gradient rho_b)^2 grd_rho_a_b = (gradient rho_a).(gradient rho_b) ex = exchange energy density at the density and corresponding gradients of the density vx_rho_a = d ex / d rho_a vx_rho_b = d ex / d rho_b vx_grd_rho_a_2 = d ex / d grd_rho_a_2 vx_grd_rho_b_2 = d ex / d grd_rho_b_2 vx_grd_rho_a_b = d ex / d grd_rho_a_b
.. c:function:: ex_pbe_sr_only .. c:function:: ex_pbe_sr_only
@ -1745,7 +1777,7 @@ Subroutines / functions
rho_a = density alpha rho_b = density beta grd_rho_a_2 = (gradient rho_a)^2 grd_rho_b_2 = (gradient rho_b)^2 grd_rho_a_b = (gradient rho_a).(gradient rho_b) ex = exchange energy density at point r rho_a = density alpha rho_b = density beta grd_rho_a_2 = (gradient rho_a)^2 grd_rho_b_2 = (gradient rho_b)^2 grd_rho_a_b = (gradient rho_a).(gradient rho_b) ex = exchange energy density at point r
.. c:function:: g0d .. c:function:: g0d
@ -1759,7 +1791,7 @@ Subroutines / functions
.. c:function:: g0dd .. c:function:: g0dd
@ -1773,7 +1805,7 @@ Subroutines / functions
.. c:function:: g0f .. c:function:: g0f
@ -1787,7 +1819,7 @@ Subroutines / functions
.. c:function:: gpw .. c:function:: gpw
@ -1801,7 +1833,7 @@ Subroutines / functions
.. c:function:: grad_rho_ab_to_grad_rho_oc .. c:function:: grad_rho_ab_to_grad_rho_oc
@ -1815,7 +1847,7 @@ Subroutines / functions
.. c:function:: qrpa .. c:function:: qrpa
@ -1829,7 +1861,7 @@ Subroutines / functions
.. c:function:: qrpad .. c:function:: qrpad
@ -1843,7 +1875,7 @@ Subroutines / functions
.. c:function:: qrpadd .. c:function:: qrpadd
@ -1857,7 +1889,7 @@ Subroutines / functions
.. c:function:: rho_ab_to_rho_oc .. c:function:: rho_ab_to_rho_oc
@ -1871,7 +1903,7 @@ Subroutines / functions
.. c:function:: rho_oc_to_rho_ab .. c:function:: rho_oc_to_rho_ab
@ -1885,7 +1917,7 @@ Subroutines / functions
.. c:function:: v_grad_rho_oc_to_v_grad_rho_ab .. c:function:: v_grad_rho_oc_to_v_grad_rho_ab
@ -1899,7 +1931,7 @@ Subroutines / functions
.. c:function:: v_rho_ab_to_v_rho_oc .. c:function:: v_rho_ab_to_v_rho_oc
@ -1913,7 +1945,7 @@ Subroutines / functions
.. c:function:: v_rho_oc_to_v_rho_ab .. c:function:: v_rho_oc_to_v_rho_ab
@ -1927,7 +1959,7 @@ Subroutines / functions
.. c:function:: vcorrlr .. c:function:: vcorrlr

View File

@ -1,9 +1,9 @@
.. _dressing: .. _dressing:
.. program:: dressing .. program:: dressing
.. default-role:: option .. default-role:: option
========= =========
dress_zmq dress_zmq
========= =========
@ -11,26 +11,26 @@ dress_zmq
Module to facilitate the construction of modules using dressed Module to facilitate the construction of modules using dressed
Hamiltonians, parallelized with |ZeroMQ|. Hamiltonians, parallelized with |ZeroMQ|.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: thresh_dressed_ci .. option:: thresh_dressed_ci
Threshold on the convergence of the dressed |CI| energy Threshold on the convergence of the dressed |CI| energy
Default: 1.e-5 Default: 1.e-5
.. option:: n_it_max_dressed_ci .. option:: n_it_max_dressed_ci
Maximum number of dressed |CI| iterations Maximum number of dressed |CI| iterations
Default: 10 Default: 10
.. option:: dress_relative_error .. option:: dress_relative_error
Stop stochastic dressing when the relative error is smaller than :option:`perturbation PT2_relative_error` Stop stochastic dressing when the relative error is smaller than :option:`perturbation PT2_relative_error`
Default: 0.001 Default: 0.001

View File

@ -1,9 +1,9 @@
.. _electrons: .. _electrons:
.. program:: electrons .. program:: electrons
.. default-role:: option .. default-role:: option
========= =========
electrons electrons
========= =========
@ -21,32 +21,32 @@ Assumptions
* `elec_alpha_num` >= `elec_beta_num` * `elec_alpha_num` >= `elec_beta_num`
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: elec_alpha_num .. option:: elec_alpha_num
Numbers of electrons alpha ("up") Numbers of electrons alpha ("up")
.. option:: elec_beta_num .. option:: elec_beta_num
Numbers of electrons beta ("down") Numbers of electrons beta ("down")
.. option:: elec_num .. option:: elec_num
Numbers total of electrons (alpha + beta) Numbers total of electrons (alpha + beta)
Default: = electrons.elec_alpha_num + electrons.elec_beta_num Default: = electrons.elec_alpha_num + electrons.elec_beta_num
Providers Providers
--------- ---------
.. c:var:: elec_num .. c:var:: elec_num
@ -60,7 +60,7 @@ Providers
Numbers of alpha ("up") , beta ("down") and total electrons Numbers of alpha ("up") , beta ("down") and total electrons
.. c:var:: elec_num_tab .. c:var:: elec_num_tab

View File

@ -1,9 +1,9 @@
.. _ezfio_files: .. _ezfio_files:
.. program:: ezfio_files .. program:: ezfio_files
.. default-role:: option .. default-role:: option
=========== ===========
ezfio_files ezfio_files
=========== ===========
@ -12,12 +12,12 @@ This modules essentially contains the name of the |EZFIO| directory in the
:c:data:`ezfio_filename` variable. This is read as the first argument of the :c:data:`ezfio_filename` variable. This is read as the first argument of the
command-line, or as the :envvar:`QP_INPUT` environment variable. command-line, or as the :envvar:`QP_INPUT` environment variable.
Providers Providers
--------- ---------
.. c:var:: ezfio_filename .. c:var:: ezfio_filename
@ -30,7 +30,7 @@ Providers
Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment variable if it is set, or as the 1st argument of the command line. Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment variable if it is set, or as the 1st argument of the command line.
.. c:var:: ezfio_work_dir .. c:var:: ezfio_work_dir
@ -43,7 +43,7 @@ Providers
EZFIO/work/ EZFIO/work/
.. c:var:: output_cpu_time_0 .. c:var:: output_cpu_time_0
@ -57,7 +57,7 @@ Providers
Initial CPU and wall times when printing in the output files Initial CPU and wall times when printing in the output files
.. c:var:: output_wall_time_0 .. c:var:: output_wall_time_0
@ -71,11 +71,11 @@ Providers
Initial CPU and wall times when printing in the output files Initial CPU and wall times when printing in the output files
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: getunitandopen .. c:function:: getunitandopen
@ -93,7 +93,7 @@ Subroutines / functions
.. c:function:: write_bool .. c:function:: write_bool
@ -107,7 +107,7 @@ Subroutines / functions
Write an logical value in output Write an logical value in output
.. c:function:: write_double .. c:function:: write_double
@ -121,7 +121,7 @@ Subroutines / functions
Write a double precision value in output Write a double precision value in output
.. c:function:: write_int .. c:function:: write_int
@ -135,7 +135,7 @@ Subroutines / functions
Write an integer value in output Write an integer value in output
.. c:function:: write_time .. c:function:: write_time

View File

@ -1,9 +1,9 @@
.. _fci: .. _fci:
.. program:: fci .. program:: fci
.. default-role:: option .. default-role:: option
=== ===
fci fci
=== ===
@ -20,25 +20,25 @@ The user point of view
database. database.
The main keywords/options for this module are: The main keywords/options for this module are:
* :option:`determinants n_det_max` : maximum number of Slater determinants in the CIPSI wave function. The :command:`fci` program will stop when the size of the CIPSI wave function will exceed :option:`determinants n_det_max`. * :option:`determinants n_det_max` : maximum number of Slater determinants in the CIPSI wave function. The :command:`fci` program will stop when the size of the CIPSI wave function will exceed :option:`determinants n_det_max`.
* :option:`perturbation pt2_max` : absolute value of the |PT2| to stop the CIPSI calculation. Once the |PT2| :math:`<` :option:`perturbation pt2_max`, the CIPSI calculation stops. * :option:`perturbation pt2_max` : absolute value of the |PT2| to stop the CIPSI calculation. Once the |PT2| :math:`<` :option:`perturbation pt2_max`, the CIPSI calculation stops.
* :option:`determinants n_states` : number of states to consider in the CIPSI calculation. * :option:`determinants n_states` : number of states to consider in the CIPSI calculation.
* :option:`determinants read_wf` : if False, starts with a ROHF-like determinant, if True, starts with the current wave function(s) stored in the |EZFIO| folder. * :option:`determinants read_wf` : if False, starts with a ROHF-like determinant, if True, starts with the current wave function(s) stored in the |EZFIO| folder.
.. note:: .. note::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd` For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
wave functions as a guess. wave functions as a guess.
* :option:`determinants s2_eig` : if True, systematically add all the determinants needed to have a pure value of :math:`S^2`. Also, if True, it tracks only the states having the good :option:`determinants expected_s2`. * :option:`determinants s2_eig` : if True, systematically add all the determinants needed to have a pure value of :math:`S^2`. Also, if True, it tracks only the states having the good :option:`determinants expected_s2`.
.. note:: .. note::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd` For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
wave functions as a guess. wave functions as a guess.
* :option:`determinants expected_s2` : expected value of :math:`S^2` for the desired spin multiplicity. * :option:`determinants expected_s2` : expected value of :math:`S^2` for the desired spin multiplicity.
@ -47,33 +47,39 @@ The main keywords/options for this module are:
The programmer point of view The programmer point of view
---------------------------- ----------------------------
This module have been created with the :ref:`cipsi` module. This module have been created with the :ref:`cipsi` module.
.. seealso:: .. seealso::
The documentation of the :ref:`cipsi` module. The documentation of the :ref:`cipsi` module.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: energy .. option:: energy
Calculated Selected |FCI| energy Calculated Selected |FCI| energy
.. option:: energy_pt2 .. option:: energy_pt2
Calculated |FCI| energy + |PT2| Calculated |FCI| energy + |PT2|
Providers Programs
--------- --------
* :ref:`fci`
* :ref:`pt2`
Providers
---------
.. c:var:: nthreads_pt2 .. c:var:: nthreads_pt2
@ -86,83 +92,11 @@ Providers
Number of threads for Davidson Number of threads for Davidson
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: fci
.. code:: text
subroutine fci
File: :file:`fci.irp.f`
Selected Full Configuration Interaction with stochastic selection and PT2 .
This program performs a CIPSI-like selected CI using a stochastic scheme for both
the selection of the important Slater determinants and the computation of the PT2 correction.
This CIPSI-like algorithm will be performed for the "n_states" lowest states of the variational space (see :option:`determinants n_det_max`)
The fci program will stop when reaching at least one the two following conditions:
* number of Slater determinant > "n_det_max" (see :option:`determinants n_det_max`)
* |PT2| < "pt2_max" (see :option:`perturbation pt2_max`)
The following other options can be of interest:
If "read_wf" = False, it starts with a ROHF-like Slater determinant as a guess wave function.
If "read_wf" = True , it starts with the wave function(s) stored in the EZFIO folder as guess wave function(s).
(see :option:`determinants read_wf`)
If "s2_eig" = True, it will systematically add all necessary Slater determinants in order
to have a pure spin wave function with an :math:`S^2` value corresponding to "expected_s2".
(see :option:`determinants s2_eig` and :option:`determinants expected_s2`)
For excited states calculations, it is recommended to start with a :c:func:`cis` or :c:func:`cisd` guess wave functions
for the "n_states", and to set "s2_eig" = True.
.. c:function:: pt2
.. code:: text
subroutine pt2
File: :file:`pt2.irp.f`
Second order perturbative correction to the wave function contained in the EZFIO directory.
This programs runs the stochastic PT2 correction on all "n_states" wave function stored in the EZFIO folder (see :option:`determinant n_states`).
The option for the PT2 correction are the "pt2_relative_error" which is the relative stochastic
error on the PT2 to reach before stopping the stochastic sampling. (see :option:`perturbation pt2_relative_error`)
.. c:function:: save_energy .. c:function:: save_energy

View File

@ -1,9 +1,9 @@
.. _generators_cas: .. _generators_cas:
.. program:: generators_cas .. program:: generators_cas
.. default-role:: option .. default-role:: option
============== ==============
generators_cas generators_cas
============== ==============
@ -13,7 +13,7 @@ The |MOs| belonging to the |CAS| are those which were set as active with
the :ref:`qp_set_mo_class` command. the :ref:`qp_set_mo_class` command.
This module is intended to be included in the :file:`NEED` file to define This module is intended to be included in the :file:`NEED` file to define
the generators as the |CAS| determinants, which can be useful to define post-CAS approaches (see cassd module for instance). the generators as the |CAS| determinants, which can be useful to define post-CAS approaches (see cassd module for instance).

View File

@ -1,9 +1,9 @@
.. _generators_full: .. _generators_full:
.. program:: generators_full .. program:: generators_full
.. default-role:: option .. default-role:: option
=============== ===============
generators_full generators_full
=============== ===============
@ -13,12 +13,12 @@ variational space.
This module is intended to be included in the :file:`NEED` file to define This module is intended to be included in the :file:`NEED` file to define
a full set of generators. a full set of generators.
Providers Providers
--------- ---------
.. c:var:: degree_max_generators .. c:var:: degree_max_generators
@ -31,7 +31,34 @@ Providers
Max degree of excitation (respect to HF) of the generators Max degree of excitation (respect to HF) of the generators
.. c:var:: n_det_generators
.. code:: text
integer :: n_det_generators
File: :file:`generators.irp.f`
For Single reference wave functions, the number of generators is 1 : the Hartree-Fock determinant
.. c:var:: psi_coef_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_coef_sorted_gen .. c:var:: psi_coef_sorted_gen
@ -46,7 +73,21 @@ Providers
For Single reference wave functions, the generator is the Hartree-Fock determinant For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_sorted_gen .. c:var:: psi_det_sorted_gen
@ -61,7 +102,7 @@ Providers
For Single reference wave functions, the generator is the Hartree-Fock determinant For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_sorted_gen_order .. c:var:: psi_det_sorted_gen_order
@ -76,3 +117,29 @@ Providers
For Single reference wave functions, the generator is the Hartree-Fock determinant For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: select_max
.. code:: text
double precision, allocatable :: select_max (size_select_max)
File: :file:`generators.irp.f`
Memo to skip useless selectors
.. c:var:: size_select_max
.. code:: text
integer :: size_select_max
File: :file:`generators.irp.f`
Size of the select_max array

View File

@ -1,9 +1,9 @@
.. _hartree_fock: .. _hartree_fock:
.. program:: hartree_fock .. program:: hartree_fock
.. default-role:: option .. default-role:: option
============ ============
hartree_fock hartree_fock
============ ============
@ -12,7 +12,7 @@ hartree_fock
The Hartree-Fock module performs *Restricted* Hartree-Fock calculations (the The Hartree-Fock module performs *Restricted* Hartree-Fock calculations (the
spatial part of the |MOs| is common for alpha and beta spinorbitals). spatial part of the |MOs| is common for alpha and beta spinorbitals).
The Hartree-Fock in an SCF and therefore is based on the ``scf_utils`` structure. The Hartree-Fock in an SCF and therefore is based on the ``scf_utils`` structure.
It performs the following actions: It performs the following actions:
#. Compute/Read all the one- and two-electron integrals, and store them in memory #. Compute/Read all the one- and two-electron integrals, and store them in memory
@ -21,13 +21,13 @@ It performs the following actions:
will read them as initial guess. Otherwise, it will create a guess. will read them as initial guess. Otherwise, it will create a guess.
#. Perform the |SCF| iterations #. Perform the |SCF| iterations
The definition of the Fock matrix is in :file:`hartree_fock fock_matrix_hf.irp.f` The definition of the Fock matrix is in :file:`hartree_fock fock_matrix_hf.irp.f`
For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options. For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options.
The main are: The main are:
# :option:`scf_utils thresh_scf` # :option:`scf_utils thresh_scf`
# :option:`scf_utils level_shift` # :option:`scf_utils level_shift`
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
crashes for any unexpected reason, the calculation can be restarted by running again crashes for any unexpected reason, the calculation can be restarted by running again
@ -47,21 +47,26 @@ To start a calculation from scratch, the simplest way is to remove the
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: energy .. option:: energy
Energy HF Energy HF
Providers Programs
--------- --------
* :ref:`scf`
Providers
---------
.. c:var:: ao_two_e_integral_alpha .. c:var:: ao_two_e_integral_alpha
@ -75,7 +80,7 @@ Providers
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
.. c:var:: ao_two_e_integral_beta .. c:var:: ao_two_e_integral_beta
@ -89,7 +94,7 @@ Providers
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
.. c:var:: extra_e_contrib_density .. c:var:: extra_e_contrib_density
@ -106,7 +111,7 @@ Providers
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential
.. c:var:: fock_matrix_ao_alpha .. c:var:: fock_matrix_ao_alpha
@ -120,7 +125,7 @@ Providers
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
.. c:var:: fock_matrix_ao_beta .. c:var:: fock_matrix_ao_beta
@ -134,7 +139,7 @@ Providers
Alpha Fock matrix in AO basis set Alpha Fock matrix in AO basis set
.. c:var:: hf_energy .. c:var:: hf_energy
@ -149,7 +154,7 @@ Providers
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components. Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
.. c:var:: hf_one_electron_energy .. c:var:: hf_one_electron_energy
@ -164,7 +169,7 @@ Providers
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components. Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
.. c:var:: hf_two_electron_energy .. c:var:: hf_two_electron_energy
@ -179,11 +184,11 @@ Providers
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components. Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: create_guess .. c:function:: create_guess
@ -197,7 +202,7 @@ Subroutines / functions
Create a MO guess if no MOs are present in the EZFIO directory Create a MO guess if no MOs are present in the EZFIO directory
.. c:function:: run .. c:function:: run
@ -211,23 +216,3 @@ Subroutines / functions
Run SCF calculation Run SCF calculation
.. c:function:: scf
.. code:: text
subroutine scf
File: :file:`scf.irp.f`
Produce `Hartree_Fock` |MOs|
output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ
output: hartree_fock.energy
optional: mo_basis.mo_coef

View File

@ -1,46 +1,46 @@
.. _iterations: .. _iterations:
.. program:: iterations .. program:: iterations
.. default-role:: option .. default-role:: option
========== ==========
iterations iterations
========== ==========
Module which saves the computed energies for an extrapolation to Module which saves the computed energies for an extrapolation to
the |FCI| limit. the |FCI| limit.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: n_iter .. option:: n_iter
Number of saved iterations Number of saved iterations
Default: 1 Default: 1
.. option:: n_det_iterations .. option:: n_det_iterations
Number of determinants at each iteration Number of determinants at each iteration
.. option:: energy_iterations .. option:: energy_iterations
The variational energy at each iteration The variational energy at each iteration
.. option:: pt2_iterations .. option:: pt2_iterations
The |PT2| correction at each iteration The |PT2| correction at each iteration
Providers Providers
--------- ---------
.. c:var:: extrapolated_energy .. c:var:: extrapolated_energy
@ -53,7 +53,7 @@ Providers
Extrapolated energy, using E_var = f(PT2) where PT2=0 Extrapolated energy, using E_var = f(PT2) where PT2=0
.. c:var:: n_iter .. c:var:: n_iter
@ -66,11 +66,11 @@ Providers
number of iterations number of iterations
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: print_extrapolated_energy .. c:function:: print_extrapolated_energy
@ -84,7 +84,7 @@ Subroutines / functions
Print the extrapolated energy in the output Print the extrapolated energy in the output
.. c:function:: print_summary .. c:function:: print_summary
@ -98,7 +98,7 @@ Subroutines / functions
Print the extrapolated energy in the output Print the extrapolated energy in the output
.. c:function:: save_iterations .. c:function:: save_iterations

View File

@ -1,9 +1,9 @@
.. _kohn_sham: .. _kohn_sham:
.. program:: kohn_sham .. program:: kohn_sham
.. default-role:: option .. default-role:: option
========= =========
kohn_sham kohn_sham
========= =========
@ -12,7 +12,7 @@ kohn_sham
The Kohn-Sham module performs *Restricted* Kohn-Sham calculations (the The Kohn-Sham module performs *Restricted* Kohn-Sham calculations (the
spatial part of the |MOs| is common for alpha and beta spinorbitals). spatial part of the |MOs| is common for alpha and beta spinorbitals).
The Kohn-Sham in an SCF and therefore is based on the ``scf_utils`` structure. The Kohn-Sham in an SCF and therefore is based on the ``scf_utils`` structure.
It performs the following actions: It performs the following actions:
#. Compute/Read all the one- and two-electron integrals, and store them in memory #. Compute/Read all the one- and two-electron integrals, and store them in memory
@ -20,12 +20,12 @@ It performs the following actions:
will read them as initial guess. Otherwise, it will create a guess. will read them as initial guess. Otherwise, it will create a guess.
#. Perform the |SCF| iterations #. Perform the |SCF| iterations
The definition of the Fock matrix is in :file:`kohn_sham fock_matrix_ks.irp.f` The definition of the Fock matrix is in :file:`kohn_sham fock_matrix_ks.irp.f`
For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options. For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options.
The main are: The main are:
#. :option:`scf_utils thresh_scf` #. :option:`scf_utils thresh_scf`
#. :option:`scf_utils level_shift` #. :option:`scf_utils level_shift`
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
crashes for any unexpected reason, the calculation can be restarted by running again crashes for any unexpected reason, the calculation can be restarted by running again
@ -45,111 +45,17 @@ To start a calculation from scratch, the simplest way is to remove the
Providers Programs
--------- --------
* :ref:`ks_scf`
.. c:var:: ao_potential_alpha_xc
Providers
.. code:: text ---------
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: ao_potential_beta_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: e_correlation_dft
.. code:: text
double precision :: e_correlation_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: e_exchange_dft
.. code:: text
double precision :: e_exchange_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: fock_matrix_alpha_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Mono electronic an Coulomb matrix in ao basis set
.. c:var:: fock_matrix_beta_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Mono electronic an Coulomb matrix in ao basis set
.. c:var:: fock_matrix_energy
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: ks_energy .. c:var:: ks_energy
@ -166,83 +72,18 @@ Providers
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:var:: one_e_energy .. c:function:: ks_cf
.. code:: text .. code:: text
double precision :: ks_energy subroutine ks_cf
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: trace_potential_xc
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: two_e_energy
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional
.. code:: text
subroutine check_coherence_functional
File: :file:`ks_scf.irp.f`
.. c:function:: srs_ks_cf
.. code:: text
subroutine srs_ks_cf
File: :file:`ks_scf.irp.f` File: :file:`ks_scf.irp.f`

View File

@ -1,19 +1,19 @@
.. _kohn_sham_rs: .. _kohn_sham_rs:
.. program:: kohn_sham_rs .. program:: kohn_sham_rs
.. default-role:: option .. default-role:: option
============ ============
kohn_sham_rs kohn_sham_rs
============ ============
The Range-separated Kohn-Sham module performs *Restricted* Kohn-Sham calculations (the The Range-separated Kohn-Sham module performs *Restricted* Kohn-Sham calculations (the
spatial part of the |MOs| is common for alpha and beta spinorbitals) where the coulomb interaction is partially treated using exact exchange. spatial part of the |MOs| is common for alpha and beta spinorbitals) where the coulomb interaction is partially treated using exact exchange.
The splitting of the interaction between long- and short-range is determined by the range-separation parameter :option:`ao_two_e_erf_ints mu_erf`. The long-range part of the interaction is explicitly treated with exact exchange, and the short-range part of the interaction is treated with appropriate DFT functionals. The splitting of the interaction between long- and short-range is determined by the range-separation parameter :option:`ao_two_e_erf_ints mu_erf`. The long-range part of the interaction is explicitly treated with exact exchange, and the short-range part of the interaction is treated with appropriate DFT functionals.
The Range-separated Kohn-Sham in an SCF and therefore is based on the ``scf_utils`` structure. The Range-separated Kohn-Sham in an SCF and therefore is based on the ``scf_utils`` structure.
It performs the following actions: It performs the following actions:
#. Compute/Read all the one- and two-electron integrals, and store them in memory #. Compute/Read all the one- and two-electron integrals, and store them in memory
@ -21,11 +21,11 @@ It performs the following actions:
will read them as initial guess. Otherwise, it will create a guess. will read them as initial guess. Otherwise, it will create a guess.
#. Perform the |SCF| iterations #. Perform the |SCF| iterations
The definition of the Fock matrix is in :file:`kohn_sham_rs fock_matrix_rs_ks.irp.f` The definition of the Fock matrix is in :file:`kohn_sham_rs fock_matrix_rs_ks.irp.f`
For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options. For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options.
The main are: The main are:
# :option:`scf_utils thresh_scf` # :option:`scf_utils thresh_scf`
# :option:`scf_utils level_shift` # :option:`scf_utils level_shift`
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
@ -44,21 +44,142 @@ To start a calculation from scratch, the simplest way is to remove the
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: energy .. option:: energy
Energy range separated hybrid Energy range separated hybrid
Programs
--------
* :ref:`rs_ks_scf`
Providers
---------
.. c:var:: ao_potential_alpha_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
Providers .. c:var:: ao_potential_beta_xc
---------
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: e_correlation_dft
.. code:: text
double precision :: e_correlation_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: e_exchange_dft
.. code:: text
double precision :: e_exchange_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: fock_matrix_alpha_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_rs_ks.irp.f`
Mono electronic an Coulomb matrix in AO basis set
.. c:var:: fock_matrix_beta_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_rs_ks.irp.f`
Mono electronic an Coulomb matrix in AO basis set
.. c:var:: fock_matrix_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: one_e_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: rs_ks_energy .. c:var:: rs_ks_energy
@ -75,21 +196,55 @@ Providers
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: trace_potential_xc
Subroutines / functions
-----------------------
.. c:function:: rs_ks_scf
.. code:: text .. code:: text
subroutine rs_ks_scf double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: two_e_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional
.. code:: text
subroutine check_coherence_functional
File: :file:`rs_ks_scf.irp.f` File: :file:`rs_ks_scf.irp.f`
Produce `Range_separated_Kohn_Sham` MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy optional: mo_basis.mo_coef

View File

@ -1,14 +1,14 @@
.. _mo_basis: .. _mo_basis:
.. program:: mo_basis .. program:: mo_basis
.. default-role:: option .. default-role:: option
======== ========
mo_basis mo_basis
======== ========
Molecular orbitals are expressed as Molecular orbitals are expressed as
.. math:: .. math::
@ -28,46 +28,46 @@ this is done with the script named :file:`save_current_mos.sh` in the
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: mo_num .. option:: mo_num
Total number of |MOs| Total number of |MOs|
.. option:: mo_coef .. option:: mo_coef
Coefficient of the i-th |AO| on the j-th |MO| Coefficient of the i-th |AO| on the j-th |MO|
.. option:: mo_label .. option:: mo_label
Label characterizing the MOS (Local, Canonical, Natural, *etc*) Label characterizing the MOS (Local, Canonical, Natural, *etc*)
.. option:: mo_occ .. option:: mo_occ
|MO| occupation numbers |MO| occupation numbers
.. option:: mo_class .. option:: mo_class
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class` [ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
.. option:: ao_md5 .. option:: ao_md5
MD5 checksum characterizing the |AO| basis set. MD5 checksum characterizing the |AO| basis set.
Providers Providers
--------- ---------
.. c:var:: mo_coef .. c:var:: mo_coef
@ -84,7 +84,7 @@ Providers
mo_label : Label characterizing the MOS (local, canonical, natural, etc) mo_label : Label characterizing the MOS (local, canonical, natural, etc)
.. c:var:: mo_coef_begin_iteration .. c:var:: mo_coef_begin_iteration
@ -99,7 +99,7 @@ Providers
Usefull to track some orbitals Usefull to track some orbitals
.. c:var:: mo_coef_in_ao_ortho_basis .. c:var:: mo_coef_in_ao_ortho_basis
@ -114,7 +114,7 @@ Providers
:math:`C^{-1}.C_{mo}` :math:`C^{-1}.C_{mo}`
.. c:var:: mo_coef_transp .. c:var:: mo_coef_transp
@ -127,7 +127,7 @@ Providers
|MO| coefficients on |AO| basis set |MO| coefficients on |AO| basis set
.. c:var:: mo_label .. c:var:: mo_label
@ -144,7 +144,7 @@ Providers
mo_label : Label characterizing the |MOs| (local, canonical, natural, etc) mo_label : Label characterizing the |MOs| (local, canonical, natural, etc)
.. c:var:: mo_num .. c:var:: mo_num
@ -157,7 +157,7 @@ Providers
Number of MOs Number of MOs
.. c:var:: mo_occ .. c:var:: mo_occ
@ -170,11 +170,11 @@ Providers
|MO| occupation numbers |MO| occupation numbers
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: ao_ortho_cano_to_ao .. c:function:: ao_ortho_cano_to_ao
@ -190,7 +190,7 @@ Subroutines / functions
:math:`C^{-1}.A_{ao}.C^{\dagger-1}` :math:`C^{-1}.A_{ao}.C^{\dagger-1}`
.. c:function:: ao_to_mo .. c:function:: ao_to_mo
@ -206,7 +206,7 @@ Subroutines / functions
:math:`C^\dagger.A_{ao}.C` :math:`C^\dagger.A_{ao}.C`
.. c:function:: give_all_mos_and_grad_and_lapl_at_r .. c:function:: give_all_mos_and_grad_and_lapl_at_r
@ -220,7 +220,7 @@ Subroutines / functions
.. c:function:: give_all_mos_and_grad_at_r .. c:function:: give_all_mos_and_grad_at_r
@ -234,7 +234,7 @@ Subroutines / functions
.. c:function:: give_all_mos_at_r .. c:function:: give_all_mos_at_r
@ -248,7 +248,7 @@ Subroutines / functions
.. c:function:: initialize_mo_coef_begin_iteration .. c:function:: initialize_mo_coef_begin_iteration
@ -264,7 +264,7 @@ Subroutines / functions
Initialize :c:data:`mo_coef_begin_iteration` to the current :c:data:`mo_coef` Initialize :c:data:`mo_coef_begin_iteration` to the current :c:data:`mo_coef`
.. c:function:: mix_mo_jk .. c:function:: mix_mo_jk
@ -284,7 +284,7 @@ Subroutines / functions
by convention, the '+' |MO| is in the lowest index (min(j,k)) by convention, the '-' |MO| is in the highest index (max(j,k)) by convention, the '+' |MO| is in the lowest index (min(j,k)) by convention, the '-' |MO| is in the highest index (max(j,k))
.. c:function:: mo_as_eigvectors_of_mo_matrix .. c:function:: mo_as_eigvectors_of_mo_matrix
@ -298,7 +298,7 @@ Subroutines / functions
.. c:function:: mo_as_svd_vectors_of_mo_matrix .. c:function:: mo_as_svd_vectors_of_mo_matrix
@ -312,7 +312,7 @@ Subroutines / functions
.. c:function:: mo_as_svd_vectors_of_mo_matrix_eig .. c:function:: mo_as_svd_vectors_of_mo_matrix_eig
@ -326,7 +326,7 @@ Subroutines / functions
.. c:function:: reorder_core_orb .. c:function:: reorder_core_orb
@ -340,7 +340,7 @@ Subroutines / functions
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` 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`
.. c:function:: save_mos .. c:function:: save_mos
@ -354,7 +354,7 @@ Subroutines / functions
.. c:function:: save_mos_truncated .. c:function:: save_mos_truncated

View File

@ -1,21 +1,21 @@
.. _mo_guess: .. _mo_guess:
.. program:: mo_guess .. program:: mo_guess
.. default-role:: option .. default-role:: option
======== ========
mo_guess mo_guess
======== ========
Guess for |MOs|. Guess for |MOs|.
Providers Providers
--------- ---------
.. c:var:: ao_ortho_canonical_nucl_elec_integrals .. c:var:: ao_ortho_canonical_nucl_elec_integrals
@ -28,7 +28,7 @@ Providers
.. c:var:: ao_ortho_lowdin_coef .. c:var:: ao_ortho_lowdin_coef
@ -41,7 +41,7 @@ Providers
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_lowdin_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_lowdin orbital matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_lowdin_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_lowdin orbital
.. c:var:: ao_ortho_lowdin_nucl_elec_integrals .. c:var:: ao_ortho_lowdin_nucl_elec_integrals
@ -54,7 +54,7 @@ Providers
.. c:var:: ao_ortho_lowdin_overlap .. c:var:: ao_ortho_lowdin_overlap
@ -67,11 +67,11 @@ Providers
overlap matrix of the ao_ortho_lowdin supposed to be the Identity overlap matrix of the ao_ortho_lowdin supposed to be the Identity
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: hcore_guess .. c:function:: hcore_guess

View File

@ -1,76 +1,76 @@
.. _mo_one_e_ints: .. _mo_one_e_ints:
.. program:: mo_one_e_ints .. program:: mo_one_e_ints
.. default-role:: option .. default-role:: option
================== ==================
mo_one_e_integrals mo_one_e_integrals
================== ==================
All the one-electron integrals in |MO| basis are defined here. All the one-electron integrals in |MO| basis are defined here.
The most important providers for usual quantum-chemistry calculation are: The most important providers for usual quantum-chemistry calculation are:
* `mo_kinetic_integrals` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`) * `mo_kinetic_integrals` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`)
* `mo_integrals_n_e` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`) * `mo_integrals_n_e` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`)
* `mo_one_e_integrals` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`) * `mo_one_e_integrals` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`)
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`. Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: mo_integrals_e_n .. option:: mo_integrals_e_n
Nucleus-electron integrals in |MO| basis set Nucleus-electron integrals in |MO| basis set
.. option:: io_mo_integrals_e_n .. option:: io_mo_integrals_e_n
Read/Write |MO| electron-nucleus attraction integrals from/to disk [ Write | Read | None ] Read/Write |MO| electron-nucleus attraction integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: mo_integrals_kinetic .. option:: mo_integrals_kinetic
Kinetic energy integrals in |MO| basis set Kinetic energy integrals in |MO| basis set
.. option:: io_mo_integrals_kinetic .. option:: io_mo_integrals_kinetic
Read/Write |MO| one-electron kinetic integrals from/to disk [ Write | Read | None ] Read/Write |MO| one-electron kinetic integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: mo_integrals_pseudo .. option:: mo_integrals_pseudo
Pseudopotential integrals in |MO| basis set Pseudopotential integrals in |MO| basis set
.. option:: io_mo_integrals_pseudo .. option:: io_mo_integrals_pseudo
Read/Write |MO| pseudopotential integrals from/to disk [ Write | Read | None ] Read/Write |MO| pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: mo_one_e_integrals .. option:: mo_one_e_integrals
One-electron integrals in |MO| basis set One-electron integrals in |MO| basis set
.. option:: io_mo_one_e_integrals .. option:: io_mo_one_e_integrals
Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ] Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
Default: None Default: None
Providers Providers
--------- ---------
.. c:var:: mo_dipole_x .. c:var:: mo_dipole_x
@ -85,7 +85,7 @@ Providers
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
.. c:var:: mo_dipole_y .. c:var:: mo_dipole_y
@ -100,7 +100,7 @@ Providers
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
.. c:var:: mo_dipole_z .. c:var:: mo_dipole_z
@ -115,7 +115,7 @@ Providers
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
.. c:var:: mo_integrals_n_e .. c:var:: mo_integrals_n_e
@ -128,7 +128,7 @@ Providers
Nucleus-electron interaction on the |MO| basis Nucleus-electron interaction on the |MO| basis
.. c:var:: mo_integrals_n_e_per_atom .. c:var:: mo_integrals_n_e_per_atom
@ -141,7 +141,7 @@ Providers
mo_integrals_n_e_per_atom(i,j,k) = :math:`\langle \phi_i| -\frac{1}{|r-R_k|} | \phi_j \rangle` . where R_k is the coordinate of the k-th nucleus. mo_integrals_n_e_per_atom(i,j,k) = :math:`\langle \phi_i| -\frac{1}{|r-R_k|} | \phi_j \rangle` . where R_k is the coordinate of the k-th nucleus.
.. c:var:: mo_kinetic_integrals .. c:var:: mo_kinetic_integrals
@ -154,7 +154,7 @@ Providers
Kinetic energy integrals in the MO basis Kinetic energy integrals in the MO basis
.. c:var:: mo_one_e_integrals .. c:var:: mo_one_e_integrals
@ -167,7 +167,7 @@ Providers
array of the mono electronic hamiltonian on the MOs basis : sum of the kinetic and nuclear electronic potential (and pseudo potential if needed) array of the mono electronic hamiltonian on the MOs basis : sum of the kinetic and nuclear electronic potential (and pseudo potential if needed)
.. c:var:: mo_overlap .. c:var:: mo_overlap
@ -180,7 +180,7 @@ Providers
Provider to check that the MOs are indeed orthonormal. Provider to check that the MOs are indeed orthonormal.
.. c:var:: mo_pseudo_integrals .. c:var:: mo_pseudo_integrals
@ -193,7 +193,7 @@ Providers
Pseudopotential integrals in |MO| basis Pseudopotential integrals in |MO| basis
.. c:var:: mo_spread_x .. c:var:: mo_spread_x
@ -208,7 +208,7 @@ Providers
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
.. c:var:: mo_spread_y .. c:var:: mo_spread_y
@ -223,7 +223,7 @@ Providers
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
.. c:var:: mo_spread_z .. c:var:: mo_spread_z
@ -238,7 +238,7 @@ Providers
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
.. c:var:: s_mo_coef .. c:var:: s_mo_coef
@ -251,11 +251,11 @@ Providers
Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix. Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix.
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: mo_to_ao .. c:function:: mo_to_ao
@ -271,7 +271,7 @@ Subroutines / functions
:math:`(S.C).A_{mo}.(S.C)^\dagger` :math:`(S.C).A_{mo}.(S.C)^\dagger`
.. c:function:: mo_to_ao_no_overlap .. c:function:: mo_to_ao_no_overlap
@ -285,7 +285,7 @@ Subroutines / functions
:math:`C.A_{mo}.C^\dagger` :math:`C.A_{mo}.C^\dagger`
.. c:function:: orthonormalize_mos .. c:function:: orthonormalize_mos

View File

@ -1,45 +1,45 @@
.. _mo_two_e_erf_ints: .. _mo_two_e_erf_ints:
.. program:: mo_two_e_erf_ints .. program:: mo_two_e_erf_ints
.. default-role:: option .. default-role:: option
====================== ======================
mo_two_e_erf_ints mo_two_e_erf_ints
====================== ======================
Here, all two-electron integrals (:math:`erf({\mu}_{erf} * r_{12})/r_{12}`) are computed. Here, all two-electron integrals (:math:`erf({\mu}_{erf} * r_{12})/r_{12}`) are computed.
As they have 4 indices and many are zero, they are stored in a map, as defined As they have 4 indices and many are zero, they are stored in a map, as defined
in :file:`Utils/map_module.f90`. in :file:`Utils/map_module.f90`.
The range separation parameter :math:`{\mu}_{erf}` is the variable :option:`ao_two_e_erf_ints mu_erf`. The range separation parameter :math:`{\mu}_{erf}` is the variable :option:`ao_two_e_erf_ints mu_erf`.
To fetch an |MO| integral, use To fetch an |MO| integral, use
`get_mo_two_e_integral_erf(i,j,k,l,mo_integrals_map_erf)` `get_mo_two_e_integral_erf(i,j,k,l,mo_integrals_map_erf)`
The conventions are: The conventions are:
* For |MO| integrals : <ij|kl> = <12|12> * For |MO| integrals : <ij|kl> = <12|12>
Be aware that it might not be the same conventions for |MO| and |AO| integrals. Be aware that it might not be the same conventions for |MO| and |AO| integrals.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: io_mo_two_e_integrals_erf .. option:: io_mo_two_e_integrals_erf
Read/Write MO integrals with the long range interaction from/to disk [ Write | Read | None ] Read/Write MO integrals with the long range interaction from/to disk [ Write | Read | None ]
Default: None Default: None
Providers Providers
--------- ---------
.. c:var:: core_energy_erf .. c:var:: core_energy_erf
@ -52,7 +52,7 @@ Providers
energy from the core : contains all core-core contributionswith the erf interaction energy from the core : contains all core-core contributionswith the erf interaction
.. c:var:: core_fock_operator_erf .. c:var:: core_fock_operator_erf
@ -65,7 +65,7 @@ Providers
this is the contribution to the Fock operator from the core electrons with the erf interaction this is the contribution to the Fock operator from the core electrons with the erf interaction
.. c:var:: insert_into_mo_integrals_erf_map .. c:var:: insert_into_mo_integrals_erf_map
@ -79,7 +79,7 @@ Providers
Create new entry into |MO| map, or accumulate in an existing entry Create new entry into |MO| map, or accumulate in an existing entry
.. c:var:: int_erf_3_index .. c:var:: int_erf_3_index
@ -95,7 +95,7 @@ Providers
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction
.. c:var:: int_erf_3_index_exc .. c:var:: int_erf_3_index_exc
@ -111,7 +111,7 @@ Providers
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction
.. c:var:: mo_integrals_erf_cache .. c:var:: mo_integrals_erf_cache
@ -124,7 +124,7 @@ Providers
Cache of |MO| integrals for fast access Cache of |MO| integrals for fast access
.. c:var:: mo_integrals_erf_cache_max .. c:var:: mo_integrals_erf_cache_max
@ -138,7 +138,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_erf_cache_min .. c:var:: mo_integrals_erf_cache_min
@ -152,7 +152,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_erf_map .. c:var:: mo_integrals_erf_map
@ -165,7 +165,7 @@ Providers
|MO| integrals |MO| integrals
.. c:var:: mo_two_e_int_erf_jj .. c:var:: mo_two_e_int_erf_jj
@ -180,7 +180,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_int_erf_jj_anti .. c:var:: mo_two_e_int_erf_jj_anti
@ -195,7 +195,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_int_erf_jj_anti_from_ao .. c:var:: mo_two_e_int_erf_jj_anti_from_ao
@ -210,7 +210,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_int_erf_jj_exchange .. c:var:: mo_two_e_int_erf_jj_exchange
@ -225,7 +225,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_int_erf_jj_exchange_from_ao .. c:var:: mo_two_e_int_erf_jj_exchange_from_ao
@ -240,7 +240,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_int_erf_jj_from_ao .. c:var:: mo_two_e_int_erf_jj_from_ao
@ -255,7 +255,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_erf_in_map .. c:var:: mo_two_e_integrals_erf_in_map
@ -268,11 +268,11 @@ Providers
If True, the map of MO two-electron integrals is provided If True, the map of MO two-electron integrals is provided
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: add_integrals_to_map_erf .. c:function:: add_integrals_to_map_erf
@ -286,7 +286,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask Adds integrals to tha MO map according to some bitmask
.. c:function:: clear_mo_erf_map .. c:function:: clear_mo_erf_map
@ -300,7 +300,7 @@ Subroutines / functions
Frees the memory of the MO map Frees the memory of the MO map
.. c:function:: get_mo_erf_map_size .. c:function:: get_mo_erf_map_size
@ -314,7 +314,7 @@ Subroutines / functions
Returns the number of elements in the |MO| map Returns the number of elements in the |MO| map
.. c:function:: get_mo_two_e_integral_erf .. c:function:: get_mo_two_e_integral_erf
@ -328,7 +328,7 @@ Subroutines / functions
Returns one integral :math:`\langle ij|kl \rangle` in the |MO| basis Returns one integral :math:`\langle ij|kl \rangle` in the |MO| basis
.. c:function:: get_mo_two_e_integrals_erf .. c:function:: get_mo_two_e_integrals_erf
@ -342,7 +342,7 @@ Subroutines / functions
Returns multiple integrals :math:`\langle ij|kl \rangle` in the |MO| basis, all i for j,k,l fixed. Returns multiple integrals :math:`\langle ij|kl \rangle` in the |MO| basis, all i for j,k,l fixed.
.. c:function:: get_mo_two_e_integrals_erf_coulomb_ii .. c:function:: get_mo_two_e_integrals_erf_coulomb_ii
@ -358,7 +358,7 @@ Subroutines / functions
k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed. k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed.
.. c:function:: get_mo_two_e_integrals_erf_exch_ii .. c:function:: get_mo_two_e_integrals_erf_exch_ii
@ -374,7 +374,7 @@ Subroutines / functions
:math:`\int k(1)i(2) \frac{1}{r_{12}} i(1)l(2)` :: out_val(i1) for k,l fixed. :math:`\int k(1)i(2) \frac{1}{r_{12}} i(1)l(2)` :: out_val(i1) for k,l fixed.
.. c:function:: get_mo_two_e_integrals_erf_i1j1 .. c:function:: get_mo_two_e_integrals_erf_i1j1
@ -388,7 +388,7 @@ Subroutines / functions
Returns multiple integrals :math:`\langle ik|jl \rangle` in the |MO| basis, all :math:`\int i(1)j(1) \frac{\erf(\mu * r_{12})}{r_{12}} k(2)l(2)` i, j for k,l fixed. Returns multiple integrals :math:`\langle ik|jl \rangle` in the |MO| basis, all :math:`\int i(1)j(1) \frac{\erf(\mu * r_{12})}{r_{12}} k(2)l(2)` i, j for k,l fixed.
.. c:function:: get_mo_two_e_integrals_erf_ij .. c:function:: get_mo_two_e_integrals_erf_ij
@ -402,7 +402,7 @@ Subroutines / functions
Returns multiple integrals :math:`\langle ij|kl \rangle` in the |MO| basis, all :math:`\int i(1)j(2) \frac{1}{r_{12}} k(1)l(2)` i, j for k,l fixed. Returns multiple integrals :math:`\langle ij|kl \rangle` in the |MO| basis, all :math:`\int i(1)j(2) \frac{1}{r_{12}} k(1)l(2)` i, j for k,l fixed.
.. c:function:: load_mo_integrals_erf .. c:function:: load_mo_integrals_erf
@ -416,7 +416,7 @@ Subroutines / functions
Read from disk the |MO| erf integrals Read from disk the |MO| erf integrals
.. c:function:: mo_two_e_integral_erf .. c:function:: mo_two_e_integral_erf
@ -430,7 +430,7 @@ Subroutines / functions
Returns one integral :math:`\langle ij|kl \rangle` in the |MO| basis Returns one integral :math:`\langle ij|kl \rangle` in the |MO| basis
.. c:function:: mo_two_e_integrals_erf_index .. c:function:: mo_two_e_integrals_erf_index
@ -444,7 +444,7 @@ Subroutines / functions
Computes an unique index for i,j,k,l integrals Computes an unique index for i,j,k,l integrals
.. c:function:: provide_all_mo_integrals_erf .. c:function:: provide_all_mo_integrals_erf
@ -458,7 +458,7 @@ Subroutines / functions
.. c:function:: save_erf_two_e_integrals_mo .. c:function:: save_erf_two_e_integrals_mo
@ -472,7 +472,7 @@ Subroutines / functions
.. c:function:: save_erf_two_e_ints_mo_into_ints_mo .. c:function:: save_erf_two_e_ints_mo_into_ints_mo

View File

@ -1,9 +1,9 @@
.. _mo_two_e_ints: .. _mo_two_e_ints:
.. program:: mo_two_e_ints .. program:: mo_two_e_ints
.. default-role:: option .. default-role:: option
================== ==================
mo_two_e_ints mo_two_e_ints
================== ==================
@ -25,46 +25,46 @@ The conventions are:
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: io_mo_two_e_integrals .. option:: io_mo_two_e_integrals
Read/Write |MO| integrals from/to disk [ Write | Read | None ] Read/Write |MO| integrals from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: mo_integrals_threshold .. option:: mo_integrals_threshold
If | <ij|kl> | < `mo_integrals_threshold` then <ij|kl> is zero If | <ij|kl> | < `mo_integrals_threshold` then <ij|kl> is zero
Default: 1.e-15 Default: 1.e-15
.. option:: no_vvvv_integrals .. option:: no_vvvv_integrals
If `True`, computes all integrals except for the integrals having 4 virtual indices If `True`, computes all integrals except for the integrals having 4 virtual indices
Default: False Default: False
.. option:: no_ivvv_integrals .. 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 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 Default: False
.. option:: no_vvv_integrals .. 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 Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual orbitals
Default: False Default: False
Providers Providers
--------- ---------
.. c:var:: big_array_coulomb_integrals .. c:var:: big_array_coulomb_integrals
@ -80,7 +80,7 @@ Providers
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij) big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
.. c:var:: big_array_exchange_integrals .. c:var:: big_array_exchange_integrals
@ -96,7 +96,7 @@ Providers
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij) big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
.. c:var:: core_energy .. c:var:: core_energy
@ -109,7 +109,7 @@ Providers
energy from the core : contains all core-core contributions energy from the core : contains all core-core contributions
.. c:var:: core_fock_operator .. c:var:: core_fock_operator
@ -122,7 +122,7 @@ Providers
this is the contribution to the Fock operator from the core electrons this is the contribution to the Fock operator from the core electrons
.. c:var:: insert_into_mo_integrals_map .. c:var:: insert_into_mo_integrals_map
@ -136,7 +136,7 @@ Providers
Create new entry into MO map, or accumulate in an existing entry Create new entry into MO map, or accumulate in an existing entry
.. c:var:: mo_integrals_cache .. c:var:: mo_integrals_cache
@ -149,7 +149,7 @@ Providers
Cache of MO integrals for fast access Cache of MO integrals for fast access
.. c:var:: mo_integrals_cache_max .. c:var:: mo_integrals_cache_max
@ -165,7 +165,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_cache_max_8 .. c:var:: mo_integrals_cache_max_8
@ -181,7 +181,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_cache_min .. c:var:: mo_integrals_cache_min
@ -197,7 +197,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_cache_min_8 .. c:var:: mo_integrals_cache_min_8
@ -213,7 +213,7 @@ Providers
Min and max values of the MOs for which the integrals are in the cache Min and max values of the MOs for which the integrals are in the cache
.. c:var:: mo_integrals_map .. c:var:: mo_integrals_map
@ -226,7 +226,7 @@ Providers
MO integrals MO integrals
.. c:var:: mo_two_e_integral_jj_from_ao .. c:var:: mo_two_e_integral_jj_from_ao
@ -241,7 +241,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_in_map .. c:var:: mo_two_e_integrals_in_map
@ -254,7 +254,7 @@ Providers
If True, the map of MO two-electron integrals is provided If True, the map of MO two-electron integrals is provided
.. c:var:: mo_two_e_integrals_jj .. c:var:: mo_two_e_integrals_jj
@ -269,7 +269,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_jj_anti .. c:var:: mo_two_e_integrals_jj_anti
@ -284,7 +284,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_jj_anti_from_ao .. c:var:: mo_two_e_integrals_jj_anti_from_ao
@ -299,7 +299,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_jj_exchange .. c:var:: mo_two_e_integrals_jj_exchange
@ -314,7 +314,7 @@ Providers
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_jj_exchange_from_ao .. c:var:: mo_two_e_integrals_jj_exchange_from_ao
@ -329,7 +329,7 @@ Providers
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
.. c:var:: mo_two_e_integrals_vv_anti_from_ao .. c:var:: mo_two_e_integrals_vv_anti_from_ao
@ -344,7 +344,7 @@ Providers
mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals
.. c:var:: mo_two_e_integrals_vv_exchange_from_ao .. c:var:: mo_two_e_integrals_vv_exchange_from_ao
@ -359,7 +359,7 @@ Providers
mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals
.. c:var:: mo_two_e_integrals_vv_from_ao .. c:var:: mo_two_e_integrals_vv_from_ao
@ -374,11 +374,11 @@ Providers
mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals mo_two_e_integrals_vv_from_ao(i,j) = J_ij mo_two_e_integrals_vv_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: add_integrals_to_map .. c:function:: add_integrals_to_map
@ -392,7 +392,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask Adds integrals to tha MO map according to some bitmask
.. c:function:: add_integrals_to_map_no_exit_34 .. c:function:: add_integrals_to_map_no_exit_34
@ -406,7 +406,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask Adds integrals to tha MO map according to some bitmask
.. c:function:: add_integrals_to_map_three_indices .. c:function:: add_integrals_to_map_three_indices
@ -420,7 +420,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask Adds integrals to tha MO map according to some bitmask
.. c:function:: clear_mo_map .. c:function:: clear_mo_map
@ -434,7 +434,7 @@ Subroutines / functions
Frees the memory of the MO map Frees the memory of the MO map
.. c:function:: dump_mo_integrals .. c:function:: dump_mo_integrals
@ -448,7 +448,7 @@ Subroutines / functions
Save to disk the |MO| integrals Save to disk the |MO| integrals
.. c:function:: get_mo_map_size .. c:function:: get_mo_map_size
@ -462,7 +462,7 @@ Subroutines / functions
Return the number of elements in the MO map Return the number of elements in the MO map
.. c:function:: get_mo_two_e_integrals .. c:function:: get_mo_two_e_integrals
@ -476,7 +476,7 @@ Subroutines / functions
Returns multiple integrals <ij|kl> in the MO basis, all i for j,k,l fixed. Returns multiple integrals <ij|kl> in the MO basis, all i for j,k,l fixed.
.. c:function:: get_mo_two_e_integrals_coulomb_ii .. c:function:: get_mo_two_e_integrals_coulomb_ii
@ -490,7 +490,7 @@ Subroutines / functions
Returns multiple integrals <ki|li> k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed. Returns multiple integrals <ki|li> k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed.
.. c:function:: get_mo_two_e_integrals_exch_ii .. c:function:: get_mo_two_e_integrals_exch_ii
@ -504,7 +504,7 @@ Subroutines / functions
Returns multiple integrals <ki|il> k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1) for k,l fixed. Returns multiple integrals <ki|il> k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1) for k,l fixed.
.. c:function:: get_mo_two_e_integrals_i1j1 .. c:function:: get_mo_two_e_integrals_i1j1
@ -518,7 +518,7 @@ Subroutines / functions
Returns multiple integrals <ik|jl> in the MO basis, all i(1)j(1) 1/r12 k(2)l(2) i, j for k,l fixed. Returns multiple integrals <ik|jl> in the MO basis, all i(1)j(1) 1/r12 k(2)l(2) i, j for k,l fixed.
.. c:function:: get_mo_two_e_integrals_ij .. c:function:: get_mo_two_e_integrals_ij
@ -532,7 +532,7 @@ Subroutines / functions
Returns multiple integrals <ij|kl> in the MO basis, all i(1)j(2) 1/r12 k(1)l(2) i, j for k,l fixed. Returns multiple integrals <ij|kl> in the MO basis, all i(1)j(2) 1/r12 k(1)l(2) i, j for k,l fixed.
.. c:function:: get_two_e_integral .. c:function:: get_two_e_integral
@ -546,7 +546,7 @@ Subroutines / functions
Returns one integral <ij|kl> in the MO basis Returns one integral <ij|kl> in the MO basis
.. c:function:: load_mo_integrals .. c:function:: load_mo_integrals
@ -560,7 +560,7 @@ Subroutines / functions
Read from disk the |MO| integrals Read from disk the |MO| integrals
.. c:function:: mo_two_e_integral .. c:function:: mo_two_e_integral
@ -574,7 +574,7 @@ Subroutines / functions
Returns one integral <ij|kl> in the MO basis Returns one integral <ij|kl> in the MO basis
.. c:function:: mo_two_e_integrals_index .. c:function:: mo_two_e_integrals_index

View File

@ -1,20 +1,20 @@
.. _mpi: .. _mpi:
.. program:: mpi .. program:: mpi
.. default-role:: option .. default-role:: option
=== ===
mpi mpi
=== ===
Contains all the functions and providers for parallelization with |MPI|. Contains all the functions and providers for parallelization with |MPI|.
Providers Providers
--------- ---------
.. c:var:: mpi_initialized .. c:var:: mpi_initialized
@ -27,7 +27,7 @@ Providers
Always true. Initialized MPI Always true. Initialized MPI
.. c:var:: mpi_master .. c:var:: mpi_master
@ -40,7 +40,7 @@ Providers
If true, rank is zero If true, rank is zero
.. c:var:: mpi_rank .. c:var:: mpi_rank
@ -54,7 +54,7 @@ Providers
Rank of MPI process and number of MPI processes Rank of MPI process and number of MPI processes
.. c:var:: mpi_size .. c:var:: mpi_size
@ -68,11 +68,11 @@ Providers
Rank of MPI process and number of MPI processes Rank of MPI process and number of MPI processes
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: broadcast_chunks_double .. c:function:: broadcast_chunks_double
@ -86,7 +86,7 @@ Subroutines / functions
Broadcast with chunks of ~2GB Broadcast with chunks of ~2GB
.. c:function:: broadcast_chunks_integer .. c:function:: broadcast_chunks_integer
@ -100,7 +100,7 @@ Subroutines / functions
Broadcast with chunks of ~2GB Broadcast with chunks of ~2GB
.. c:function:: broadcast_chunks_integer8 .. c:function:: broadcast_chunks_integer8
@ -114,7 +114,7 @@ Subroutines / functions
Broadcast with chunks of ~2GB Broadcast with chunks of ~2GB
.. c:function:: mpi_print .. c:function:: mpi_print

View File

@ -1,9 +1,9 @@
.. _nuclei: .. _nuclei:
.. program:: nuclei .. program:: nuclei
.. default-role:: option .. default-role:: option
====== ======
nuclei nuclei
====== ======
@ -12,47 +12,47 @@ This module contains data relative to the nuclei (coordinates, charge,
nuclear repulsion energy, etc). nuclear repulsion energy, etc).
The coordinates are expressed in atomic units. The coordinates are expressed in atomic units.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: nucl_num .. option:: nucl_num
Number of nuclei Number of nuclei
.. option:: nucl_label .. option:: nucl_label
Nuclear labels Nuclear labels
.. option:: nucl_charge .. option:: nucl_charge
Nuclear charges Nuclear charges
.. option:: nucl_coord .. option:: nucl_coord
Nuclear coordinates in the format (:, {x,y,z}) Nuclear coordinates in the format (:, {x,y,z})
.. option:: disk_access_nuclear_repulsion .. option:: disk_access_nuclear_repulsion
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ] Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
Default: None Default: None
.. option:: nuclear_repulsion .. option:: nuclear_repulsion
Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|) Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
Providers Providers
--------- ---------
.. c:var:: center_of_mass .. c:var:: center_of_mass
@ -65,7 +65,7 @@ Providers
Center of mass of the molecule Center of mass of the molecule
.. c:var:: element_mass .. c:var:: element_mass
@ -79,7 +79,7 @@ Providers
Array of the name of element, sorted by nuclear charge (integer) Array of the name of element, sorted by nuclear charge (integer)
.. c:var:: element_name .. c:var:: element_name
@ -93,7 +93,7 @@ Providers
Array of the name of element, sorted by nuclear charge (integer) Array of the name of element, sorted by nuclear charge (integer)
.. c:var:: inertia_tensor .. c:var:: inertia_tensor
@ -106,7 +106,7 @@ Providers
Inertia tensor Inertia tensor
.. c:var:: inertia_tensor_eigenvalues .. c:var:: inertia_tensor_eigenvalues
@ -120,7 +120,7 @@ Providers
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation. Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
.. c:var:: inertia_tensor_eigenvectors .. c:var:: inertia_tensor_eigenvectors
@ -134,7 +134,7 @@ Providers
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation. Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
.. c:var:: nucl_coord .. c:var:: nucl_coord
@ -147,7 +147,7 @@ Providers
Nuclear coordinates in the format (:, {x,y,z}) Nuclear coordinates in the format (:, {x,y,z})
.. c:var:: nucl_coord_transp .. c:var:: nucl_coord_transp
@ -160,7 +160,7 @@ Providers
Transposed array of nucl_coord Transposed array of nucl_coord
.. c:var:: nucl_dist .. c:var:: nucl_dist
@ -177,7 +177,7 @@ Providers
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
.. c:var:: nucl_dist_2 .. c:var:: nucl_dist_2
@ -194,7 +194,7 @@ Providers
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
.. c:var:: nucl_dist_inv .. c:var:: nucl_dist_inv
@ -207,7 +207,7 @@ Providers
Inverse of the distance between nucleus I and nucleus J Inverse of the distance between nucleus I and nucleus J
.. c:var:: nucl_dist_vec_x .. c:var:: nucl_dist_vec_x
@ -224,7 +224,7 @@ Providers
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
.. c:var:: nucl_dist_vec_y .. c:var:: nucl_dist_vec_y
@ -241,7 +241,7 @@ Providers
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
.. c:var:: nucl_dist_vec_z .. c:var:: nucl_dist_vec_z
@ -258,7 +258,7 @@ Providers
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
.. c:var:: nuclear_repulsion .. c:var:: nuclear_repulsion
@ -271,7 +271,7 @@ Providers
Nuclear repulsion energy Nuclear repulsion energy
.. c:var:: slater_bragg_radii .. c:var:: slater_bragg_radii
@ -284,7 +284,7 @@ Providers
atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater execpt for the Hydrogen atom where we took the value of Becke (1988, JCP) atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater execpt for the Hydrogen atom where we took the value of Becke (1988, JCP)
.. c:var:: slater_bragg_radii_per_atom .. c:var:: slater_bragg_radii_per_atom
@ -297,7 +297,7 @@ Providers
.. c:var:: slater_bragg_radii_per_atom_ua .. c:var:: slater_bragg_radii_per_atom_ua
@ -310,7 +310,7 @@ Providers
.. c:var:: slater_bragg_radii_ua .. c:var:: slater_bragg_radii_ua
@ -323,7 +323,7 @@ Providers
.. c:var:: slater_bragg_type_inter_distance .. c:var:: slater_bragg_type_inter_distance
@ -336,7 +336,7 @@ Providers
.. c:var:: slater_bragg_type_inter_distance_ua .. c:var:: slater_bragg_type_inter_distance_ua

View File

@ -1,9 +1,9 @@
.. _perturbation: .. _perturbation:
.. program:: perturbation .. program:: perturbation
.. default-role:: option .. default-role:: option
============ ============
perturbation perturbation
============ ============
@ -38,19 +38,19 @@ The arguments of the `pt2_` are always:
`psi_ref` `psi_ref`
bitstring of the determinants present in the various `N_st` states bitstring of the determinants present in the various `N_st` states
`psi_ref_coefs` `psi_ref_coefs`
coefficients of the determinants on the various `N_st` states coefficients of the determinants on the various `N_st` states
`E_refs` `E_refs`
Energy of the various `N_st` states Energy of the various `N_st` states
`det_pert` `det_pert`
Perturber determinant Perturber determinant
`c_pert` `c_pert`
Perturbative coefficients for the various states Perturbative coefficients for the various states
`e_2_pert` `e_2_pert`
Perturbative energetic contribution for the various states Perturbative energetic contribution for the various states
@ -68,50 +68,44 @@ The arguments of the `pt2_` are always:
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: do_pt2 .. option:: do_pt2
If `True`, compute the |PT2| contribution If `True`, compute the |PT2| contribution
Default: True Default: True
.. option:: pt2_max .. option:: pt2_max
The selection process stops when the largest |PT2| (for all the state) is lower The selection process stops when the largest |PT2| (for all the state) is lower
than `pt2_max` in absolute value than `pt2_max` in absolute value
Default: 0.0001 Default: 0.0001
.. option:: pt2_relative_error .. option:: pt2_relative_error
Stop stochastic |PT2| when the relative error is smaller than `PT2_relative_error` Stop stochastic |PT2| when the relative error is smaller than `PT2_relative_error`
Default: 0.005 Default: 0.002
.. option:: correlation_energy_ratio_max .. option:: correlation_energy_ratio_max
The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules). The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules).
Defined as :math:`{E_{CI}-E_{HF}}/{E_{CI}+E_{PT2} - E_{HF}}`. Defined as :math:`{E_{CI}-E_{HF}}/{E_{CI}+E_{PT2} - E_{HF}}`.
Default: 1.00 Default: 1.00
.. option:: h0_type
Providers
Type of zeroth-order Hamiltonian [ EN | Barycentric | Variance | SOP ] ---------
Default: EN
Providers
---------
.. c:var:: fill_h_apply_buffer_selection .. c:var:: fill_h_apply_buffer_selection
@ -125,7 +119,20 @@ Providers
Fill the H_apply buffer with determiants for the selection Fill the H_apply buffer with determiants for the selection
.. c:var:: h0_type
.. code:: text
character*32 :: h0_type
File: :file:`h0_type.irp.f`
Type of zeroth-order Hamiltonian
.. c:var:: max_exc_pert .. c:var:: max_exc_pert
@ -138,7 +145,7 @@ Providers
.. c:var:: selection_criterion .. c:var:: selection_criterion
@ -153,7 +160,7 @@ Providers
Threshold to select determinants. Set by selection routines. Threshold to select determinants. Set by selection routines.
.. c:var:: selection_criterion_factor .. c:var:: selection_criterion_factor
@ -168,7 +175,7 @@ Providers
Threshold to select determinants. Set by selection routines. Threshold to select determinants. Set by selection routines.
.. c:var:: selection_criterion_min .. c:var:: selection_criterion_min
@ -183,7 +190,7 @@ Providers
Threshold to select determinants. Set by selection routines. Threshold to select determinants. Set by selection routines.
.. c:var:: var_pt2_ratio .. c:var:: var_pt2_ratio
@ -196,11 +203,11 @@ Providers
The selection process stops when the energy ratio variational/(variational+PT2) is equal to var_pt2_ratio The selection process stops when the energy ratio variational/(variational+PT2) is equal to var_pt2_ratio
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: perturb_buffer_by_mono_dummy .. c:function:: perturb_buffer_by_mono_dummy
@ -214,7 +221,7 @@ Subroutines / functions
Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_epstein_nesbet .. c:function:: perturb_buffer_by_mono_epstein_nesbet
@ -228,7 +235,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2 .. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2
@ -242,7 +249,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag .. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag
@ -256,7 +263,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_h_core .. c:function:: perturb_buffer_by_mono_h_core
@ -270,7 +277,7 @@ Subroutines / functions
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_moller_plesset .. c:function:: perturb_buffer_by_mono_moller_plesset
@ -284,7 +291,7 @@ Subroutines / functions
Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_moller_plesset_general .. c:function:: perturb_buffer_by_mono_moller_plesset_general
@ -298,7 +305,7 @@ Subroutines / functions
Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_by_mono_qdpt .. c:function:: perturb_buffer_by_mono_qdpt
@ -312,7 +319,7 @@ Subroutines / functions
Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_dummy .. c:function:: perturb_buffer_dummy
@ -326,7 +333,7 @@ Subroutines / functions
Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_epstein_nesbet .. c:function:: perturb_buffer_epstein_nesbet
@ -340,7 +347,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_epstein_nesbet_2x2 .. c:function:: perturb_buffer_epstein_nesbet_2x2
@ -354,7 +361,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_epstein_nesbet_2x2_no_ci_diag .. c:function:: perturb_buffer_epstein_nesbet_2x2_no_ci_diag
@ -368,7 +375,7 @@ Subroutines / functions
Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_h_core .. c:function:: perturb_buffer_h_core
@ -382,7 +389,7 @@ Subroutines / functions
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_moller_plesset .. c:function:: perturb_buffer_moller_plesset
@ -396,7 +403,7 @@ Subroutines / functions
Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_moller_plesset_general .. c:function:: perturb_buffer_moller_plesset_general
@ -410,7 +417,7 @@ Subroutines / functions
Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: perturb_buffer_qdpt .. c:function:: perturb_buffer_qdpt
@ -424,7 +431,7 @@ Subroutines / functions
Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine. Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine.
.. c:function:: pt2_dummy .. c:function:: pt2_dummy
@ -438,7 +445,7 @@ Subroutines / functions
Dummy perturbation to add all connected determinants. Dummy perturbation to add all connected determinants.
.. c:function:: pt2_epstein_nesbet .. c:function:: pt2_epstein_nesbet
@ -458,7 +465,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2 .. c:function:: pt2_epstein_nesbet_2x2
@ -478,7 +485,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag .. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag
@ -500,7 +507,7 @@ Subroutines / functions
.. c:function:: pt2_h_core .. c:function:: pt2_h_core
@ -522,7 +529,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset .. c:function:: pt2_moller_plesset
@ -542,7 +549,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset_general .. c:function:: pt2_moller_plesset_general
@ -562,7 +569,7 @@ Subroutines / functions
.. c:function:: pt2_qdpt .. c:function:: pt2_qdpt
@ -580,7 +587,7 @@ Subroutines / functions
.. c:function:: remove_small_contributions .. c:function:: remove_small_contributions
@ -594,7 +601,7 @@ Subroutines / functions
Remove determinants with small contributions. N_states is assumed to be provided. Remove determinants with small contributions. N_states is assumed to be provided.
.. c:function:: repeat_all_e_corr .. c:function:: repeat_all_e_corr

View File

@ -1,94 +1,94 @@
.. _pseudo: .. _pseudo:
.. program:: pseudo .. program:: pseudo
.. default-role:: option .. default-role:: option
====== ======
pseudo pseudo
====== ======
This module defines the |EZFIO| parameters of the effective core potentials. This module defines the |EZFIO| parameters of the effective core potentials.
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: nucl_charge_remove .. option:: nucl_charge_remove
Nuclear charges removed per atom Nuclear charges removed per atom
.. option:: pseudo_klocmax .. option:: pseudo_klocmax
Maximum value of k for the local component Maximum value of k for the local component
.. option:: pseudo_n_k .. option:: pseudo_n_k
Number of gaussians in the local component Number of gaussians in the local component
.. option:: pseudo_v_k .. option:: pseudo_v_k
Coefficients in the local component Coefficients in the local component
.. option:: pseudo_dz_k .. option:: pseudo_dz_k
Exponents in the local component Exponents in the local component
.. option:: pseudo_lmax .. option:: pseudo_lmax
Maximum angular momentum Maximum angular momentum
.. option:: pseudo_kmax .. option:: pseudo_kmax
Maximum number of functions in the non-local component Maximum number of functions in the non-local component
.. option:: pseudo_n_kl .. option:: pseudo_n_kl
Number of functions in the non-local component Number of functions in the non-local component
.. option:: pseudo_v_kl .. option:: pseudo_v_kl
Coefficients in the non-local component Coefficients in the non-local component
.. option:: pseudo_dz_kl .. option:: pseudo_dz_kl
Exponents in the non-local component Exponents in the non-local component
.. option:: do_pseudo .. option:: do_pseudo
If `True`, pseudo-potentials are used. If `True`, pseudo-potentials are used.
Default: False Default: False
.. option:: pseudo_grid_size .. option:: pseudo_grid_size
Nb of points of the grid for the QMC interfaces Nb of points of the grid for the QMC interfaces
Default: 1000 Default: 1000
.. option:: pseudo_grid_rmax .. option:: pseudo_grid_rmax
R_max of the QMC grid R_max of the QMC grid
Default: 10.0 Default: 10.0
.. option:: ao_pseudo_grid .. option:: ao_pseudo_grid
Grid for the QMC interface Grid for the QMC interface
.. option:: mo_pseudo_grid .. option:: mo_pseudo_grid
Grid for the QMC interface Grid for the QMC interface

View File

@ -1,14 +1,14 @@
.. _psiref_cas: .. _psiref_cas:
.. program:: psiref_cas .. program:: psiref_cas
.. default-role:: option .. default-role:: option
========== ==========
psiref_cas psiref_cas
========== ==========
Reference wave function is defined as a |CAS| wave function. Reference wave function is defined as a |CAS| wave function.
This module is required for |CAS-SD|, |MRPT| or |MRCC|. This module is required for |CAS-SD|, |MRPT| or |MRCC|.

View File

@ -1,9 +1,9 @@
.. _psiref_utils: .. _psiref_utils:
.. program:: psiref_utils .. program:: psiref_utils
.. default-role:: option .. default-role:: option
============ ============
psiref_utils psiref_utils
============ ============
@ -13,4 +13,4 @@ Utilities related to the use of a reference wave function. This module
needs to be loaded with any `psi_ref_*` module. needs to be loaded with any `psi_ref_*` module.

View File

@ -1,9 +1,9 @@
.. _scf_utils: .. _scf_utils:
.. program:: scf_utils .. program:: scf_utils
.. default-role:: option .. default-role:: option
========= =========
scf_utils scf_utils
========= =========
@ -13,8 +13,8 @@ scf_utils
The scf_utils module is an abstract module which contains the basics to perform *Restricted* SCF calculations (the The scf_utils module is an abstract module which contains the basics to perform *Restricted* SCF calculations (the
spatial part of the |MOs| is common for alpha and beta spinorbitals) based on a single-determinant wave function. spatial part of the |MOs| is common for alpha and beta spinorbitals) based on a single-determinant wave function.
This module does not produce any executable *and must not do*, but instead it contains everything one needs to perform an orbital optimization based on an Fock matrix. This module does not produce any executable *and must not do*, but instead it contains everything one needs to perform an orbital optimization based on an Fock matrix.
The ``scf_utils`` module is meant to be included in the :file:`NEED` of the various single determinant SCF procedures, such as ``hartree_fock`` or ``kohn_sham``, where a specific definition of the Fock matrix is given (see :file:`hartree_fock fock_matrix_hf.irp.f` for an example). The ``scf_utils`` module is meant to be included in the :file:`NEED` of the various single determinant SCF procedures, such as ``hartree_fock`` or ``kohn_sham``, where a specific definition of the Fock matrix is given (see :file:`hartree_fock fock_matrix_hf.irp.f` for an example).
All SCF programs perform the following actions: All SCF programs perform the following actions:
@ -23,13 +23,13 @@ All SCF programs perform the following actions:
#. Check in the |EZFIO| database if there is a set of |MOs|. If there is, it #. Check in the |EZFIO| database if there is a set of |MOs|. If there is, it
will read them as initial guess. Otherwise, it will create a guess. will read them as initial guess. Otherwise, it will create a guess.
#. Perform the |SCF| iterations based on the definition of the Fock matrix #. Perform the |SCF| iterations based on the definition of the Fock matrix
The main keywords/options are: The main keywords/options are:
* :option:`scf_utils thresh_scf` * :option:`scf_utils thresh_scf`
* :option:`scf_utils level_shift` * :option:`scf_utils level_shift`
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
crashes for any unexpected reason, the calculation can be restarted by running again crashes for any unexpected reason, the calculation can be restarted by running again
@ -44,69 +44,69 @@ To start a calculation from scratch, the simplest way is to remove the
.. _DIIS: https://en.wikipedia.org/w/index.php?title=DIIS .. _DIIS: https://en.wikipedia.org/w/index.php?title=DIIS
.. _level-shifting: https://doi.org/10.1002/qua.560070407 .. _level-shifting: https://doi.org/10.1002/qua.560070407
EZFIO parameters EZFIO parameters
---------------- ----------------
.. option:: max_dim_diis .. option:: max_dim_diis
Maximum size of the DIIS extrapolation procedure Maximum size of the DIIS extrapolation procedure
Default: 15 Default: 15
.. option:: threshold_diis .. option:: threshold_diis
Threshold on the convergence of the DIIS error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used. Threshold on the convergence of the DIIS error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used.
Default: 0. Default: 0.
.. option:: thresh_scf .. option:: thresh_scf
Threshold on the convergence of the Hartree Fock energy. Threshold on the convergence of the Hartree Fock energy.
Default: 1.e-10 Default: 1.e-10
.. option:: n_it_scf_max .. option:: n_it_scf_max
Maximum number of SCF iterations Maximum number of SCF iterations
Default: 500 Default: 500
.. option:: level_shift .. option:: level_shift
Energy shift on the virtual MOs to improve SCF convergence Energy shift on the virtual MOs to improve SCF convergence
Default: 0. Default: 0.
.. option:: scf_algorithm .. option:: scf_algorithm
Type of SCF algorithm used. Possible choices are [ Simple | DIIS] Type of SCF algorithm used. Possible choices are [ Simple | DIIS]
Default: DIIS Default: DIIS
.. option:: mo_guess_type .. option:: mo_guess_type
Initial MO guess. Can be [ Huckel | HCore ] Initial MO guess. Can be [ Huckel | HCore ]
Default: Huckel Default: Huckel
.. option:: energy .. option:: energy
Calculated HF energy Calculated HF energy
.. option:: frozen_orb_scf .. option:: frozen_orb_scf
If true, leave untouched all the orbitals defined as core and optimize all the orbitals defined as active with qp_set_mo_class If true, leave untouched all the orbitals defined as core and optimize all the orbitals defined as active with qp_set_mo_class
Default: False Default: False
Providers Providers
--------- ---------
.. c:var:: eigenvalues_fock_matrix_ao .. c:var:: eigenvalues_fock_matrix_ao
@ -120,7 +120,7 @@ Providers
Eigenvalues and eigenvectors of the Fock matrix over the AO basis Eigenvalues and eigenvectors of the Fock matrix over the AO basis
.. c:var:: eigenvectors_fock_matrix_ao .. c:var:: eigenvectors_fock_matrix_ao
@ -134,7 +134,7 @@ Providers
Eigenvalues and eigenvectors of the Fock matrix over the AO basis Eigenvalues and eigenvectors of the Fock matrix over the AO basis
.. c:var:: eigenvectors_fock_matrix_mo .. c:var:: eigenvectors_fock_matrix_mo
@ -147,7 +147,7 @@ Providers
Eigenvector of the Fock matrix in the MO basis obtained with level shift. Eigenvector of the Fock matrix in the MO basis obtained with level shift.
.. c:var:: extrapolate_fock_matrix .. c:var:: extrapolate_fock_matrix
@ -164,7 +164,7 @@ Providers
Compute the extrapolated Fock matrix using the DIIS procedure Compute the extrapolated Fock matrix using the DIIS procedure
.. c:var:: fock_matrix_ao .. c:var:: fock_matrix_ao
@ -177,7 +177,7 @@ Providers
Fock matrix in AO basis set Fock matrix in AO basis set
.. c:var:: fock_matrix_diag_mo .. c:var:: fock_matrix_diag_mo
@ -201,7 +201,7 @@ Providers
.. c:var:: fock_matrix_mo .. c:var:: fock_matrix_mo
@ -225,7 +225,7 @@ Providers
.. c:var:: fock_matrix_mo_alpha .. c:var:: fock_matrix_mo_alpha
@ -238,7 +238,7 @@ Providers
Fock matrix on the MO basis Fock matrix on the MO basis
.. c:var:: fock_matrix_mo_beta .. c:var:: fock_matrix_mo_beta
@ -251,7 +251,7 @@ Providers
Fock matrix on the MO basis Fock matrix on the MO basis
.. c:var:: fps_spf_matrix_ao .. c:var:: fps_spf_matrix_ao
@ -264,7 +264,7 @@ Providers
Commutator FPS - SPF Commutator FPS - SPF
.. c:var:: fps_spf_matrix_mo .. c:var:: fps_spf_matrix_mo
@ -277,7 +277,7 @@ Providers
Commutator FPS - SPF in MO basis Commutator FPS - SPF in MO basis
.. c:var:: scf_density_matrix_ao .. c:var:: scf_density_matrix_ao
@ -290,7 +290,7 @@ Providers
S^{-1}.P.S^{-1} where P = C.C^t S^{-1}.P.S^{-1} where P = C.C^t
.. c:var:: scf_density_matrix_ao_alpha .. c:var:: scf_density_matrix_ao_alpha
@ -303,7 +303,7 @@ Providers
S^{-1}.P_alpha.S^{-1} S^{-1}.P_alpha.S^{-1}
.. c:var:: scf_density_matrix_ao_beta .. c:var:: scf_density_matrix_ao_beta
@ -316,7 +316,7 @@ Providers
S^{-1}.P_beta.S^{-1} S^{-1}.P_beta.S^{-1}
.. c:var:: scf_energy .. c:var:: scf_energy
@ -329,7 +329,7 @@ Providers
Hartree-Fock energy Hartree-Fock energy
.. c:var:: threshold_diis_nonzero .. c:var:: threshold_diis_nonzero
@ -342,11 +342,11 @@ Providers
If threshold_DIIS is zero, choose sqrt(thresh_scf) If threshold_DIIS is zero, choose sqrt(thresh_scf)
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: damping_scf .. c:function:: damping_scf
@ -360,7 +360,7 @@ Subroutines / functions
.. c:function:: huckel_guess .. c:function:: huckel_guess
@ -374,7 +374,7 @@ Subroutines / functions
Build the MOs using the extended Huckel model Build the MOs using the extended Huckel model
.. c:function:: roothaan_hall_scf .. c:function:: roothaan_hall_scf

View File

@ -1,13 +1,13 @@
.. _selectors_cassd: .. _selectors_cassd:
.. program:: selectors_cassd .. program:: selectors_cassd
.. default-role:: option .. default-role:: option
=============== ===============
selectors_cassd selectors_cassd
=============== ===============
Selectors for |CAS-SD| calculations. The selectors are defined as first the Selectors for |CAS-SD| calculations. The selectors are defined as first the
generators from :ref:`Generators_CAS`, and then the rest of the wave function. generators from :ref:`Generators_CAS`, and then the rest of the wave function.

View File

@ -1,9 +1,9 @@
.. _selectors_full: .. _selectors_full:
.. program:: selectors_full .. program:: selectors_full
.. default-role:: option .. default-role:: option
============== ==============
selectors_full selectors_full
============== ==============
@ -11,12 +11,12 @@ selectors_full
All the determinants are possible selectors. Only the largest contributions are kept, where All the determinants are possible selectors. Only the largest contributions are kept, where
a threshold is applied to the squared norm of the wave function, with the :option:`determinants a threshold is applied to the squared norm of the wave function, with the :option:`determinants
threshold_selectors` flag. threshold_selectors` flag.
Providers Providers
--------- ---------
.. c:var:: n_det_selectors .. c:var:: n_det_selectors
@ -29,7 +29,7 @@ Providers
For Single reference wave functions, the number of selectors is 1 : the Hartree-Fock determinant For Single reference wave functions, the number of selectors is 1 : the Hartree-Fock determinant
.. c:var:: psi_selectors .. c:var:: psi_selectors
@ -43,7 +43,7 @@ Providers
Determinants on which we apply <i|H|psi> for perturbation. Determinants on which we apply <i|H|psi> for perturbation.
.. c:var:: psi_selectors_coef .. c:var:: psi_selectors_coef
@ -57,7 +57,7 @@ Providers
Determinants on which we apply <i|H|psi> for perturbation. Determinants on which we apply <i|H|psi> for perturbation.
.. c:var:: threshold_selectors .. c:var:: threshold_selectors

View File

@ -1,21 +1,21 @@
.. _selectors_utils: .. _selectors_utils:
.. program:: selectors_utils .. program:: selectors_utils
.. default-role:: option .. default-role:: option
=============== ===============
selectors_utils selectors_utils
=============== ===============
Helper functions for selectors. Helper functions for selectors.
Providers Providers
--------- ---------
.. c:var:: coef_hf_selector .. c:var:: coef_hf_selector
@ -41,7 +41,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: delta_e_per_selector .. c:var:: delta_e_per_selector
@ -67,7 +67,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: double_index_selectors .. c:var:: double_index_selectors
@ -86,7 +86,7 @@ Providers
n_double_selectors = number of double excitations in the selectors determinants n_double_selectors = number of double excitations in the selectors determinants
.. c:var:: e_corr_double_only .. c:var:: e_corr_double_only
@ -112,7 +112,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: e_corr_per_selectors .. c:var:: e_corr_per_selectors
@ -138,7 +138,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: e_corr_second_order .. c:var:: e_corr_second_order
@ -164,7 +164,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: exc_degree_per_selectors .. c:var:: exc_degree_per_selectors
@ -183,7 +183,7 @@ Providers
n_double_selectors = number of double excitations in the selectors determinants n_double_selectors = number of double excitations in the selectors determinants
.. c:var:: i_h_hf_per_selectors .. c:var:: i_h_hf_per_selectors
@ -209,7 +209,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: inv_selectors_coef_hf .. c:var:: inv_selectors_coef_hf
@ -235,7 +235,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: inv_selectors_coef_hf_squared .. c:var:: inv_selectors_coef_hf_squared
@ -261,7 +261,7 @@ Providers
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
.. c:var:: n_double_selectors .. c:var:: n_double_selectors
@ -280,7 +280,7 @@ Providers
n_double_selectors = number of double excitations in the selectors determinants n_double_selectors = number of double excitations in the selectors determinants
.. c:var:: psi_selectors_coef_transp .. c:var:: psi_selectors_coef_transp
@ -293,7 +293,7 @@ Providers
Transposed psi_selectors Transposed psi_selectors
.. c:var:: psi_selectors_diag_h_mat .. c:var:: psi_selectors_diag_h_mat
@ -306,7 +306,7 @@ Providers
Diagonal elements of the H matrix for each selectors Diagonal elements of the H matrix for each selectors
.. c:var:: psi_selectors_size .. c:var:: psi_selectors_size
@ -319,11 +319,11 @@ Providers
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: zmq_get_n_det_generators .. c:function:: zmq_get_n_det_generators
@ -337,7 +337,7 @@ Subroutines / functions
Get N_det_generators from the qp_run scheduler Get N_det_generators from the qp_run scheduler
.. c:function:: zmq_get_n_det_selectors .. c:function:: zmq_get_n_det_selectors
@ -351,7 +351,7 @@ Subroutines / functions
Get N_det_selectors from the qp_run scheduler Get N_det_selectors from the qp_run scheduler
.. c:function:: zmq_put_n_det_generators .. c:function:: zmq_put_n_det_generators
@ -365,7 +365,7 @@ Subroutines / functions
Put N_det_generators on the qp_run scheduler Put N_det_generators on the qp_run scheduler
.. c:function:: zmq_put_n_det_selectors .. c:function:: zmq_put_n_det_selectors

View File

@ -1,9 +1,9 @@
.. _single_ref_method: .. _single_ref_method:
.. program:: single_ref_method .. program:: single_ref_method
.. default-role:: option .. default-role:: option
================= =================
single_ref_method single_ref_method
================= =================
@ -11,75 +11,4 @@ single_ref_method
Include this module for single reference methods. Include this module for single reference methods.
Using this module, the only generator determinant is the Hartree-Fock determinant. Using this module, the only generator determinant is the Hartree-Fock determinant.
Providers
---------
.. c:var:: n_det_generators
.. code:: text
integer :: n_det_generators
File: :file:`generators.irp.f`
For Single reference wave functions, the number of generators is 1 : the Hartree-Fock determinant
.. c:var:: psi_coef_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: select_max
.. code:: text
double precision, allocatable :: select_max (1)
File: :file:`generators.irp.f`
Memo to skip useless selectors
.. c:var:: size_select_max
.. code:: text
integer :: size_select_max
File: :file:`generators.irp.f`
Size of select_max

View File

@ -1,134 +1,34 @@
.. _tools: .. _tools:
.. program:: tools .. program:: tools
.. default-role:: option .. default-role:: option
===== =====
tools tools
===== =====
Useful tools are grouped in this module. Useful tools are grouped in this module.
Subroutines / functions Programs
----------------------- --------
* :ref:`diagonalize_h`
* :ref:`fcidump`
.. c:function:: diagonalize_h * :ref:`four_idx_transform`
* :ref:`molden`
.. code:: text * :ref:`print_e_conv`
* :ref:`print_wf`
subroutine diagonalize_h * :ref:`save_natorb`
* :ref:`save_one_e_dm`
File: :file:`diagonalize_h.irp.f` * :ref:`save_ortho_mos`
* :ref:`write_integrals_erf`
Program that extracts the :option:`determinants n_states` lowest states of the Hamiltonian within the set of Slater determinants stored in the EZFIO folder.
Subroutines / functions
If :option:`determinants s2_eig` = True, it will retain only states -----------------------
which corresponds to the desired value of :option:`determinants expected_s2`.
.. c:function:: fcidump
.. code:: text
subroutine fcidump
File: :file:`fcidump.irp.f`
Produce a regular FCIDUMP file from the |MOs| stored in the |EZFIO| folder.
To specify an active space, the class of the mos have to set in the |EZFIO| folder (see :ref:`qp_set_mo_class`).
The fcidump program supports 3 types of MO_class :
* the "core" orbitals which are always doubly occupied in the calculation
* the "del" orbitals that are never occupied in the calculation
* the "act" orbitals that will be occupied by a varying number of electrons
.. c:function:: four_idx_transform
.. code:: text
subroutine four_idx_transform
File: :file:`four_idx_transform.irp.f`
4-index transformation of two-electron integrals from |AO| to |MO| integrals.
This program will compute the two-electron integrals on the |MO| basis and store it into the |EZFIO| folder.
This program can be useful if the AO --> MO transformation is an expensive step by itself.
.. c:function:: molden
.. code:: text
subroutine molden
File: :file:`molden.irp.f`
Produce a Molden file
.. c:function:: print_e_conv
.. code:: text
subroutine print_e_conv
File: :file:`print_e_conv.irp.f`
program that prints in a human readable format the convergence of the CIPSI algorithm.
for all istate, this program produces
* a file "EZFIO.istate.conv" containing the variational and var+PT2 energies as a function of N_det
* for istate > 1, a file EZFIO.istate.delta_e.conv containing the energy difference (both var and var+PT2) with the ground state as a function of N_det
.. c:function:: print_wf
.. code:: text
subroutine print_wf
File: :file:`print_wf.irp.f`
Print the ground state wave function stored in the |EZFIO| folder in the intermediate normalization.
It also prints a lot of information regarding the excitation operators from the reference determinant
and a first-order perturbative analysis of the wave function.
If the wave function strongly deviates from the first-order analysis, something funny is going on :)
.. c:function:: routine .. c:function:: routine
@ -142,7 +42,7 @@ Subroutines / functions
.. c:function:: routine_e_conv .. c:function:: routine_e_conv
@ -156,7 +56,7 @@ Subroutines / functions
routine called by :c:func:`print_e_conv` routine called by :c:func:`print_e_conv`
.. c:function:: routine_save_one_e_dm .. c:function:: routine_save_one_e_dm
@ -170,67 +70,7 @@ Subroutines / functions
routine called by :c:func:`save_one_e_dm` routine called by :c:func:`save_one_e_dm`
.. c:function:: save_natorb
.. code:: text
subroutine save_natorb
File: :file:`save_natorb.irp.f`
Save natural MOs into the EZFIO
This program reads the wave function stored in the EZFIO folder,
extracts the corresponding natural orbitals and set them as the new MOs
If this is a multi-state calculation, the density matrix that produces the natural orbitals
is obtained from a state-averaged of the density matrices of each state with the corresponding state_average_weight (see the doc of state_average_weight).
.. c:function:: save_one_e_dm
.. code:: text
subroutine save_one_e_dm
File: :file:`save_one_e_dm.irp.f`
programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read this density in a further calculation.
This can be used to perform damping on the density in RS-DFT calculation (see the density_for_dft module).
.. c:function:: save_ortho_mos
.. code:: text
subroutine save_ortho_mos
File: :file:`save_ortho_mos.irp.f`
Save orthonormalized MOs in the EZFIO.
This program reads the current MOs, computes the corresponding overlap matrix in the MO basis
and perform a Lowdin orthonormalization : :math:`MO_{new} = S^{-1/2} MO_{guess}`.
Thanks to the Lowdin orthonormalization, the new MOs are the most similar to the guess MOs.
.. c:function:: write_ao_basis .. c:function:: write_ao_basis
@ -244,7 +84,7 @@ Subroutines / functions
.. c:function:: write_geometry .. c:function:: write_geometry
@ -258,21 +98,7 @@ Subroutines / functions
.. c:function:: write_integrals
.. code:: text
subroutine write_integrals
File: :file:`write_integrals_erf.irp.f`
Saves the two-electron integrals with the :math:`erf(\mu r_{12})/r_{12}` oprerator into the EZFIO folder
.. c:function:: write_intro_gamess .. c:function:: write_intro_gamess
@ -286,7 +112,7 @@ Subroutines / functions
.. c:function:: write_mo_basis .. c:function:: write_mo_basis

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
.. _zmq: .. _zmq:
.. program:: zmq .. program:: zmq
.. default-role:: option .. default-role:: option
=== ===
zmq zmq
=== ===
@ -11,12 +11,12 @@ zmq
Definition of |ZeroMQ| sockets and messages. Definition of |ZeroMQ| sockets and messages.
Providers Providers
--------- ---------
.. c:var:: is_zmq_slave .. c:var:: is_zmq_slave
@ -29,7 +29,7 @@ Providers
If |true|, the current process is a |ZeroMQ| slave. If |true|, the current process is a |ZeroMQ| slave.
.. c:var:: qp_run_address .. c:var:: qp_run_address
@ -43,7 +43,7 @@ Providers
Address of the qp_run socket Example : tcp://130.120.229.139:12345 Address of the qp_run socket Example : tcp://130.120.229.139:12345
.. c:var:: zmq_context .. c:var:: zmq_context
@ -57,7 +57,7 @@ Providers
Context for the ZeroMQ library Context for the ZeroMQ library
.. c:var:: zmq_lock .. c:var:: zmq_lock
@ -71,7 +71,7 @@ Providers
Context for the ZeroMQ library Context for the ZeroMQ library
.. c:var:: zmq_port_start .. c:var:: zmq_port_start
@ -85,7 +85,7 @@ Providers
Address of the qp_run socket Example : tcp://130.120.229.139:12345 Address of the qp_run socket Example : tcp://130.120.229.139:12345
.. c:var:: zmq_socket_pair_inproc_address .. c:var:: zmq_socket_pair_inproc_address
@ -103,7 +103,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_socket_pull_inproc_address .. c:var:: zmq_socket_pull_inproc_address
@ -121,7 +121,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_socket_pull_tcp_address .. c:var:: zmq_socket_pull_tcp_address
@ -139,7 +139,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_socket_push_inproc_address .. c:var:: zmq_socket_push_inproc_address
@ -157,7 +157,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_socket_push_tcp_address .. c:var:: zmq_socket_push_tcp_address
@ -175,7 +175,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_socket_sub_tcp_address .. c:var:: zmq_socket_sub_tcp_address
@ -193,7 +193,7 @@ Providers
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:var:: zmq_state .. c:var:: zmq_state
@ -206,11 +206,11 @@ Providers
Threads executing work through the ZeroMQ interface Threads executing work through the ZeroMQ interface
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: add_task_to_taskserver .. c:function:: add_task_to_taskserver
@ -224,7 +224,7 @@ Subroutines / functions
Get a task from the task server Get a task from the task server
.. c:function:: connect_to_taskserver .. c:function:: connect_to_taskserver
@ -238,7 +238,7 @@ Subroutines / functions
Connect to the task server and obtain the worker ID Connect to the task server and obtain the worker ID
.. c:function:: disconnect_from_taskserver .. c:function:: disconnect_from_taskserver
@ -252,7 +252,7 @@ Subroutines / functions
Disconnect from the task server Disconnect from the task server
.. c:function:: disconnect_from_taskserver_state .. c:function:: disconnect_from_taskserver_state
@ -266,7 +266,7 @@ Subroutines / functions
Disconnect from the task server Disconnect from the task server
.. c:function:: end_parallel_job .. c:function:: end_parallel_job
@ -280,7 +280,7 @@ Subroutines / functions
End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
.. c:function:: end_zmq_pair_socket .. c:function:: end_zmq_pair_socket
@ -294,7 +294,7 @@ Subroutines / functions
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
.. c:function:: end_zmq_pull_socket .. c:function:: end_zmq_pull_socket
@ -308,7 +308,7 @@ Subroutines / functions
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
.. c:function:: end_zmq_push_socket .. c:function:: end_zmq_push_socket
@ -322,7 +322,7 @@ Subroutines / functions
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
.. c:function:: end_zmq_sub_socket .. c:function:: end_zmq_sub_socket
@ -336,7 +336,7 @@ Subroutines / functions
Terminate socket on which the results are sent. Terminate socket on which the results are sent.
.. c:function:: end_zmq_to_qp_run_socket .. c:function:: end_zmq_to_qp_run_socket
@ -350,7 +350,7 @@ Subroutines / functions
Terminate the socket from the application to qp_run Terminate the socket from the application to qp_run
.. c:function:: get_task_from_taskserver .. c:function:: get_task_from_taskserver
@ -364,7 +364,7 @@ Subroutines / functions
Get a task from the task server Get a task from the task server
.. c:function:: get_tasks_from_taskserver .. c:function:: get_tasks_from_taskserver
@ -378,7 +378,7 @@ Subroutines / functions
Get multiple tasks from the task server Get multiple tasks from the task server
.. c:function:: new_parallel_job .. c:function:: new_parallel_job
@ -392,7 +392,7 @@ Subroutines / functions
Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave' Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
.. c:function:: new_zmq_pair_socket .. c:function:: new_zmq_pair_socket
@ -406,7 +406,7 @@ Subroutines / functions
Socket on which the collector and the main communicate Socket on which the collector and the main communicate
.. c:function:: new_zmq_pull_socket .. c:function:: new_zmq_pull_socket
@ -420,7 +420,7 @@ Subroutines / functions
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
.. c:function:: new_zmq_push_socket .. c:function:: new_zmq_push_socket
@ -434,7 +434,7 @@ Subroutines / functions
Socket on which the results are sent. If thread is 1, use inproc Socket on which the results are sent. If thread is 1, use inproc
.. c:function:: new_zmq_sub_socket .. c:function:: new_zmq_sub_socket
@ -448,7 +448,7 @@ Subroutines / functions
Socket to read the state published by the Task server Socket to read the state published by the Task server
.. c:function:: new_zmq_to_qp_run_socket .. c:function:: new_zmq_to_qp_run_socket
@ -462,7 +462,7 @@ Subroutines / functions
Socket on which the qp_run process replies Socket on which the qp_run process replies
.. c:function:: reset_zmq_addresses .. c:function:: reset_zmq_addresses
@ -476,7 +476,7 @@ Subroutines / functions
Socket which pulls the results (2) Socket which pulls the results (2)
.. c:function:: switch_qp_run_to_master .. c:function:: switch_qp_run_to_master
@ -490,7 +490,7 @@ Subroutines / functions
Address of the master qp_run socket Example : tcp://130.120.229.139:12345 Address of the master qp_run socket Example : tcp://130.120.229.139:12345
.. c:function:: task_done_to_taskserver .. c:function:: task_done_to_taskserver
@ -504,7 +504,7 @@ Subroutines / functions
Get a task from the task server Get a task from the task server
.. c:function:: tasks_done_to_taskserver .. c:function:: tasks_done_to_taskserver
@ -518,7 +518,7 @@ Subroutines / functions
Get a task from the task server Get a task from the task server
.. c:function:: wait_for_next_state .. c:function:: wait_for_next_state
@ -532,7 +532,7 @@ Subroutines / functions
.. c:function:: wait_for_state .. c:function:: wait_for_state
@ -546,7 +546,7 @@ Subroutines / functions
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
.. c:function:: wait_for_states .. c:function:: wait_for_states
@ -560,7 +560,7 @@ Subroutines / functions
Wait for the ZMQ state to be ready Wait for the ZMQ state to be ready
.. c:function:: zmq_abort .. c:function:: zmq_abort
@ -574,7 +574,7 @@ Subroutines / functions
Aborts a running parallel computation Aborts a running parallel computation
.. c:function:: zmq_delete_task .. c:function:: zmq_delete_task
@ -588,7 +588,7 @@ Subroutines / functions
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull. When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
.. c:function:: zmq_delete_tasks .. c:function:: zmq_delete_tasks
@ -602,7 +602,7 @@ Subroutines / functions
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull. When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
.. c:function:: zmq_delete_tasks_async_recv .. c:function:: zmq_delete_tasks_async_recv
@ -616,7 +616,7 @@ Subroutines / functions
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull. When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
.. c:function:: zmq_delete_tasks_async_send .. c:function:: zmq_delete_tasks_async_send
@ -630,7 +630,7 @@ Subroutines / functions
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull. When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
.. c:function:: zmq_get8_dvector .. c:function:: zmq_get8_dvector
@ -644,7 +644,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler Get a float vector from the qp_run scheduler
.. c:function:: zmq_get8_ivector .. c:function:: zmq_get8_ivector
@ -658,7 +658,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_dmatrix .. c:function:: zmq_get_dmatrix
@ -672,7 +672,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_dvector .. c:function:: zmq_get_dvector
@ -686,7 +686,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_i8matrix .. c:function:: zmq_get_i8matrix
@ -700,7 +700,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_imatrix .. c:function:: zmq_get_imatrix
@ -714,7 +714,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_int .. c:function:: zmq_get_int
@ -728,7 +728,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_int_nompi .. c:function:: zmq_get_int_nompi
@ -742,7 +742,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_ivector .. c:function:: zmq_get_ivector
@ -756,7 +756,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_port .. c:function:: zmq_port
@ -770,7 +770,7 @@ Subroutines / functions
Return the value of the ZMQ port from the corresponding integer Return the value of the ZMQ port from the corresponding integer
.. c:function:: zmq_put8_dvector .. c:function:: zmq_put8_dvector
@ -784,7 +784,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler Put a float vector on the qp_run scheduler
.. c:function:: zmq_put8_ivector .. c:function:: zmq_put8_ivector
@ -798,7 +798,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler Put a vector of integers on the qp_run scheduler
.. c:function:: zmq_put_dmatrix .. c:function:: zmq_put_dmatrix
@ -812,7 +812,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_dvector .. c:function:: zmq_put_dvector
@ -826,7 +826,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_i8matrix .. c:function:: zmq_put_i8matrix
@ -840,7 +840,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_imatrix .. c:function:: zmq_put_imatrix
@ -854,7 +854,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_int .. c:function:: zmq_put_int
@ -868,7 +868,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler Put a vector of integers on the qp_run scheduler
.. c:function:: zmq_put_ivector .. c:function:: zmq_put_ivector
@ -882,7 +882,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler Put a vector of integers on the qp_run scheduler
.. c:function:: zmq_set_running .. c:function:: zmq_set_running

View File

@ -104,4 +104,12 @@ After a `read` statement there should be no comma.
Only standard Fortran is allowed : Intel or GNU extensions are forbidden. Only standard Fortran is allowed : Intel or GNU extensions are forbidden.
The name of a program should be the same as the name of the file. For example,
for the :ref:`fci` program, we have
.. code-block:: fortan
program fci
and the file is named :file:`fci.irp.f`.

File diff suppressed because it is too large Load Diff

0
docs/source/programs/.gitignore vendored Normal file
View File

View File

@ -0,0 +1,42 @@
.. _.cis.:
.. program:: cis
===
cis
===
Configuration Interaction with Single excitations.
This program takes a reference Slater determinant of ROHF-like occupancy, and performs all single excitations on top of it. Disregarding spatial symmetry, it computes the `n_states` lowest eigenstates of that CI matrix. (see :option:`determinants n_states`)
This program can be useful in many cases:
# Ground state calculation
To be sure to have the lowest |SCF| solution, perform an :ref:`.scf.` (see the :ref:`hartree_fock` module), then a :ref:`.cis.`, save the natural orbitals (see :ref:`.save_natorb.`) and re-run an :ref:`.scf.` optimization from this |MO| guess.
# Excited states calculations
The lowest excited states are much likely to be dominated by single-excitations. Therefore, running a :ref:`cis/cis` will save the `n_states` lowest states within the |CIS| space in the |EZFIO| directory, which can afterwards be used as guess wave functions for a further multi-state |FCI| calculation if :option:`determinants read_wf` is set to |true| before running the :ref:`fci/fci` executable.
If :option:`determinants s2_eig` is set to |true|, the |CIS| will only retain states having the expected |S^2| value (see :option:`determinants expected_s2`). Otherwise, the |CIS| will take the lowest :option:`determinants n_states`, whatever multiplicity they are.
# Note
To discard some orbitals, use the :ref:`qp_set_mo_class` command to specify:
* *core* orbitals which will be always doubly occupied
* *act* orbitals where an electron can be either excited from or to
* *del* orbitals which will be never occupied
File: :file:`cis/cis.irp.f`

View File

@ -0,0 +1,38 @@
.. _.cisd.:
.. program:: cisd
====
cisd
====
Configuration Interaction with Single and Double excitations.
This program takes a reference Slater determinant of ROHF-like occupancy,
and performs all single and double excitations on top of it, disregarding spatial symmetry and compute the "n_states" lowest eigenstates of that CI matrix (see :option:`determinants n_states`).
This program can be useful in many cases:
* 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 orbitals as a guess for the :c:func:`scf`.
* EXCITED STATES CALCULATIONS: the lowest excited states are much likely to be dominanted by single- or double-excitations. Therefore, running a :c:func:`cisd` will save the "n_states" lowest states within the CISD space in the EZFIO folder, which can afterward be used as guess wave functions for a further multi-state fci calculation if you specify "read_wf" = True before running the fci executable (see :option:`determinants read_wf`). Also, if you specify "s2_eig" = True, the cisd will only retain states having the good value :math:`S^2` value (see :option:`determinants expected_s2` and :option:`determinants s2_eig`). If "s2_eig" = False, it will take the lowest n_states, whatever multiplicity they are.
Note: if you would like to discard some orbitals, use :ref:`qp_set_mo_class` to specify:
* "core" orbitals which will be always doubly occupied
* "act" orbitals where an electron can be either excited from or to
* "del" orbitals which will be never occupied
File: :file:`cisd/cisd.irp.f`

View File

@ -0,0 +1,16 @@
.. _.diagonalize_h.:
.. program:: diagonalize_h
=============
diagonalize_h
=============
Program that extracts the :option:`determinants n_states` lowest states of the Hamiltonian within the set of Slater determinants stored in the EZFIO folder.
If :option:`determinants s2_eig` = True, it will retain only states
which corresponds to the desired value of :option:`determinants expected_s2`.
File: :file:`tools/diagonalize_h.irp.f`

View File

@ -0,0 +1,50 @@
.. _.fci.:
.. program:: fci
===
fci
===
Selected Full Configuration Interaction with stochastic selection and PT2 .
This program performs a CIPSI-like selected CI using a stochastic scheme for both
the selection of the important Slater determinants and the computation of the PT2 correction.
This CIPSI-like algorithm will be performed for the "n_states" lowest states of the variational space (see :option:`determinants n_det_max`)
The fci program will stop when reaching at least one the two following conditions:
* number of Slater determinant > "n_det_max" (see :option:`determinants n_det_max`)
* |PT2| < "pt2_max" (see :option:`perturbation pt2_max`)
The following other options can be of interest:
If "read_wf" = False, it starts with a ROHF-like Slater determinant as a guess wave function.
If "read_wf" = True , it starts with the wave function(s) stored in the EZFIO folder as guess wave function(s).
(see :option:`determinants read_wf`)
If "s2_eig" = True, it will systematically add all necessary Slater determinants in order
to have a pure spin wave function with an :math:`S^2` value corresponding to "expected_s2".
(see :option:`determinants s2_eig` and :option:`determinants expected_s2`)
For excited states calculations, it is recommended to start with a :c:func:`cis` or :c:func:`cisd` guess wave functions
for the "n_states", and to set "s2_eig" = True.
File: :file:`fci/fci.irp.f`

View File

@ -0,0 +1,22 @@
.. _.fcidump.:
.. program:: fcidump
=======
fcidump
=======
Produce a regular FCIDUMP file from the |MOs| stored in the |EZFIO| folder.
To specify an active space, the class of the mos have to set in the |EZFIO| folder (see :ref:`qp_set_mo_class`).
The fcidump program supports 3 types of MO_class :
* the "core" orbitals which are always doubly occupied in the calculation
* the "del" orbitals that are never occupied in the calculation
* the "act" orbitals that will be occupied by a varying number of electrons
File: :file:`tools/fcidump.irp.f`

View File

@ -0,0 +1,16 @@
.. _.four_idx_transform.:
.. program:: four_idx_transform
==================
four_idx_transform
==================
4-index transformation of two-electron integrals from |AO| to |MO| integrals.
This program will compute the two-electron integrals on the |MO| basis and store it into the |EZFIO| folder.
This program can be useful if the AO --> MO transformation is an expensive step by itself.
File: :file:`tools/four_idx_transform.irp.f`

View File

@ -0,0 +1,12 @@
.. _.ks_scf.:
.. program:: ks_scf
======
ks_scf
======
Produce `Kohn_Sham` MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy optional: mo_basis.mo_coef
File: :file:`kohn_sham/ks_scf.irp.f`

View File

@ -0,0 +1,12 @@
.. _.molden.:
.. program:: molden
======
molden
======
Produce a Molden file
File: :file:`tools/molden.irp.f`

View File

@ -0,0 +1,18 @@
.. _.print_e_conv.:
.. program:: print_e_conv
============
print_e_conv
============
program that prints in a human readable format the convergence of the CIPSI algorithm.
for all istate, this program produces
* a file "EZFIO.istate.conv" containing the variational and var+PT2 energies as a function of N_det
* for istate > 1, a file EZFIO.istate.delta_e.conv containing the energy difference (both var and var+PT2) with the ground state as a function of N_det
File: :file:`tools/print_e_conv.irp.f`

View File

@ -0,0 +1,18 @@
.. _.print_wf.:
.. program:: print_wf
========
print_wf
========
Print the ground state wave function stored in the |EZFIO| folder in the intermediate normalization.
It also prints a lot of information regarding the excitation operators from the reference determinant
and a first-order perturbative analysis of the wave function.
If the wave function strongly deviates from the first-order analysis, something funny is going on :)
File: :file:`tools/print_wf.irp.f`

View File

@ -0,0 +1,18 @@
.. _.pt2.:
.. program:: pt2
===
pt2
===
Second order perturbative correction to the wave function contained in the EZFIO directory.
This programs runs the stochastic PT2 correction on all "n_states" wave function stored in the EZFIO folder (see :option:`determinant n_states`).
The option for the PT2 correction are the "pt2_relative_error" which is the relative stochastic
error on the PT2 to reach before stopping the stochastic sampling. (see :option:`perturbation pt2_relative_error`)
File: :file:`fci/pt2.irp.f`

View File

@ -0,0 +1,12 @@
.. _.rs_ks_scf.:
.. program:: rs_ks_scf
=========
rs_ks_scf
=========
Produce `Range_separated_Kohn_Sham` MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy optional: mo_basis.mo_coef
File: :file:`kohn_sham_rs/rs_ks_scf.irp.f`

View File

@ -0,0 +1,20 @@
.. _.save_natorb.:
.. program:: save_natorb
===========
save_natorb
===========
Save natural MOs into the EZFIO
This program reads the wave function stored in the EZFIO folder,
extracts the corresponding natural orbitals and set them as the new MOs
If this is a multi-state calculation, the density matrix that produces the natural orbitals
is obtained from a state-averaged of the density matrices of each state with the corresponding state_average_weight (see the doc of state_average_weight).
File: :file:`tools/save_natorb.irp.f`

View File

@ -0,0 +1,16 @@
.. _.save_one_e_dm.:
.. program:: save_one_e_dm
=============
save_one_e_dm
=============
programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read this density in a further calculation.
This can be used to perform damping on the density in RS-DFT calculation (see the density_for_dft module).
File: :file:`tools/save_one_e_dm.irp.f`

View File

@ -0,0 +1,18 @@
.. _.save_ortho_mos.:
.. program:: save_ortho_mos
==============
save_ortho_mos
==============
Save orthonormalized MOs in the EZFIO.
This program reads the current MOs, computes the corresponding overlap matrix in the MO basis
and perform a Lowdin orthonormalization : :math:`MO_{new} = S^{-1/2} MO_{guess}`.
Thanks to the Lowdin orthonormalization, the new MOs are the most similar to the guess MOs.
File: :file:`tools/save_ortho_mos.irp.f`

View File

@ -0,0 +1,18 @@
.. _.scf.:
.. program:: scf
===
scf
===
Produce `Hartree_Fock` |MOs|
output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ
output: hartree_fock.energy
optional: mo_basis.mo_coef
File: :file:`hartree_fock/scf.irp.f`

View File

@ -0,0 +1,12 @@
.. _.write_integrals_erf.:
.. program:: write_integrals_erf
===================
write_integrals_erf
===================
Saves the two-electron integrals with the :math:`erf(\mu r_{12})/r_{12}` oprerator into the EZFIO folder
File: :file:`tools/write_integrals_erf.irp.f`

View File

@ -9,3 +9,11 @@ Index of commands
qp_* qp_*
Index of programs
=================
.. toctree::
:maxdepth: 1
:glob:
/programs/*

View File

@ -112,6 +112,7 @@ function qp()
"prompt") "prompt")
shift shift
python2 $QP_ROOT/scripts/hello.py
function _check_ezfio() { function _check_ezfio() {
if [[ -d ${EZFIO_FILE} ]] ; then if [[ -d ${EZFIO_FILE} ]] ; then
printf "\e[0;32m|${EZFIO_FILE}>\e[m" printf "\e[0;32m|${EZFIO_FILE}>\e[m"
@ -240,7 +241,7 @@ _qp_Complete()
then then
case "${prev2}" in case "${prev2}" in
"set"|has|get) set|has|get)
if [[ ${prev} == "qp" ]] ; then if [[ ${prev} == "qp" ]] ; then
COMPREPLY=( $(compgen -W "plugins set set_frozen_core set_mo_class" -- $cur ) ) COMPREPLY=( $(compgen -W "plugins set set_frozen_core set_mo_class" -- $cur ) )
elif [[ ! -d ${EZFIO_FILE}/${prev} ]] ; then elif [[ ! -d ${EZFIO_FILE}/${prev} ]] ; then
@ -266,7 +267,7 @@ _qp_Complete()
return 0 return 0
;; ;;
set|has|get) set|has|get)
COMPREPLY=( $(compgen -d "$(cd ${EZFIO_FILE} ; \ls -d */ | sed 's|/||g')" -- $cur ) ) COMPREPLY=( $(compgen -W "$(cd ${EZFIO_FILE} ; \ls -d */ | sed 's|/||g')" -- $cur ) )
return 0 return 0
;; ;;
edit) edit)

71
man/cis.1 Normal file
View File

@ -0,0 +1,71 @@
.\" Man page generated from reStructuredText.
.
.TH "CIS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
cis \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.INDENT 0.0
.INDENT 3.5
Configuration Interaction with Single excitations.
.sp
This program takes a reference Slater determinant of ROHF\-like occupancy, and performs all single excitations on top of it. Disregarding spatial symmetry, it computes the \fIn_states\fP lowest eigenstates of that CI matrix. (see \fBdeterminants n_states\fP)
.sp
This program can be useful in many cases:
.sp
# Ground state calculation
.sp
To be sure to have the lowest SCF solution, perform an \&.scf. (see the hartree_fock module), then a \fI\%cis\fP, save the natural orbitals (see \&.save_natorb.) and re\-run an \&.scf. optimization from this MO guess.
.sp
# Excited states calculations
.sp
The lowest excited states are much likely to be dominated by single\-excitations. Therefore, running a cis/cis will save the \fIn_states\fP lowest states within the CIS space in the \fI\%EZFIO\fP directory, which can afterwards be used as guess wave functions for a further multi\-state FCI calculation if \fBdeterminants read_wf\fP is set to \fBtrue\fP before running the fci/fci executable.
.sp
If \fBdeterminants s2_eig\fP is set to \fBtrue\fP, the CIS will only retain states having the expected \ewidehat{S^2} value (see \fBdeterminants expected_s2\fP). Otherwise, the CIS will take the lowest \fBdeterminants n_states\fP, whatever multiplicity they are.
.sp
# Note
.sp
To discard some orbitals, use the qp_set_mo_class command to specify:
.INDENT 0.0
.IP \(bu 2
\fIcore\fP orbitals which will be always doubly occupied
.IP \(bu 2
\fIact\fP orbitals where an electron can be either excited from or to
.IP \(bu 2
\fIdel\fP orbitals which will be never occupied
.UNINDENT
.UNINDENT
.UNINDENT
.sp
File: \fBcis/cis.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

67
man/cisd.1 Normal file
View File

@ -0,0 +1,67 @@
.\" Man page generated from reStructuredText.
.
.TH "CISD" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
cisd \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Configuration Interaction with Single and Double excitations.
.INDENT 0.0
.INDENT 3.5
This program takes a reference Slater determinant of ROHF\-like occupancy,
.sp
and performs all single and double excitations on top of it, disregarding spatial symmetry and compute the “n_states” lowest eigenstates of that CI matrix (see \fBdeterminants n_states\fP).
.sp
This program can be useful in many cases:
.INDENT 0.0
.IP \(bu 2
GROUND STATE CALCULATION: if even after a \fBcis()\fP calculation, natural orbitals (see \fBsave_natorb()\fP) and then \fBscf()\fP optimization, you are not sure to have the lowest scf solution, do the same strategy with the \fBcisd()\fP executable instead of the \fBcis()\fP\ exectuable to generate the natural orbitals as a guess for the \fBscf()\fP\&.
.IP \(bu 2
EXCITED STATES CALCULATIONS: the lowest excited states are much likely to be dominanted by single\- or double\-excitations. Therefore, running a \fBcisd()\fP will save the “n_states” lowest states within the CISD space in the EZFIO folder, which can afterward be used as guess wave functions for a further multi\-state fci calculation if you specify “read_wf” = True before running the fci executable (see \fBdeterminants read_wf\fP). Also, if you specify “s2_eig” = True, the cisd will only retain states having the good value S^2 value (see \fBdeterminants expected_s2\fP and \fBdeterminants s2_eig\fP). If “s2_eig” = False, it will take the lowest n_states, whatever multiplicity they are.
.UNINDENT
.sp
Note: if you would like to discard some orbitals, use qp_set_mo_class to specify:
.INDENT 0.0
.IP \(bu 2
“core” orbitals which will be always doubly occupied
.IP \(bu 2
“act” orbitals where an electron can be either excited from or to
.IP \(bu 2
“del” orbitals which will be never occupied
.UNINDENT
.UNINDENT
.UNINDENT
.sp
File: \fBcisd/cisd.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "CONFIGURE" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "CONFIGURE" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
configure \- | Quantum Package > configure \- | Quantum Package >
. .

49
man/diagonalize_h.1 Normal file
View File

@ -0,0 +1,49 @@
.\" Man page generated from reStructuredText.
.
.TH "DIAGONALIZE_H" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
diagonalize_h \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Program that extracts the \fBdeterminants n_states\fP lowest states of the Hamiltonian within the set of Slater determinants stored in the EZFIO folder.
.INDENT 0.0
.INDENT 3.5
If \fBdeterminants s2_eig\fP = True, it will retain only states
.sp
which corresponds to the desired value of \fBdeterminants expected_s2\fP\&.
.UNINDENT
.UNINDENT
.sp
File: \fBtools/diagonalize_h.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "EXCITED_STATES" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "EXCITED_STATES" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
excited_states \- | Quantum Package > excited_states \- | Quantum Package >
. .

77
man/fci.1 Normal file
View File

@ -0,0 +1,77 @@
.\" Man page generated from reStructuredText.
.
.TH "FCI" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
fci \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Selected Full Configuration Interaction with stochastic selection and PT2 .
.INDENT 0.0
.INDENT 3.5
This program performs a CIPSI\-like selected CI using a stochastic scheme for both
.sp
the selection of the important Slater determinants and the computation of the PT2 correction.
.sp
This CIPSI\-like algorithm will be performed for the “n_states” lowest states of the variational space (see \fBdeterminants n_det_max\fP)
.sp
The fci program will stop when reaching at least one the two following conditions:
.INDENT 0.0
.IP \(bu 2
number of Slater determinant > “n_det_max” (see \fBdeterminants n_det_max\fP)
.IP \(bu 2
PT2 < “pt2_max” (see \fBperturbation pt2_max\fP)
.UNINDENT
.sp
The following other options can be of interest:
.sp
If “read_wf” = False, it starts with a ROHF\-like Slater determinant as a guess wave function.
.sp
If “read_wf” = True , it starts with the wave function(s) stored in the EZFIO folder as guess wave function(s).
.sp
(see \fBdeterminants read_wf\fP)
.sp
If “s2_eig” = True, it will systematically add all necessary Slater determinants in order
.sp
to have a pure spin wave function with an S^2 value corresponding to “expected_s2”.
.sp
(see \fBdeterminants s2_eig\fP and \fBdeterminants expected_s2\fP)
.sp
For excited states calculations, it is recommended to start with a \fBcis()\fP or \fBcisd()\fP guess wave functions
.sp
for the “n_states”, and to set “s2_eig” = True.
.UNINDENT
.UNINDENT
.sp
File: \fBfci/fci.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

57
man/fcidump.1 Normal file
View File

@ -0,0 +1,57 @@
.\" Man page generated from reStructuredText.
.
.TH "FCIDUMP" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
fcidump \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Produce a regular FCIDUMP file from the MOs stored in the \fI\%EZFIO\fP folder.
.INDENT 0.0
.INDENT 3.5
To specify an active space, the class of the mos have to set in the \fI\%EZFIO\fP folder (see qp_set_mo_class).
.sp
The fcidump program supports 3 types of MO_class :
.INDENT 0.0
.IP \(bu 2
the “core” orbitals which are always doubly occupied in the calculation
.IP \(bu 2
the “del” orbitals that are never occupied in the calculation
.IP \(bu 2
the “act” orbitals that will be occupied by a varying number of electrons
.UNINDENT
.UNINDENT
.UNINDENT
.sp
File: \fBtools/fcidump.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

49
man/four_idx_transform.1 Normal file
View File

@ -0,0 +1,49 @@
.\" Man page generated from reStructuredText.
.
.TH "FOUR_IDX_TRANSFORM" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
four_idx_transform \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
4\-index transformation of two\-electron integrals from AO to MO integrals.
.INDENT 0.0
.INDENT 3.5
This program will compute the two\-electron integrals on the MO basis and store it into the \fI\%EZFIO\fP folder.
.sp
This program can be useful if the AO > MO transformation is an expensive step by itself.
.UNINDENT
.UNINDENT
.sp
File: \fBtools/four_idx_transform.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "INTERFACES" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "INTERFACES" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
interfaces \- | Quantum Package > interfaces \- | Quantum Package >
. .

42
man/ks_scf.1 Normal file
View File

@ -0,0 +1,42 @@
.\" Man page generated from reStructuredText.
.
.TH "KS_SCF" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
ks_scf \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Produce \fIKohn_Sham\fP MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy optional: mo_basis.mo_coef
.sp
File: \fBkohn_sham/ks_scf.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

42
man/molden.1 Normal file
View File

@ -0,0 +1,42 @@
.\" Man page generated from reStructuredText.
.
.TH "MOLDEN" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
molden \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Produce a Molden file
.sp
File: \fBtools/molden.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "NATURAL_ORBITALS" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "NATURAL_ORBITALS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
natural_orbitals \- | Quantum Package > natural_orbitals \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PLUGINS" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "PLUGINS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
plugins \- | Quantum Package > plugins \- | Quantum Package >
. .

53
man/print_e_conv.1 Normal file
View File

@ -0,0 +1,53 @@
.\" Man page generated from reStructuredText.
.
.TH "PRINT_E_CONV" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
print_e_conv \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
program that prints in a human readable format the convergence of the CIPSI algorithm.
.INDENT 0.0
.INDENT 3.5
for all istate, this program produces
.INDENT 0.0
.IP \(bu 2
a file “EZFIO.istate.conv” containing the variational and var+PT2 energies as a function of N_det
.IP \(bu 2
for istate > 1, a file EZFIO.istate.delta_e.conv containing the energy difference (both var and var+PT2) with the ground state as a function of N_det
.UNINDENT
.UNINDENT
.UNINDENT
.sp
File: \fBtools/print_e_conv.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

51
man/print_wf.1 Normal file
View File

@ -0,0 +1,51 @@
.\" Man page generated from reStructuredText.
.
.TH "PRINT_WF" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
print_wf \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Print the ground state wave function stored in the \fI\%EZFIO\fP folder in the intermediate normalization.
.INDENT 0.0
.INDENT 3.5
It also prints a lot of information regarding the excitation operators from the reference determinant
.sp
and a first\-order perturbative analysis of the wave function.
.sp
If the wave function strongly deviates from the first\-order analysis, something funny is going on :)
.UNINDENT
.UNINDENT
.sp
File: \fBtools/print_wf.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

83
man/printing.1 Normal file
View File

@ -0,0 +1,83 @@
.\" Man page generated from reStructuredText.
.
.TH "PRINTING" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
printing \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Once obtained the near FCI energy, one can also take a closer look at the wave function stored in the \fI\%EZFIO\fP database.
If the wave function contains less than 10^4 determinants, you can directly read it with the
qp_edit command. Just run
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_edit file.ezfio
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\fBIMPORTANT:\fP
.INDENT 0.0
.INDENT 3.5
The qp_edit mode virtually makes human\-friendly the architecture of the \fI\%EZFIO\fP database
through \fIvim\fP\-like editor.
.UNINDENT
.UNINDENT
.sp
Then, look for the word “hand” when you are in the qp_edit mode. If the research is negative,
then it means that the wave function stored in the \fI\%EZFIO\fP database is too large to be edited
interactively in qp_edit mode. An alternative is to use the \fBprint_wf\fP command:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_run print_wf file.ezfio | tee file.ezfio.fci_natorb.wf
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
This program will, by default, print out the first 10^4 determinants whatever the size of the wave function stored in the \fI\%EZFIO\fP folder. If you want to change the number of printed Slater determinants, just change the \fBdeterminants n_det_print_wf\fP keyword using the qp_edit tool.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The documentation of the print_wf program.
.UNINDENT
.UNINDENT
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

51
man/pt2.1 Normal file
View File

@ -0,0 +1,51 @@
.\" Man page generated from reStructuredText.
.
.TH "PT2" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
pt2 \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
Second order perturbative correction to the wave function contained in the EZFIO directory.
.INDENT 0.0
.INDENT 3.5
This programs runs the stochastic PT2 correction on all “n_states” wave function stored in the EZFIO folder (see \fBdeterminant n_states\fP).
.sp
The option for the PT2 correction are the “pt2_relative_error” which is the relative stochastic
.sp
error on the PT2 to reach before stopping the stochastic sampling. (see \fBperturbation pt2_relative_error\fP)
.UNINDENT
.UNINDENT
.sp
File: \fBfci/pt2.irp.f\fP
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_convert_output_to_ezfio \- | Quantum Package > qp_convert_output_to_ezfio \- | Quantum Package >
. .
@ -32,31 +32,35 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.. ..
.sp .sp
This Python script uses the \fI\%resultsFile\fP Python library to gather the This Python script uses the \fI\%resultsFile\fP Python library to gather the
geometry, AOs and MOs from output files of \fI\%GAMESS\fP or Gaussian, and geometry, AOs and MOs from output files of \fI\%GAMESS\fP or Gaussian, and puts
puts this data in an \fI\%EZFIO\fP database. Some constraints are necessary in the this data in an \fI\%EZFIO\fP database. Some constraints are necessary in the output
output file : the run needs to be a single point HF, DFT or CAS SCF\&. file : the run needs to be a single point HF, DFT or CAS SCF\&.
.SH USAGE .SH USAGE
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
.nf .nf
.ft C .ft C
qp_convert_output_to_ezfio <FILE.out> [\-o <EZFIO_DIRECTORY>] qp_convert_output_to_ezfio [\-o EZFIO_DIR] FILE
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-o <EZFIO_DIRECTORY> .B \-o, \-\-output=EZFIO_DIR
Renames the \fI\%EZFIO\fP directory. If this option is not present, the default Renames the \fI\%EZFIO\fP directory. If this option is not present, the default
name fill be \fB<FILE.out>.ezfio\fP name fill be \fBFILE.ezfio\fP
.UNINDENT .UNINDENT
.sp .sp
\fBNOTE:\fP \fBNOTE:\fP
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
The following keywords are necessary for Gaussian All the parameters of the wave functgion need to be presente in the output
file : complete description of the AO basis set, full set of molecular
orbitals, etc.
.sp
The following keywords are necessary for GAU$$IAN
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_CREATE_EZFIO_FROM_XYZ" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_CREATE_EZFIO_FROM_XYZ" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_create_ezfio_from_xyz \- | Quantum Package > qp_create_ezfio_from_xyz \- | Quantum Package >
. .
@ -39,17 +39,20 @@ This command creates an \fI\%EZFIO\fP directory from a standard \fIxyz\fP file o
.sp .sp
.nf .nf
.ft C .ft C
qp_create_ezfio_from_xyz [FLAGS] (<xyz_file> | <zmt_file>) qp_create_ezfio_from_xyz [\-a] \-b <string> [\-c <int>] [\-d <float>]
Flags : [\-h] [\-m <int>] [\-o EZFIO_DIR] [\-p <string>] [\-x] [\-\-] FILE
\-b [\-au] [\-c int] [\-cart] [\-d float]
[\-m int] [\-o file] [\-p string] [\-help]
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-b <basis_name> .B \-a, \-\-au
If present, input geometry is in atomic units.
.UNINDENT
.INDENT 0.0
.TP
.B \-b, \-\-basis=<string>
Name of basis set. The basis set is defined as a single string if all the Name of basis set. The basis set is defined as a single string if all the
atoms are taken from the same basis set, otherwise specific elements can be atoms are taken from the same basis set, otherwise specific elements can be
defined as follows: defined as follows:
@ -66,46 +69,47 @@ defined as follows:
.UNINDENT .UNINDENT
.sp .sp
By default, the basis set is obtained from the local database of the \fIQuantum Package\fP\&. By default, the basis set is obtained from the local database of the \fIQuantum Package\fP\&.
This option is mandatory.
.sp
If \fB<string>\fP is set to \fBshow\fP, the list of all available basis sets is
displayed.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-au .B \-c, \-\-charge=<int>
If present, input geometry is in atomic units.
.UNINDENT
.INDENT 0.0
.TP
.B \-c <float>
Total charge of the molecule. Default is 0. Total charge of the molecule. Default is 0.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-cart .B \-d, \-\-dummy=<float>
Compute AOs in the Cartesian basis set (6d, 10f, …) Add dummy atoms (X) between atoms when the distance between two atoms
is less than x \etimes \esum R_\emathrm{cov}, the covalent radii
of the atoms. The default is x=0, so no dummy atom is added.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-d <float> .B \-h, \-\-help
Add dummy atoms. x * (covalent radii of the atoms) Print the help text and exit
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-m <int> .B \-m, \-\-multiplicity=<int>
Spin multiplicity (2S+1) of the molecule. Default is 1. Spin multiplicity 2S+1 of the molecule. Default is 1.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-o <EZFIO_DIRECTORY> .B \-o, \-\-output=EZFIO_DIR
Name of the created \fI\%EZFIO\fP directory. Name of the created \fI\%EZFIO\fP directory.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-p <string> .B \-p <string>, \-\-pseudo=<string>
Name of the pseudo\-potential Name of the pseudo\-potential. Follows the same conventions as the basis set.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-help, \-? .B \-x, \-\-cart
Print the help text and exit Compute AOs in the Cartesian basis set (6d, 10f, …)
.UNINDENT .UNINDENT
.SH USING CUSTOM ATOMIC BASIS SETS .SH USING CUSTOM ATOMIC BASIS SETS
.sp .sp
@ -124,8 +128,8 @@ qp_create_ezfio_from_xyz \-b custom.basis molecule.xyz
.UNINDENT .UNINDENT
.sp .sp
Basis set files should be given in \fI\%GAMESS\fP format, where the full names of the Basis set files should be given in \fI\%GAMESS\fP format, where the full names of the
atoms are given, and the basis sets for each element are separated by a blank line. atoms are given, and the basis sets for each element are separated by a blank
Here is an example line. Here is an example
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
@ -177,10 +181,10 @@ D 1
.SH USING CUSTOM PSEUDO-POTENTIALS .SH USING CUSTOM PSEUDO-POTENTIALS
.sp .sp
As for the basis set, if a file with the same name as the pseudo\-potential As for the basis set, if a file with the same name as the pseudo\-potential
exists, this file will be read. exists, this file will be read. For example, if the file containing the custom
For example, if the file containing the custom pseudo\-potential is named pseudo\-potential is named \fBcustom.pseudo\fP, the basis set is named
\fBcustom.pseudo\fP, the basis set is named \fBcustom.basis\fP, and the \fIxyz\fP \fBcustom.basis\fP, and the \fIxyz\fP geometry is in \fBmolecule.xyz\fP, the following
geometry is in \fBmolecule.xyz\fP, the following command should be used command should be used
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
@ -193,12 +197,11 @@ qp_create_ezfio_from_xyz \-b custom.basis \-p custom.pseudo molecule.xyz
.UNINDENT .UNINDENT
.sp .sp
Pseudo\-potential files should be given in a format very close to \fI\%GAMESS\fP Pseudo\-potential files should be given in a format very close to \fI\%GAMESS\fP
format. The first line should be formatted as \fB%s GEN %d %d\fP where the format. The first line should be formatted as \fB%s GEN %d %d\fP where the first
first string is the chemical symbol, the first integer is the number of string is the chemical symbol, the first integer is the number of core
core electrons to be removed and the second integer is LMAX+1 as in \fI\%GAMESS\fP electrons to be removed and the second integer is LMAX+1 as in \fI\%GAMESS\fP format.
format. The pseudo\-potential for each element are separated by a blank line. Here is
The pseudo\-potential for each element are separated by a blank line. an example
Here is an example
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_EDIT" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_EDIT" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_edit \- | Quantum Package > qp_edit \- | Quantum Package >
. .
@ -32,16 +32,17 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.. ..
.sp .sp
This command reads the content of the \fI\%EZFIO\fP directory and creates a temporary This command reads the content of the \fI\%EZFIO\fP directory and creates a temporary
file containing the data. The data is presented as a \fIReStructured Text\fP (rst) file containing the data. The data is presented as a \fIReStructured Text\fP (rst)
document, where each section corresponds to the corresponding \fIQuantum Package\fP module. document, where each section corresponds to the corresponding \fIQuantum Package\fP module. The
The content of the file can be modified to change the input parameters. When content of the file can be modified to change the input parameters. When the
the text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory. text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory.
.sp .sp
\fBNOTE:\fP \fBNOTE:\fP
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
The text editor which will be opened is defined by the \fBEDITOR\fP The text editor which will be opened is defined by the \fBEDITOR\fP
environment variable. environment variable. If this variable is not set, the \fBvi\fP
text editor will be used by default.
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
@ -58,43 +59,46 @@ determinants are not displayed.
.sp .sp
.nf .nf
.ft C .ft C
qp_edit [FLAGS] <EZFIO_DIRECTORY> qp_edit [\-c] [\-h] [\-n <int>] [\-s <range>] [\-\-] EZFIO_DIR
Flags :
[\-c] [\-ndet int]
[\-state int] [\-help]
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-c .B \-c, \-\-check
Checks the input data Checks the input data
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-ndet <int> .B \-h, \-\-help
Print the help text and exits
.UNINDENT
.INDENT 0.0
.TP
.B \-n, \-\-ndet=<int>
Truncates the wavefunction to the target number of determinants Truncates the wavefunction to the target number of determinants
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-state <int> .B \-s, \-\-state=<range>
Pick the target state as a new wavefunction. Select the states to extract from the \fI\%EZFIO\fP directory, using the same conventions
as qp_set_mo_class\&. See example below.
.UNINDENT .UNINDENT
.SH EXAMPLE
.INDENT 0.0 .INDENT 0.0
.TP .INDENT 3.5
.B \-help .sp
Print the help text and exits .nf
.ft C
qp_edit \-\-state="[1,3\-5]" test.ezfio
.ft P
.fi
.UNINDENT
.UNINDENT .UNINDENT
.sp .sp
Here is a short list of important control parameters : Removes all states except states 1,3,4 and 5 from \fBtest.ezfio\fP\&. The
.INDENT 0.0 resulting \fI\%EZFIO\fP directory has 4 states.
.TP
.B read_wf
If \fBfalse\fP, initialize the calculation with a single\-determinant wave
function. If \fBtrue\fP, initialize the calculation with the wave function stored
in the \fI\%EZFIO\fP directory.
.UNINDENT
.SH AUTHOR .SH AUTHOR
A. Scemama, E. Giner A. Scemama, E. Giner
.SH COPYRIGHT .SH COPYRIGHT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_EXPORT_AS_TGZ" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_EXPORT_AS_TGZ" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_export_as_tgz \- | Quantum Package > qp_export_as_tgz \- | Quantum Package >
. .
@ -31,28 +31,34 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.sp .sp
In some HPC facilities, the access to the internet is limited for security reasons. In some HPC facilities, the access to the internet is limited for security
In such an environment, the installation of \fIQuantum Package\fP is sometimes very painful because reasons. In such an environment, the installation of \fIQuantum Package\fP is sometimes very
the OCaml compiler and the libraries cant be installed by a non\-root user. painful because the OCaml compiler and the libraries cant be installed by a
non\-root user.
.sp .sp
This command creates a self\-contained binary distribution in the form of a \fItar.gz\fP file This command creates a self\-contained binary distribution in the form of a
that can be copied on another machine. \fItar.gz\fP file that can be copied on another machine.
.SH USAGE .SH USAGE
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
.nf .nf
.ft C .ft C
qp_export_as_tgz qp_export_as_tgz [\-h|\-\-help]
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0
.TP
.B \-h, \-\-help
Prints the help message
.UNINDENT
.sp .sp
\fBNOTE:\fP \fBNOTE:\fP
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
There can be conflicts due to the version of Glibc. The machine on which \fIQuantum Package\fP is There can be conflicts due to the version of glibc. The machine on which \fIQuantum Package\fP is
compiled should be the oldest one. compiled should be the oldest one.
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_PLUGINS" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_PLUGINS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_plugins \- | Quantum Package > qp_plugins \- | Quantum Package >
. .
@ -31,20 +31,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.sp .sp
This command deals with all external plugins of \fIQuantum Package\fP\&. Plugin repositories can This command deals with all external plugins of \fIQuantum Package\fP\&. Plugin repositories can
be downloaded, and the plugins in these repositories can be be downloaded, and the plugins in these repositories can be
installed/uninstalled of created. installed/uninstalled or created.
.SH USAGE .SH USAGE
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
.nf .nf
.ft C .ft C
qp_plugins list [ \-i | \-u | \-q ] qp_plugins list [\-i] [\-u] [\-q]
qp_plugins download <url> qp_plugins download <url>
qp_plugins install <name>... qp_plugins install <name>...
qp_plugins uninstall <name> qp_plugins uninstall <name>
qp_plugins create \-n <name> [\-r <repository>] [<needed_modules>...] qp_plugins create \-n <name> [\-r <repo>] [<needed_modules>...]
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
@ -56,17 +56,17 @@ List all the available plugins.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-i .B \-i, \-\-installed
List all the \fIinstalled\fP plugins. List all the \fIinstalled\fP plugins.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-u .B \-u, \-\-uninstalled
List all the \fIuninstalled\fP plugins. List all the \fIuninstalled\fP plugins.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-q .B \-q, \-\-repositories
List all the downloaded repositories. List all the downloaded repositories.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
@ -93,19 +93,21 @@ Uninstall the plugin \fBplugin_name\fP\&.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-n <plugin_name> .B \-n, \-\-name=<plugin_name>
Create a new plugin named \fBplugin_name\fP (in local repository by default). Create a new plugin named \fBplugin_name\fP (in local repository by default).
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-r <repository> .B \-r, \-\-repository=<repo>
Specify in which repository the new plugin will be created. Specify in which repository the new plugin will be created.
.UNINDENT .UNINDENT
.SH EXAMPLE .SH EXAMPLE
.sp .sp
Let us download, install and compile some specific external plugins from \fI\%https://gitlab.com/eginer/qp_plugins_eginer\fP . Let us download, install and compile some specific external plugins from
\fI\%https://gitlab.com/eginer/qp_plugins_eginer\fP .
.sp .sp
First, download the git repo associated to these plugins. To do so, first go to the \fIplugins\fP directory in the \fIQuantum Package\fP and execute: First, download the git repo associated to these plugins. To do so, first go
to the \fIplugins\fP directory in the \fIQuantum Package\fP and execute:
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
@ -117,8 +119,8 @@ qp_plugins download https://gitlab.com/eginer/qp_plugins_eginer
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
This will create in the directory \fIplugins\fP a local copy of the git repo located at the URL you indicated. This will create in the directory \fIplugins\fP a local copy of the git repo
Then, go in \fIqp_plugins_eginer/stable/\fP located at the URL you indicated. Then, go in \fIqp_plugins_eginer/stable/\fP
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
@ -130,8 +132,9 @@ cd qp_plugins_eginer/stable/
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
In the directory \fIstable\fP, there are many directories which all correspond to a specific plugin that have been developed In the directory \fIstable\fP, there are many directories which all correspond to a
by the person in charge of the git repo. All these plugins might use some global variables and routines contained specific plugin that have been developed by the person in charge of the git
repo. All these plugins might use some global variables and routines contained
in the core modules of the \fIQuantum Package\fP\&. in the core modules of the \fIQuantum Package\fP\&.
.sp .sp
Now let us install the plugin \fIrsdft_cipsi\fP: Now let us install the plugin \fIrsdft_cipsi\fP:
@ -146,10 +149,13 @@ qp_plugins install rsdft_cipsi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
This will link this directory to the \fIQuantum Package\fP which means that when the code will be compiled, this plugin will be compiled to and therefore This will link this directory to the \fIQuantum Package\fP which means that when the code will
all the executables/scripts/input keywords contained in this module will be available as if there were part of the core of the \fIQuantum Package\fP\&. be compiled, this plugin will be compiled to and therefore all the
executables/scripts/input keywords contained in this module will be available
as if there were part of the core of the \fIQuantum Package\fP\&.
.sp .sp
Then, to compile the new plugin, just recompile the \fIQuantum Package\fP as usual by going at the root of the \fIQuantum Package\fP directory: Then, to compile the new plugin, just recompile the \fIQuantum Package\fP as usual by going at
the root of the \fIQuantum Package\fP directory:
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
.sp .sp
@ -162,8 +168,9 @@ ninja
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
Then, if you go back to the plugin directory you just installed, you should see all the executables/scripts which have been created and Finally, if you go back to the plugin directory you just installed, you should see
which are now available with the \fIqp_run\fP command. all the executables/scripts which have been created and which are now available
with the \fIqp_run\fP command.
.SH AUTHOR .SH AUTHOR
A. Scemama, E. Giner A. Scemama, E. Giner
.SH COPYRIGHT .SH COPYRIGHT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_RUN" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_RUN" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_run \- | Quantum Package > qp_run \- | Quantum Package >
. .
@ -38,8 +38,7 @@ Command used to run a calculation.
.sp .sp
.nf .nf
.ft C .ft C
qp_run [\-h|\-\-help] [\-p <string>|\-\-prefix=<string>] [\-s|\-\-slave] [\-\-] qp_run [\-h] [\-p <string>] [\-s] [\-\-] PROGRAM EZFIO_DIR
PROGRAM EZFIO_DIR
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_SET_FROZEN_CORE" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_SET_FROZEN_CORE" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_set_frozen_core \- | Quantum Package > qp_set_frozen_core \- | Quantum Package >
. .
@ -46,7 +46,7 @@ zero.
.sp .sp
.nf .nf
.ft C .ft C
qp_set_frozen_core [\-q] <EZFIO_DIRECTORY> qp_set_frozen_core [\-q] EZFIO_DIR
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_SET_MO_CLASS" "1" "Jan 14, 2019" "2.0" "Quantum Package" .TH "QP_SET_MO_CLASS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_set_mo_class \- | Quantum Package > qp_set_mo_class \- | Quantum Package >
. .
@ -67,49 +67,42 @@ can be used.
.sp .sp
.nf .nf
.ft C .ft C
qp_set_mo_class [FLAGS] <EZFIO_DIRECTORY> qp_set_mo_class [\-a <range>] [\-c <range>] [\-d <range>] [\-h] [\-i <range>]
Flags: [\-q] [\-v <range>] [\-\-] EZFIO_DIR
[\-act range] [\-core range] [\-del range]
[\-inact range] [\-q] [\-virt range]
[\-help]
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-act <range> .B \-a, \-\-act=<range>
Range of active orbitals Range of active orbitals
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-core <range> .B \-c, \-\-core=<range>
Range of core orbitals Range of core orbitals
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-del <range> .B \-d, \-\-del=<range>
Range of deleted orbitals Range of deleted orbitals
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-inact <range> .B \-i, \-\-inact=<range>
Range of inactive orbitals Range of inactive orbitals
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-q .B \-q, \-\-query
Query: print the current masks Print the MO classes
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-virt <range> .B \-v, \-\-virt=<range>
Range of virtual orbitals Range of virtual orbitals
.UNINDENT .UNINDENT
.INDENT 0.0
.TP
.B \-help, \-?
.UNINDENT
.SH AUTHOR .SH AUTHOR
A. Scemama, E. Giner A. Scemama, E. Giner
.SH COPYRIGHT .SH COPYRIGHT

Some files were not shown because too many files have changed in this diff Show More