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
* Un module pour lire les integrales Moleculaires depuis un FCIDUMP
* Un module pour lire des integrales Atomiques (voir module de Mimi pour lire les AO Slater)
* Format Fchk (gaussian)
# Tests:
@ -60,4 +60,9 @@ Refaire les benchmarks
# Toto
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)/..
python2 ${QP_ROOT}/scripts/hello.py
echo ""
echo " -- Quantum Package Shell -- "
echo ""
exec bash --init-file <(cat << EOF
[[ -f \${HOME}/.bashrc ]] && source \${HOME}/.bashrc
source \${QP_ROOT}/quantum_package.rc
qp prompt
bash --init-file <(cat << EOF
[[ -f /etc/bashrc ]] && source /etc/bashrc
source ${QP_ROOT}/quantum_package.rc
qp prompt
EOF
)
) -i $@

40
configure vendored
View File

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

View File

@ -2,8 +2,11 @@
from __future__ import print_function
import os
import sys
import ConfigParser
from module_handler import get_binaries
def generate_modules(abs_module, entities):
MODULE = os.path.split(abs_module)[-1]
@ -37,16 +40,29 @@ def generate_modules(abs_module, entities):
rst += [ ".. option:: %s\n"%(section), doc, default ]
providers = []
subroutines = []
subroutines = {}
for k in sorted(entities.keys()):
e = entities[k]
if e["module"].lower() == module.lower():
if "/" not in e["file"] and e["file"] != "ezfio_interface.irp.f":
if e["type"] == 's':
subroutines.append(e)
subroutines[e["name"]] = e
elif e["type"] == 'p':
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:
rst += [ "", "Providers", "---------", "" ]
for p in providers:
@ -72,7 +88,10 @@ def generate_modules(abs_module, entities):
if subroutines:
rst += [ "", "Subroutines / functions", "-----------------------", "" ]
for p in subroutines:
for p in sorted(subroutines.keys()):
p = subroutines[p]
if p["name"] in binaries:
continue
rst += [ """
.. c:function:: %s
@ -93,10 +112,21 @@ def generate_modules(abs_module, entities):
) ]
rst_file = os.path.join('modules',module+".rst")
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':
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)
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 ----------------------------------------------

View File

@ -1,9 +1,9 @@
.. _ao_basis:
.. program:: ao_basis
.. default-role:: option
.. _ao_basis:
.. program:: ao_basis
.. default-role:: option
========
ao_basis
========
@ -32,68 +32,68 @@ the two electron integrals.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: ao_basis
Name of the |AO| basis set
.. option:: ao_num
Number of |AOs|
.. option:: ao_prim_num
Number of primitives per |AO|
.. option:: ao_prim_num_max
Maximum number of primitives
Default: =maxval(ao_basis.ao_prim_num)
.. option:: ao_nucl
Index of the nucleus on which the |AO| is centered
.. option:: ao_power
Powers of x, y and z for each |AO|
.. 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.
.. option:: ao_expo
Exponents for each primitive of each |AO|
.. option:: ao_md5
MD5 key, specific of the |AO| basis
.. option:: ao_cartesian
If |true|, use |AOs| in Cartesian coordinates (6d,10f,...)
Default: false
Providers
---------
Providers
---------
.. c:var:: ao_coef_normalization_factor
@ -107,7 +107,7 @@ Providers
Coefficients including the |AO| normalization
.. c:var:: ao_coef_normalization_libint_factor
@ -120,7 +120,7 @@ Providers
|AO| normalization for interfacing with libint
.. c:var:: ao_coef_normalized
@ -134,7 +134,7 @@ Providers
Coefficients including the |AO| normalization
.. c:var:: ao_coef_normalized_ordered
@ -148,7 +148,7 @@ Providers
Sorted primitives to accelerate 4 index |MO| transformation
.. c:var:: ao_coef_normalized_ordered_transp
@ -161,7 +161,7 @@ Providers
Transposed :c:data:`ao_coef_normalized_ordered`
.. c:var:: ao_coef_normalized_ordered_transp_per_nucl
@ -174,7 +174,7 @@ Providers
.. c:var:: ao_expo_ordered
@ -188,7 +188,7 @@ Providers
Sorted primitives to accelerate 4 index |MO| transformation
.. c:var:: ao_expo_ordered_transp
@ -201,7 +201,7 @@ Providers
Transposed :c:data:`ao_expo_ordered`
.. c:var:: ao_expo_ordered_transp_per_nucl
@ -214,7 +214,7 @@ Providers
.. 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`
.. 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`
.. c:var:: ao_l_char_space
@ -257,7 +257,7 @@ Providers
Converts an l value to a string
.. 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`
.. c:var:: ao_power_ordered_transp_per_nucl
@ -285,7 +285,7 @@ Providers
.. c:var:: ao_prim_num_max
@ -298,7 +298,7 @@ Providers
Max number of primitives.
.. c:var:: cart_to_sphe_0
@ -311,7 +311,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=0
.. c:var:: cart_to_sphe_1
@ -324,7 +324,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=1
.. c:var:: cart_to_sphe_2
@ -337,7 +337,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=2
.. c:var:: cart_to_sphe_3
@ -350,7 +350,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=3
.. c:var:: cart_to_sphe_4
@ -363,7 +363,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=4
.. c:var:: cart_to_sphe_5
@ -376,7 +376,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=5
.. c:var:: cart_to_sphe_6
@ -389,7 +389,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=6
.. c:var:: cart_to_sphe_7
@ -402,7 +402,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=7
.. c:var:: cart_to_sphe_8
@ -415,7 +415,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=8
.. c:var:: cart_to_sphe_9
@ -428,7 +428,7 @@ Providers
Spherical -> Cartesian Transformation matrix for l=9
.. c:var:: l_to_charater
@ -441,7 +441,7 @@ Providers
Character corresponding to the "l" value of an |AO|
.. c:var:: n_aos_max
@ -455,7 +455,7 @@ Providers
Number of |AOs| per atom
.. c:var:: n_pt_max_i_x
@ -469,7 +469,7 @@ Providers
Number of points used in the numerical integrations.
.. c:var:: n_pt_max_integrals
@ -483,7 +483,7 @@ Providers
Number of points used in the numerical integrations.
.. c:var:: nucl_aos
@ -496,7 +496,7 @@ Providers
List of |AOs| centered on each atom
.. c:var:: nucl_aos_transposed
@ -509,7 +509,7 @@ Providers
List of AOs attached on each atom
.. 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
.. c:var:: nucl_n_aos
@ -537,7 +537,7 @@ Providers
Number of |AOs| per atom
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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`
.. c:function:: ao_value
@ -585,7 +585,7 @@ Subroutines / functions
return the value of the ith ao at point 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
.. 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
.. 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
.. c:function:: give_all_aos_at_r_old
@ -641,7 +641,7 @@ Subroutines / functions
gives the values of aos at a given point r
.. c:function:: primitive_value

View File

@ -1,88 +1,88 @@
.. _ao_one_e_ints:
.. program:: ao_one_e_ints
.. default-role:: option
.. _ao_one_e_ints:
.. program:: ao_one_e_ints
.. default-role:: option
==================
ao_one_e_integrals
==================
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_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`)
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
EZFIO parameters
----------------
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
EZFIO parameters
----------------
.. option:: ao_integrals_e_n
Nucleus-electron integrals in |AO| basis set
.. option:: io_ao_integrals_e_n
Read/Write |AO| nucleus-electron attraction integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: ao_integrals_kinetic
Kinetic energy integrals in |AO| basis set
.. option:: io_ao_integrals_kinetic
Read/Write |AO| kinetic integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: ao_integrals_pseudo
Pseudopotential integrals in |AO| basis set
.. option:: io_ao_integrals_pseudo
Read/Write |AO| pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: ao_integrals_overlap
Overlap integrals in |AO| basis set
.. option:: io_ao_integrals_overlap
Read/Write |AO| overlap integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: ao_one_e_integrals
Combined integrals in |AO| basis set
.. option:: io_ao_one_e_integrals
Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
Default: None
Providers
---------
Providers
---------
.. 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
.. c:var:: ao_cart_to_sphe_inv
@ -109,7 +109,7 @@ Providers
Inverse of :c:data:`ao_cart_to_sphe_coef`
.. 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
.. c:var:: ao_cart_to_sphe_overlap
@ -136,7 +136,7 @@ Providers
|AO| overlap matrix in the spherical basis set
.. c:var:: ao_deriv2_x
@ -155,7 +155,7 @@ Providers
.. c:var:: ao_deriv2_y
@ -174,7 +174,7 @@ Providers
.. c:var:: ao_deriv2_z
@ -193,7 +193,7 @@ Providers
.. c:var:: ao_deriv_1_x
@ -212,7 +212,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_deriv_1_y
@ -231,7 +231,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_deriv_1_z
@ -250,7 +250,7 @@ Providers
* array of the integrals of AO_i * d/dz AO_j
.. c:var:: ao_dipole_x
@ -269,7 +269,7 @@ Providers
* array of the integrals of AO_i * z AO_j
.. c:var:: ao_dipole_y
@ -288,7 +288,7 @@ Providers
* array of the integrals of AO_i * z AO_j
.. c:var:: ao_dipole_z
@ -307,7 +307,7 @@ Providers
* array of the integrals of AO_i * z AO_j
.. 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`
.. 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`
.. c:var:: ao_kinetic_integrals
@ -352,7 +352,7 @@ Providers
:math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
.. c:var:: ao_one_e_integrals
@ -366,7 +366,7 @@ Providers
One-electron Hamiltonian in the |AO| basis.
.. c:var:: ao_one_e_integrals_diag
@ -380,7 +380,7 @@ Providers
One-electron Hamiltonian in the |AO| basis.
.. 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
.. c:var:: ao_ortho_canonical_coef_inv
@ -407,7 +407,7 @@ Providers
ao_ortho_canonical_coef^(-1)
.. 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
.. c:var:: ao_ortho_canonical_overlap
@ -434,7 +434,7 @@ Providers
overlap matrix of the ao_ortho_canonical. Expected to be the Identity
.. c:var:: ao_overlap
@ -452,7 +452,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_abs
@ -467,7 +467,7 @@ Providers
:math:`\int |\chi_i(r)| |\chi_j(r)| dr`
.. c:var:: ao_overlap_x
@ -485,7 +485,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_y
@ -503,7 +503,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_overlap_z
@ -521,7 +521,7 @@ Providers
:math:`\int \chi_i(r) \chi_j(r) dr`
.. c:var:: ao_pseudo_integrals
@ -534,7 +534,7 @@ Providers
Pseudo-potential integrals in the |AO| basis set.
.. c:var:: ao_pseudo_integrals_local
@ -547,7 +547,7 @@ Providers
Local pseudo-potential
.. c:var:: ao_pseudo_integrals_non_local
@ -560,7 +560,7 @@ Providers
Non-local pseudo-potential
.. c:var:: ao_spread_x
@ -579,7 +579,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j
.. c:var:: ao_spread_y
@ -598,7 +598,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j
.. c:var:: ao_spread_z
@ -617,7 +617,7 @@ Providers
* array of the integrals of AO_i * z^2 AO_j
.. 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)` .
.. 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)` .
.. c:var:: i_x1_pol_mult_one_e
@ -662,7 +662,7 @@ Providers
Recursive routine involved in the electron-nucleus potential
.. c:var:: i_x2_pol_mult_one_e
@ -675,7 +675,7 @@ Providers
Recursive routine involved in the electron-nucleus potential
.. c:var:: pseudo_dz_k_transp
@ -690,7 +690,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: pseudo_dz_kl_transp
@ -705,7 +705,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: pseudo_n_k_transp
@ -720,7 +720,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: pseudo_n_kl_transp
@ -735,7 +735,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: pseudo_v_k_transp
@ -750,7 +750,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: pseudo_v_kl_transp
@ -765,7 +765,7 @@ Providers
Transposed arrays for pseudopotentials
.. c:var:: s_half
@ -778,7 +778,7 @@ Providers
:math:`S^{1/2}`
.. c:var:: s_half_inv
@ -791,7 +791,7 @@ Providers
:math:`X = S^{-1/2}` obtained by SVD
.. c:var:: s_inv
@ -804,11 +804,11 @@ Providers
Inverse of the overlap matrix
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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| }`
.. 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)` .
.. c:function:: int_gaus_pol
@ -854,7 +854,7 @@ Subroutines / functions
:math:`\int_{-\infty}^{\infty} x^n \exp(-\alpha x^2) dx` .
.. c:function:: nai_pol_mult
@ -870,7 +870,7 @@ Subroutines / functions
:math:`\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle`
.. 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|}` .
.. 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|}` .
.. c:function:: overlap_bourrin_deriv_x
@ -912,7 +912,7 @@ Subroutines / functions
.. c:function:: overlap_bourrin_dipole
@ -926,7 +926,7 @@ Subroutines / functions
.. 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
.. c:function:: overlap_bourrin_x
@ -954,7 +954,7 @@ Subroutines / functions
.. 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)`
.. c:function:: v_phi
@ -988,7 +988,7 @@ Subroutines / functions
:math:`\int_{0}^{2 \pi} \cos(\phi)^n \sin(\phi)^m d\phi` .
.. c:function:: v_r
@ -1006,7 +1006,7 @@ Subroutines / functions
.. c:function:: v_theta
@ -1022,7 +1022,7 @@ Subroutines / functions
:math:`\int_{0}^{\pi} \cos(\theta)^n \sin(\theta)^m d\theta`
.. c:function:: wallis

View File

@ -1,9 +1,9 @@
.. _ao_two_e_erf_ints:
.. program:: ao_two_e_erf_ints
.. default-role:: option
.. _ao_two_e_erf_ints:
.. program:: ao_two_e_erf_ints
.. default-role:: option
======================
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
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
`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:
@ -23,28 +23,28 @@ The conventions are:
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: io_ao_two_e_integrals_erf
Read/Write |AO| integrals with the long range interaction from/to disk [ Write | Read | None ]
Default: None
.. option:: mu_erf
cutting of the interaction in the range separated model
Default: 0.5
Providers
---------
Providers
---------
.. c:var:: ao_integrals_erf_cache
@ -57,7 +57,7 @@ Providers
Cache of |AO| integrals for fast access
.. 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
.. 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
.. c:var:: ao_integrals_erf_map
@ -98,7 +98,7 @@ Providers
|AO| integrals
.. c:var:: ao_two_e_integral_erf_schwartz
@ -111,7 +111,7 @@ Providers
Needed to compute Schwartz inequalities
.. 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)
.. c:var:: general_primitive_integral_erf
@ -139,11 +139,11 @@ Providers
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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)
.. 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)
.. c:function:: ao_two_e_integrals_erf_in_map_collector
@ -185,7 +185,7 @@ Subroutines / functions
Collects results from the AO integral calculation
.. c:function:: ao_two_e_integrals_erf_in_map_slave
@ -199,7 +199,7 @@ Subroutines / functions
Computes a buffer of integrals
.. 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.
.. 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.
.. c:function:: clear_ao_erf_map
@ -241,7 +241,7 @@ Subroutines / functions
Frees the memory of the |AO| map
.. c:function:: compute_ao_integrals_erf_jl
@ -255,7 +255,7 @@ Subroutines / functions
Parallel client for AO integrals
.. 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
.. c:function:: dump_ao_integrals_erf
@ -283,7 +283,7 @@ Subroutines / functions
Save to disk the |AO| erf integrals
.. 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)
.. c:function:: get_ao_erf_map_size
@ -311,7 +311,7 @@ Subroutines / functions
Returns the number of elements in the |AO| map
.. c:function:: get_ao_two_e_integral_erf
@ -325,7 +325,7 @@ Subroutines / functions
Gets one |AO| two-electron integral from the |AO| map
.. 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.
.. 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.
.. c:function:: insert_into_ao_integrals_erf_map
@ -367,7 +367,7 @@ Subroutines / functions
Create new entry into |AO| map
.. 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)
.. c:function:: load_ao_integrals_erf
@ -395,7 +395,7 @@ Subroutines / functions
Read from disk the |AO| erf integrals
.. 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

View File

@ -1,9 +1,9 @@
.. _ao_two_e_ints:
.. program:: ao_two_e_ints
.. default-role:: option
.. _ao_two_e_ints:
.. program:: ao_two_e_ints
.. default-role:: option
==================
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`.
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:
@ -21,34 +21,34 @@ The conventions are:
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: io_ao_two_e_integrals
Read/Write |AO| integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: ao_integrals_threshold
If | (pq|rs) | < `ao_integrals_threshold` then (pq|rs) is zero
Default: 1.e-15
.. option:: do_direct_integrals
Compute integrals on the fly (very slow, only for debugging)
Default: False
Providers
---------
Providers
---------
.. c:var:: ao_integrals_cache
@ -61,7 +61,7 @@ Providers
Cache of AO integrals for fast access
.. 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
.. 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
.. c:var:: ao_integrals_map
@ -102,7 +102,7 @@ Providers
AO integrals
.. c:var:: ao_two_e_integral_schwartz
@ -115,7 +115,7 @@ Providers
Needed to compute Schwartz inequalities
.. 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)
.. c:var:: gauleg_t2
@ -142,7 +142,7 @@ Providers
t_w(i,1,k) = w(i) t_w(i,2,k) = t(i)
.. c:var:: gauleg_w
@ -156,7 +156,7 @@ Providers
t_w(i,1,k) = w(i) t_w(i,2,k) = t(i)
.. c:var:: general_primitive_integral
@ -171,7 +171,7 @@ Providers
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
.. c:var:: i_x1_new
@ -184,7 +184,7 @@ Providers
recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_a1
@ -197,7 +197,7 @@ Providers
recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_a2
@ -210,7 +210,7 @@ Providers
recursive function involved in the two-electron integral
.. c:var:: i_x1_pol_mult_recurs
@ -223,7 +223,7 @@ Providers
recursive function involved in the two-electron integral
.. c:var:: i_x2_new
@ -236,7 +236,7 @@ Providers
recursive function involved in the two-electron integral
.. c:var:: i_x2_pol_mult
@ -249,11 +249,11 @@ Providers
recursive function involved in the two-electron integral
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: ao_l4
@ -267,7 +267,7 @@ Subroutines / functions
Computes the product of l values of i,j,k,and l
.. 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)
.. 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)
.. c:function:: ao_two_e_integrals_in_map_collector
@ -309,7 +309,7 @@ Subroutines / functions
Collects results from the AO integral calculation
.. c:function:: ao_two_e_integrals_in_map_slave
@ -323,7 +323,7 @@ Subroutines / functions
Computes a buffer of integrals
.. 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.
.. 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.
.. c:function:: clear_ao_map
@ -365,7 +365,7 @@ Subroutines / functions
Frees the memory of the AO map
.. c:function:: compute_ao_integrals_jl
@ -379,7 +379,7 @@ Subroutines / functions
Parallel client for AO 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
.. c:function:: dump_ao_integrals
@ -407,7 +407,7 @@ Subroutines / functions
Save to disk the |AO| integrals
.. 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)
.. c:function:: gauleg
@ -435,7 +435,7 @@ Subroutines / functions
Gauss-Legendre
.. c:function:: get_ao_map_size
@ -449,7 +449,7 @@ Subroutines / functions
Returns the number of elements in the AO map
.. c:function:: get_ao_two_e_integral
@ -463,7 +463,7 @@ Subroutines / functions
Gets one AO bi-electronic integral from the AO map
.. 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.
.. 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.
.. 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)
.. c:function:: i_x1_pol_mult
@ -519,7 +519,7 @@ Subroutines / functions
recursive function involved in the two-electron integral
.. c:function:: insert_into_ao_integrals_map
@ -533,7 +533,7 @@ Subroutines / functions
Create new entry into AO map
.. 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)
.. c:function:: load_ao_integrals
@ -561,7 +561,7 @@ Subroutines / functions
Read from disk the |AO| integrals
.. 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)
.. c:function:: push_integrals
@ -589,7 +589,7 @@ Subroutines / functions
Push integrals in the push socket
.. c:function:: two_e_integrals_index
@ -603,7 +603,7 @@ Subroutines / functions
.. c:function:: two_e_integrals_index_reverse

View File

@ -1,9 +1,9 @@
.. _aux_quantities:
.. program:: aux_quantities
.. default-role:: option
.. _aux_quantities:
.. program:: aux_quantities
.. default-role:: option
==============
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
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
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:
@ -24,29 +24,29 @@ The main providers of that module are:
Thanks to these providers you can use any density matrix that does not
necessary corresponds to that of the current wave function.
EZFIO parameters
----------------
necessary corresponds to that of the current wave function.
EZFIO parameters
----------------
.. option:: data_energy_var
Variational energy computed with the wave function
.. option:: data_energy_proj
Projected energy computed with the wave function
.. option:: data_one_e_dm_alpha_mo
Alpha one body density matrix on the |MO| basis computed with the wave function
.. option:: data_one_e_dm_beta_mo
Beta one body density matrix on the |MO| basis computed with the wave function

View File

@ -1,97 +1,97 @@
.. _becke_numerical_grid:
.. program:: becke_numerical_grid
.. default-role:: option
.. _becke_numerical_grid:
.. program:: becke_numerical_grid
.. default-role:: option
====================
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
a certain number of radial and angular points. No pruning is done on the angular part of the grid.
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.
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:
* `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_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.
* `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
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/).
See next section for explanations and citation policies.
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.
.. code-block:: text
This subroutine is part of a set of subroutines that generate
Lebedev grids [1-6] for integration on a sphere. The original
C-code [1] was kindly provided by Dr. Dmitri N. Laikov and
Lebedev grids [1-6] for integration on a sphere. The original
C-code [1] was kindly provided by Dr. Dmitri N. Laikov and
translated into fortran by Dr. Christoph van Wuellen.
This subroutine was translated using a C to fortran77 conversion
tool written by Dr. Christoph van Wuellen.
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.
This code was distributed through CCL (http://www.ccl.net/).
[1] V.I. Lebedev, and D.N. Laikov
"A quadrature formula for the sphere of the 131st
algebraic order of accuracy"
Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481.
[2] V.I. Lebedev
"A quadrature formula for the sphere of 59th algebraic
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
"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
"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
"Quadratures on a sphere"
Computational Mathematics and Mathematical Physics, Vol. 16,
1976, pp. 10-24.
1976, pp. 10-24.
[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
octahedron group with inversion"
Computational Mathematics and Mathematical Physics, Vol. 15,
1975, pp. 44-51.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: grid_type_sgn
Type of grid used for the Becke's numerical grid. Can be, by increasing accuracy: [ 0 | 1 | 2 | 3 ]
Default: 2
Providers
---------
Providers
---------
.. 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
.. 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
.. c:var:: dr_radial_integral
@ -132,7 +132,7 @@ Providers
points in [0,1] to map the radial integral [0,\infty]
.. 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
.. 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.
.. 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
.. c:var:: grid_points_per_atom
@ -202,7 +202,7 @@ Providers
x,y,z coordinates of grid points used for integration in 3d space
.. c:var:: grid_points_radial
@ -216,7 +216,7 @@ Providers
points in [0,1] to map the radial integral [0,\infty]
.. 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
.. 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
.. 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)
.. c:var:: n_points_final_grid
@ -286,7 +286,7 @@ Providers
Number of points which are non zero
.. c:var:: n_points_grid_per_atom
@ -299,7 +299,7 @@ Providers
Number of grid points per atom
.. c:var:: n_points_integration_angular
@ -317,7 +317,7 @@ Providers
These numbers are automatically set by setting the grid_type_sgn parameter
.. c:var:: n_points_radial_grid
@ -335,7 +335,7 @@ Providers
These numbers are automatically set by setting the grid_type_sgn parameter
.. 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.
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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
.. 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
.. c:function:: example_becke_numerical_grid
@ -410,7 +410,7 @@ Subroutines / functions
subroutine that illustrates the main features available in becke_numerical_grid
.. c:function:: f_function_becke
@ -424,7 +424,7 @@ Subroutines / functions
.. 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 )
.. c:function:: step_function_becke

View File

@ -1,9 +1,9 @@
.. _bitmask:
.. program:: bitmask
.. default-role:: option
.. _bitmask:
.. program:: bitmask
.. default-role:: option
==============
bitmask module
==============
@ -31,13 +31,13 @@ transforming a bit string to a list of integers for example.
bit_kind = bit_kind_size / 8
For an example of how to use the bitmaks, see the file :file:`example.irp.f`.
Providers
---------
For an example of how to use the bitmaks, see the file :file:`example.irp.f`.
Providers
---------
.. c:var:: cas_bitmask
@ -50,7 +50,7 @@ Providers
Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
.. c:var:: closed_shell_ref_bitmask
@ -63,7 +63,7 @@ Providers
.. c:var:: core_bitmask
@ -77,7 +77,7 @@ Providers
Core + deleted orbitals bitmask
.. c:var:: core_inact_act_bitmask_4
@ -90,7 +90,7 @@ Providers
.. c:var:: core_inact_virt_bitmask
@ -104,7 +104,7 @@ Providers
Reunion of the inactive and virtual bitmasks
.. c:var:: full_ijkl_bitmask
@ -117,7 +117,7 @@ Providers
Bitmask to include all possible MOs
.. c:var:: full_ijkl_bitmask_4
@ -130,7 +130,7 @@ Providers
.. c:var:: generators_bitmask
@ -159,7 +159,7 @@ Providers
.. c:var:: generators_bitmask_restart
@ -188,7 +188,7 @@ Providers
.. c:var:: hf_bitmask
@ -201,7 +201,7 @@ Providers
Hartree Fock bit mask
.. c:var:: i_bitmask_gen
@ -214,7 +214,7 @@ Providers
Current bitmask for the generators
.. 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
.. c:var:: inact_virt_bitmask
@ -244,7 +244,7 @@ Providers
Reunion of the inactive and virtual bitmasks
.. c:var:: index_holes_bitmask
@ -257,7 +257,7 @@ Providers
Index of the holes in the generators_bitmasks
.. c:var:: index_particl_bitmask
@ -270,7 +270,7 @@ Providers
Index of the holes in the generators_bitmasks
.. 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
.. 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
.. c:var:: list_core
@ -316,7 +316,7 @@ Providers
List of the core orbitals that are never excited in post CAS method
.. c:var:: list_core_inact
@ -330,7 +330,7 @@ Providers
.. c:var:: list_core_inact_act
@ -344,7 +344,7 @@ Providers
.. c:var:: list_core_inact_act_reverse
@ -358,7 +358,7 @@ Providers
.. c:var:: list_core_inact_reverse
@ -372,7 +372,7 @@ Providers
.. c:var:: list_core_reverse
@ -386,7 +386,7 @@ Providers
List of the core orbitals that are never excited in post CAS method
.. 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
.. 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
.. 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
.. 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
.. c:var:: mpi_bit_kind
@ -463,7 +463,7 @@ Providers
MPI bit kind type
.. c:var:: n_act_orb
@ -476,7 +476,7 @@ Providers
number of active orbitals
.. c:var:: n_cas_bitmask
@ -489,7 +489,7 @@ Providers
Number of bitmasks for CAS
.. c:var:: n_core_inact_act_orb
@ -503,7 +503,7 @@ Providers
Reunion of the core, inactive and active bitmasks
.. c:var:: n_core_inact_orb
@ -516,7 +516,7 @@ Providers
.. c:var:: n_core_orb
@ -530,7 +530,7 @@ Providers
Core + deleted orbitals bitmask
.. c:var:: n_core_orb_allocate
@ -543,7 +543,7 @@ Providers
.. c:var:: n_generators_bitmask
@ -556,7 +556,7 @@ Providers
Number of bitmasks for generators
.. c:var:: n_generators_bitmask_restart
@ -569,7 +569,7 @@ Providers
Number of bitmasks for generators
.. 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
.. c:var:: n_inact_orb_allocate
@ -598,7 +598,7 @@ Providers
.. c:var:: n_int
@ -611,7 +611,7 @@ Providers
Number of 64-bit integers needed to represent determinants as binary strings
.. 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
.. c:var:: n_virt_orb_allocate
@ -640,7 +640,7 @@ Providers
.. c:var:: ref_bitmask
@ -653,7 +653,7 @@ Providers
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
.. c:var:: reunion_of_bitmask
@ -666,7 +666,7 @@ Providers
Reunion of the inactive, active and virtual bitmasks
.. c:var:: reunion_of_cas_inact_bitmask
@ -679,7 +679,7 @@ Providers
Reunion of the inactive, active and virtual bitmasks
.. c:var:: reunion_of_core_inact_act_bitmask
@ -693,7 +693,7 @@ Providers
Reunion of the core, inactive and active bitmasks
.. c:var:: reunion_of_core_inact_bitmask
@ -706,7 +706,7 @@ Providers
Reunion of the core and inactive and virtual bitmasks
.. c:var:: unpaired_alpha_electrons
@ -719,7 +719,7 @@ Providers
Bitmask reprenting the unpaired alpha electrons in the HF_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
.. c:var:: virt_bitmask_4
@ -748,11 +748,11 @@ Providers
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: bitstring_to_hexa
@ -766,7 +766,7 @@ Subroutines / functions
Transform a bit string to a string in hexadecimal format for printing
.. 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
.. c:function:: bitstring_to_str
@ -794,7 +794,7 @@ Subroutines / functions
Transform a bit string to a string for printing
.. c:function:: broadcast_chunks_bit_kind
@ -808,7 +808,7 @@ Subroutines / functions
Broadcast with chunks of ~2GB
.. c:function:: clear_bit_to_integer
@ -822,7 +822,7 @@ Subroutines / functions
set to 0 the bit number i_physical in the bitstring key
.. c:function:: debug_det
@ -836,7 +836,7 @@ Subroutines / functions
Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation.
.. c:function:: debug_spindet
@ -850,7 +850,7 @@ Subroutines / functions
Subroutine to print the content of a determinant in '+-' notation and hexadecimal representation.
.. c:function:: example_bitmask
@ -864,7 +864,7 @@ Subroutines / functions
subroutine that illustrates the main features available in bitmask
.. c:function:: initialize_bitmask_to_restart_ones
@ -878,7 +878,7 @@ Subroutines / functions
Initialization of the generators_bitmask to the restart bitmask
.. c:function:: is_a_1h
@ -892,7 +892,7 @@ Subroutines / functions
.. c:function:: is_a_1h1p
@ -906,7 +906,7 @@ Subroutines / functions
.. c:function:: is_a_1h2p
@ -920,7 +920,7 @@ Subroutines / functions
.. c:function:: is_a_1p
@ -934,7 +934,7 @@ Subroutines / functions
.. c:function:: is_a_2h
@ -948,7 +948,7 @@ Subroutines / functions
.. c:function:: is_a_2h1p
@ -962,7 +962,7 @@ Subroutines / functions
.. c:function:: is_a_2p
@ -976,7 +976,7 @@ Subroutines / functions
.. 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
.. c:function:: is_i_in_virtual
@ -1004,7 +1004,7 @@ Subroutines / functions
.. c:function:: is_the_hole_in_det
@ -1018,7 +1018,7 @@ Subroutines / functions
.. c:function:: is_the_particl_in_det
@ -1032,7 +1032,7 @@ Subroutines / functions
.. 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)
.. 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
.. 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
.. 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
.. c:function:: number_of_holes
@ -1102,7 +1102,7 @@ Subroutines / functions
Function that returns the number of holes in the inact space
.. c:function:: number_of_holes_verbose
@ -1116,7 +1116,7 @@ Subroutines / functions
function that returns the number of holes in the inact space
.. c:function:: number_of_particles
@ -1130,7 +1130,7 @@ Subroutines / functions
function that returns the number of particles in the virtual space
.. c:function:: number_of_particles_verbose
@ -1144,7 +1144,7 @@ Subroutines / functions
function that returns the number of particles in the inact space
.. c:function:: print_det
@ -1158,7 +1158,7 @@ Subroutines / functions
Subroutine to print the content of a determinant using the '+-' notation
.. c:function:: print_generators_bitmasks_holes
@ -1172,7 +1172,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_holes_for_one_generator
@ -1186,7 +1186,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_particles
@ -1200,7 +1200,7 @@ Subroutines / functions
.. c:function:: print_generators_bitmasks_particles_for_one_generator
@ -1214,7 +1214,7 @@ Subroutines / functions
.. c:function:: print_spindet
@ -1228,7 +1228,7 @@ Subroutines / functions
Subroutine to print the content of a determinant using the '+-' notation
.. c:function:: set_bit_to_integer
@ -1242,7 +1242,7 @@ Subroutines / functions
set to 1 the bit number i_physical in the bitstring key
.. c:function:: set_bitmask_hole_as_input
@ -1256,7 +1256,7 @@ Subroutines / functions
set the generators_bitmask for the holes as the input_bimask
.. c:function:: set_bitmask_particl_as_input

View File

@ -1,9 +1,9 @@
.. _cipsi:
.. program:: cipsi
.. default-role:: option
.. _cipsi:
.. program:: cipsi
.. default-role:: option
=====
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
:option:`determinants threshold_generators`, and :math:`Psi_S` is a truncation
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
function is also computed:
.. math::
.. math::
\sigma^2 & = \langle \Psi | \hat{H}^2 | \Psi \rangle -
\langle \Psi | \hat{H} | \Psi \rangle^2 \\
& = \sum_{i \in \text{FCI}}
\langle \Psi | \hat{H} | i \rangle
\langle \Psi | \hat{H} | i \rangle
\langle i | \hat{H} | \Psi \rangle -
\langle \Psi | \hat{H} | \Psi \rangle^2 \\
& = \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
|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
goal is to generate a wave function, as for using |CIPSI| wave functions as
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
value is stable with the number of points.
Providers
---------
Providers
---------
.. c:var:: initialize_pt2_e0_denominator
@ -150,7 +150,7 @@ Providers
If true, initialize pt2_E0_denominator
.. c:var:: pt2_collector
@ -164,7 +164,7 @@ Providers
.. c:var:: pt2_cw
@ -181,7 +181,7 @@ Providers
.. c:var:: pt2_e0_denominator
@ -194,7 +194,7 @@ Providers
E0 in the denominator of the PT2
.. c:var:: pt2_f
@ -208,7 +208,7 @@ Providers
.. c:var:: pt2_j
@ -222,7 +222,7 @@ Providers
.. c:var:: pt2_mindetinfirstteeth
@ -236,7 +236,7 @@ Providers
.. c:var:: pt2_n_0
@ -253,7 +253,7 @@ Providers
.. c:var:: pt2_n_tasks
@ -266,7 +266,7 @@ Providers
Number of parallel tasks for the Monte Carlo
.. c:var:: pt2_n_tasks_max
@ -280,7 +280,7 @@ Providers
.. c:var:: pt2_n_teeth
@ -294,7 +294,7 @@ Providers
.. c:var:: pt2_r
@ -308,7 +308,7 @@ Providers
.. c:var:: pt2_stoch_istate
@ -321,7 +321,7 @@ Providers
State for stochatsic PT2
.. c:var:: pt2_u
@ -334,7 +334,7 @@ Providers
.. c:var:: pt2_u_0
@ -351,7 +351,7 @@ Providers
.. c:var:: pt2_w
@ -368,7 +368,7 @@ Providers
.. c:var:: pt2_w_t
@ -385,7 +385,7 @@ Providers
.. c:var:: selection_weight
@ -395,14 +395,14 @@ Providers
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
@ -416,7 +416,7 @@ Subroutines / functions
.. 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
.. c:function:: create_selection_buffer
@ -444,7 +444,7 @@ Subroutines / functions
.. c:function:: delete_selection_buffer
@ -458,7 +458,7 @@ Subroutines / functions
.. c:function:: fill_buffer_double
@ -472,7 +472,7 @@ Subroutines / functions
.. c:function:: get_d0
@ -486,7 +486,7 @@ Subroutines / functions
.. c:function:: get_d1
@ -500,7 +500,7 @@ Subroutines / functions
.. c:function:: get_d2
@ -514,7 +514,7 @@ Subroutines / functions
.. c:function:: get_mask_phase
@ -528,7 +528,7 @@ Subroutines / functions
.. c:function:: get_phase_bi
@ -542,7 +542,7 @@ Subroutines / functions
.. c:function:: make_selection_buffer_s2
@ -556,7 +556,7 @@ Subroutines / functions
.. c:function:: merge_selection_buffers
@ -570,7 +570,7 @@ Subroutines / functions
Merges the selection buffers b1 and b2 into b2
.. c:function:: past_d1
@ -584,7 +584,7 @@ Subroutines / functions
.. c:function:: past_d2
@ -598,7 +598,7 @@ Subroutines / functions
.. c:function:: provide_everything
@ -612,7 +612,7 @@ Subroutines / functions
.. c:function:: pt2_find_sample
@ -626,7 +626,7 @@ Subroutines / functions
.. c:function:: pt2_find_sample_lr
@ -640,7 +640,7 @@ Subroutines / functions
.. c:function:: pt2_slave_inproc
@ -654,7 +654,7 @@ Subroutines / functions
.. c:function:: pull_pt2_results
@ -668,7 +668,7 @@ Subroutines / functions
.. c:function:: pull_selection_results
@ -682,7 +682,7 @@ Subroutines / functions
.. c:function:: push_pt2_results
@ -696,7 +696,7 @@ Subroutines / functions
.. c:function:: push_selection_results
@ -710,7 +710,7 @@ Subroutines / functions
.. c:function:: remove_duplicates_in_selection_buffer
@ -724,7 +724,7 @@ Subroutines / functions
.. c:function:: run_cipsi
@ -738,7 +738,7 @@ Subroutines / functions
Selected Full Configuration Interaction with deterministic selection and stochastic PT2.
.. c:function:: run_pt2_slave
@ -752,7 +752,7 @@ Subroutines / functions
.. c:function:: run_selection_slave
@ -766,7 +766,7 @@ Subroutines / functions
.. c:function:: run_slave_cipsi
@ -780,7 +780,7 @@ Subroutines / functions
Helper program for distributed parallelism
.. c:function:: run_slave_main
@ -794,7 +794,7 @@ Subroutines / functions
.. c:function:: run_stochastic_cipsi
@ -808,7 +808,7 @@ Subroutines / functions
Selected Full Configuration Interaction with Stochastic selection and PT2.
.. c:function:: select_connected
@ -822,7 +822,7 @@ Subroutines / functions
.. 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
.. c:function:: selection_collector
@ -850,7 +850,7 @@ Subroutines / functions
.. c:function:: selection_slave_inproc
@ -864,7 +864,7 @@ Subroutines / functions
.. c:function:: sort_selection_buffer
@ -878,7 +878,7 @@ Subroutines / functions
.. c:function:: splash_pq
@ -892,7 +892,7 @@ Subroutines / functions
.. c:function:: spot_isinwf
@ -906,7 +906,7 @@ Subroutines / functions
.. c:function:: testteethbuilding
@ -920,7 +920,7 @@ Subroutines / functions
.. c:function:: zmq_pt2
@ -934,7 +934,7 @@ Subroutines / functions
.. c:function:: zmq_selection

View File

@ -1,24 +1,24 @@
.. _cis:
.. program:: cis
.. default-role:: option
.. _cis:
.. program:: cis
.. default-role:: option
===
cis
===
This module contains a CIS program.
This module contains a CIS program.
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 :
* **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:
@ -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.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: energy
Variational |CIS| energy
Subroutines / functions
-----------------------
.. c:function:: cis
.. 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
Programs
--------
* :ref:`cis`
Subroutines / functions
-----------------------
.. 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.
.. c:function:: h_apply_cis_diexc
@ -128,7 +91,7 @@ Subroutines / functions
.. 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.
.. c:function:: h_apply_cis_diexcp
@ -156,7 +119,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_monoexc

View File

@ -1,24 +1,24 @@
.. _cisd:
.. program:: cisd
.. default-role:: option
.. _cisd:
.. program:: cisd
.. default-role:: option
====
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 :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 :
* **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:
@ -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.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: energy
Variational |CISD| energy
Subroutines / functions
-----------------------
.. c:function:: cisd
.. 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
Programs
--------
* :ref:`cisd`
Subroutines / functions
-----------------------
.. 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.
.. c:function:: h_apply_cisd_diexc
@ -124,7 +89,7 @@ Subroutines / functions
.. 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.
.. c:function:: h_apply_cisd_diexcp
@ -152,7 +117,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_monoexc

View File

@ -1,9 +1,9 @@
.. _davidson:
.. program:: davidson
.. default-role:: option
.. _davidson:
.. program:: davidson
.. default-role:: option
========
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:
# `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`.
EZFIO parameters
----------------
# `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`.
EZFIO parameters
----------------
.. option:: threshold_davidson
Thresholds of Davidson's algorithm
Default: 1.e-10
.. option:: n_states_diag
Number of states to consider during the Davdison diagonalization
Default: 4
.. option:: davidson_sze_max
Number of micro-iterations before re-contracting
Default: 8
.. option:: state_following
If |true|, the states are re-ordered to match the input states
Default: False
.. option:: disk_based_davidson
If |true|, disk space is used to store the vectors
Default: False
.. option:: distributed_davidson
If |true|, use the distributed algorithm
Default: True
.. option:: only_expected_s2
If |true|, use filter out all vectors with bad |S^2| values
Default: True
Providers
---------
Providers
---------
.. c:var:: ci_eigenvectors
@ -84,7 +84,7 @@ Providers
Eigenvectors/values of the |CI| matrix
.. c:var:: ci_eigenvectors_s2
@ -99,7 +99,7 @@ Providers
Eigenvectors/values of the |CI| matrix
.. c:var:: ci_electronic_energy
@ -114,7 +114,7 @@ Providers
Eigenvectors/values of the |CI| matrix
.. c:var:: ci_energy
@ -127,7 +127,7 @@ Providers
:c:data:`n_states` lowest eigenvalues of the |CI| matrix
.. c:var:: davidson_criterion
@ -140,7 +140,7 @@ Providers
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
.. c:var:: dressed_column_idx
@ -153,7 +153,7 @@ Providers
Index of the dressed columns
.. c:var:: n_states_diag
@ -166,7 +166,7 @@ Providers
Number of states to consider during the Davdison diagonalization
.. c:var:: nthreads_davidson
@ -179,7 +179,7 @@ Providers
Number of threads for Davidson
.. c:var:: psi_energy
@ -192,7 +192,7 @@ Providers
Electronic energy of the current wave function
.. c:var:: psi_energy_two_e
@ -205,7 +205,7 @@ Providers
Energy of the current wave function
.. c:var:: psi_energy_with_nucl_rep
@ -218,11 +218,11 @@ Providers
Energy of the wave function with the nuclear repulsion energy.
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: davidson_collector
@ -236,7 +236,7 @@ Subroutines / functions
Routine collecting the results of the workers in Davidson's algorithm.
.. c:function:: davidson_converged
@ -250,7 +250,7 @@ Subroutines / functions
True if the Davidson algorithm is converged
.. c:function:: davidson_diag_hjj_sjj
@ -282,7 +282,7 @@ Subroutines / functions
Initial guess vectors are not necessarily orthonormal
.. c:function:: davidson_diag_hs2
@ -308,7 +308,7 @@ Subroutines / functions
Initial guess vectors are not necessarily orthonormal
.. c:function:: davidson_pull_results
@ -322,7 +322,7 @@ Subroutines / functions
Pull the results of :math:`H|U \rangle` on the master.
.. 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.
.. c:function:: davidson_run_slave
@ -350,7 +350,7 @@ Subroutines / functions
Slave routine for Davidson's diagonalization.
.. c:function:: davidson_slave_inproc
@ -364,7 +364,7 @@ Subroutines / functions
.. c:function:: davidson_slave_tcp
@ -378,7 +378,7 @@ Subroutines / functions
.. c:function:: davidson_slave_work
@ -392,7 +392,7 @@ Subroutines / functions
.. 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.
.. c:function:: h_s2_u_0_nstates_openmp
@ -424,7 +424,7 @@ Subroutines / functions
istart, iend, ishift, istep are used in ZMQ parallelization.
.. c:function:: h_s2_u_0_nstates_openmp_work
@ -440,7 +440,7 @@ Subroutines / functions
Default should be 1,N_det,0,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
.. c:function:: h_s2_u_0_nstates_openmp_work_2
@ -472,7 +472,7 @@ Subroutines / functions
Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_3
@ -488,7 +488,7 @@ Subroutines / functions
Default should be 1,N_det,0,1
.. c:function:: h_s2_u_0_nstates_openmp_work_4
@ -504,7 +504,7 @@ Subroutines / functions
Default should be 1,N_det,0,1
.. 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
.. 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`
.. 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.
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. c:function:: u_0_h_u_0
@ -672,7 +672,7 @@ Subroutines / functions
.. c:function:: u_0_h_u_0_two_e
@ -690,7 +690,7 @@ Subroutines / functions
.. c:function:: zmq_get_n_states_diag
@ -704,7 +704,7 @@ Subroutines / functions
Get N_states_diag from the qp_run scheduler
.. c:function:: zmq_put_n_states_diag

View File

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

View File

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

View File

@ -1,43 +1,43 @@
.. _density_for_dft:
.. program:: density_for_dft
.. default-role:: option
.. _density_for_dft:
.. program:: density_for_dft
.. default-role:: option
===============
density_for_dft
===============
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`.
The density can be:
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`.
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``)
* 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
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
.. option:: damping_for_rs_dft
damping factor for the density used in RSFT.
Default: 0.5
Providers
---------
Providers
---------
.. 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
.. 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
.. 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
.. c:var:: one_e_dm_average_mo_for_dft
@ -92,7 +92,7 @@ Providers
.. 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
.. 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
.. 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
.. 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:
.. program:: dft_keywords
.. default-role:: option
.. _dft_keywords:
.. program:: dft_keywords
.. default-role:: option
============
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 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.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: exchange_functional
name of the exchange functional
Default: short_range_LDA
.. option:: correlation_functional
name of the correlation functional
Default: short_range_LDA
.. option:: HF_exchange
Percentage of HF exchange in the DFT model
Default: 0.
Providers
---------
Providers
---------
.. c:var:: dft_type

View File

@ -1,16 +1,16 @@
.. _dft_utils_in_r:
.. program:: dft_utils_in_r
.. default-role:: option
.. _dft_utils_in_r:
.. program:: dft_utils_in_r
.. default-role:: option
==============
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:
@ -18,12 +18,12 @@ The main providers for this module are:
* `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.
Providers
---------
Providers
---------
.. c:var:: aos_grad_in_r_array
@ -42,7 +42,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_grad_in_r_array_transp
@ -61,7 +61,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_grad_in_r_array_transp_xyz
@ -80,7 +80,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. 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
.. 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
.. c:var:: aos_lapl_in_r_array
@ -130,7 +130,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. c:var:: aos_lapl_in_r_array_transp
@ -148,7 +148,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. c:var:: mos_grad_in_r_array
@ -165,7 +165,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. 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
.. 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
.. c:var:: mos_lapl_in_r_array
@ -214,7 +214,7 @@ Providers
k = 1 : x, k= 2, y, k 3, z
.. 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
.. c:var:: one_e_dm_alpha_in_r
@ -242,7 +242,7 @@ Providers
.. 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
.. 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
.. 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
.. c:var:: one_e_dm_beta_in_r
@ -302,7 +302,7 @@ Providers
.. 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
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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
.. 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
.. c:function:: dm_dft_alpha_beta_at_r

View File

@ -1,15 +1,15 @@
.. _dft_utils_one_e:
.. program:: dft_utils_one_e
.. default-role:: option
.. _dft_utils_one_e:
.. program:: dft_utils_one_e
.. default-role:: option
===============
dft_utils_one_e
===============
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.
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.
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 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`.
It is also needed to compute the effective one-body operator needed in multi-determinant RS-DFT (see plugins by eginer).
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).
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 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`
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
@ -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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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
.. 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
.. c:var:: energy_c
@ -595,7 +627,7 @@ Providers
correlation and exchange energies general providers.
.. c:var:: energy_c_lda
@ -609,7 +641,7 @@ Providers
exchange/correlation energy with the short range LDA functional
.. c:var:: energy_c_pbe
@ -623,7 +655,7 @@ Providers
exchange/correlation energy with the short range PBE functional
.. c:var:: energy_sr_c_lda
@ -637,7 +669,7 @@ Providers
exchange/correlation energy with the short range LDA functional
.. c:var:: energy_sr_c_pbe
@ -651,7 +683,7 @@ Providers
exchange/correlation energy with the short range PBE functional
.. c:var:: energy_sr_x_lda
@ -665,7 +697,7 @@ Providers
exchange/correlation energy with the short range LDA functional
.. c:var:: energy_sr_x_pbe
@ -679,7 +711,7 @@ Providers
exchange/correlation energy with the short range PBE functional
.. c:var:: energy_x
@ -693,7 +725,7 @@ Providers
correlation and exchange energies general providers.
.. c:var:: energy_x_lda
@ -707,7 +739,7 @@ Providers
exchange/correlation energy with the short range LDA functional
.. c:var:: energy_x_pbe
@ -721,7 +753,7 @@ Providers
exchange/correlation energy with the short range PBE functional
.. 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
.. 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
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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)
.. 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
.. c:var:: potential_c_alpha_ao
@ -972,7 +1004,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. 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
.. 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
.. c:var:: potential_c_alpha_mo
@ -1020,7 +1052,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: potential_c_beta_ao
@ -1036,7 +1068,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. 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
.. 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
.. c:var:: potential_c_beta_mo
@ -1084,7 +1116,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. c:var:: potential_x_alpha_ao
@ -1220,7 +1252,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. 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
.. 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
.. c:var:: potential_x_alpha_mo
@ -1268,7 +1300,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. c:var:: potential_x_beta_ao
@ -1284,7 +1316,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the AO basis
.. 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
.. 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
.. c:var:: potential_x_beta_mo
@ -1332,7 +1364,7 @@ Providers
general providers for the alpha/beta exchange/correlation potentials on the MO basis
.. 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
.. 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
.. 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
.. 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) )
.. c:var:: short_range_hartree
@ -1408,7 +1440,7 @@ Providers
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
.. 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}`
.. 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}
.. 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}
.. 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}
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: berf
@ -1489,7 +1521,7 @@ Subroutines / functions
.. c:function:: dberfda
@ -1503,7 +1535,7 @@ Subroutines / functions
.. c:function:: dpol
@ -1517,7 +1549,7 @@ Subroutines / functions
.. c:function:: dpold
@ -1531,7 +1563,7 @@ Subroutines / functions
.. c:function:: dpoldd
@ -1545,7 +1577,7 @@ Subroutines / functions
.. c:function:: ec_lda
@ -1559,7 +1591,7 @@ Subroutines / functions
.. c:function:: ec_lda_sr
@ -1573,7 +1605,7 @@ Subroutines / functions
.. c:function:: ec_only_lda_sr
@ -1587,7 +1619,7 @@ Subroutines / functions
.. c:function:: ec_pbe_only
@ -1619,7 +1651,7 @@ Subroutines / functions
.. 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
.. c:function:: ecorrlr
@ -1675,7 +1707,7 @@ Subroutines / functions
.. c:function:: ecpw
@ -1689,7 +1721,7 @@ Subroutines / functions
.. c:function:: ex_lda
@ -1703,7 +1735,7 @@ Subroutines / functions
.. c:function:: ex_lda_sr
@ -1717,7 +1749,7 @@ Subroutines / functions
.. 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
.. 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
.. c:function:: g0d
@ -1759,7 +1791,7 @@ Subroutines / functions
.. c:function:: g0dd
@ -1773,7 +1805,7 @@ Subroutines / functions
.. c:function:: g0f
@ -1787,7 +1819,7 @@ Subroutines / functions
.. c:function:: gpw
@ -1801,7 +1833,7 @@ Subroutines / functions
.. c:function:: grad_rho_ab_to_grad_rho_oc
@ -1815,7 +1847,7 @@ Subroutines / functions
.. c:function:: qrpa
@ -1829,7 +1861,7 @@ Subroutines / functions
.. c:function:: qrpad
@ -1843,7 +1875,7 @@ Subroutines / functions
.. c:function:: qrpadd
@ -1857,7 +1889,7 @@ Subroutines / functions
.. c:function:: rho_ab_to_rho_oc
@ -1871,7 +1903,7 @@ Subroutines / functions
.. c:function:: rho_oc_to_rho_ab
@ -1885,7 +1917,7 @@ Subroutines / functions
.. 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
@ -1913,7 +1945,7 @@ Subroutines / functions
.. c:function:: v_rho_oc_to_v_rho_ab
@ -1927,7 +1959,7 @@ Subroutines / functions
.. c:function:: vcorrlr

View File

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

View File

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

View File

@ -1,9 +1,9 @@
.. _ezfio_files:
.. program:: ezfio_files
.. default-role:: option
.. _ezfio_files:
.. program:: ezfio_files
.. default-role:: option
===========
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
command-line, or as the :envvar:`QP_INPUT` environment variable.
Providers
---------
Providers
---------
.. 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.
.. c:var:: ezfio_work_dir
@ -43,7 +43,7 @@ Providers
EZFIO/work/
.. c:var:: output_cpu_time_0
@ -57,7 +57,7 @@ Providers
Initial CPU and wall times when printing in the output files
.. c:var:: output_wall_time_0
@ -71,11 +71,11 @@ Providers
Initial CPU and wall times when printing in the output files
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: getunitandopen
@ -93,7 +93,7 @@ Subroutines / functions
.. c:function:: write_bool
@ -107,7 +107,7 @@ Subroutines / functions
Write an logical value in output
.. c:function:: write_double
@ -121,7 +121,7 @@ Subroutines / functions
Write a double precision value in output
.. c:function:: write_int
@ -135,7 +135,7 @@ Subroutines / functions
Write an integer value in output
.. c:function:: write_time

View File

@ -1,9 +1,9 @@
.. _fci:
.. program:: fci
.. default-role:: option
.. _fci:
.. program:: fci
.. default-role:: option
===
fci
===
@ -20,25 +20,25 @@ The user point of view
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 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::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
wave functions as a guess.
.. note::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
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::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
wave functions as a guess.
.. note::
For a multi-state calculation, it is recommended to start with :c:func:`cis` or :c:func:`cisd`
wave functions as a guess.
* :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
----------------------------
This module have been created with the :ref:`cipsi` module.
This module have been created with the :ref:`cipsi` module.
.. seealso::
The documentation of the :ref:`cipsi` module.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: energy
Calculated Selected |FCI| energy
.. option:: energy_pt2
Calculated |FCI| energy + |PT2|
Providers
---------
Programs
--------
* :ref:`fci`
* :ref:`pt2`
Providers
---------
.. c:var:: nthreads_pt2
@ -86,83 +92,11 @@ Providers
Number of threads for Davidson
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`)
Subroutines / functions
-----------------------
.. c:function:: save_energy

View File

@ -1,9 +1,9 @@
.. _generators_cas:
.. program:: generators_cas
.. default-role:: option
.. _generators_cas:
.. program:: generators_cas
.. default-role:: option
==============
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.
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:
.. program:: generators_full
.. default-role:: option
.. _generators_full:
.. program:: generators_full
.. default-role:: option
===============
generators_full
===============
@ -13,12 +13,12 @@ variational space.
This module is intended to be included in the :file:`NEED` file to define
a full set of generators.
Providers
---------
Providers
---------
.. c:var:: degree_max_generators
@ -31,7 +31,34 @@ Providers
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
@ -46,7 +73,21 @@ Providers
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
@ -61,7 +102,7 @@ Providers
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_sorted_gen_order
@ -76,3 +117,29 @@ Providers
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:
.. program:: hartree_fock
.. default-role:: option
.. _hartree_fock:
.. program:: hartree_fock
.. default-role:: option
============
hartree_fock
============
@ -12,7 +12,7 @@ hartree_fock
The Hartree-Fock module performs *Restricted* Hartree-Fock calculations (the
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:
#. 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.
#. Perform the |SCF| iterations
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.
The main are:
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.
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
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
Energy HF
Providers
---------
Programs
--------
* :ref:`scf`
Providers
---------
.. c:var:: ao_two_e_integral_alpha
@ -75,7 +80,7 @@ Providers
Alpha Fock matrix in AO basis set
.. c:var:: ao_two_e_integral_beta
@ -89,7 +94,7 @@ Providers
Alpha Fock matrix in AO basis set
.. 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
.. c:var:: fock_matrix_ao_alpha
@ -120,7 +125,7 @@ Providers
Alpha Fock matrix in AO basis set
.. c:var:: fock_matrix_ao_beta
@ -134,7 +139,7 @@ Providers
Alpha Fock matrix in AO basis set
.. c:var:: hf_energy
@ -149,7 +154,7 @@ Providers
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
.. 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.
.. 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.
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: create_guess
@ -197,7 +202,7 @@ Subroutines / functions
Create a MO guess if no MOs are present in the EZFIO directory
.. c:function:: run
@ -211,23 +216,3 @@ Subroutines / functions
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:
.. program:: iterations
.. default-role:: option
.. _iterations:
.. program:: iterations
.. default-role:: option
==========
iterations
==========
Module which saves the computed energies for an extrapolation to
the |FCI| limit.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: n_iter
Number of saved iterations
Default: 1
.. option:: n_det_iterations
Number of determinants at each iteration
.. option:: energy_iterations
The variational energy at each iteration
.. option:: pt2_iterations
The |PT2| correction at each iteration
Providers
---------
Providers
---------
.. c:var:: extrapolated_energy
@ -53,7 +53,7 @@ Providers
Extrapolated energy, using E_var = f(PT2) where PT2=0
.. c:var:: n_iter
@ -66,11 +66,11 @@ Providers
number of iterations
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: print_extrapolated_energy
@ -84,7 +84,7 @@ Subroutines / functions
Print the extrapolated energy in the output
.. c:function:: print_summary
@ -98,7 +98,7 @@ Subroutines / functions
Print the extrapolated energy in the output
.. c:function:: save_iterations

View File

@ -1,9 +1,9 @@
.. _kohn_sham:
.. program:: kohn_sham
.. default-role:: option
.. _kohn_sham:
.. program:: kohn_sham
.. default-role:: option
=========
kohn_sham
=========
@ -12,7 +12,7 @@ kohn_sham
The Kohn-Sham module performs *Restricted* Kohn-Sham calculations (the
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:
#. 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.
#. Perform the |SCF| iterations
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.
The main are:
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.
The main are:
#. :option:`scf_utils thresh_scf`
#. :option:`scf_utils level_shift`
#. :option:`scf_utils thresh_scf`
#. :option:`scf_utils level_shift`
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
@ -45,111 +45,17 @@ To start a calculation from scratch, the simplest way is to remove the
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`
.. 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.
Programs
--------
* :ref:`ks_scf`
Providers
---------
.. c:var:: ks_energy
@ -166,83 +72,18 @@ Providers
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
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:: 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
subroutine ks_cf
File: :file:`ks_scf.irp.f`

View File

@ -1,19 +1,19 @@
.. _kohn_sham_rs:
.. program:: kohn_sham_rs
.. default-role:: option
.. _kohn_sham_rs:
.. program:: kohn_sham_rs
.. default-role:: option
============
kohn_sham_rs
============
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.
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.
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 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:
#. 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.
#. Perform the |SCF| iterations
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.
The main are:
# :option:`scf_utils thresh_scf`
# :option:`scf_utils level_shift`
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.
The main are:
# :option:`scf_utils thresh_scf`
# :option:`scf_utils level_shift`
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
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
@ -75,21 +196,55 @@ Providers
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: rs_ks_scf
.. c:var:: trace_potential_xc
.. 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`
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:
.. program:: mo_basis
.. default-role:: option
.. _mo_basis:
.. program:: mo_basis
.. default-role:: option
========
mo_basis
========
Molecular orbitals are expressed as
Molecular orbitals are expressed as
.. 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
Total number of |MOs|
.. option:: mo_coef
Coefficient of the i-th |AO| on the j-th |MO|
.. option:: mo_label
Label characterizing the MOS (Local, Canonical, Natural, *etc*)
.. option:: mo_occ
|MO| occupation numbers
.. option:: mo_class
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
.. option:: ao_md5
MD5 checksum characterizing the |AO| basis set.
Providers
---------
Providers
---------
.. c:var:: mo_coef
@ -84,7 +84,7 @@ Providers
mo_label : Label characterizing the MOS (local, canonical, natural, etc)
.. c:var:: mo_coef_begin_iteration
@ -99,7 +99,7 @@ Providers
Usefull to track some orbitals
.. c:var:: mo_coef_in_ao_ortho_basis
@ -114,7 +114,7 @@ Providers
:math:`C^{-1}.C_{mo}`
.. c:var:: mo_coef_transp
@ -127,7 +127,7 @@ Providers
|MO| coefficients on |AO| basis set
.. c:var:: mo_label
@ -144,7 +144,7 @@ Providers
mo_label : Label characterizing the |MOs| (local, canonical, natural, etc)
.. c:var:: mo_num
@ -157,7 +157,7 @@ Providers
Number of MOs
.. c:var:: mo_occ
@ -170,11 +170,11 @@ Providers
|MO| occupation numbers
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: ao_ortho_cano_to_ao
@ -190,7 +190,7 @@ Subroutines / functions
:math:`C^{-1}.A_{ao}.C^{\dagger-1}`
.. c:function:: ao_to_mo
@ -206,7 +206,7 @@ Subroutines / functions
:math:`C^\dagger.A_{ao}.C`
.. 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
@ -234,7 +234,7 @@ Subroutines / functions
.. c:function:: give_all_mos_at_r
@ -248,7 +248,7 @@ Subroutines / functions
.. 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`
.. 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))
.. c:function:: mo_as_eigvectors_of_mo_matrix
@ -298,7 +298,7 @@ Subroutines / functions
.. 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
@ -326,7 +326,7 @@ Subroutines / functions
.. 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`
.. c:function:: save_mos
@ -354,7 +354,7 @@ Subroutines / functions
.. c:function:: save_mos_truncated

View File

@ -1,21 +1,21 @@
.. _mo_guess:
.. program:: mo_guess
.. default-role:: option
.. _mo_guess:
.. program:: mo_guess
.. default-role:: option
========
mo_guess
========
Guess for |MOs|.
Providers
---------
Providers
---------
.. c:var:: ao_ortho_canonical_nucl_elec_integrals
@ -28,7 +28,7 @@ Providers
.. 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
.. c:var:: ao_ortho_lowdin_nucl_elec_integrals
@ -54,7 +54,7 @@ Providers
.. c:var:: ao_ortho_lowdin_overlap
@ -67,11 +67,11 @@ Providers
overlap matrix of the ao_ortho_lowdin supposed to be the Identity
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: hcore_guess

View File

@ -1,76 +1,76 @@
.. _mo_one_e_ints:
.. program:: mo_one_e_ints
.. default-role:: option
.. _mo_one_e_ints:
.. program:: mo_one_e_ints
.. default-role:: option
==================
mo_one_e_integrals
==================
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_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`)
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`.
EZFIO parameters
----------------
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`.
EZFIO parameters
----------------
.. option:: mo_integrals_e_n
Nucleus-electron integrals in |MO| basis set
.. option:: io_mo_integrals_e_n
Read/Write |MO| electron-nucleus attraction integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: mo_integrals_kinetic
Kinetic energy integrals in |MO| basis set
.. option:: io_mo_integrals_kinetic
Read/Write |MO| one-electron kinetic integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: mo_integrals_pseudo
Pseudopotential integrals in |MO| basis set
.. option:: io_mo_integrals_pseudo
Read/Write |MO| pseudopotential integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: mo_one_e_integrals
One-electron integrals in |MO| basis set
.. option:: io_mo_one_e_integrals
Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
Default: None
Providers
---------
Providers
---------
.. 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
.. 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
.. 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
.. c:var:: mo_integrals_n_e
@ -128,7 +128,7 @@ Providers
Nucleus-electron interaction on the |MO| basis
.. 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.
.. c:var:: mo_kinetic_integrals
@ -154,7 +154,7 @@ Providers
Kinetic energy integrals in the MO basis
.. 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)
.. c:var:: mo_overlap
@ -180,7 +180,7 @@ Providers
Provider to check that the MOs are indeed orthonormal.
.. c:var:: mo_pseudo_integrals
@ -193,7 +193,7 @@ Providers
Pseudopotential integrals in |MO| basis
.. 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
.. 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
.. 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
.. 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.
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: mo_to_ao
@ -271,7 +271,7 @@ Subroutines / functions
:math:`(S.C).A_{mo}.(S.C)^\dagger`
.. c:function:: mo_to_ao_no_overlap
@ -285,7 +285,7 @@ Subroutines / functions
:math:`C.A_{mo}.C^\dagger`
.. c:function:: orthonormalize_mos

View File

@ -1,45 +1,45 @@
.. _mo_two_e_erf_ints:
.. program:: mo_two_e_erf_ints
.. default-role:: option
.. _mo_two_e_erf_ints:
.. program:: mo_two_e_erf_ints
.. default-role:: option
======================
mo_two_e_erf_ints
======================
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
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
`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>
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
Read/Write MO integrals with the long range interaction from/to disk [ Write | Read | None ]
Default: None
Providers
---------
Providers
---------
.. c:var:: core_energy_erf
@ -52,7 +52,7 @@ Providers
energy from the core : contains all core-core contributionswith the erf interaction
.. 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
.. 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
.. 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
.. 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
.. c:var:: mo_integrals_erf_cache
@ -124,7 +124,7 @@ Providers
Cache of |MO| integrals for fast access
.. 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
.. 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
.. c:var:: mo_integrals_erf_map
@ -165,7 +165,7 @@ Providers
|MO| integrals
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: add_integrals_to_map_erf
@ -286,7 +286,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask
.. c:function:: clear_mo_erf_map
@ -300,7 +300,7 @@ Subroutines / functions
Frees the memory of the MO map
.. c:function:: get_mo_erf_map_size
@ -314,7 +314,7 @@ Subroutines / functions
Returns the number of elements in the |MO| map
.. 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
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. c:function:: load_mo_integrals_erf
@ -416,7 +416,7 @@ Subroutines / functions
Read from disk the |MO| erf integrals
.. 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
.. c:function:: mo_two_e_integrals_erf_index
@ -444,7 +444,7 @@ Subroutines / functions
Computes an unique index for i,j,k,l integrals
.. c:function:: provide_all_mo_integrals_erf
@ -458,7 +458,7 @@ Subroutines / functions
.. 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

View File

@ -1,9 +1,9 @@
.. _mo_two_e_ints:
.. program:: mo_two_e_ints
.. default-role:: option
.. _mo_two_e_ints:
.. program:: mo_two_e_ints
.. default-role:: option
==================
mo_two_e_ints
==================
@ -25,46 +25,46 @@ The conventions are:
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: io_mo_two_e_integrals
Read/Write |MO| integrals from/to disk [ Write | Read | None ]
Default: None
.. option:: mo_integrals_threshold
If | <ij|kl> | < `mo_integrals_threshold` then <ij|kl> is zero
Default: 1.e-15
.. option:: no_vvvv_integrals
If `True`, computes all integrals except for the integrals having 4 virtual indices
Default: False
.. option:: no_ivvv_integrals
Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual indices and 1 belonging to the core inactive active orbitals
Default: False
.. option:: no_vvv_integrals
Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual orbitals
Default: False
Providers
---------
Providers
---------
.. c:var:: big_array_coulomb_integrals
@ -80,7 +80,7 @@ Providers
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
.. c:var:: big_array_exchange_integrals
@ -96,7 +96,7 @@ Providers
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
.. c:var:: core_energy
@ -109,7 +109,7 @@ Providers
energy from the core : contains all core-core contributions
.. c:var:: core_fock_operator
@ -122,7 +122,7 @@ Providers
this is the contribution to the Fock operator from the core electrons
.. c:var:: insert_into_mo_integrals_map
@ -136,7 +136,7 @@ Providers
Create new entry into MO map, or accumulate in an existing entry
.. c:var:: mo_integrals_cache
@ -149,7 +149,7 @@ Providers
Cache of MO integrals for fast access
.. 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
.. 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
.. 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
.. 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
.. c:var:: mo_integrals_map
@ -226,7 +226,7 @@ Providers
MO integrals
.. 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
.. c:var:: mo_two_e_integrals_in_map
@ -254,7 +254,7 @@ Providers
If True, the map of MO two-electron integrals is provided
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: add_integrals_to_map
@ -392,7 +392,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask
.. 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
.. c:function:: add_integrals_to_map_three_indices
@ -420,7 +420,7 @@ Subroutines / functions
Adds integrals to tha MO map according to some bitmask
.. c:function:: clear_mo_map
@ -434,7 +434,7 @@ Subroutines / functions
Frees the memory of the MO map
.. c:function:: dump_mo_integrals
@ -448,7 +448,7 @@ Subroutines / functions
Save to disk the |MO| integrals
.. c:function:: get_mo_map_size
@ -462,7 +462,7 @@ Subroutines / functions
Return the number of elements in the MO map
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. c:function:: get_two_e_integral
@ -546,7 +546,7 @@ Subroutines / functions
Returns one integral <ij|kl> in the MO basis
.. c:function:: load_mo_integrals
@ -560,7 +560,7 @@ Subroutines / functions
Read from disk the |MO| integrals
.. c:function:: mo_two_e_integral
@ -574,7 +574,7 @@ Subroutines / functions
Returns one integral <ij|kl> in the MO basis
.. c:function:: mo_two_e_integrals_index

View File

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

View File

@ -1,9 +1,9 @@
.. _nuclei:
.. program:: nuclei
.. default-role:: option
.. _nuclei:
.. program:: nuclei
.. default-role:: option
======
nuclei
======
@ -12,47 +12,47 @@ This module contains data relative to the nuclei (coordinates, charge,
nuclear repulsion energy, etc).
The coordinates are expressed in atomic units.
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: nucl_num
Number of nuclei
.. option:: nucl_label
Nuclear labels
.. option:: nucl_charge
Nuclear charges
.. option:: nucl_coord
Nuclear coordinates in the format (:, {x,y,z})
.. option:: disk_access_nuclear_repulsion
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
Default: None
.. option:: nuclear_repulsion
Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
Providers
---------
Providers
---------
.. c:var:: center_of_mass
@ -65,7 +65,7 @@ Providers
Center of mass of the molecule
.. c:var:: element_mass
@ -79,7 +79,7 @@ Providers
Array of the name of element, sorted by nuclear charge (integer)
.. c:var:: element_name
@ -93,7 +93,7 @@ Providers
Array of the name of element, sorted by nuclear charge (integer)
.. c:var:: inertia_tensor
@ -106,7 +106,7 @@ Providers
Inertia tensor
.. c:var:: inertia_tensor_eigenvalues
@ -120,7 +120,7 @@ Providers
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
.. c:var:: inertia_tensor_eigenvectors
@ -134,7 +134,7 @@ Providers
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
.. c:var:: nucl_coord
@ -147,7 +147,7 @@ Providers
Nuclear coordinates in the format (:, {x,y,z})
.. c:var:: nucl_coord_transp
@ -160,7 +160,7 @@ Providers
Transposed array of nucl_coord
.. 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
.. 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
.. c:var:: nucl_dist_inv
@ -207,7 +207,7 @@ Providers
Inverse of the distance between nucleus I and nucleus J
.. 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
.. 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
.. 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
.. c:var:: nuclear_repulsion
@ -271,7 +271,7 @@ Providers
Nuclear repulsion energy
.. 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)
.. c:var:: slater_bragg_radii_per_atom
@ -297,7 +297,7 @@ Providers
.. c:var:: slater_bragg_radii_per_atom_ua
@ -310,7 +310,7 @@ Providers
.. c:var:: slater_bragg_radii_ua
@ -323,7 +323,7 @@ Providers
.. c:var:: slater_bragg_type_inter_distance
@ -336,7 +336,7 @@ Providers
.. c:var:: slater_bragg_type_inter_distance_ua

View File

@ -1,9 +1,9 @@
.. _perturbation:
.. program:: perturbation
.. default-role:: option
.. _perturbation:
.. program:: perturbation
.. default-role:: option
============
perturbation
============
@ -38,19 +38,19 @@ The arguments of the `pt2_` are always:
`psi_ref`
bitstring of the determinants present in the various `N_st` states
`psi_ref_coefs`
coefficients of the determinants on the various `N_st` states
`E_refs`
Energy of the various `N_st` states
`det_pert`
Perturber determinant
`c_pert`
Perturbative coefficients for the various states
`e_2_pert`
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
If `True`, compute the |PT2| contribution
Default: True
.. option:: pt2_max
The selection process stops when the largest |PT2| (for all the state) is lower
than `pt2_max` in absolute value
Default: 0.0001
.. option:: 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
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}}`.
Default: 1.00
.. option:: h0_type
Type of zeroth-order Hamiltonian [ EN | Barycentric | Variance | SOP ]
Default: EN
Providers
---------
Providers
---------
.. c:var:: fill_h_apply_buffer_selection
@ -125,7 +119,20 @@ Providers
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
@ -138,7 +145,7 @@ Providers
.. c:var:: selection_criterion
@ -153,7 +160,7 @@ Providers
Threshold to select determinants. Set by selection routines.
.. c:var:: selection_criterion_factor
@ -168,7 +175,7 @@ Providers
Threshold to select determinants. Set by selection routines.
.. c:var:: selection_criterion_min
@ -183,7 +190,7 @@ Providers
Threshold to select determinants. Set by selection routines.
.. 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
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. 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.
.. c:function:: pt2_dummy
@ -438,7 +445,7 @@ Subroutines / functions
Dummy perturbation to add all connected determinants.
.. c:function:: pt2_epstein_nesbet
@ -458,7 +465,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2
@ -478,7 +485,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag
@ -500,7 +507,7 @@ Subroutines / functions
.. c:function:: pt2_h_core
@ -522,7 +529,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset
@ -542,7 +549,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset_general
@ -562,7 +569,7 @@ Subroutines / functions
.. c:function:: pt2_qdpt
@ -580,7 +587,7 @@ Subroutines / functions
.. c:function:: remove_small_contributions
@ -594,7 +601,7 @@ Subroutines / functions
Remove determinants with small contributions. N_states is assumed to be provided.
.. c:function:: repeat_all_e_corr

View File

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

View File

@ -1,14 +1,14 @@
.. _psiref_cas:
.. program:: psiref_cas
.. default-role:: option
.. _psiref_cas:
.. program:: psiref_cas
.. default-role:: option
==========
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|.

View File

@ -1,9 +1,9 @@
.. _psiref_utils:
.. program:: psiref_utils
.. default-role:: option
.. _psiref_utils:
.. program:: psiref_utils
.. default-role:: option
============
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.

View File

@ -1,9 +1,9 @@
.. _scf_utils:
.. program:: scf_utils
.. default-role:: option
.. _scf_utils:
.. program:: scf_utils
.. default-role:: option
=========
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
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.
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).
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).
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
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 level_shift`
* :option:`scf_utils thresh_scf`
* :option:`scf_utils level_shift`
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
@ -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
.. _level-shifting: https://doi.org/10.1002/qua.560070407
EZFIO parameters
----------------
EZFIO parameters
----------------
.. option:: max_dim_diis
Maximum size of the DIIS extrapolation procedure
Default: 15
.. 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.
Default: 0.
.. option:: thresh_scf
Threshold on the convergence of the Hartree Fock energy.
Default: 1.e-10
.. option:: n_it_scf_max
Maximum number of SCF iterations
Default: 500
.. option:: level_shift
Energy shift on the virtual MOs to improve SCF convergence
Default: 0.
.. option:: scf_algorithm
Type of SCF algorithm used. Possible choices are [ Simple | DIIS]
Default: DIIS
.. option:: mo_guess_type
Initial MO guess. Can be [ Huckel | HCore ]
Default: Huckel
.. option:: energy
Calculated HF energy
.. 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
Default: False
Providers
---------
Providers
---------
.. c:var:: eigenvalues_fock_matrix_ao
@ -120,7 +120,7 @@ Providers
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
.. c:var:: eigenvectors_fock_matrix_ao
@ -134,7 +134,7 @@ Providers
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
.. c:var:: eigenvectors_fock_matrix_mo
@ -147,7 +147,7 @@ Providers
Eigenvector of the Fock matrix in the MO basis obtained with level shift.
.. c:var:: extrapolate_fock_matrix
@ -164,7 +164,7 @@ Providers
Compute the extrapolated Fock matrix using the DIIS procedure
.. c:var:: fock_matrix_ao
@ -177,7 +177,7 @@ Providers
Fock matrix in AO basis set
.. c:var:: fock_matrix_diag_mo
@ -201,7 +201,7 @@ Providers
.. c:var:: fock_matrix_mo
@ -225,7 +225,7 @@ Providers
.. c:var:: fock_matrix_mo_alpha
@ -238,7 +238,7 @@ Providers
Fock matrix on the MO basis
.. c:var:: fock_matrix_mo_beta
@ -251,7 +251,7 @@ Providers
Fock matrix on the MO basis
.. c:var:: fps_spf_matrix_ao
@ -264,7 +264,7 @@ Providers
Commutator FPS - SPF
.. c:var:: fps_spf_matrix_mo
@ -277,7 +277,7 @@ Providers
Commutator FPS - SPF in MO basis
.. c:var:: scf_density_matrix_ao
@ -290,7 +290,7 @@ Providers
S^{-1}.P.S^{-1} where P = C.C^t
.. c:var:: scf_density_matrix_ao_alpha
@ -303,7 +303,7 @@ Providers
S^{-1}.P_alpha.S^{-1}
.. c:var:: scf_density_matrix_ao_beta
@ -316,7 +316,7 @@ Providers
S^{-1}.P_beta.S^{-1}
.. c:var:: scf_energy
@ -329,7 +329,7 @@ Providers
Hartree-Fock energy
.. c:var:: threshold_diis_nonzero
@ -342,11 +342,11 @@ Providers
If threshold_DIIS is zero, choose sqrt(thresh_scf)
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: damping_scf
@ -360,7 +360,7 @@ Subroutines / functions
.. c:function:: huckel_guess
@ -374,7 +374,7 @@ Subroutines / functions
Build the MOs using the extended Huckel model
.. c:function:: roothaan_hall_scf

View File

@ -1,13 +1,13 @@
.. _selectors_cassd:
.. program:: selectors_cassd
.. default-role:: option
.. _selectors_cassd:
.. program:: selectors_cassd
.. default-role:: option
===============
selectors_cassd
===============
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.

View File

@ -1,9 +1,9 @@
.. _selectors_full:
.. program:: selectors_full
.. default-role:: option
.. _selectors_full:
.. program:: selectors_full
.. default-role:: option
==============
selectors_full
==============
@ -11,12 +11,12 @@ selectors_full
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
threshold_selectors` flag.
Providers
---------
Providers
---------
.. 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
.. c:var:: psi_selectors
@ -43,7 +43,7 @@ Providers
Determinants on which we apply <i|H|psi> for perturbation.
.. c:var:: psi_selectors_coef
@ -57,7 +57,7 @@ Providers
Determinants on which we apply <i|H|psi> for perturbation.
.. c:var:: threshold_selectors

View File

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

View File

@ -1,9 +1,9 @@
.. _single_ref_method:
.. program:: single_ref_method
.. default-role:: option
.. _single_ref_method:
.. program:: single_ref_method
.. default-role:: option
=================
single_ref_method
=================
@ -11,75 +11,4 @@ single_ref_method
Include this module for single reference methods.
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:
.. program:: tools
.. default-role:: option
.. _tools:
.. program:: tools
.. default-role:: option
=====
tools
=====
Useful tools are grouped in this module.
Subroutines / functions
-----------------------
.. c:function:: diagonalize_h
.. code:: text
subroutine diagonalize_h
File: :file:`diagonalize_h.irp.f`
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`.
.. 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 :)
Programs
--------
* :ref:`diagonalize_h`
* :ref:`fcidump`
* :ref:`four_idx_transform`
* :ref:`molden`
* :ref:`print_e_conv`
* :ref:`print_wf`
* :ref:`save_natorb`
* :ref:`save_one_e_dm`
* :ref:`save_ortho_mos`
* :ref:`write_integrals_erf`
Subroutines / functions
-----------------------
.. c:function:: routine
@ -142,7 +42,7 @@ Subroutines / functions
.. c:function:: routine_e_conv
@ -156,7 +56,7 @@ Subroutines / functions
routine called by :c:func:`print_e_conv`
.. c:function:: routine_save_one_e_dm
@ -170,67 +70,7 @@ Subroutines / functions
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
@ -244,7 +84,7 @@ Subroutines / functions
.. 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
@ -286,7 +112,7 @@ Subroutines / functions
.. c:function:: write_mo_basis

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
.. _zmq:
.. program:: zmq
.. default-role:: option
.. _zmq:
.. program:: zmq
.. default-role:: option
===
zmq
===
@ -11,12 +11,12 @@ zmq
Definition of |ZeroMQ| sockets and messages.
Providers
---------
Providers
---------
.. c:var:: is_zmq_slave
@ -29,7 +29,7 @@ Providers
If |true|, the current process is a |ZeroMQ| slave.
.. c:var:: qp_run_address
@ -43,7 +43,7 @@ Providers
Address of the qp_run socket Example : tcp://130.120.229.139:12345
.. c:var:: zmq_context
@ -57,7 +57,7 @@ Providers
Context for the ZeroMQ library
.. c:var:: zmq_lock
@ -71,7 +71,7 @@ Providers
Context for the ZeroMQ library
.. c:var:: zmq_port_start
@ -85,7 +85,7 @@ Providers
Address of the qp_run socket Example : tcp://130.120.229.139:12345
.. c:var:: zmq_socket_pair_inproc_address
@ -103,7 +103,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_socket_pull_inproc_address
@ -121,7 +121,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_socket_pull_tcp_address
@ -139,7 +139,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_socket_push_inproc_address
@ -157,7 +157,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_socket_push_tcp_address
@ -175,7 +175,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_socket_sub_tcp_address
@ -193,7 +193,7 @@ Providers
Socket which pulls the results (2)
.. c:var:: zmq_state
@ -206,11 +206,11 @@ Providers
Threads executing work through the ZeroMQ interface
Subroutines / functions
-----------------------
Subroutines / functions
-----------------------
.. c:function:: add_task_to_taskserver
@ -224,7 +224,7 @@ Subroutines / functions
Get a task from the task server
.. c:function:: connect_to_taskserver
@ -238,7 +238,7 @@ Subroutines / functions
Connect to the task server and obtain the worker ID
.. c:function:: disconnect_from_taskserver
@ -252,7 +252,7 @@ Subroutines / functions
Disconnect from the task server
.. c:function:: disconnect_from_taskserver_state
@ -266,7 +266,7 @@ Subroutines / functions
Disconnect from the task server
.. 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'
.. c:function:: end_zmq_pair_socket
@ -294,7 +294,7 @@ Subroutines / functions
Terminate socket on which the results are sent.
.. c:function:: end_zmq_pull_socket
@ -308,7 +308,7 @@ Subroutines / functions
Terminate socket on which the results are sent.
.. c:function:: end_zmq_push_socket
@ -322,7 +322,7 @@ Subroutines / functions
Terminate socket on which the results are sent.
.. c:function:: end_zmq_sub_socket
@ -336,7 +336,7 @@ Subroutines / functions
Terminate socket on which the results are sent.
.. c:function:: end_zmq_to_qp_run_socket
@ -350,7 +350,7 @@ Subroutines / functions
Terminate the socket from the application to qp_run
.. c:function:: get_task_from_taskserver
@ -364,7 +364,7 @@ Subroutines / functions
Get a task from the task server
.. c:function:: get_tasks_from_taskserver
@ -378,7 +378,7 @@ Subroutines / functions
Get multiple tasks from the task server
.. 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'
.. c:function:: new_zmq_pair_socket
@ -406,7 +406,7 @@ Subroutines / functions
Socket on which the collector and the main communicate
.. 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
.. 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
.. c:function:: new_zmq_sub_socket
@ -448,7 +448,7 @@ Subroutines / functions
Socket to read the state published by the Task server
.. c:function:: new_zmq_to_qp_run_socket
@ -462,7 +462,7 @@ Subroutines / functions
Socket on which the qp_run process replies
.. c:function:: reset_zmq_addresses
@ -476,7 +476,7 @@ Subroutines / functions
Socket which pulls the results (2)
.. 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
.. c:function:: task_done_to_taskserver
@ -504,7 +504,7 @@ Subroutines / functions
Get a task from the task server
.. c:function:: tasks_done_to_taskserver
@ -518,7 +518,7 @@ Subroutines / functions
Get a task from the task server
.. c:function:: wait_for_next_state
@ -532,7 +532,7 @@ Subroutines / functions
.. c:function:: wait_for_state
@ -546,7 +546,7 @@ Subroutines / functions
Wait for the ZMQ state to be ready
.. c:function:: wait_for_states
@ -560,7 +560,7 @@ Subroutines / functions
Wait for the ZMQ state to be ready
.. c:function:: zmq_abort
@ -574,7 +574,7 @@ Subroutines / functions
Aborts a running parallel computation
.. 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.
.. 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.
.. 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.
.. 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.
.. c:function:: zmq_get8_dvector
@ -644,7 +644,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler
.. c:function:: zmq_get8_ivector
@ -658,7 +658,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_dmatrix
@ -672,7 +672,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_dvector
@ -686,7 +686,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_i8matrix
@ -700,7 +700,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_imatrix
@ -714,7 +714,7 @@ Subroutines / functions
Get a float vector from the qp_run scheduler
.. c:function:: zmq_get_int
@ -728,7 +728,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_int_nompi
@ -742,7 +742,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_get_ivector
@ -756,7 +756,7 @@ Subroutines / functions
Get a vector of integers from the qp_run scheduler
.. c:function:: zmq_port
@ -770,7 +770,7 @@ Subroutines / functions
Return the value of the ZMQ port from the corresponding integer
.. c:function:: zmq_put8_dvector
@ -784,7 +784,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler
.. c:function:: zmq_put8_ivector
@ -798,7 +798,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler
.. c:function:: zmq_put_dmatrix
@ -812,7 +812,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_dvector
@ -826,7 +826,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_i8matrix
@ -840,7 +840,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_imatrix
@ -854,7 +854,7 @@ Subroutines / functions
Put a float vector on the qp_run scheduler
.. c:function:: zmq_put_int
@ -868,7 +868,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler
.. c:function:: zmq_put_ivector
@ -882,7 +882,7 @@ Subroutines / functions
Put a vector of integers on the qp_run scheduler
.. 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.
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_*
Index of programs
=================
.. toctree::
:maxdepth: 1
:glob:
/programs/*

View File

@ -112,6 +112,7 @@ function qp()
"prompt")
shift
python2 $QP_ROOT/scripts/hello.py
function _check_ezfio() {
if [[ -d ${EZFIO_FILE} ]] ; then
printf "\e[0;32m|${EZFIO_FILE}>\e[m"
@ -240,7 +241,7 @@ _qp_Complete()
then
case "${prev2}" in
"set"|has|get)
set|has|get)
if [[ ${prev} == "qp" ]] ; then
COMPREPLY=( $(compgen -W "plugins set set_frozen_core set_mo_class" -- $cur ) )
elif [[ ! -d ${EZFIO_FILE}/${prev} ]] ; then
@ -266,7 +267,7 @@ _qp_Complete()
return 0
;;
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
;;
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.
.
.TH "CONFIGURE" "1" "Jan 14, 2019" "2.0" "Quantum Package"
.TH "CONFIGURE" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
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.
.
.TH "EXCITED_STATES" "1" "Jan 14, 2019" "2.0" "Quantum Package"
.TH "EXCITED_STATES" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
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.
.
.TH "INTERFACES" "1" "Jan 14, 2019" "2.0" "Quantum Package"
.TH "INTERFACES" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
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.
.
.TH "NATURAL_ORBITALS" "1" "Jan 14, 2019" "2.0" "Quantum Package"
.TH "NATURAL_ORBITALS" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
natural_orbitals \- | Quantum Package >
.

View File

@ -1,6 +1,6 @@
.\" 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
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.
.
.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
qp_convert_output_to_ezfio \- | Quantum Package >
.
@ -32,31 +32,35 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
..
.sp
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
puts this data in an \fI\%EZFIO\fP database. Some constraints are necessary in the
output file : the run needs to be a single point HF, DFT or CAS SCF\&.
geometry, AOs and MOs from output files of \fI\%GAMESS\fP or Gaussian, and puts
this data in an \fI\%EZFIO\fP database. Some constraints are necessary in the output
file : the run needs to be a single point HF, DFT or CAS SCF\&.
.SH USAGE
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_convert_output_to_ezfio <FILE.out> [\-o <EZFIO_DIRECTORY>]
qp_convert_output_to_ezfio [\-o EZFIO_DIR] FILE
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-o <EZFIO_DIRECTORY>
Renames the \fI\%EZFIO\fP directory. If this option is not present, the default
name fill be \fB<FILE.out>.ezfio\fP
.B \-o, \-\-output=EZFIO_DIR
Renames the \fI\%EZFIO\fP directory. If this option is not present, the default
name fill be \fBFILE.ezfio\fP
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 0.0
.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 3.5
.sp

View File

@ -1,6 +1,6 @@
.\" 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
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
.nf
.ft C
qp_create_ezfio_from_xyz [FLAGS] (<xyz_file> | <zmt_file>)
Flags :
\-b [\-au] [\-c int] [\-cart] [\-d float]
[\-m int] [\-o file] [\-p string] [\-help]
qp_create_ezfio_from_xyz [\-a] \-b <string> [\-c <int>] [\-d <float>]
[\-h] [\-m <int>] [\-o EZFIO_DIR] [\-p <string>] [\-x] [\-\-] FILE
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.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
atoms are taken from the same basis set, otherwise specific elements can be
defined as follows:
@ -66,46 +69,47 @@ defined as follows:
.UNINDENT
.sp
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
.INDENT 0.0
.TP
.B \-au
If present, input geometry is in atomic units.
.UNINDENT
.INDENT 0.0
.TP
.B \-c <float>
.B \-c, \-\-charge=<int>
Total charge of the molecule. Default is 0.
.UNINDENT
.INDENT 0.0
.TP
.B \-cart
Compute AOs in the Cartesian basis set (6d, 10f, …)
.B \-d, \-\-dummy=<float>
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
.INDENT 0.0
.TP
.B \-d <float>
Add dummy atoms. x * (covalent radii of the atoms)
.B \-h, \-\-help
Print the help text and exit
.UNINDENT
.INDENT 0.0
.TP
.B \-m <int>
Spin multiplicity (2S+1) of the molecule. Default is 1.
.B \-m, \-\-multiplicity=<int>
Spin multiplicity 2S+1 of the molecule. Default is 1.
.UNINDENT
.INDENT 0.0
.TP
.B \-o <EZFIO_DIRECTORY>
.B \-o, \-\-output=EZFIO_DIR
Name of the created \fI\%EZFIO\fP directory.
.UNINDENT
.INDENT 0.0
.TP
.B \-p <string>
Name of the pseudo\-potential
.B \-p <string>, \-\-pseudo=<string>
Name of the pseudo\-potential. Follows the same conventions as the basis set.
.UNINDENT
.INDENT 0.0
.TP
.B \-help, \-?
Print the help text and exit
.B \-x, \-\-cart
Compute AOs in the Cartesian basis set (6d, 10f, …)
.UNINDENT
.SH USING CUSTOM ATOMIC BASIS SETS
.sp
@ -124,8 +128,8 @@ qp_create_ezfio_from_xyz \-b custom.basis molecule.xyz
.UNINDENT
.sp
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.
Here is an example
atoms are given, and the basis sets for each element are separated by a blank
line. Here is an example
.INDENT 0.0
.INDENT 3.5
.sp
@ -177,10 +181,10 @@ D 1
.SH USING CUSTOM PSEUDO-POTENTIALS
.sp
As for the basis set, if a file with the same name as the pseudo\-potential
exists, this file will be read.
For example, if the file containing the custom pseudo\-potential is named
\fBcustom.pseudo\fP, the basis set is named \fBcustom.basis\fP, and the \fIxyz\fP
geometry is in \fBmolecule.xyz\fP, the following command should be used
exists, this file will be read. For example, if the file containing the custom
pseudo\-potential is named \fBcustom.pseudo\fP, the basis set is named
\fBcustom.basis\fP, and the \fIxyz\fP geometry is in \fBmolecule.xyz\fP, the following
command should be used
.INDENT 0.0
.INDENT 3.5
.sp
@ -193,12 +197,11 @@ qp_create_ezfio_from_xyz \-b custom.basis \-p custom.pseudo molecule.xyz
.UNINDENT
.sp
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
first string is the chemical symbol, the first integer is the number of
core electrons to be removed and the second integer is LMAX+1 as in \fI\%GAMESS\fP
format.
The pseudo\-potential for each element are separated by a blank line.
Here is an example
format. The first line should be formatted as \fB%s GEN %d %d\fP where the first
string is the chemical symbol, the first integer is the number of core
electrons to be removed and the second integer is LMAX+1 as in \fI\%GAMESS\fP format.
The pseudo\-potential for each element are separated by a blank line. Here is
an example
.INDENT 0.0
.INDENT 3.5
.sp

View File

@ -1,6 +1,6 @@
.\" 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
qp_edit \- | Quantum Package >
.
@ -32,16 +32,17 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
..
.sp
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)
document, where each section corresponds to the corresponding \fIQuantum Package\fP module.
The content of the file can be modified to change the input parameters. When
the text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory.
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. The
content of the file can be modified to change the input parameters. When the
text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory.
.sp
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
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
.sp
@ -58,43 +59,46 @@ determinants are not displayed.
.sp
.nf
.ft C
qp_edit [FLAGS] <EZFIO_DIRECTORY>
Flags :
[\-c] [\-ndet int]
[\-state int] [\-help]
qp_edit [\-c] [\-h] [\-n <int>] [\-s <range>] [\-\-] EZFIO_DIR
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-c
.B \-c, \-\-check
Checks the input data
.UNINDENT
.INDENT 0.0
.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
.UNINDENT
.INDENT 0.0
.TP
.B \-state <int>
Pick the target state as a new wavefunction.
.B \-s, \-\-state=<range>
Select the states to extract from the \fI\%EZFIO\fP directory, using the same conventions
as qp_set_mo_class\&. See example below.
.UNINDENT
.SH EXAMPLE
.INDENT 0.0
.TP
.B \-help
Print the help text and exits
.INDENT 3.5
.sp
.nf
.ft C
qp_edit \-\-state="[1,3\-5]" test.ezfio
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Here is a short list of important control parameters :
.INDENT 0.0
.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
Removes all states except states 1,3,4 and 5 from \fBtest.ezfio\fP\&. The
resulting \fI\%EZFIO\fP directory has 4 states.
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT

View File

@ -1,6 +1,6 @@
.\" 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
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
..
.sp
In some HPC facilities, the access to the internet is limited for security reasons.
In such an environment, the installation of \fIQuantum Package\fP is sometimes very painful because
the OCaml compiler and the libraries cant be installed by a non\-root user.
In some HPC facilities, the access to the internet is limited for security
reasons. In such an environment, the installation of \fIQuantum Package\fP is sometimes very
painful because the OCaml compiler and the libraries cant be installed by a
non\-root user.
.sp
This command creates a self\-contained binary distribution in the form of a \fItar.gz\fP file
that can be copied on another machine.
This command creates a self\-contained binary distribution in the form of a
\fItar.gz\fP file that can be copied on another machine.
.SH USAGE
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_export_as_tgz
qp_export_as_tgz [\-h|\-\-help]
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-h, \-\-help
Prints the help message
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 0.0
.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.
.UNINDENT
.UNINDENT

View File

@ -1,6 +1,6 @@
.\" 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
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
..
.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
installed/uninstalled of created.
installed/uninstalled or created.
.SH USAGE
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_plugins list [ \-i | \-u | \-q ]
qp_plugins list [\-i] [\-u] [\-q]
qp_plugins download <url>
qp_plugins install <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
.fi
.UNINDENT
@ -56,17 +56,17 @@ List all the available plugins.
.UNINDENT
.INDENT 0.0
.TP
.B \-i
.B \-i, \-\-installed
List all the \fIinstalled\fP plugins.
.UNINDENT
.INDENT 0.0
.TP
.B \-u
.B \-u, \-\-uninstalled
List all the \fIuninstalled\fP plugins.
.UNINDENT
.INDENT 0.0
.TP
.B \-q
.B \-q, \-\-repositories
List all the downloaded repositories.
.UNINDENT
.INDENT 0.0
@ -93,19 +93,21 @@ Uninstall the plugin \fBplugin_name\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-n <plugin_name>
.B \-n, \-\-name=<plugin_name>
Create a new plugin named \fBplugin_name\fP (in local repository by default).
.UNINDENT
.INDENT 0.0
.TP
.B \-r <repository>
.B \-r, \-\-repository=<repo>
Specify in which repository the new plugin will be created.
.UNINDENT
.SH EXAMPLE
.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
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 3.5
.sp
@ -117,8 +119,8 @@ qp_plugins download https://gitlab.com/eginer/qp_plugins_eginer
.UNINDENT
.UNINDENT
.sp
This will create in the directory \fIplugins\fP a local copy of the git repo located at the URL you indicated.
Then, go in \fIqp_plugins_eginer/stable/\fP
This will create in the directory \fIplugins\fP a local copy of the git repo
located at the URL you indicated. Then, go in \fIqp_plugins_eginer/stable/\fP
.INDENT 0.0
.INDENT 3.5
.sp
@ -130,8 +132,9 @@ cd qp_plugins_eginer/stable/
.UNINDENT
.UNINDENT
.sp
In the directory \fIstable\fP, there are many directories which all correspond to a 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 directory \fIstable\fP, there are many directories which all correspond to a
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\&.
.sp
Now let us install the plugin \fIrsdft_cipsi\fP:
@ -146,10 +149,13 @@ qp_plugins install rsdft_cipsi
.UNINDENT
.UNINDENT
.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
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\&.
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 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
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 3.5
.sp
@ -162,8 +168,9 @@ ninja
.UNINDENT
.UNINDENT
.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
which are now available with the \fIqp_run\fP command.
Finally, if you go back to the plugin directory you just installed, you should see
all the executables/scripts which have been created and which are now available
with the \fIqp_run\fP command.
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT

View File

@ -1,6 +1,6 @@
.\" 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
qp_run \- | Quantum Package >
.
@ -38,8 +38,7 @@ Command used to run a calculation.
.sp
.nf
.ft C
qp_run [\-h|\-\-help] [\-p <string>|\-\-prefix=<string>] [\-s|\-\-slave] [\-\-]
PROGRAM EZFIO_DIR
qp_run [\-h] [\-p <string>] [\-s] [\-\-] PROGRAM EZFIO_DIR
.ft P
.fi
.UNINDENT

View File

@ -1,6 +1,6 @@
.\" 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
qp_set_frozen_core \- | Quantum Package >
.
@ -46,7 +46,7 @@ zero.
.sp
.nf
.ft C
qp_set_frozen_core [\-q] <EZFIO_DIRECTORY>
qp_set_frozen_core [\-q] EZFIO_DIR
.ft P
.fi
.UNINDENT

View File

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

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