mirror of
https://github.com/LCPQ/quantum_package
synced 2024-06-02 11:25:26 +02:00
Autogen
This commit is contained in:
parent
c4ceb53b20
commit
487d538083
213
INSTALL.rst
Normal file
213
INSTALL.rst
Normal file
|
@ -0,0 +1,213 @@
|
|||
============
|
||||
Installation
|
||||
============
|
||||
|
||||
Before anything, go into your :file:`quantum_package` directory and run
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./configure
|
||||
|
||||
|
||||
This script will create the :file:`quantum_package.rc` bash script, which
|
||||
sets all the environment variables required for the normal operation of the
|
||||
*Quantum Package*.
|
||||
|
||||
Running this script will also tell you which external dependencies need to be
|
||||
installed.
|
||||
|
||||
Then, source the :file:`quantum_package.rc` file in your current shell before
|
||||
installing the dependencies.
|
||||
|
||||
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
- Linux OS
|
||||
- Fortran compiler : GNU Fortran, Intel Fortran or IBM XL Fortran
|
||||
- `GNU make`_
|
||||
- `Autoconf`_
|
||||
- `Python`_ > 2.6
|
||||
- |IRPF90| : Fortran code generator
|
||||
- |EZFIO| : Easy Fortran Input/Output library generator
|
||||
- |BLAS| and |LAPACK|
|
||||
- `EMSL_Basis_Set_Exchange_Local`_ : Local copy of the data contained in the
|
||||
`EMSL Basis Set Exchange website <https://bse.pnl.gov/bse/portal>`_
|
||||
- `Zlib`_
|
||||
- `GNU Patch`_
|
||||
- |ZeroMQ| : networking library
|
||||
- |OCaml| compiler with |OPAM| package manager
|
||||
- |Ninja| : a parallel build system
|
||||
|
||||
|
||||
When all the dependencies have been installed, go into the config directory,
|
||||
and copy the configuration file that corresponds to your architecture. Modify
|
||||
it if needed, and run :command:`configure` with :option:`configure -c`.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cp ./config/gfortran.example config/gfortran.cfg
|
||||
./configure -c config/gfortran.cfg
|
||||
|
||||
|
||||
|
||||
Help for installing external dependencies
|
||||
=========================================
|
||||
|
||||
Before doing anything below, try to install the packages with your package manager
|
||||
(:command:`apt`, :command:`yum`, etc)
|
||||
|
||||
|
||||
Ninja
|
||||
-----
|
||||
|
||||
*Ninja* is a build system (like GNU make), with a focus on speed.
|
||||
|
||||
* Download the latest binary version of Ninja
|
||||
here : `<https://github.com/ninja-build/ninja/releases/latest>`_
|
||||
|
||||
* Unzip the ninja-linux.zip file, and move the ninja binary into
|
||||
the :file:`${QP_ROOT}/bin` directory.
|
||||
|
||||
|
||||
|
||||
IRPF90
|
||||
------
|
||||
|
||||
*IRPF90* is a Fortran code generator for programming using the Implicit Reference
|
||||
to Parameters (IRP) method.
|
||||
|
||||
* Download the latest version of IRPF90
|
||||
here : `<https://github.com/scemama/irpf90/releases/latest>`_ and move
|
||||
the downloaded archive in the :file:`"$QP_ROOT"/external` directory
|
||||
|
||||
* Extract the archive and go into the :file:`irpf90-*` directory to run
|
||||
:command:`make``
|
||||
|
||||
* Create scripts to facilitate the access to :command:`irpf90` and
|
||||
:command:`irpman` as follows
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
for i in irpf90 irpman irpf90_indent
|
||||
do
|
||||
cat << EOF > "$QP_ROOT"/bin/$i
|
||||
#!/bin/sh
|
||||
exec $PWD/bin/$i \$@
|
||||
EOF
|
||||
|
||||
chmod +x "$QP_ROOT"/bin/$i
|
||||
done
|
||||
|
||||
|
||||
|
||||
ZeroMQ and its Fortran binding
|
||||
------------------------------
|
||||
|
||||
*ZeroMQ* is a high-performance asynchronous messaging library.
|
||||
|
||||
* Download the latest stable version of ZeroMQ
|
||||
here : `<https://github.com/zeromq/libzmq/releases/latest>`_ and move the
|
||||
downloaded archive in the :file:`"$QP_ROOT"/external` directory
|
||||
|
||||
* Extract the archive, go into the :file:`zeromq-*` directory and run
|
||||
the following commands
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./configure --prefix="$QP_ROOT" --without-libsodium
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
* Download the Fortran binding
|
||||
here : `<https://github.com/zeromq/f77_zmq/releases/latest>`_ and move
|
||||
the downloaded archive in the :file:`"$QP_ROOT"/external` directory
|
||||
|
||||
* Extract the archive, go into the :file:`f77_zmq-*` directory and run
|
||||
the following commands
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
export ZMQ_H="$QP_ROOT"/include/zmq.h
|
||||
make
|
||||
cp libf77zmq.a "${QP_ROOT}"/lib
|
||||
cp libf77zmq.so "${QP_ROOT}"/lib
|
||||
|
||||
|
||||
* Copy the :file:`f77_zmq_free.h` file in the ``ZMQ`` module as follows:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cp f77_zmq_free.h "${QP_ROOT}"/src/ZMQ/f77_zmq.h
|
||||
|
||||
|
||||
|
||||
OCaml
|
||||
-----
|
||||
|
||||
*OCaml* is a general purpose programming language with an emphasis on expressiveness and safety.
|
||||
|
||||
* Download the installer of the OPAM package manager here : `<//raw.githubusercontent.com/ocaml/opam/master/shell/install.sh>`_
|
||||
|
||||
* Copy it as :file:`"$QP_ROOT"/bin/opam`
|
||||
|
||||
* Install the OCaml compiler
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
opam init --root="$QP_ROOT"/external/opam --comp=4.06.0
|
||||
eval `"$QP_ROOT"/bin/opam config env --root="$QP_ROOT"/external/opam`
|
||||
|
||||
* Install the required external OCaml libraries
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
opam install cryptokit zmq core sexplib ppx_sexp_conv ppx_deriving
|
||||
|
||||
|
||||
EZFIO
|
||||
-----
|
||||
|
||||
*EZFIO* is the Easy Fortran Input/Output library generator.
|
||||
|
||||
* Download EZFIO here : `<https://github.com/scemama/EZFIO/releases/latest>`_ and move
|
||||
the downloaded archive in the :file:`"$QP_ROOT"/external` directory
|
||||
|
||||
* Extract the archive, and rename it as :file:`"$QP_ROOT"/external/ezfio`
|
||||
|
||||
|
||||
EMSL Basis Sets
|
||||
---------------
|
||||
|
||||
*EMSL_Basis_Set_Exchange_Local* is a tool which provides all basis sets of the
|
||||
`EMSL web site <https://bse.pnl.gov/bse/portal>`_ off-line.
|
||||
|
||||
* Download the archive
|
||||
here : `<https://github.com/LCPQ/EMSL_Basis_Set_Exchange_Local/releases/latest>`_
|
||||
and move the downloaded archive in the :file:`"$QP_ROOT"/external` directory
|
||||
|
||||
* Extract the archive, and rename it as :file:`"$QP_ROOT"/external/emsl`.
|
||||
|
||||
|
||||
Docopt
|
||||
------
|
||||
|
||||
*Docopt* is a Python package defining a command-line interface description language.
|
||||
|
||||
If you have *pip*, you can do
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip2 install docopt
|
||||
|
||||
Otherwise,
|
||||
|
||||
* Download the archive here : `<https://github.com/docopt/docopt/releases/tag/0.6.2>`_
|
||||
|
||||
* Extract the archive
|
||||
|
||||
* Copy :file:`docopt-0.6.2/docopt.py` in the :file:`${QP_ROOT}/scripts` directory
|
||||
|
||||
|
|
@ -16,4 +16,5 @@ help:
|
|||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
cd source ; python2 auto_generate.py
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
.. |SLURM| replace:: `SLURM`_
|
||||
.. |ZeroMQ| replace:: `ZeroMQ`_
|
||||
|
||||
.. |AO| replace:: :abbr:`AO (Atomic Orbital)`
|
||||
.. |AOs| replace:: :abbr:`AOs (Atomic Orbitals)`
|
||||
.. |CAS| replace:: :abbr:`CAS (Complete Active Space)`
|
||||
.. |CAS-SD| replace:: :abbr:`CAS-SD (Complete Active Space plus all Singles and Doubles)`
|
||||
.. |CCD| replace:: :abbr:`CCD (Coupled Cluster with Double Excitations)`
|
||||
|
@ -50,6 +52,21 @@
|
|||
.. |CI| replace:: :abbr:`CI (Configuration Interaction)`
|
||||
.. |CISD| replace:: :abbr:`CISD (Configuration Interaction with Single and Double Excitations)`
|
||||
.. |CIS| replace:: :abbr:`CIS (Configuration Interaction with Single Excitations)`
|
||||
.. |DFT| replace:: :abbr:`DFT (Density Functional Theory)`
|
||||
.. |DDCI| replace:: :abbr:`DDCI (Difference Dedicated Configuration Interaction)`
|
||||
.. |DIIS| replace:: :abbr:`DIIS (Direct Inversion of the Iterative Subspace)`
|
||||
.. |FCI| replace:: :abbr:`FCI (Full Configuration Interaction)`
|
||||
.. |HF| replace:: :abbr:`HF (Hartree-Fock)`
|
||||
.. |MO| replace:: :abbr:`MO (Molecular Orbital)`
|
||||
.. |MOs| replace:: :abbr:`MOs (Molecular Orbitals)`
|
||||
.. |MP2| replace:: :abbr:`MP2 (Moller-Plesset second order perturbative correction)`
|
||||
.. |MPI| replace:: :abbr:`MPI (Message Passing Interface)`
|
||||
.. |MRCC| replace:: :abbr:`MRCC (Multi-Reference Coupled Cluster)`
|
||||
.. |MRPT| replace:: :abbr:`MRPT (Multi-Reference Perturbation Theory)`
|
||||
.. |PT2| replace:: :abbr:`PT2 (Second order perturbative correction)`
|
||||
.. |SCF| replace:: :abbr:`SCF (Self Consistent Field)`
|
||||
|
||||
.. |H| replace:: :math:`\hat H`
|
||||
.. |Psi| replace:: :math:`|\Psi \rangle`
|
||||
.. |S^2| replace:: :math:`\widehat{S^2}`
|
||||
|
||||
|
|
62
docs/source/auto_generate.py
Executable file
62
docs/source/auto_generate.py
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/bin/env python2
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import ConfigParser
|
||||
|
||||
|
||||
def generate(abs_module):
|
||||
MODULE = os.path.split(abs_module)[-1]
|
||||
module = MODULE.lower()
|
||||
if module == "dummy":
|
||||
return
|
||||
|
||||
with open( os.path.join(abs_module,'README.rst'), 'r' ) as f:
|
||||
readme = f.read()
|
||||
rst = [
|
||||
".. _%s:"%(module), "",
|
||||
".. program:: %s"%(module), "",
|
||||
".. default-role:: option", "",
|
||||
readme, "",
|
||||
]
|
||||
|
||||
EZFIO = os.path.join(abs_module,'EZFIO.cfg')
|
||||
if os.path.exists(EZFIO):
|
||||
rst += [ "", "EZFIO parameters", "----------------", "" ]
|
||||
config_file = ConfigParser.ConfigParser()
|
||||
with open(EZFIO,'r') as f:
|
||||
config_file.readfp(f)
|
||||
for section in config_file.sections():
|
||||
doc = config_file.get(section,"doc")
|
||||
doc = " " + doc.replace("\n","\n\n ")+"\n"
|
||||
try:
|
||||
default = config_file.get(section,"default")
|
||||
default = " " + "Default: %s\n"%default
|
||||
except:
|
||||
default = ""
|
||||
rst += [ ".. option:: %s\n"%(section), doc, default ]
|
||||
|
||||
rst_file = os.path.join('modules',module+".rst")
|
||||
with open(rst_file,'w') as f:
|
||||
f.write("\n".join(rst))
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
if "QP_ROOT" in os.environ:
|
||||
QP_ROOT=os.environ["QP_ROOT"]
|
||||
else:
|
||||
QP_ROOT="../../../"
|
||||
|
||||
SRC = os.path.join(QP_ROOT, "src")
|
||||
|
||||
|
||||
for abs_module in os.listdir(SRC):
|
||||
abs_module = os.path.join(SRC,abs_module)
|
||||
if os.path.exists( os.path.join(abs_module, "README.rst") ):
|
||||
generate(abs_module)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -13,15 +13,17 @@ Quantum Package
|
|||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Introduction
|
||||
|
||||
intro/intro
|
||||
intro/selected_ci
|
||||
intro/requirements
|
||||
intro/installation
|
||||
intro/configure
|
||||
intro/install
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 1
|
||||
:caption: User's guide
|
||||
|
||||
users_guide/users_guide
|
||||
|
@ -31,24 +33,31 @@ Quantum Package
|
|||
users_guide/qp_edit
|
||||
users_guide/qp_run
|
||||
users_guide/qp_set_mo_class
|
||||
users_guide/hartree_fock
|
||||
users_guide/natural_orbitals
|
||||
users_guide/plugins
|
||||
users_guide/excited_states
|
||||
|
||||
users_guide.rst
|
||||
users_guide/interfaces
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 1
|
||||
:caption: Modules
|
||||
:glob:
|
||||
|
||||
modules/*
|
||||
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Programmer's guide
|
||||
|
||||
programmers_guide/programming
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Appendix:
|
||||
:maxdepth: 1
|
||||
:caption: Appendix
|
||||
|
||||
appendix/benchmarks
|
||||
appendix/research
|
||||
|
|
2
docs/source/intro/install.rst
Normal file
2
docs/source/intro/install.rst
Normal file
|
@ -0,0 +1,2 @@
|
|||
.. include:: ../../../INSTALL.rst
|
||||
|
91
docs/source/modules/ao_basis.rst
Normal file
91
docs/source/modules/ao_basis.rst
Normal file
|
@ -0,0 +1,91 @@
|
|||
.. _ao_basis:
|
||||
|
||||
.. program:: ao_basis
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
========
|
||||
AO_Basis
|
||||
========
|
||||
|
||||
This module describes the atomic orbitals basis set.
|
||||
|
||||
An |AO| :math:`\chi` centered on nucleus A is represented as:
|
||||
|
||||
.. math::
|
||||
|
||||
\chi_i({\bf r}) = (x-X_A)^a (y-Y_A)^b (z-Z_A)^c \sum_k c_{ki} e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2}
|
||||
|
||||
|
||||
The |AO| coefficients are normalized as:
|
||||
|
||||
.. math::
|
||||
|
||||
{\tilde c}_{ki} = \frac{c_{ki}}{ \int \left( (x-X_A)^a (y-Y_A)^b (z-Z_A)^c e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2} \right)^2 dr}
|
||||
|
||||
Warning: `ao_coef` contains the |AO| coefficients given in input. These do not
|
||||
include the normalization constant of the |AO|. The `ao_coef_normalized` provider includes
|
||||
this normalization factor.
|
||||
|
||||
The |AOs| are also sorted by increasing exponent to accelerate the calculation of
|
||||
the two electron integrals.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
43
docs/source/modules/ao_one_e_integrals.rst
Normal file
43
docs/source/modules/ao_one_e_integrals.rst
Normal file
|
@ -0,0 +1,43 @@
|
|||
.. _ao_one_e_integrals:
|
||||
|
||||
.. program:: ao_one_e_integrals
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==================
|
||||
AO_one_e_integrals
|
||||
==================
|
||||
|
||||
All the one-electron integrals in the |AO| basis are here.
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: integral_nuclear
|
||||
|
||||
Nucleus-electron integrals in |AO| basis set
|
||||
|
||||
|
||||
.. option:: integral_kinetic
|
||||
|
||||
Kinetic energy integrals in |AO| basis set
|
||||
|
||||
|
||||
.. option:: integral_pseudo
|
||||
|
||||
Pseudopotential integrals in |AO| basis set
|
||||
|
||||
|
||||
.. option:: integral_overlap
|
||||
|
||||
Overlap integrals in |AO| basis set
|
||||
|
||||
|
||||
.. option:: disk_access_ao_one_integrals
|
||||
|
||||
Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||
|
||||
Default: None
|
35
docs/source/modules/bitmask.rst
Normal file
35
docs/source/modules/bitmask.rst
Normal file
|
@ -0,0 +1,35 @@
|
|||
.. _bitmask:
|
||||
|
||||
.. program:: bitmask
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==============
|
||||
Bitmask Module
|
||||
==============
|
||||
|
||||
The central part of this module is the :file:`bitmasks_module.f90` file. It contains
|
||||
the constants that will be used to define on which kind of integer the bitmasks
|
||||
will be defined.
|
||||
|
||||
In the program, to represent a determinant as a pair of bitstrings,
|
||||
the determinant should be defined as
|
||||
|
||||
.. code-block:: fortran
|
||||
|
||||
use bitmasks
|
||||
integer(bit_kind) :: determinant(N_int,2)
|
||||
|
||||
|
||||
:file:`bitmasks_routines.irp.f` contains helper routines to manipulate bitmask, like
|
||||
transforming a bit string to a list of integers for example.
|
||||
|
||||
|
||||
`bit_kind_shift`, `bit_kind_size` and `bit_kind` are supposed to be consistent::
|
||||
|
||||
2**bit_kind_shift = bit_kind_size
|
||||
bit_kind = bit_kind_size / 8
|
||||
|
||||
|
||||
|
||||
|
51
docs/source/modules/cassd.rst
Normal file
51
docs/source/modules/cassd.rst
Normal file
|
@ -0,0 +1,51 @@
|
|||
.. _cassd:
|
||||
|
||||
.. program:: cassd
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=====
|
||||
CASSD
|
||||
=====
|
||||
|
||||
Selected |CAS-SD|.
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: energy
|
||||
|
||||
Calculated CAS-SD energy
|
||||
|
||||
|
||||
.. option:: energy_pt2
|
||||
|
||||
Calculated selected CAS-SD energy with PT2 correction
|
||||
|
||||
|
||||
.. option:: do_ddci
|
||||
|
||||
If true, remove purely inactive double excitations
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: do_only_1h1p
|
||||
|
||||
If true, do only one hole/one particle excitations
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: do_singles
|
||||
|
||||
If true, do only single excitations
|
||||
|
||||
Default: True
|
||||
|
||||
.. option:: do_doubles
|
||||
|
||||
If true, do only double excitations
|
||||
|
||||
Default: True
|
30
docs/source/modules/champ.rst
Normal file
30
docs/source/modules/champ.rst
Normal file
|
@ -0,0 +1,30 @@
|
|||
.. _champ:
|
||||
|
||||
.. program:: champ
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===============
|
||||
CHAMP Interface
|
||||
===============
|
||||
|
||||
For multi-state calculations, to extract state 2 use:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
QP_STATE=2 qp_run save_for_champ x.ezfio
|
||||
|
||||
(state 1 is the ground state).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: ci_threshold
|
||||
|
||||
Threshold on the CI coefficients as in QMCChem
|
||||
|
||||
Default: 1.e-8
|
29
docs/source/modules/cis.rst
Normal file
29
docs/source/modules/cis.rst
Normal file
|
@ -0,0 +1,29 @@
|
|||
.. _cis:
|
||||
|
||||
.. program:: cis
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===
|
||||
CIS
|
||||
===
|
||||
|
||||
This module contains a CIS program, built by setting the following rules:
|
||||
|
||||
* The only generator determinant is the Hartree-Fock (single-reference method)
|
||||
* All generated singly excited determinants are included in the wave function (no perturbative
|
||||
selection)
|
||||
|
||||
These rules are set in the ``H_apply.irp.f`` file.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: energy
|
||||
|
||||
Variational CIS energy
|
||||
|
29
docs/source/modules/cisd.rst
Normal file
29
docs/source/modules/cisd.rst
Normal file
|
@ -0,0 +1,29 @@
|
|||
.. _cisd:
|
||||
|
||||
.. program:: cisd
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
====
|
||||
CISD
|
||||
====
|
||||
|
||||
This module contains a CISD program, built by setting the following rules:
|
||||
|
||||
* The only generator determinant is the Hartree-Fock (single-reference method)
|
||||
* All generated determinants are included in the wave function (no perturbative
|
||||
selection)
|
||||
|
||||
These rules are set in the ``H_apply.irp.f`` file.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: energy
|
||||
|
||||
Variational CISD energy
|
||||
|
58
docs/source/modules/davidson.rst
Normal file
58
docs/source/modules/davidson.rst
Normal file
|
@ -0,0 +1,58 @@
|
|||
.. _davidson:
|
||||
|
||||
.. program:: davidson
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==============
|
||||
Davidson_Utils
|
||||
==============
|
||||
|
||||
Abstract module for Davidson's diagonalization.
|
||||
It contains everything required for the Davidson algorithm, dressed or not. If
|
||||
a dressing is used, the dressing column should be defined and the
|
||||
:ref:`davidsondressed` module should be used. If no dressing is required,
|
||||
the :ref:`davidson` module should be used, and it has a default zero dressing vector.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: threshold_davidson
|
||||
|
||||
Thresholds of Davidson's algorithm
|
||||
|
||||
Default: 1.e-12
|
||||
|
||||
.. 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: False
|
13
docs/source/modules/davidsondressed.rst
Normal file
13
docs/source/modules/davidsondressed.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _davidsondressed:
|
||||
|
||||
.. program:: davidsondressed
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===============
|
||||
DavidsonDressed
|
||||
===============
|
||||
|
||||
Davidson with single-column dressing.
|
||||
|
||||
|
13
docs/source/modules/davidsonundressed.rst
Normal file
13
docs/source/modules/davidsonundressed.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _davidsonundressed:
|
||||
|
||||
.. program:: davidsonundressed
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=================
|
||||
DavidsonUndressed
|
||||
=================
|
||||
|
||||
Module for main files Davidson's algorithm with no dressing.
|
||||
|
||||
|
12
docs/source/modules/debug.rst
Normal file
12
docs/source/modules/debug.rst
Normal file
|
@ -0,0 +1,12 @@
|
|||
.. _debug:
|
||||
|
||||
.. program:: debug
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=====
|
||||
debug
|
||||
=====
|
||||
|
||||
Debugging module.
|
||||
|
122
docs/source/modules/determinants.rst
Normal file
122
docs/source/modules/determinants.rst
Normal file
|
@ -0,0 +1,122 @@
|
|||
.. _determinants:
|
||||
|
||||
.. program:: determinants
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
============
|
||||
Determinants
|
||||
============
|
||||
|
||||
Contains everything for the computation of the Hamiltonian in the basis of Slater determinants.
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: N_det_max
|
||||
|
||||
Maximum number of determinants in the wave function
|
||||
|
||||
Default: 1000000
|
||||
|
||||
.. option:: N_det_max_full
|
||||
|
||||
Maximum number of determinants where |H| is fully diagonalized
|
||||
|
||||
Default: 1000
|
||||
|
||||
.. option:: N_states
|
||||
|
||||
Number of states to consider
|
||||
|
||||
Default: 1
|
||||
|
||||
.. option:: read_wf
|
||||
|
||||
If true, read the wave function from the |EZFIO| file
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: s2_eig
|
||||
|
||||
Force the wave function to be an eigenfunction of |S^2|
|
||||
|
||||
Default: True
|
||||
|
||||
.. option:: used_weight
|
||||
|
||||
0: 1./(c_0^2), 1: 1/N_states, 2: input state-average weight, 3: 1/(Norm_L3(Psi))
|
||||
|
||||
Default: 0
|
||||
|
||||
.. option:: threshold_generators
|
||||
|
||||
Thresholds on generators (fraction of the square of the norm)
|
||||
|
||||
Default: 0.99
|
||||
|
||||
.. option:: threshold_selectors
|
||||
|
||||
Thresholds on selectors (fraction of the square of the norm)
|
||||
|
||||
Default: 0.999
|
||||
|
||||
.. option:: n_int
|
||||
|
||||
Number of integers required to represent bitstrings (set in module :ref:`bitmasks`)
|
||||
|
||||
|
||||
.. option:: bit_kind
|
||||
|
||||
(set in module :ref:`bitmasks`)
|
||||
|
||||
|
||||
.. option:: mo_label
|
||||
|
||||
Label of the |MOs| on which the determinants are expressed
|
||||
|
||||
|
||||
.. option:: n_det
|
||||
|
||||
Number of determinants in the current wave function
|
||||
|
||||
|
||||
.. option:: psi_coef
|
||||
|
||||
Coefficients of the wave function
|
||||
|
||||
|
||||
.. option:: psi_det
|
||||
|
||||
Determinants of the variational space
|
||||
|
||||
|
||||
.. option:: expected_s2
|
||||
|
||||
Expected value of |S^2|
|
||||
|
||||
|
||||
.. option:: target_energy
|
||||
|
||||
Energy that should be obtained when truncating the wave function (optional)
|
||||
|
||||
Default: 0.
|
||||
|
||||
.. option:: store_full_H_mat
|
||||
|
||||
If True, the Davidson diagonalization is performed by storing the full |H| matrix up to n_det_max_stored. Be careful, it can cost a lot of memory but can also save a lot of CPU time
|
||||
|
||||
Default: False
|
||||
|
||||
.. option:: n_det_max_stored
|
||||
|
||||
Maximum number of determinants for which the full |H| matrix is stored. be careful, the memory requested scales as 10*n_det_max_stored**2. for instance, 90000 determinants represents a matrix of size 60 Gb.
|
||||
|
||||
Default: 90000
|
||||
|
||||
.. option:: state_average_weight
|
||||
|
||||
Weight of the states in state-average calculations.
|
||||
|
36
docs/source/modules/dressing.rst
Normal file
36
docs/source/modules/dressing.rst
Normal file
|
@ -0,0 +1,36 @@
|
|||
.. _dressing:
|
||||
|
||||
.. program:: dressing
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=========
|
||||
dress_zmq
|
||||
=========
|
||||
|
||||
Module to facilitate the construction of modules using dressed Hamiltonians, parallelized
|
||||
with |ZeroMQ|.
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
44
docs/source/modules/electrons.rst
Normal file
44
docs/source/modules/electrons.rst
Normal file
|
@ -0,0 +1,44 @@
|
|||
.. _electrons:
|
||||
|
||||
.. program:: electrons
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=========
|
||||
Electrons
|
||||
=========
|
||||
|
||||
Describes the electrons. For the moment, only the number of alpha and beta electrons
|
||||
are provided by this module.
|
||||
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
* `elec_num` >= 0
|
||||
* `elec_alpha_num` >= 0
|
||||
* `elec_beta_num` >= 0
|
||||
* `elec_alpha_num` >= `elec_beta_num`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
15
docs/source/modules/ezfio_files.rst
Normal file
15
docs/source/modules/ezfio_files.rst
Normal file
|
@ -0,0 +1,15 @@
|
|||
.. _ezfio_files:
|
||||
|
||||
.. program:: ezfio_files
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===========
|
||||
Ezfio_files
|
||||
===========
|
||||
|
||||
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.
|
||||
|
||||
|
26
docs/source/modules/fci.rst
Normal file
26
docs/source/modules/fci.rst
Normal file
|
@ -0,0 +1,26 @@
|
|||
.. _fci:
|
||||
|
||||
.. program:: fci
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===
|
||||
FCI
|
||||
===
|
||||
|
||||
Selected Full Configuration Interaction.
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: energy
|
||||
|
||||
Calculated Selected |FCI| energy
|
||||
|
||||
|
||||
.. option:: energy_pt2
|
||||
|
||||
Calculated |FCI| energy + |PT2|
|
||||
|
13
docs/source/modules/fouridx.rst
Normal file
13
docs/source/modules/fouridx.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _fouridx:
|
||||
|
||||
.. program:: fouridx
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=======
|
||||
FourIdx
|
||||
=======
|
||||
|
||||
Four-index transformation.
|
||||
|
||||
|
19
docs/source/modules/generators_cas.rst
Normal file
19
docs/source/modules/generators_cas.rst
Normal file
|
@ -0,0 +1,19 @@
|
|||
.. _generators_cas:
|
||||
|
||||
.. program:: generators_cas
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==============
|
||||
Generators_CAS
|
||||
==============
|
||||
|
||||
Module defining the generator determinants as those belonging to a |CAS|.
|
||||
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
|
||||
generators on a |CAS|.
|
||||
|
||||
|
||||
|
16
docs/source/modules/generators_full.rst
Normal file
16
docs/source/modules/generators_full.rst
Normal file
|
@ -0,0 +1,16 @@
|
|||
.. _generators_full:
|
||||
|
||||
.. program:: generators_full
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===============
|
||||
Generators_full
|
||||
===============
|
||||
|
||||
Module defining the generator determinants as all the determinants of the
|
||||
variational space.
|
||||
|
||||
This module is intended to be included in the :file:`NEED` file to define
|
||||
a full set of generators.
|
||||
|
97
docs/source/modules/hartree_fock.rst
Normal file
97
docs/source/modules/hartree_fock.rst
Normal file
|
@ -0,0 +1,97 @@
|
|||
.. _hartree_fock:
|
||||
|
||||
.. program:: hartree_fock
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
============
|
||||
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 program does the following:
|
||||
|
||||
#. Compute/Read all the one- and two-electron integrals, and store them in memory
|
||||
#. 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
|
||||
|
||||
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
|
||||
the |SCF| with the same |EZFIO| database.
|
||||
|
||||
The `DIIS`_ algorithm is implemented, as well as the `level-shifting`_ method.
|
||||
If the |SCF| does not converge, try again with a higher value of :option:`level_shift`.
|
||||
|
||||
To start a calculation from scratch, the simplest way is to remove the
|
||||
``mo_basis`` directory from the |EZFIO| database, and run the |SCF| again.
|
||||
|
||||
|
||||
|
||||
|
||||
.. _DIIS: https://en.wikipedia.org/w/index.php?title=DIIS
|
||||
.. _level-shifting: https://doi.org/10.1002/qua.560070407
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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.2
|
||||
|
||||
.. 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:: no_oa_or_av_opt
|
||||
|
||||
If true, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the |SCF| procedure
|
||||
|
||||
Default: False
|
80
docs/source/modules/integrals_bielec.rst
Normal file
80
docs/source/modules/integrals_bielec.rst
Normal file
|
@ -0,0 +1,80 @@
|
|||
.. _integrals_bielec:
|
||||
|
||||
.. program:: integrals_bielec
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
================
|
||||
Integrals_Bielec
|
||||
================
|
||||
|
||||
Here, all two-electron integrals (:math:`1/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`.
|
||||
|
||||
To fetch an |AO| integral, use the
|
||||
`get_ao_bielec_integral(i,j,k,l,ao_integrals_map)` function, and
|
||||
to fetch an |MO| integral, use
|
||||
`get_mo_bielec_integral(i,j,k,l,mo_integrals_map)` or
|
||||
`mo_bielec_integral(i,j,k,l)`.
|
||||
|
||||
The conventions are:
|
||||
|
||||
* For |AO| integrals : (ik|jl) = (11|22)
|
||||
* For |MO| integrals : <ij|kl> = <12|12>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: disk_access_mo_integrals
|
||||
|
||||
Read/Write |MO| integrals from/to disk [ Write | Read | None ]
|
||||
|
||||
Default: None
|
||||
|
||||
.. option:: disk_access_ao_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:: 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
|
||||
|
||||
.. option:: do_direct_integrals
|
||||
|
||||
Compute integrals on the fly (very slow, only for debugging)
|
||||
|
||||
Default: False
|
37
docs/source/modules/iterations.rst
Normal file
37
docs/source/modules/iterations.rst
Normal file
|
@ -0,0 +1,37 @@
|
|||
.. _iterations:
|
||||
|
||||
.. program:: iterations
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=============
|
||||
IterativeSave
|
||||
=============
|
||||
|
||||
Module which saves the computed energies for an extrapolation to the |FCI| limit.
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
65
docs/source/modules/mo_basis.rst
Normal file
65
docs/source/modules/mo_basis.rst
Normal file
|
@ -0,0 +1,65 @@
|
|||
.. _mo_basis:
|
||||
|
||||
.. program:: mo_basis
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
========
|
||||
MO_Basis
|
||||
========
|
||||
|
||||
Molecular orbitals are expressed as
|
||||
|
||||
.. math::
|
||||
|
||||
\phi_k({\bf r}) = \sum_i C_{ik} \chi_k({\bf r})
|
||||
|
||||
|
||||
where :math:`\chi_k` are *normalized* atomic basis functions.
|
||||
|
||||
The current set of |MOs| has a label `mo_label`.
|
||||
When the orbitals are modified, the label should also be updated to keep
|
||||
everything consistent.
|
||||
|
||||
When saving the |MOs|, the :file:`mo_basis` directory of the |EZFIO| database
|
||||
is copied in the :file:`save` directory, named by the current `mo_label`. All
|
||||
this is done with the script named :file:`save_current_mos.sh` in the
|
||||
:file:`$QP_ROOT/scripts` directory.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: mo_tot_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.
|
||||
|
38
docs/source/modules/mo_one_e_integrals.rst
Normal file
38
docs/source/modules/mo_one_e_integrals.rst
Normal file
|
@ -0,0 +1,38 @@
|
|||
.. _mo_one_e_integrals:
|
||||
|
||||
.. program:: mo_one_e_integrals
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==================
|
||||
MO_one_e_integrals
|
||||
==================
|
||||
|
||||
All the one-electron integrals in |MO| basis are defined here.
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: integral_nuclear
|
||||
|
||||
Nucleus-electron integrals in |MO| basis set
|
||||
|
||||
|
||||
.. option:: integral_kinetic
|
||||
|
||||
Kinetic energy integrals in |MO| basis set
|
||||
|
||||
|
||||
.. option:: integral_pseudo
|
||||
|
||||
Pseudopotential integrals in |MO| basis set
|
||||
|
||||
|
||||
.. option:: disk_access_mo_one_integrals
|
||||
|
||||
Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||
|
||||
Default: None
|
13
docs/source/modules/moguess.rst
Normal file
13
docs/source/modules/moguess.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _moguess:
|
||||
|
||||
.. program:: moguess
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=======
|
||||
MOGuess
|
||||
=======
|
||||
|
||||
Guess for |MOs|.
|
||||
|
||||
|
21
docs/source/modules/mp2.rst
Normal file
21
docs/source/modules/mp2.rst
Normal file
|
@ -0,0 +1,21 @@
|
|||
.. _mp2:
|
||||
|
||||
.. program:: mp2
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==========
|
||||
MP2 Module
|
||||
==========
|
||||
|
||||
Computes the |MP2| energy.
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: energy
|
||||
|
||||
|MP2| energy
|
||||
|
12
docs/source/modules/mpi.rst
Normal file
12
docs/source/modules/mpi.rst
Normal file
|
@ -0,0 +1,12 @@
|
|||
.. _mpi:
|
||||
|
||||
.. program:: mpi
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===
|
||||
MPI
|
||||
===
|
||||
|
||||
Contains all the functions and providers for parallelization with |MPI|.
|
||||
|
49
docs/source/modules/mrcc.rst
Normal file
49
docs/source/modules/mrcc.rst
Normal file
|
@ -0,0 +1,49 @@
|
|||
.. _mrcc:
|
||||
|
||||
.. program:: mrcc
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
====
|
||||
MRCC
|
||||
====
|
||||
|
||||
Multi-Reference Coupled Cluster module:
|
||||
|
||||
#. A simple approach to the state-specific MR-CC using the intermediate Hamiltonian formalism
|
||||
Emmanuel Giner , Grégoire David , Anthony Scemama and Jean Paul Malrieu (2016), in: J. Chem. Phys., 144:6(064101)
|
||||
|
||||
#. Alternative definition of excitation amplitudes in multi-reference state-specific coupled cluster
|
||||
Yann Garniron , Emmanuel Giner , Jean Paul Malrieu and Anthony Scemama (2017), in: The Journal of Chemical Physics, 146:15(154107)
|
||||
|
||||
Using this module requires to have a selected |CAS-SD| wave function.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: lambda_type
|
||||
|
||||
Type of amplitudes used. lambda=0 : defined in [2], lambda=1 : defined in [1]
|
||||
|
||||
Default: 0
|
||||
|
||||
.. option:: energy
|
||||
|
||||
|MRCC| energy
|
||||
|
||||
|
||||
.. option:: energy_pt2
|
||||
|
||||
Selected |MRCC| energy, with |PT2| contribution to estimate the complete |MRCC| energy
|
||||
|
||||
|
||||
.. option:: perturbative_triples
|
||||
|
||||
If `True`, compute the perturbative contribution of the Triples
|
||||
|
||||
Default: true
|
14
docs/source/modules/mrcc_utils.rst
Normal file
14
docs/source/modules/mrcc_utils.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
.. _mrcc_utils:
|
||||
|
||||
.. program:: mrcc_utils
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==========
|
||||
MRCC_Utils
|
||||
==========
|
||||
|
||||
Subroutines and providers required for |MRCC|.
|
||||
|
||||
|
||||
|
22
docs/source/modules/mrpt_utils.rst
Normal file
22
docs/source/modules/mrpt_utils.rst
Normal file
|
@ -0,0 +1,22 @@
|
|||
.. _mrpt_utils:
|
||||
|
||||
.. program:: mrpt_utils
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==========
|
||||
MRPT_Utils
|
||||
==========
|
||||
|
||||
Subroutines and providers required for |MRPT|.
|
||||
|
||||
|
||||
|
||||
EZFIO parameters
|
||||
----------------
|
||||
|
||||
.. option:: do_third_order_1h1p
|
||||
|
||||
If `True`, compute the third order contribution for the 1h1p
|
||||
|
||||
Default: True
|
50
docs/source/modules/nuclei.rst
Normal file
50
docs/source/modules/nuclei.rst
Normal file
|
@ -0,0 +1,50 @@
|
|||
.. _nuclei:
|
||||
|
||||
.. program:: nuclei
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
======
|
||||
Nuclei
|
||||
======
|
||||
|
||||
This module contains data relative to the nuclei (coordinates, charge,
|
||||
nuclear repulsion energy, etc).
|
||||
The coordinates are expressed in atomic units.
|
||||
|
||||
|
||||
|
||||
|
||||
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|)
|
||||
|
109
docs/source/modules/perturbation.rst
Normal file
109
docs/source/modules/perturbation.rst
Normal file
|
@ -0,0 +1,109 @@
|
|||
.. _perturbation:
|
||||
|
||||
.. program:: perturbation
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
============
|
||||
Perturbation
|
||||
============
|
||||
|
||||
|
||||
All subroutines in ``*.irp.f`` starting with `pt2_` in the current directory are
|
||||
perturbation computed using the routine `i_H_psi`. Other cases are not allowed.
|
||||
The arguments of the `pt2_` are always:
|
||||
|
||||
.. code-block:: fortran
|
||||
|
||||
subroutine pt2_...( &
|
||||
psi_ref, &
|
||||
psi_ref_coefs, &
|
||||
E_refs, &
|
||||
det_pert, &
|
||||
c_pert, &
|
||||
e_2_pert, &
|
||||
H_pert_diag, &
|
||||
Nint, &
|
||||
Ndet, &
|
||||
N_st )
|
||||
|
||||
|
||||
integer , intent(in) :: Nint,Ndet,N_st
|
||||
integer(bit_kind), intent(in) :: psi_ref(Nint,2,Ndet)
|
||||
double precision , intent(in) :: psi_ref_coefs(Ndet,N_st)
|
||||
double precision , intent(in) :: E_refs(N_st)
|
||||
integer(bit_kind), intent(in) :: det_pert(Nint,2)
|
||||
double precision , intent(out) :: c_pert(N_st),e_2_pert(N_st),H_pert_diag
|
||||
|
||||
|
||||
`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
|
||||
|
||||
`H_pert_diag`
|
||||
Diagonal |H| matrix element of the perturber
|
||||
|
||||
`Nint`
|
||||
Should be equal to `N_int`
|
||||
|
||||
`Ndet`
|
||||
Number of determinants `i` in |Psi| on which we apply <det_pert | |H| | `i`>
|
||||
|
||||
`N_st`
|
||||
Number of states
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
.. option:: correlation_energy_ratio_max
|
||||
|
||||
The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules).
|
||||
|
||||
Defined as :math:`\frac{E_{CI}-E_{HF}} {E_{CI}+E_{PT2} - E_{HF}}`.
|
||||
|
||||
Default: 1.00
|
||||
|
||||
.. option:: h0_type
|
||||
|
||||
Type of zeroth-order Hamiltonian [ EN | Barycentric ]
|
||||
|
||||
Default: EN
|
94
docs/source/modules/pseudo.rst
Normal file
94
docs/source/modules/pseudo.rst
Normal file
|
@ -0,0 +1,94 @@
|
|||
.. _pseudo:
|
||||
|
||||
.. program:: pseudo
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
======
|
||||
Pseudo
|
||||
======
|
||||
|
||||
This module defines the |EZFIO| parameters of the effective core potentials.
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
14
docs/source/modules/psiref_cas.rst
Normal file
14
docs/source/modules/psiref_cas.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
.. _psiref_cas:
|
||||
|
||||
.. program:: psiref_cas
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==========
|
||||
Psiref_CAS
|
||||
==========
|
||||
|
||||
Reference wave function is defined as a |CAS| wave function.
|
||||
This module is required for |CAS-SD|, |MRPT| or |MRCC|.
|
||||
|
||||
|
16
docs/source/modules/psiref_utils.rst
Normal file
16
docs/source/modules/psiref_utils.rst
Normal file
|
@ -0,0 +1,16 @@
|
|||
.. _psiref_utils:
|
||||
|
||||
.. program:: psiref_utils
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
============
|
||||
Psiref_Utils
|
||||
============
|
||||
|
||||
|
||||
Utilities related to the use of a reference wave function. This module
|
||||
needs to be loaded with any `psi_ref_*` module.
|
||||
|
||||
|
||||
|
13
docs/source/modules/selectors_cassd.rst
Normal file
13
docs/source/modules/selectors_cassd.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _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.
|
||||
|
14
docs/source/modules/selectors_full.rst
Normal file
14
docs/source/modules/selectors_full.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
.. _selectors_full:
|
||||
|
||||
.. program:: selectors_full
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
==============
|
||||
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.
|
||||
|
13
docs/source/modules/selectors_utils.rst
Normal file
13
docs/source/modules/selectors_utils.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _selectors_utils:
|
||||
|
||||
.. program:: selectors_utils
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===============
|
||||
Selectors_Utils
|
||||
===============
|
||||
|
||||
Helper functions for selectors.
|
||||
|
||||
|
14
docs/source/modules/singlerefmethod.rst
Normal file
14
docs/source/modules/singlerefmethod.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
.. _singlerefmethod:
|
||||
|
||||
.. program:: singlerefmethod
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===============
|
||||
SingleDetMethod
|
||||
===============
|
||||
|
||||
Include this module for single reference methods.
|
||||
Using this module, the only generator determinant is the Hartree-Fock determinant.
|
||||
|
||||
|
13
docs/source/modules/slave.rst
Normal file
13
docs/source/modules/slave.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _slave:
|
||||
|
||||
.. program:: slave
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=====
|
||||
Slave
|
||||
=====
|
||||
|
||||
Slave processes for distributed parallelism.
|
||||
|
||||
|
12
docs/source/modules/tools.rst
Normal file
12
docs/source/modules/tools.rst
Normal file
|
@ -0,0 +1,12 @@
|
|||
.. _tools:
|
||||
|
||||
.. program:: tools
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=====
|
||||
Tools
|
||||
=====
|
||||
|
||||
Useful tools are grouped in this module.
|
||||
|
13
docs/source/modules/utils.rst
Normal file
13
docs/source/modules/utils.rst
Normal file
|
@ -0,0 +1,13 @@
|
|||
.. _utils:
|
||||
|
||||
.. program:: utils
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
=====
|
||||
Utils
|
||||
=====
|
||||
|
||||
Contains general purpose utilities (sorting, maps, etc).
|
||||
|
||||
|
14
docs/source/modules/zmq.rst
Normal file
14
docs/source/modules/zmq.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
.. _zmq:
|
||||
|
||||
.. program:: zmq
|
||||
|
||||
.. default-role:: option
|
||||
|
||||
===
|
||||
ZMQ
|
||||
===
|
||||
|
||||
Definition of |ZeroMQ| sockets and messages.
|
||||
|
||||
|
||||
|
34
docs/source/users_guide/configure.rst
Normal file
34
docs/source/users_guide/configure.rst
Normal file
|
@ -0,0 +1,34 @@
|
|||
=========
|
||||
configure
|
||||
=========
|
||||
|
||||
|
||||
.. program:: configure
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./configure [-h | -c <file> | -i <package>]
|
||||
|
||||
.. option:: -c <file>, --config <file>
|
||||
|
||||
Define a configuration file, in :file`${QP_ROOT}/config/`
|
||||
|
||||
.. option:: -h, --help
|
||||
|
||||
Print the help message
|
||||
|
||||
.. option:: -i <package>, --install <package>
|
||||
|
||||
Try to install <package>. Use at your own risk.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
./configure
|
||||
./configure -c config/gfortran.cfg
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.. _Hartree_Fock:
|
||||
|
||||
.. Fetch the documentation provided in the module.
|
||||
.. include:: ../../../src/Hartree_Fock/README.rst
|
||||
|
|
@ -3,19 +3,35 @@
|
|||
qp_convert_output_to_ezfio.py
|
||||
=============================
|
||||
|
||||
.. TODO
|
||||
.. program:: qp_convert_output_to_ezfio.py
|
||||
|
||||
Usage ::
|
||||
This Python script uses the `resultsFile`_ Python library to gather the
|
||||
geometry, |AOs| and |MOs| from output files of |GAMESS| or Gaussian, and creates an
|
||||
|EZFIO| directory with this information. Some constraints are necessary in the
|
||||
output file : the run needs to be a single point |HF|, |DFT| or |CAS| |SCF|.
|
||||
|
||||
qp_convert_output_to_ezfio.py FILE.out [-o EZFIO_DIRECTORY]
|
||||
Usage
|
||||
-----
|
||||
|
||||
This Python script uses the `resultsFile`_ Python library to gather the geometry,
|
||||
AOs and MOs from output files of |GAMESS| and Gaussian and create an |EZFIO| directory
|
||||
with this information. Some constraints are necessary in the output file : the run
|
||||
needs to be a single point HF, DFT or CASSCF.
|
||||
.. code-block:: bash
|
||||
|
||||
qp_convert_output_to_ezfio.py <FILE.out> [-o <EZFIO_DIRECTORY>]
|
||||
|
||||
.. option:: -o <EZFIO_DIRECTORY>
|
||||
|
||||
Renames the |EZFIO| directory. If this option is not present, the default
|
||||
name fill be :file:`<FILE.out>.ezfio`
|
||||
|
||||
.. note::
|
||||
The following keywords are necessary for Gaussian ::
|
||||
|
||||
GFPRINT pop=Full
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_convert_output_to_ezfio.py h2o.out -o h2o
|
||||
|
||||
|
||||
|
|
|
@ -3,35 +3,64 @@
|
|||
qp_create_ezfio_from_xyz
|
||||
========================
|
||||
|
||||
.. TODO
|
||||
|
||||
Usage ::
|
||||
|
||||
qp_create_ezfio_from_xyz [FLAGS] (xyz_file|zmt_file)
|
||||
|
||||
Flags ::
|
||||
|
||||
-b string Name of basis set.
|
||||
[-au] Input geometry is in atomic units.
|
||||
[-c int] Total charge of the molecule. Default is 0.
|
||||
[-cart] Compute AOs in the Cartesian basis set (6d, 10f, ...)
|
||||
[-d float] Add dummy atoms. x * (covalent radii of the atoms)
|
||||
[-m int] Spin multiplicity (2S+1) of the molecule. Default is 1.
|
||||
[-o file] Name of the created EZFIO file.
|
||||
[-p string] Name of the pseudo-potential
|
||||
[-help] print this help text and exit
|
||||
(alias: -?)
|
||||
|
||||
.. program:: qp_create_ezfio_from_xyz
|
||||
|
||||
This command creates an |EZFIO| directory from a standard `xyz` file or from a
|
||||
`z-matrix` file in Gaussian format. 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::
|
||||
`z-matrix` file in Gaussian format.
|
||||
|
||||
-b "cc-pcvdz | H:cc-pvdz | C:6-31g"
|
||||
-b "cc-pvtz | 1,H:sto-3g | 3,H:6-31g"
|
||||
Usage
|
||||
-----
|
||||
|
||||
By default, the basis set is obtained from the local database of the |qp|.
|
||||
.. code-block:: bash
|
||||
|
||||
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]
|
||||
|
||||
.. option:: -b <basis_name>
|
||||
|
||||
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::
|
||||
|
||||
-b "cc-pcvdz | H:cc-pvdz | C:6-31g"
|
||||
-b "cc-pvtz | 1,H:sto-3g | 3,H:6-31g"
|
||||
|
||||
By default, the basis set is obtained from the local database of the |qp|.
|
||||
|
||||
|
||||
.. option:: -au
|
||||
|
||||
If present, input geometry is in atomic units.
|
||||
|
||||
.. option:: -c <float>
|
||||
|
||||
Total charge of the molecule. Default is 0.
|
||||
|
||||
.. option:: -cart
|
||||
|
||||
Compute |AOs| in the Cartesian basis set (6d, 10f, ...)
|
||||
|
||||
.. option:: -d <float>
|
||||
|
||||
Add dummy atoms. x * (covalent radii of the atoms)
|
||||
|
||||
.. option:: -m <int>
|
||||
|
||||
Spin multiplicity (2S+1) of the molecule. Default is 1.
|
||||
|
||||
.. option:: -o <EZFIO_DIRECTORY>
|
||||
|
||||
Name of the created |EZFIO| directory.
|
||||
|
||||
.. option:: -p <string>
|
||||
|
||||
Name of the pseudo-potential
|
||||
|
||||
.. option:: -help, -?
|
||||
|
||||
Print the help text and exit
|
||||
|
||||
|
||||
Using custom atomic basis sets
|
||||
|
@ -95,12 +124,14 @@ 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
|
||||
``custom.pseudo``, the basis set is named ``custom.basis``, and the *xyz*
|
||||
geometry is in ``molecule.xyz``, the following command should be used::
|
||||
geometry is in ``molecule.xyz``, the following command should be used
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_create_ezfio_from_xyz -b custom.basis -p custom.pseudo molecule.xyz
|
||||
|
||||
Pseudo-potential files should be given in a format very close to |GAMESS|
|
||||
format. The first line should be formatted as ``"%s GEN %d %d"`` where the
|
||||
format. The first line should be formatted as ``%s GEN %d %d`` 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 |GAMESS|
|
||||
format.
|
||||
|
|
|
@ -1,22 +1,9 @@
|
|||
.. _qp_edit:
|
||||
|
||||
qp_edit
|
||||
=======
|
||||
|
||||
.. TODO
|
||||
|
||||
Usage ::
|
||||
|
||||
qp_edit EZFIO_DIRECTORY
|
||||
|
||||
|
||||
Flags ::
|
||||
|
||||
[-c] Checks the input data
|
||||
[-ndet int] Truncate the wavefunction to the target number of determinants
|
||||
[-state int] Pick the state as a new wavefunction.
|
||||
[-help] print this help text and exit
|
||||
(alias: -?)
|
||||
qp_edit
|
||||
=======
|
||||
|
||||
This command reads the content of the |EZFIO| directory and creates a temporary
|
||||
file containing the data. The data is presented as a *ReStructured Text* (rst)
|
||||
|
@ -28,9 +15,38 @@ the text editor is closed, the updated data is saved into the |EZFIO| directory.
|
|||
When the wave function is too large (more than 10 000 determinants), the
|
||||
determinants are not displayed.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_edit [FLAGS] <EZFIO_DIRECTORY>
|
||||
Flags :
|
||||
[-c] [-ndet int]
|
||||
[-state int] [-help]
|
||||
|
||||
|
||||
.. option:: -c
|
||||
|
||||
Checks the input data
|
||||
|
||||
.. option:: -ndet <int>
|
||||
|
||||
Truncates the wavefunction to the target number of determinants
|
||||
|
||||
.. option:: -state <int>
|
||||
|
||||
Pick the target state as a new wavefunction.
|
||||
|
||||
.. option:: -help
|
||||
|
||||
Print the help text and exits
|
||||
|
||||
|
||||
Here is a short list of important control parameters :
|
||||
|
||||
read_wf
|
||||
.. option:: read_wf
|
||||
|
||||
If ``false``, initialize the calculation with a single-determinant wave
|
||||
function. If ``true``, initialize the calculation with the wave function stored
|
||||
in the |EZFIO| directory.
|
||||
|
|
|
@ -5,7 +5,29 @@ qp_run
|
|||
|
||||
.. TODO
|
||||
|
||||
``qp_run`` is the command used to run a calculation.
|
||||
.. program:: qp_run
|
||||
|
||||
Command used to run a calculation.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_run [-slave] <PROGRAM> <EZFIO_DIRECTORY>
|
||||
|
||||
|
||||
.. option:: -slave
|
||||
|
||||
This option needs to be set when ``PROGRAM`` is a slave program, to accelerate
|
||||
another running instance of the |qp|.
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_run FCI h2o.ezfio
|
||||
|
||||
|
||||
|
|
|
@ -5,21 +5,6 @@ qp_set_mo_class
|
|||
|
||||
.. TODO
|
||||
|
||||
Usage ::
|
||||
|
||||
qp_set_mo_class [FLAGS] EZFIO_DIRECTORY
|
||||
|
||||
|
||||
Flags ::
|
||||
|
||||
[-act range] Range of active orbitals
|
||||
[-core range] Range of core orbitals
|
||||
[-del range] Range of deleted orbitals
|
||||
[-inact range] Range of inactive orbitals
|
||||
[-q] Query: print the current masks
|
||||
[-virt range] Range of virtual orbitals
|
||||
[-help] print this help text and exit
|
||||
(alias: -?)
|
||||
|
||||
This command sets the orbital classes in an |EZFIO| directory.
|
||||
|
||||
|
@ -55,5 +40,43 @@ The range of MOs are given like the ranges in |SLURM| commands. For example,
|
|||
zero.
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
qp_set_mo_class [FLAGS] <EZFIO_DIRECTORY>
|
||||
Flags:
|
||||
[-act range] [-core range] [-del range]
|
||||
[-inact range] [-q] [-virt range]
|
||||
[-help]
|
||||
|
||||
|
||||
.. option:: -act <range>
|
||||
|
||||
Range of active orbitals
|
||||
|
||||
.. option:: -core <range>
|
||||
|
||||
Range of core orbitals
|
||||
|
||||
.. option:: -del <range>
|
||||
|
||||
Range of deleted orbitals
|
||||
|
||||
.. option:: -inact <range>
|
||||
|
||||
Range of inactive orbitals
|
||||
|
||||
.. option:: -q
|
||||
|
||||
Query: print the current masks
|
||||
|
||||
.. option:: -virt <range>
|
||||
|
||||
Range of virtual orbitals
|
||||
|
||||
.. option:: -help, -?
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ basis set:
|
|||
Run a Hartree-Fock calculation
|
||||
------------------------------
|
||||
|
||||
The program ref:`qp_run` is the driver program of the |qp|. To run an SCF calculation,
|
||||
The program :ref:`qp_run` is the driver program of the |qp|. To run an SCF calculation,
|
||||
just run
|
||||
|
||||
.. code-block:: bash
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Convert a old ezfio file (with option.irp.f ezfio_default)
|
||||
# into a new EZFIO.cfg type
|
||||
|
||||
# Hartree Fock
|
||||
# Changin the case, don't know if is needed or not
|
||||
|
||||
echo "Will tranform qp_v1.*_ezfio to qp_v2.*_ezfio"
|
||||
echo "All action are irrevocable! And is by choice"
|
||||
echo "You need to stop to use a old version! Plz..."
|
||||
|
||||
echo "Change thresh_SCF > thresh_scf0"
|
||||
mv $1/hartree_Fock/thresh_SCF $1/hartree_fock/thresh_scf 2> /dev/null
|
||||
|
||||
# Set disk_acess
|
||||
echo "Change {read,write}_ao_integrals > disk_access_ao_integrals"
|
||||
|
||||
biint=$1/Integrals_bielec
|
||||
|
||||
if [[ -f $biint/read_ao_integrals ]]; then
|
||||
if [[ `cat $1/Integrals_bielec/read_ao_integrals` -eq "T" ]]
|
||||
then
|
||||
echo "Read" > $biint/disk_access_ao_integrals
|
||||
|
||||
elif [[ `cat $biint/write_ao_integrals` -eq "T" ]]
|
||||
then
|
||||
echo "Write" > $biint/disk_access_ao_integrals
|
||||
|
||||
else
|
||||
echo "None" > $biint/disk_access_ao_integrals
|
||||
|
||||
fi
|
||||
rm $biint/read_ao_integrals $biint/write_ao_integrals $biint/write_ao_intergals 2> /dev/null
|
||||
fi
|
||||
|
||||
mv $1/MonoInts $1/Integrals_Monoelec
|
||||
|
||||
echo "Done"
|
|
@ -1,34 +1,34 @@
|
|||
[ao_basis]
|
||||
type: character*(256)
|
||||
doc: name of the AO basis set
|
||||
doc: Name of the |AO| basis set
|
||||
interface: ezfio
|
||||
|
||||
[ao_num]
|
||||
type: integer
|
||||
doc: number of AOs
|
||||
doc: Number of |AOs|
|
||||
interface: ezfio, provider
|
||||
|
||||
[ao_prim_num]
|
||||
type: integer
|
||||
doc: Number of primitives per atomic orbital
|
||||
doc: Number of primitives per |AO|
|
||||
size: (ao_basis.ao_num)
|
||||
interface: ezfio, provider
|
||||
|
||||
[ao_prim_num_max]
|
||||
type: integer
|
||||
doc: maximum number of primitives
|
||||
doc: Maximum number of primitives
|
||||
default: =maxval(ao_basis.ao_prim_num)
|
||||
interface: ezfio
|
||||
|
||||
[ao_nucl]
|
||||
type: integer
|
||||
doc: Index of the nucleus on which the AO is centered
|
||||
doc: Index of the nucleus on which the |AO| is centered
|
||||
size: (ao_basis.ao_num)
|
||||
interface: ezfio, provider
|
||||
|
||||
[ao_power]
|
||||
type: integer
|
||||
doc: Powers of x, y and z for each AO
|
||||
doc: Powers of x, y and z for each |AO|
|
||||
size: (ao_basis.ao_num,3)
|
||||
interface: ezfio, provider
|
||||
|
||||
|
@ -40,18 +40,18 @@ interface: ezfio, provider
|
|||
|
||||
[ao_expo]
|
||||
type: double precision
|
||||
doc: Exponents for each primitive of each AO
|
||||
doc: Exponents for each primitive of each |AO|
|
||||
size: (ao_basis.ao_num,ao_basis.ao_prim_num_max)
|
||||
interface: ezfio, provider
|
||||
|
||||
[ao_md5]
|
||||
type: character*(32)
|
||||
doc: MD5 key, specific of the AO basis
|
||||
doc: MD5 key, specific of the |AO| basis
|
||||
interface: ezfio, provider
|
||||
|
||||
[ao_cartesian]
|
||||
type: logical
|
||||
doc: If true, use AOs in Cartesian coordinates (6d,10f,...)
|
||||
doc: If true, use |AOs| in Cartesian coordinates (6d,10f,...)
|
||||
interface: ezfio, provider
|
||||
default: false
|
||||
|
||||
|
|
|
@ -1,32 +1,28 @@
|
|||
==========
|
||||
AOs Module
|
||||
==========
|
||||
========
|
||||
AO_Basis
|
||||
========
|
||||
|
||||
This module describes the atomic orbitals basis set.
|
||||
|
||||
An atomic orbital :math:`\chi` centered on nucleus A is represented as:
|
||||
An |AO| :math:`\chi` centered on nucleus A is represented as:
|
||||
|
||||
.. math::
|
||||
|
||||
\chi_i({\bf r}) = (x-X_A)^a (y-Y_A)^b (z-Z_A)^c \sum_k c_{ki} e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2}
|
||||
|
||||
|
||||
The AO coefficients are normalized as:
|
||||
The |AO| coefficients are normalized as:
|
||||
|
||||
.. math::
|
||||
|
||||
{\tilde c}_{ki} = \frac{c_{ki}}{ \int \left( (x-X_A)^a (y-Y_A)^b (z-Z_A)^c e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2} \right)^2} dr
|
||||
{\tilde c}_{ki} = \frac{c_{ki}}{ \int \left( (x-X_A)^a (y-Y_A)^b (z-Z_A)^c e^{-\gamma_{ki} |{\bf r} - {\bf R}_A|^2} \right)^2 dr}
|
||||
|
||||
Warning: ``ao_coef`` contains the AO coefficients given in input. These do not
|
||||
include the normalization constant of the AO. The ``ao_coef_normalized`` includes
|
||||
Warning: `ao_coef` contains the |AO| coefficients given in input. These do not
|
||||
include the normalization constant of the |AO|. The `ao_coef_normalized` provider includes
|
||||
this normalization factor.
|
||||
|
||||
The AOs are also sorted by increasing exponent to accelerate the calculation of
|
||||
The |AOs| are also sorted by increasing exponent to accelerate the calculation of
|
||||
the two electron integrals.
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
* The AO coefficients in the EZFIO files are not necessarily normalized and are normalized after reading
|
||||
|
||||
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
[integral_nuclear]
|
||||
type: double precision
|
||||
doc: Nucleus-electron integrals in AO basis set
|
||||
doc: Nucleus-electron integrals in |AO| basis set
|
||||
size: (ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[integral_kinetic]
|
||||
type: double precision
|
||||
doc: Kinetic energy integrals in AO basis set
|
||||
doc: Kinetic energy integrals in |AO| basis set
|
||||
size: (ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[integral_pseudo]
|
||||
type: double precision
|
||||
doc: Pseudopotential integrals in AO basis set
|
||||
doc: Pseudopotential integrals in |AO| basis set
|
||||
size: (ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[integral_overlap]
|
||||
type: double precision
|
||||
doc: Overlap integrals in AO basis set
|
||||
doc: Overlap integrals in |AO| basis set
|
||||
size: (ao_basis.ao_num,ao_basis.ao_num)
|
||||
interface: ezfio
|
||||
|
||||
[disk_access_ao_one_integrals]
|
||||
type: Disk_access
|
||||
doc: Read/Write AO one-electron integrals from/to disk [ Write | Read | None ]
|
||||
doc: Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: None
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
AO_one_e_integrals
|
||||
==================
|
||||
|
||||
All the one-electron integrals in AO basis are here.
|
||||
All the one-electron integrals in the |AO| basis are here.
|
||||
|
||||
|
|
|
@ -2,34 +2,27 @@
|
|||
Bitmask Module
|
||||
==============
|
||||
|
||||
The central part of this module is the ``bitmasks_module.f90`` file. It contains
|
||||
The central part of this module is the :file:`bitmasks_module.f90` file. It contains
|
||||
the constants that will be used to define on which kind of integer the bitmasks
|
||||
will be defined.
|
||||
|
||||
In the program, when an integer ``X`` is used to represent a bit string (like a determinant
|
||||
for example), it should be defined as, for example:
|
||||
In the program, to represent a determinant as a pair of bitstrings,
|
||||
the determinant should be defined as
|
||||
|
||||
.. code-block:: fortran
|
||||
|
||||
use bitmasks
|
||||
integer(bit_kind) :: X
|
||||
integer(bit_kind) :: determinant(N_int,2)
|
||||
|
||||
|
||||
The ``bitmasks_routines.irp.f`` contains helper routines to manipulate bitmassk, like
|
||||
:file:`bitmasks_routines.irp.f` contains helper routines to manipulate bitmask, like
|
||||
transforming a bit string to a list of integers for example.
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES_CHILDREN file by the `update_README.py` script.
|
||||
`bit_kind_shift`, `bit_kind_size` and `bit_kind` are supposed to be consistent::
|
||||
|
||||
``bit_kind_shift``, ``bit_kind_size`` and ``bit_kind`` are coherent:
|
||||
|
||||
.. code_block:: fortran
|
||||
|
||||
2**bit_kind_shift = bit_kind_size
|
||||
bit_kind = bit_kind_size / 8
|
||||
2**bit_kind_shift = bit_kind_size
|
||||
bit_kind = bit_kind_size / 8
|
||||
|
||||
|
||||
|
||||
|
|
6
src/CIS/EZFIO.cfg
Normal file
6
src/CIS/EZFIO.cfg
Normal file
|
@ -0,0 +1,6 @@
|
|||
[energy]
|
||||
type: double precision
|
||||
doc: Variational CIS energy
|
||||
interface: ezfio
|
||||
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
==========
|
||||
CIS Module
|
||||
==========
|
||||
===
|
||||
CIS
|
||||
===
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
* The molecular orbitals are assumed orthonormal
|
||||
This module contains a CIS program, built by setting the following rules:
|
||||
|
||||
* The only generator determinant is the Hartree-Fock (single-reference method)
|
||||
* All generated singly excited determinants are included in the wave function (no perturbative
|
||||
selection)
|
||||
|
||||
These rules are set in the ``H_apply.irp.f`` file.
|
||||
|
||||
|
||||
|
|
|
@ -3,8 +3,4 @@ type: double precision
|
|||
doc: Variational CISD energy
|
||||
interface: ezfio
|
||||
|
||||
[energy_pt2]
|
||||
type: double precision
|
||||
doc: Estimated CISD energy (including PT2)
|
||||
interface: ezfio
|
||||
|
||||
|
|
|
@ -5,7 +5,5 @@ BEGIN_SHELL [ /usr/bin/env python2 ]
|
|||
from generate_h_apply import H_apply
|
||||
H = H_apply("cisd",do_double_exc=True)
|
||||
print H
|
||||
H = H_apply("cis",do_double_exc=False)
|
||||
print H
|
||||
END_SHELL
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
====
|
||||
CISD
|
||||
====
|
||||
|
||||
This is a test directory which builds a CISD by setting the follwoing rules:
|
||||
This module contains a CISD program, built by setting the following rules:
|
||||
|
||||
* The only generator determinant is the Hartee-Fock (single-reference method)
|
||||
* The only generator determinant is the Hartree-Fock (single-reference method)
|
||||
* All generated determinants are included in the wave function (no perturbative
|
||||
selection)
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
==============
|
||||
Davidson_Utils
|
||||
==============
|
||||
|
||||
Abstract module for Davidson diagonalization. Contains everything required for the
|
||||
Davidson algorithm, dressed or not. If a dressing is used, the dressing column should
|
||||
be defined and the DavidsonDressed module should be used. If no dressing is required,
|
||||
the Davidson module should be used, and it has a default null dressing vector.
|
||||
Abstract module for Davidson's diagonalization.
|
||||
It contains everything required for the Davidson algorithm, dressed or not. If
|
||||
a dressing is used, the dressing column should be defined and the
|
||||
:ref:`davidsondressed` module should be used. If no dressing is required,
|
||||
the :ref:`davidson` module should be used, and it has a default zero dressing vector.
|
||||
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
DavidsonDressed
|
||||
===============
|
||||
|
||||
Davidson with single-column dressing
|
||||
Davidson with single-column dressing.
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
DavidsonUndressed
|
||||
=================
|
||||
|
||||
Module for main files with undressed Davidson
|
||||
Module for main files Davidson's algorithm with no dressing.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
[N_det_max]
|
||||
type: Det_number_max
|
||||
doc: Max number of determinants in the wave function
|
||||
doc: Maximum number of determinants in the wave function
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1000000
|
||||
|
||||
[N_det_max_full]
|
||||
type: Det_number_max
|
||||
doc: Maximum number of determinants where H is fully diagonalized
|
||||
doc: Maximum number of determinants where |H| is fully diagonalized
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1000
|
||||
|
||||
|
@ -18,25 +18,19 @@ default: 1
|
|||
|
||||
[read_wf]
|
||||
type: logical
|
||||
doc: If true, read the wave function from the EZFIO file
|
||||
doc: If true, read the wave function from the |EZFIO| file
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[only_single_double_dm]
|
||||
type: logical
|
||||
doc: If true, The One body DM is calculated with ignoring the Double<->Doubles extra diag elements
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[s2_eig]
|
||||
type: logical
|
||||
doc: Force the wave function to be an eigenfunction of S^2
|
||||
doc: Force the wave function to be an eigenfunction of |S^2|
|
||||
interface: ezfio,provider,ocaml
|
||||
default: True
|
||||
|
||||
[used_weight]
|
||||
type: integer
|
||||
doc: 0: 1/(c_0^2), 1: 1/N_states, 2: input state-average weight, 3: 1/(Norm_L3(Psi))
|
||||
doc: 0: 1./(c_0^2), 1: 1/N_states, 2: input state-average weight, 3: 1/(Norm_L3(Psi))
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0
|
||||
|
||||
|
@ -54,51 +48,39 @@ default: 0.999
|
|||
|
||||
[n_int]
|
||||
interface: ezfio
|
||||
doc: n_int
|
||||
doc: Number of integers required to represent bitstrings (set in module :ref:`bitmasks`)
|
||||
type: N_int_number
|
||||
|
||||
[bit_kind]
|
||||
interface: ezfio
|
||||
doc: bit_kind
|
||||
doc: (set in module :ref:`bitmasks`)
|
||||
type: Bit_kind
|
||||
|
||||
[mo_label]
|
||||
interface: ezfio
|
||||
doc: mo_label
|
||||
doc: Label of the |MOs| on which the determinants are expressed
|
||||
type: character*(64)
|
||||
|
||||
[n_det]
|
||||
interface: ezfio
|
||||
doc: n_det
|
||||
doc: Number of determinants in the current wave function
|
||||
type: integer
|
||||
|
||||
[psi_coef]
|
||||
interface: ezfio
|
||||
doc: psi_coef
|
||||
doc: Coefficients of the wave function
|
||||
type: double precision
|
||||
size: (determinants.n_det,determinants.n_states)
|
||||
|
||||
[psi_det]
|
||||
interface: ezfio
|
||||
doc: psi_det
|
||||
doc: Determinants of the variational space
|
||||
type: integer*8
|
||||
size: (determinants.n_int*determinants.bit_kind/8,2,determinants.n_det)
|
||||
|
||||
[det_occ]
|
||||
interface: ezfio,provider
|
||||
doc: det_occ
|
||||
type: integer
|
||||
size: (electrons.elec_alpha_num,determinants.n_det,2)
|
||||
|
||||
[det_coef]
|
||||
interface: ezfio,provider
|
||||
doc: det_coef
|
||||
type: double precision
|
||||
size: (determinants.n_det)
|
||||
|
||||
[expected_s2]
|
||||
interface: ezfio
|
||||
doc: Expected value of S^2
|
||||
doc: Expected value of |S^2|
|
||||
type: double precision
|
||||
|
||||
[target_energy]
|
||||
|
@ -109,13 +91,13 @@ default: 0.
|
|||
|
||||
[store_full_H_mat]
|
||||
type: logical
|
||||
doc: If True, the Davidson diagonalization is performed by storing the full H matrix up to n_det_max_stored. Be careful, it can cost a lot of memory but can also save a lot of CPU time
|
||||
doc: If True, the Davidson diagonalization is performed by storing the full |H| matrix up to n_det_max_stored. Be careful, it can cost a lot of memory but can also save a lot of CPU time
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[n_det_max_stored]
|
||||
type: Det_number_max
|
||||
doc: Maximum number of determinants for which the full h matrix is stored. be careful, the memory requested scales as 10*n_det_max_stored**2. for instance, 90000 determinants represent a matrix of size 60 Gb.
|
||||
doc: Maximum number of determinants for which the full |H| matrix is stored. be careful, the memory requested scales as 10*n_det_max_stored**2. for instance, 90000 determinants represents a matrix of size 60 Gb.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 90000
|
||||
|
||||
|
@ -125,9 +107,3 @@ doc: Weight of the states in state-average calculations.
|
|||
interface: ezfio
|
||||
size: (determinants.n_states)
|
||||
|
||||
[zero_doubles]
|
||||
type: logical
|
||||
doc: If true, set to zero all the matrix elements for two determinants differing by a double excitation.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
|
|
|
@ -532,9 +532,6 @@ subroutine i_H_j_s2(key_i,key_j,Nint,hij,s2)
|
|||
integer :: spin
|
||||
select case (degree)
|
||||
case (2)
|
||||
if (zero_doubles) then
|
||||
hij = 0.d0
|
||||
else
|
||||
call get_double_excitation(key_i,key_j,exc,phase,Nint)
|
||||
! Mono alpha, mono beta
|
||||
if (exc(0,1,1) == 1) then
|
||||
|
@ -551,7 +548,6 @@ subroutine i_H_j_s2(key_i,key_j,Nint,hij,s2)
|
|||
exc(1,1,2), &
|
||||
exc(1,2,1), &
|
||||
exc(1,2,2) ,mo_integrals_map)
|
||||
endif
|
||||
! Double alpha
|
||||
else if (exc(0,1,1) == 2) then
|
||||
hij = phase*(get_mo_bielec_integral( &
|
||||
|
@ -638,9 +634,6 @@ subroutine i_H_j(key_i,key_j,Nint,hij)
|
|||
integer :: spin
|
||||
select case (degree)
|
||||
case (2)
|
||||
if (zero_doubles) then
|
||||
hij = 0.d0
|
||||
else
|
||||
call get_double_excitation(key_i,key_j,exc,phase,Nint)
|
||||
if (exc(0,1,1) == 1) then
|
||||
! Mono alpha, mono beta
|
||||
|
@ -654,7 +647,6 @@ subroutine i_H_j(key_i,key_j,Nint,hij)
|
|||
exc(1,1,2), &
|
||||
exc(1,2,1), &
|
||||
exc(1,2,2) ,mo_integrals_map)
|
||||
endif
|
||||
else if (exc(0,1,1) == 2) then
|
||||
! Double alpha
|
||||
hij = phase*(get_mo_bielec_integral( &
|
||||
|
@ -739,9 +731,6 @@ subroutine i_H_j_phase_out(key_i,key_j,Nint,hij,phase,exc,degree)
|
|||
call get_excitation_degree(key_i,key_j,degree,Nint)
|
||||
select case (degree)
|
||||
case (2)
|
||||
if (zero_doubles) then
|
||||
hij = 0.d0
|
||||
else
|
||||
call get_double_excitation(key_i,key_j,exc,phase,Nint)
|
||||
if (exc(0,1,1) == 1) then
|
||||
! Mono alpha, mono beta
|
||||
|
@ -775,7 +764,6 @@ subroutine i_H_j_phase_out(key_i,key_j,Nint,hij,phase,exc,degree)
|
|||
exc(2,2,2), &
|
||||
exc(1,2,2) ,mo_integrals_map) )
|
||||
endif
|
||||
endif
|
||||
case (1)
|
||||
call get_mono_excitation(key_i,key_j,exc,phase,Nint)
|
||||
!DIR$ FORCEINLINE
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
[thresh_dressed_ci]
|
||||
type: Threshold
|
||||
doc: Threshold on the convergence of the dressed CI energy
|
||||
doc: Threshold on the convergence of the dressed |CI| energy
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.e-5
|
||||
|
||||
[n_it_max_dressed_ci]
|
||||
type: Strictly_positive_int
|
||||
doc: Maximum number of dressed CI iterations
|
||||
doc: Maximum number of dressed |CI| iterations
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 10
|
||||
|
||||
[dress_relative_error]
|
||||
type: Normalized_float
|
||||
doc: Stop stochastic PT2 when the relative error is smaller than PT2_relative_error
|
||||
doc: Stop stochastic dressing when the relative error is smaller than :option:`perturbation PT2_relative_error`
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.001
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
dress_zmq
|
||||
=========
|
||||
|
||||
Module to facilitate the construction of modules using dressed Hamiltonians, parallelized
|
||||
with |ZeroMQ|.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
================
|
||||
Electrons Module
|
||||
================
|
||||
=========
|
||||
Electrons
|
||||
=========
|
||||
|
||||
Describes the electrons. For the moment, only the number of alpha and beta electrons
|
||||
are provided by this module.
|
||||
|
@ -9,12 +9,9 @@ are provided by this module.
|
|||
Assumptions
|
||||
===========
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES_CHILDREN file by the `update_README.py` script.
|
||||
|
||||
* ``elec_num`` >= 0
|
||||
* ``elec_alpha_num`` >= 0
|
||||
* ``elec_beta_num`` >= 0
|
||||
* ``elec_alpha_num`` >= ``elec_beta_num``
|
||||
* `elec_num` >= 0
|
||||
* `elec_alpha_num` >= 0
|
||||
* `elec_beta_num` >= 0
|
||||
* `elec_alpha_num` >= `elec_beta_num`
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
==================
|
||||
Ezfio_files Module
|
||||
==================
|
||||
===========
|
||||
Ezfio_files
|
||||
===========
|
||||
|
||||
This modules essentially contains the name of the EZFIO directory in the
|
||||
``ezfio_filename`` variable. This is read as the first argument of the
|
||||
command-line, or as the ``QP_INPUT`` environment variable.
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
[energy]
|
||||
type: double precision
|
||||
doc: Calculated Selected FCI energy
|
||||
doc: Calculated Selected |FCI| energy
|
||||
interface: ezfio
|
||||
size: (determinants.n_states)
|
||||
|
||||
[energy_pt2]
|
||||
type: double precision
|
||||
doc: Calculated FCI energy + PT2
|
||||
doc: Calculated |FCI| energy + |PT2|
|
||||
interface: ezfio
|
||||
size: (determinants.n_states)
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
=====================
|
||||
Generators_CAS Module
|
||||
=====================
|
||||
==============
|
||||
Generators_CAS
|
||||
==============
|
||||
|
||||
The generator determinants are those filtered by the ``cas_bitmask`` mask.
|
||||
Module defining the generator determinants as those belonging to a |CAS|.
|
||||
The |MOs| belonging to the |CAS| are those which were set as active with
|
||||
the :ref:`qp_set_mo_class` command.
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
This module is intended to be included in the :file:`NEED` file to define
|
||||
generators on a |CAS|.
|
||||
|
||||
The active space is defined by the ``reference_bitmask``.
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
======================
|
||||
Generators_full Module
|
||||
======================
|
||||
===============
|
||||
Generators_full
|
||||
===============
|
||||
|
||||
All the determinants of the wave function are generators. In this way, the Full CI
|
||||
space is explored.
|
||||
Module defining the generator determinants as all the determinants of the
|
||||
variational space.
|
||||
|
||||
This module is intended to be included in the :file:`NEED` file to define
|
||||
a full set of generators.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
[max_dim_diis]
|
||||
type: integer
|
||||
doc: Maximum size of the DIIS extrapolation procedure
|
||||
doc: Maximum size of the |DIIS| extrapolation procedure
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 15
|
||||
|
||||
[threshold_diis]
|
||||
type: Threshold
|
||||
doc: 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.
|
||||
doc: 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.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.
|
||||
|
||||
|
@ -18,19 +18,19 @@ default: 1.e-10
|
|||
|
||||
[n_it_scf_max]
|
||||
type: Strictly_positive_int
|
||||
doc: Maximum number of SCF iterations
|
||||
doc: Maximum number of |SCF| iterations
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 500
|
||||
|
||||
[level_shift]
|
||||
type: Positive_float
|
||||
doc: Energy shift on the virtual MOs to improve SCF convergence
|
||||
doc: Energy shift on the virtual |MOs| to improve |SCF| convergence
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.2
|
||||
|
||||
[scf_algorithm]
|
||||
type: character*(32)
|
||||
doc: Type of SCF algorithm used. Possible choices are [ Simple | DIIS]
|
||||
doc: Type of |SCF| algorithm used. Possible choices are [ Simple | DIIS]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: DIIS
|
||||
|
||||
|
@ -47,7 +47,7 @@ interface: ezfio
|
|||
|
||||
[no_oa_or_av_opt]
|
||||
type: logical
|
||||
doc: If true, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the SCF procedure
|
||||
doc: If true, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the |SCF| procedure
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
===================
|
||||
Hartree-Fock Module
|
||||
===================
|
||||
============
|
||||
Hartree-Fock
|
||||
============
|
||||
|
||||
|
||||
The Hartree-Fock module performs *Restricted* Hartree-Fock calculations (the
|
||||
spatial part of the MOs is common for alpha and beta spinorbitals).
|
||||
spatial part of the |MOs| is common for alpha and beta spinorbitals).
|
||||
|
||||
The Hartree-Fock program does the following:
|
||||
|
||||
#. Compute/Read all the one- and two-electron integrals, and store them in memory
|
||||
#. 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
|
||||
#. 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
|
||||
|
||||
At each iteration, the MOs are saved in the |EZFIO| database. Hence, if the calculation
|
||||
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
|
||||
crashes for any unexpected reason, the calculation can be restarted by running again
|
||||
the SCF with the same |EZFIO| database.
|
||||
the |SCF| with the same |EZFIO| database.
|
||||
|
||||
The `DIIS`_ algorithm is implemented, as well as the `level-shifting`_ method.
|
||||
If the SCF does not converge, try again with a higher value of ``level_shift``.
|
||||
If the |SCF| does not converge, try again with a higher value of :option:`level_shift`.
|
||||
|
||||
To start a calculation from scratch, the simplest way is to remove the
|
||||
``mo_basis`` directory from the |EZFIO| database, and run the SCF again.
|
||||
``mo_basis`` directory from the |EZFIO| database, and run the |SCF| again.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,53 +1,55 @@
|
|||
[do_direct_integrals]
|
||||
type: logical
|
||||
doc: Compute integrals on the fly
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: direct
|
||||
|
||||
[no_vvvv_integrals]
|
||||
type: logical
|
||||
doc: If True, computes all integrals except for the integrals having 4 virtual index
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_vvvv_integrals
|
||||
|
||||
[no_ivvv_integrals]
|
||||
type: logical
|
||||
doc: Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual index and 1 belonging to the core inactive active orbitals
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_ivvv_integrals
|
||||
|
||||
[no_vvv_integrals]
|
||||
type: logical
|
||||
doc: Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual orbitals
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_vvv_integrals
|
||||
|
||||
[disk_access_mo_integrals]
|
||||
type: Disk_access
|
||||
doc: Read/Write MO integrals from/to disk [ Write | Read | None ]
|
||||
doc: Read/Write |MO| integrals from/to disk [ Write | Read | None ]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: None
|
||||
|
||||
[disk_access_ao_integrals]
|
||||
type: Disk_access
|
||||
doc: Read/Write AO integrals from/to disk [ Write | Read | None ]
|
||||
doc: Read/Write |AO| integrals from/to disk [ Write | Read | None ]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: None
|
||||
|
||||
[ao_integrals_threshold]
|
||||
type: Threshold
|
||||
doc: If |<pq|rs>| < ao_integrals_threshold then <pq|rs> is zero
|
||||
doc: If | (pq|rs) | < `ao_integrals_threshold` then (pq|rs) is zero
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.e-15
|
||||
ezfio_name: threshold_ao
|
||||
|
||||
[mo_integrals_threshold]
|
||||
type: Threshold
|
||||
doc: If |<ij|kl>| < ao_integrals_threshold then <pq|rs> is zero
|
||||
doc: If | <ij|kl> | < `mo_integrals_threshold` then <ij|kl> is zero
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.e-15
|
||||
ezfio_name: threshold_mo
|
||||
|
||||
|
||||
[no_vvvv_integrals]
|
||||
type: logical
|
||||
doc: If `True`, computes all integrals except for the integrals having 4 virtual indices
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_vvvv_integrals
|
||||
|
||||
[no_ivvv_integrals]
|
||||
type: logical
|
||||
doc: 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
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_ivvv_integrals
|
||||
|
||||
[no_vvv_integrals]
|
||||
type: logical
|
||||
doc: Can be switched on only if `no_vvvv_integrals` is `True`, then does not compute the integrals with 3 virtual orbitals
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: no_vvv_integrals
|
||||
|
||||
[do_direct_integrals]
|
||||
type: logical
|
||||
doc: Compute integrals on the fly (very slow, only for debugging)
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
ezfio_name: direct
|
||||
|
||||
|
|
|
@ -2,17 +2,20 @@
|
|||
Integrals_Bielec
|
||||
================
|
||||
|
||||
Here, all two-electron integrals (:math:`1/r_{12}`) are computed. As they have
|
||||
4 indices and many are zero, they are stored in a map, as defined in
|
||||
``Utils/map_module.f90``. To fetch an AO integral, use the
|
||||
``get_ao_bielec_integral(i,j,k,l,ao_integrals_map)`` function, and to fetch and
|
||||
MO integral, use ``get_mo_bielec_integral(i,j,k,l,mo_integrals_map)`` or
|
||||
``mo_bielec_integral(i,j,k,l)``.
|
||||
Here, all two-electron integrals (:math:`1/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`.
|
||||
|
||||
To fetch an |AO| integral, use the
|
||||
`get_ao_bielec_integral(i,j,k,l,ao_integrals_map)` function, and
|
||||
to fetch an |MO| integral, use
|
||||
`get_mo_bielec_integral(i,j,k,l,mo_integrals_map)` or
|
||||
`mo_bielec_integral(i,j,k,l)`.
|
||||
|
||||
The conventions are:
|
||||
|
||||
* For AO integrals : (ik|jl) = (11|22)
|
||||
* For MO integrals : <ij|kl> = <12|12>
|
||||
* For |AO| integrals : (ik|jl) = (11|22)
|
||||
* For |MO| integrals : <ij|kl> = <12|12>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[n_iter]
|
||||
interface: ezfio
|
||||
doc: number of iterations
|
||||
doc: Number of saved iterations
|
||||
type:integer
|
||||
default: 1
|
||||
|
||||
|
@ -12,13 +12,13 @@ size: (100)
|
|||
|
||||
[energy_iterations]
|
||||
interface: ezfio, provider
|
||||
doc: The energy without a pt2 correction for n_det
|
||||
doc: The variational energy at each iteration
|
||||
type: double precision
|
||||
size: (determinants.n_states,100)
|
||||
|
||||
[pt2_iterations]
|
||||
interface: ezfio, provider
|
||||
doc: The pt2 correction for n_det
|
||||
doc: The |PT2| correction at each iteration
|
||||
type: double precision
|
||||
size: (determinants.n_states,100)
|
||||
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
IterativeSave
|
||||
=============
|
||||
|
||||
Module which saves the computed energies for an extrapolation to the |FCI| limit.
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
==============
|
||||
MOGuess Module
|
||||
==============
|
||||
=======
|
||||
MOGuess
|
||||
=======
|
||||
|
||||
Guess for |MOs|.
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
[mo_tot_num]
|
||||
type: integer
|
||||
doc: Total number of molecular orbitals and the size of the keys corresponding
|
||||
doc: Total number of |MOs|
|
||||
interface: ezfio
|
||||
|
||||
[mo_coef]
|
||||
type: double precision
|
||||
doc: coefficient of the ith ao on the jth mo
|
||||
doc: Coefficient of the i-th |AO| on the j-th |MO|
|
||||
interface: ezfio
|
||||
size: (ao_basis.ao_num,mo_basis.mo_tot_num)
|
||||
|
||||
[mo_label]
|
||||
type: character*(64)
|
||||
doc: Label characterizing the MOS (local, canonical, natural, etc)
|
||||
doc: Label characterizing the MOS (Local, Canonical, Natural, *etc*)
|
||||
interface: ezfio
|
||||
|
||||
[mo_occ]
|
||||
type: double precision
|
||||
doc: MO occupation numbers
|
||||
doc: |MO| occupation numbers
|
||||
interface: ezfio
|
||||
size: (mo_basis.mo_tot_num)
|
||||
|
||||
[mo_class]
|
||||
type: MO_class
|
||||
doc: Core|Inactive|Active|Virtual|Deleted
|
||||
doc: [ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
|
||||
interface: ezfio, provider
|
||||
size: (mo_basis.mo_tot_num)
|
||||
|
||||
[ao_md5]
|
||||
type: character*(32)
|
||||
doc: Ao_md5
|
||||
doc: MD5 checksum characterizing the |AO| basis set.
|
||||
interface: ezfio
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
==========
|
||||
MOs Module
|
||||
==========
|
||||
========
|
||||
MO_Basis
|
||||
========
|
||||
|
||||
Molecular orbitals are expressed as
|
||||
|
||||
|
@ -8,19 +8,17 @@ Molecular orbitals are expressed as
|
|||
|
||||
\phi_k({\bf r}) = \sum_i C_{ik} \chi_k({\bf r})
|
||||
|
||||
where :math:`\chi_k` are *normalized* atomic basis set.
|
||||
|
||||
The current set of molecular orbitals has a label ``mo_label``.
|
||||
where :math:`\chi_k` are *normalized* atomic basis functions.
|
||||
|
||||
The current set of |MOs| has a label `mo_label`.
|
||||
When the orbitals are modified, the label should also be updated to keep
|
||||
everything consistent.
|
||||
|
||||
When saving the MOs, the ``mo_basis`` directory of the EZFIO file is copied
|
||||
in the ``save`` directory, named by the current ``mo_label``. All this is
|
||||
done with the script named ``save_current_mos.sh`` in the ``scripts`` directory.
|
||||
|
||||
ASSUMPTONS
|
||||
==========
|
||||
|
||||
* The AO basis functions are normalized.
|
||||
When saving the |MOs|, the :file:`mo_basis` directory of the |EZFIO| database
|
||||
is copied in the :file:`save` directory, named by the current `mo_label`. All
|
||||
this is done with the script named :file:`save_current_mos.sh` in the
|
||||
:file:`$QP_ROOT/scripts` directory.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
[integral_nuclear]
|
||||
type: double precision
|
||||
doc: Nucleus-electron integrals in MO basis set
|
||||
doc: Nucleus-electron integrals in |MO| basis set
|
||||
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
|
||||
interface: ezfio
|
||||
|
||||
[integral_kinetic]
|
||||
type: double precision
|
||||
doc: Kinetic energy integrals in MO basis set
|
||||
doc: Kinetic energy integrals in |MO| basis set
|
||||
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
|
||||
interface: ezfio
|
||||
|
||||
[integral_pseudo]
|
||||
type: double precision
|
||||
doc: Pseudopotential integrals in MO basis set
|
||||
doc: Pseudopotential integrals in |MO| basis set
|
||||
size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num)
|
||||
interface: ezfio
|
||||
|
||||
|
||||
[disk_access_mo_one_integrals]
|
||||
type: Disk_access
|
||||
doc: Read/Write MO one-electron integrals from/to disk [ Write | Read | None ]
|
||||
doc: Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: None
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
MO_one_e_integrals
|
||||
==================
|
||||
|
||||
All the one-electron integrals in MO basis are here.
|
||||
All the one-electron integrals in |MO| basis are defined here.
|
||||
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
MPI
|
||||
===
|
||||
|
||||
Contains all the functions and providers for parallelization with |MPI|.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[do_third_order_1h1p]
|
||||
type: logical
|
||||
doc: If true, compute the third order contribution for the 1h1p
|
||||
doc: If `True`, compute the third order contribution for the 1h1p
|
||||
interface: ezfio,provider,ocaml
|
||||
default: True
|
||||
|
||||
|
|
|
@ -2,12 +2,4 @@
|
|||
MRPT_Utils
|
||||
==========
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
.. Do not edit this section It was auto-generated
|
||||
.. by the `update_README.py` script.
|
||||
Documentation
|
||||
=============
|
||||
.. Do not edit this section It was auto-generated
|
||||
.. by the `update_README.py` script.
|
||||
|
||||
Subroutines and providers required for |MRPT|.
|
||||
|
|
|
@ -28,6 +28,6 @@ interface: ezfio,provider,ocaml
|
|||
default: None
|
||||
|
||||
[nuclear_repulsion]
|
||||
doc: Nuclear repulsion (Computed automaticaly or Read in the EZFIO)
|
||||
doc: Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
|
||||
type:double precision
|
||||
interface: ezfio
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
=============
|
||||
Nuclei Module
|
||||
=============
|
||||
======
|
||||
Nuclei
|
||||
======
|
||||
|
||||
This module contains data relative to the nuclei (coordinates, charge,
|
||||
nuclear repulsion energy, etc).
|
||||
|
|
|
@ -1,46 +1,26 @@
|
|||
[do_pt2]
|
||||
type: logical
|
||||
doc: If true, compute the PT2
|
||||
doc: If `True`, compute the |PT2| contribution
|
||||
interface: ezfio,provider,ocaml
|
||||
default: True
|
||||
|
||||
[PT2_max]
|
||||
type: PT2_energy
|
||||
doc: The selection process stops when the largest PT2 (for all the state) is lower
|
||||
than pt2_max in absolute value
|
||||
doc: The selection process stops when the largest |PT2| (for all the state) is lower
|
||||
than `pt2_max` in absolute value
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.0001
|
||||
|
||||
[PT2_relative_error]
|
||||
type: Normalized_float
|
||||
doc: Stop stochastic PT2 when the relative error is smaller than PT2_relative_error
|
||||
doc: Stop stochastic |PT2| when the relative error is smaller than `PT2_relative_error`
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.005
|
||||
|
||||
[correlation_energy_ratio_max]
|
||||
type: Normalized_float
|
||||
doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules)
|
||||
Defined as (E_CI-E_HF)/ (E_CI+PT2 - E_HF). (E_HF) is not required.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.00
|
||||
|
||||
[threshold_generators_pt2]
|
||||
type: Threshold
|
||||
doc: Thresholds on generators (fraction of the norm) for final PT2 calculation
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 0.999
|
||||
|
||||
[threshold_selectors_pt2]
|
||||
type: Threshold
|
||||
doc: Thresholds on selectors (fraction of the norm) for final PT2 calculation
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.
|
||||
|
||||
|
||||
[correlation_energy_ratio_max]
|
||||
type: Normalized_float
|
||||
doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules)
|
||||
Defined as (E_CI-E_HF)/ (E_CI+PT2 - E_HF). (E_HF) is not required.
|
||||
doc: The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules).
|
||||
Defined as :math:`\frac{E_{CI}-E_{HF}} {E_{CI}+E_{PT2} - E_{HF}}`.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1.00
|
||||
|
||||
|
|
|
@ -1,69 +1,64 @@
|
|||
===================
|
||||
Perturbation Module
|
||||
===================
|
||||
============
|
||||
Perturbation
|
||||
============
|
||||
|
||||
|
||||
All subroutines in `*.irp.f` starting with ``pt2_`` in the current directory are
|
||||
perturbation computed using the routine ``i_H_psi``. Other cases are not allowed.
|
||||
The arguments of the ``pt2_`` are always:
|
||||
All subroutines in ``*.irp.f`` starting with `pt2_` in the current directory are
|
||||
perturbation computed using the routine `i_H_psi`. Other cases are not allowed.
|
||||
The arguments of the `pt2_` are always:
|
||||
|
||||
subroutine pt2_...( &
|
||||
psi_ref, &
|
||||
psi_ref_coefs, &
|
||||
E_refs, &
|
||||
det_pert, &
|
||||
c_pert, &
|
||||
e_2_pert, &
|
||||
H_pert_diag, &
|
||||
Nint, &
|
||||
ndet, &
|
||||
n_st )
|
||||
.. code-block:: fortran
|
||||
|
||||
subroutine pt2_...( &
|
||||
psi_ref, &
|
||||
psi_ref_coefs, &
|
||||
E_refs, &
|
||||
det_pert, &
|
||||
c_pert, &
|
||||
e_2_pert, &
|
||||
H_pert_diag, &
|
||||
Nint, &
|
||||
Ndet, &
|
||||
N_st )
|
||||
|
||||
|
||||
integer, intent(in) :: Nint,ndet,n_st
|
||||
integer(bit_kind), intent(in) :: psi_ref(Nint,2,ndet)
|
||||
double precision , intent(in) :: psi_ref_coefs(ndet,n_st)
|
||||
double precision , intent(in) :: E_refs(n_st)
|
||||
integer , intent(in) :: Nint,Ndet,N_st
|
||||
integer(bit_kind), intent(in) :: psi_ref(Nint,2,Ndet)
|
||||
double precision , intent(in) :: psi_ref_coefs(Ndet,N_st)
|
||||
double precision , intent(in) :: E_refs(N_st)
|
||||
integer(bit_kind), intent(in) :: det_pert(Nint,2)
|
||||
double precision , intent(out) :: c_pert(n_st),e_2_pert(n_st),H_pert_diag
|
||||
double precision , intent(out) :: c_pert(N_st),e_2_pert(N_st),H_pert_diag
|
||||
|
||||
|
||||
psi_ref
|
||||
bitstring of the determinants present in the various n_st states
|
||||
`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
|
||||
`psi_ref_coefs`
|
||||
coefficients of the determinants on the various `N_st` states
|
||||
|
||||
E_refs
|
||||
Energy of the various n_st states
|
||||
`E_refs`
|
||||
Energy of the various `N_st` states
|
||||
|
||||
det_pert
|
||||
`det_pert`
|
||||
Perturber determinant
|
||||
|
||||
c_pert
|
||||
Pertrubative coefficients for the various states
|
||||
`c_pert`
|
||||
Perturbative coefficients for the various states
|
||||
|
||||
e_2_pert
|
||||
`e_2_pert`
|
||||
Perturbative energetic contribution for the various states
|
||||
|
||||
H_pert_diag
|
||||
Diagonal H matrix element of the perturber
|
||||
`H_pert_diag`
|
||||
Diagonal |H| matrix element of the perturber
|
||||
|
||||
Nint
|
||||
Should be equal to N_int
|
||||
`Nint`
|
||||
Should be equal to `N_int`
|
||||
|
||||
Ndet
|
||||
Number of determinants `i` in Psi on which we apply <det_pert|Hi>
|
||||
`Ndet`
|
||||
Number of determinants `i` in |Psi| on which we apply <det_pert | |H| | `i`>
|
||||
|
||||
N_st
|
||||
`N_st`
|
||||
Number of states
|
||||
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
* This is not allowed:
|
||||
|
||||
subroutine &
|
||||
pt2_....
|
||||
|
||||
|
||||
|
|
|
@ -1,88 +1,87 @@
|
|||
[nucl_charge_remove]
|
||||
doc: Nuclear charges removed
|
||||
doc: Nuclear charges removed per atom
|
||||
type:double precision
|
||||
size: (nuclei.nucl_num)
|
||||
interface: ezfio, provider
|
||||
|
||||
|
||||
[pseudo_klocmax]
|
||||
doc: test
|
||||
doc: Maximum value of k for the local component
|
||||
type:integer
|
||||
interface: ezfio,provider
|
||||
|
||||
[pseudo_n_k]
|
||||
doc: test
|
||||
doc: Number of gaussians in the local component
|
||||
type: integer
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_klocmax)
|
||||
|
||||
[pseudo_v_k]
|
||||
doc: test
|
||||
doc: Coefficients in the local component
|
||||
type: double precision
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_klocmax)
|
||||
|
||||
[pseudo_dz_k]
|
||||
doc: test
|
||||
doc: Exponents in the local component
|
||||
type: double precision
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_klocmax)
|
||||
|
||||
[pseudo_lmax]
|
||||
doc: test
|
||||
doc: Maximum angular momentum
|
||||
type:integer
|
||||
interface: ezfio,provider
|
||||
|
||||
[pseudo_kmax]
|
||||
doc: test
|
||||
doc: Maximum number of functions in the non-local component
|
||||
type:integer
|
||||
interface: ezfio,provider
|
||||
|
||||
[pseudo_n_kl]
|
||||
doc: test
|
||||
doc: Number of functions in the non-local component
|
||||
type: integer
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_kmax,0:pseudo.pseudo_lmax)
|
||||
|
||||
[pseudo_v_kl]
|
||||
doc: test
|
||||
doc: Coefficients in the non-local component
|
||||
type: double precision
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_kmax,0:pseudo.pseudo_lmax)
|
||||
|
||||
[pseudo_dz_kl]
|
||||
doc: test
|
||||
doc: Exponents in the non-local component
|
||||
type: double precision
|
||||
interface: ezfio,provider
|
||||
size: (nuclei.nucl_num,pseudo.pseudo_kmax,0:pseudo.pseudo_lmax)
|
||||
|
||||
[do_pseudo]
|
||||
type: logical
|
||||
doc: Using pseudo potential integral or not
|
||||
doc: If `True`, pseudo-potentials are used.
|
||||
interface: ezfio,provider,ocaml
|
||||
default: False
|
||||
|
||||
[pseudo_grid_size]
|
||||
type: integer
|
||||
doc: Nb of points of the QMC grid
|
||||
doc: Nb of points of the grid for the QMC interfaces
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 1000
|
||||
|
||||
[pseudo_grid_rmax]
|
||||
type: double precision
|
||||
doc: R_maxof the QMC grid
|
||||
doc: R_max of the QMC grid
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 10.0
|
||||
|
||||
[ao_pseudo_grid]
|
||||
type: double precision
|
||||
doc: QMC grid
|
||||
doc: Grid for the QMC interface
|
||||
interface: ezfio
|
||||
size: (ao_basis.ao_num,-pseudo.pseudo_lmax:pseudo.pseudo_lmax,0:pseudo.pseudo_lmax,nuclei.nucl_num,pseudo.pseudo_grid_size)
|
||||
|
||||
[mo_pseudo_grid]
|
||||
type: double precision
|
||||
doc: QMC grid
|
||||
doc: Grid for the QMC interface
|
||||
interface: ezfio
|
||||
size: (ao_basis.ao_num,-pseudo.pseudo_lmax:pseudo.pseudo_lmax,0:pseudo.pseudo_lmax,nuclei.nucl_num,pseudo.pseudo_grid_size)
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
=============
|
||||
Pseudo Module
|
||||
=============
|
||||
======
|
||||
Pseudo
|
||||
======
|
||||
|
||||
This module defines the |EZFIO| parameters of the effective core potentials.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user