9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-08 22:43:38 +01:00

Compare commits

...

125 Commits

Author SHA1 Message Date
Anthony Scemama
5d6a3201fe
Merge pull request #48 from QuantumPackage/master
Merge release version
2019-06-11 11:53:47 +02:00
Anthony Scemama
2026a1d11f
Merge pull request #46 from QuantumPackage/dev-lct
Dev lct
2019-06-11 11:16:33 +02:00
da0ce1e11f Added bibtex entry 2019-06-11 10:47:03 +02:00
Emmanuel Giner LCT
c568f0b943 Merge branch 'master' into dev-lct 2019-06-08 16:40:13 +02:00
Emmanuel Giner LCT
de0802a56d Merge branch 'dev-lcpq' into dev-lct 2019-06-08 16:39:38 +02:00
Emmanuel Giner LCT
ff4f6d1c98 modifs in ec_lyp 2019-06-08 16:39:12 +02:00
Anthony Scemama
231b071d78
Merge pull request #45 from QuantumPackage/dev-lcpq
Dev lcpq
2019-06-08 16:24:33 +02:00
22ab996d00 Merge branch 'anbenali-Fix_Bug_ECP' 2019-06-08 15:52:55 +02:00
00375418e5 Merge branch 'Fix_Bug_ECP' of https://github.com/anbenali/qp2 into anbenali-Fix_Bug_ECP 2019-06-08 15:52:33 +02:00
cf4f9990bc Updated citation.ccf 2019-06-08 15:44:18 +02:00
c7dedf49ed More efficient multi-state selection 2019-06-08 15:14:57 +02:00
4c5759fe6f Modified README 2019-06-08 15:14:38 +02:00
c7ef5fc8c7 Fixed tests 2019-06-05 18:57:17 +02:00
3c6b417ae7 Type conversion 2019-06-05 18:00:04 +02:00
9c028127a0 Updated configure 2019-06-05 17:48:19 +02:00
ab10efa313 Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-06-05 17:39:13 +02:00
f36629173d Updated configure 2019-06-05 17:39:01 +02:00
8a127a9bab added selection_weight to fci slave 2019-06-05 17:34:36 +02:00
8cdcd08579 Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-06-05 17:28:46 +02:00
720a63aadf Bubblewrap and libcap install scripts 2019-06-05 17:28:15 +02:00
b71579ab43 Moved print_e_components 2019-06-05 16:17:53 +02:00
7c285bddf3 Printing of components of energy: 2019-06-05 15:38:05 +02:00
453cfa0b65 Improved weights 2019-06-05 15:07:36 +02:00
Emmanuel Giner LCT
71c186e67a added gradients of the squared of the total density 2019-06-04 19:35:09 +02:00
04ca07a540 Modified weighted selection for exp 2019-06-04 18:13:52 +02:00
f514ba0acd Fixed bug in deterministic variance 2019-06-04 18:11:50 +02:00
bd9816d6e3 Fixed ZMQ stalling because of pseudo_sym 2019-06-04 18:10:56 +02:00
6455b281ff Compiles 2019-06-04 11:56:06 +02:00
a1c9ec2503 Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-06-04 11:39:11 +02:00
4a72ca6b12 Added switch for multiple selection weights, including variance 2019-06-04 11:20:00 +02:00
ce0a5f4e70 Added selection factor 2019-06-04 11:16:20 +02:00
e53e7585f9 Fixed rPT2 small bug 2019-06-04 11:15:43 +02:00
fedc20dc31 rPT2 matching instead of pt2 matching 2019-06-04 11:14:42 +02:00
Barthelemy Pradines LCT
4093466b95 fixed little bug 2019-05-31 17:43:05 +02:00
Barthelemy Pradines LCT
419681278b Merge branch 'dev-lct' of https://github.com/QuantumPackage/qp2 into dev-lct 2019-05-31 17:37:43 +02:00
Barthelemy Pradines LCT
e13175e328 added regular_range_Hartree_operator 2019-05-31 17:36:16 +02:00
Emmanuel Giner LCT
f343b5c00a Merge branch 'dev-lcpq' into dev-lct 2019-05-31 15:35:35 +02:00
Emmanuel Giner LCT
9acc90d659 Merge branch 'dev-lct' of https://github.com/QuantumPackage/qp2 into dev-lct 2019-05-31 15:35:01 +02:00
anbenali
70536970b0 Fix small format issue in ECP 2019-05-29 12:03:06 -05:00
Emmanuel Giner LCT
76ead1cdfb added ec_lyp 2019-05-28 19:31:47 +02:00
6d15bf2c6d Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-05-28 18:49:34 +02:00
96c17686b4 fixed bugs with dummy atom and becke grid 2019-05-28 18:49:21 +02:00
982855eeb5 AVX work with AMD 2019-05-28 15:39:11 +02:00
d50cca6f88 Updated atomic data 2019-05-28 15:39:11 +02:00
714d53363e Update documentation and qp_set_frozne_core 2019-05-28 15:39:11 +02:00
7bc6c7e709 Fixed tests 2019-05-28 15:39:11 +02:00
926378c1bc Fixed tests 2019-05-28 15:39:11 +02:00
f74e57ddef Fixing travis 2019-05-28 15:39:11 +02:00
b86a5ba963 research.bib 2019-05-28 15:39:09 +02:00
3d70b0f9c2 Deterministic PT2 for < 1000 dets 2019-05-28 15:39:09 +02:00
Anouar Benali
f133cb1e9f NCSU ECP and Basis set (#41)
* Adding Basis Sets and ECP from NCSU. When available He core ECP are chosen instead of large core. This applies to Na Mg Al Si P S Cl and Ar

*  ECP from ncsu

* Update Readme file with description of Basis Set
2019-05-28 15:39:09 +02:00
a4e328d40d Added EPYC config file 2019-05-28 15:39:09 +02:00
e98f745dba Removed install and uninstall from create_executables_list.sh 2019-05-28 15:39:09 +02:00
bdc56d4ee3
Merge pull request #42 from QuantumPackage/dev-lcpq
Dev lcpq
2019-05-28 13:51:38 +02:00
7f5448fd9e
Merge branch 'master' into dev-lcpq 2019-05-28 13:50:32 +02:00
20ca64fec9 Updated atomic data 2019-05-28 11:42:36 +02:00
b5111d0f62 Update documentation and qp_set_frozne_core 2019-05-28 10:23:50 +02:00
2a2d1050b5 Fixed tests 2019-05-27 19:03:58 +02:00
d1716a8994 Fixed tests 2019-05-27 18:11:21 +02:00
Barthelemy Pradines LCT
da51f0960b Merge branch 'dev-lct' of https://github.com/QuantumPackage/qp2 into dev-lct 2019-05-27 15:17:26 +02:00
Barthelemy Pradines LCT
6584a0c707 added missing dependency inao_two_e_erf_ints/two_e_integrals_erf.irp.f 2019-05-27 15:17:10 +02:00
ef0e239c6c Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-05-27 12:09:07 +02:00
e6a42a950b Fixing travis 2019-05-27 12:08:51 +02:00
de5f962429 research.bib 2019-05-27 12:08:51 +02:00
7ddc21ee5b Deterministic PT2 for < 1000 dets 2019-05-27 12:08:51 +02:00
c376dec776 Added EPYC config file 2019-05-27 12:08:51 +02:00
6305e91cdd Removed install and uninstall from create_executables_list.sh 2019-05-27 12:08:51 +02:00
edcdc23d43 Changed QP2 logo 2019-05-27 12:08:51 +02:00
137c67c9e8 Allow qp_edit to increase n_det 2019-05-27 12:08:51 +02:00
81a3997853 Added flag for small/large core 2019-05-27 12:08:50 +02:00
122650e6d9 Dynamic weights for better selection 2019-05-27 12:08:50 +02:00
89843eaf0b Error msg 2019-05-27 12:08:50 +02:00
82986ef3de Fixing travis 2019-05-27 12:08:50 +02:00
4a99ad8252 Removed test in reverse 2019-05-27 12:08:31 +02:00
b086a3a33c Commented index_reverse and acceleration 2019-05-27 12:08:31 +02:00
7a8f3785a1 Removed unused variable 2019-05-27 12:08:31 +02:00
fe47bc818c research.bib 2019-05-27 11:02:52 +02:00
72e4e96ea5 Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-05-27 10:46:14 +02:00
d4f3ddcc78 Deterministic PT2 for < 1000 dets 2019-05-27 10:46:01 +02:00
Anouar Benali
452bd1142f NCSU ECP and Basis set (#41)
* Adding Basis Sets and ECP from NCSU. When available He core ECP are chosen instead of large core. This applies to Na Mg Al Si P S Cl and Ar

*  ECP from ncsu

* Update Readme file with description of Basis Set
2019-05-24 16:19:34 -05:00
anbenali
5d951efd51 Update Readme file with description of Basis Set 2019-05-24 13:55:43 -05:00
d9189285a7 Added EPYC config file 2019-05-24 19:25:46 +02:00
anbenali
0b3cd3fdef ECP from ncsu 2019-05-24 12:19:23 -05:00
anbenali
83a9ce67db Adding Basis Sets and ECP from NCSU. When available He core ECP are chosen instead of large core. This applies to Na Mg Al Si P S Cl and Ar 2019-05-24 12:18:48 -05:00
Pierre Loos
5e732b0f61 modified stuffs 2019-05-23 16:06:37 +02:00
Emmanuel Giner LCT
35cdb13bd4 added some stuffs for getting the bielec integrals 2019-05-20 08:54:39 +02:00
Emmanuel Giner LCT
a7c1a04840 added get integral ao with two index only 2019-05-16 12:18:43 +02:00
Anthony Scemama
1d33bd119b
Merge pull request #39 from QuantumPackage/dev-lcpq
Dev lcpq
2019-05-16 09:28:46 +02:00
a7c467c708 Removed install and uninstall from create_executables_list.sh 2019-05-15 16:37:43 +02:00
9f7b159fe1 Merge branch 'dev-lct' into dev-lcpq 2019-05-15 16:17:26 +02:00
2702d3b023 removed eqv -> not 2019-05-15 16:13:41 +02:00
186ca2434f Fixed local.rc 2019-05-15 16:02:41 +02:00
a0f6165ff3 Changed QP2 logo 2019-05-15 15:56:21 +02:00
e85a83bad0 Allow qp_edit to increase n_det 2019-05-15 15:46:42 +02:00
c994a8872a Added flag for small/large core 2019-05-15 15:46:23 +02:00
098643d22f Dynamic weights for better selection 2019-05-15 12:29:39 +02:00
662d141cd3 Error msg 2019-05-15 11:16:59 +02:00
Emmanuel Giner LCT
7e679b11b1 modified core_inact_act_virt.irp.f 2019-05-10 16:00:04 +02:00
Emmanuel Giner LCT
514975be09 Merge branch 'dev-lct' of https://github.com/QuantumPackage/qp2 into dev-lct 2019-05-09 23:58:52 +02:00
Emmanuel Giner LCT
cc578279e7 added rotate mos 2019-05-09 23:58:36 +02:00
Emmanuel Giner LCT
6673fc40eb modified print_ci_vectors 2019-05-07 12:14:39 +02:00
Emmanuel Giner LCT
64b4d5d4d7 Merge branch 'master' into dev-lct 2019-05-07 11:17:54 +02:00
Emmanuel Giner LCT
d8a1fa8ad4 Merge remote-tracking branch 'origin/dev' into dev-lct 2019-05-07 11:17:34 +02:00
eginer
0d2a2fe327 pseudo check of the symmetry 2019-04-26 17:56:57 +02:00
eginer
4fd5c4b75b added check_sym 2019-04-26 17:32:52 +02:00
eginer
0b3c2804a2 added check_sym 2019-04-26 17:31:15 +02:00
Emmanuel Giner
645148d74c updated MO_label.mli 2019-04-17 17:32:07 +02:00
Alice Cuzzocrea
f64ce601f5 Merge branch 'master' of https://github.com/QuantumPackage/qp2 2019-04-12 13:34:55 +02:00
Alice Cuzzocrea
9804c8bc6e Add -lpthread in configure 2019-04-12 13:34:17 +02:00
eginer
d27a53b198 added MCSCF type (for PETER) 2019-04-11 17:04:49 +02:00
68fc52c219 Fixing travis 2019-04-10 19:41:07 +02:00
1a9698301d Removed test in reverse 2019-04-10 18:55:01 +02:00
178a8f5760 Commented index_reverse and acceleration 2019-04-10 17:19:44 +02:00
Anthony Scemama
016de173e1
Merge pull request #38 from QuantumPackage/master
Fix travis with opam
2019-04-09 19:14:01 +02:00
Emmanuel Giner
6352e442ca added qp_set_frozen_large_core 2019-04-09 16:03:54 +02:00
Emmanuel Giner
400427157d added the definition of the input density in the AO basis 2019-04-09 00:10:01 +02:00
Emmanuel Giner
06f9010c12 Merge branch 'dev' into dev-lct 2019-04-08 16:16:15 +02:00
Emmanuel Giner
1228effa85 minor modifs 2019-04-08 16:15:13 +02:00
Anthony Scemama
e9be29933c
Merge branch 'dev' into master 2019-04-08 11:37:29 +02:00
a7a280d9a2 Removed ocaml compiler version from configure 2019-04-08 10:50:23 +02:00
8deb6ae0d7 Merge branch 'dev' into dev-lcpq 2019-04-01 18:03:26 +02:00
1db465d0f9 Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq 2019-04-01 18:03:12 +02:00
Anthony Scemama
7f5b9c5495
Merge pull request #34 from QuantumPackage/dev-lct
Dev lct
2019-03-28 16:17:11 +01:00
Anthony Scemama
c23b99da6a merge master (#35)
* Updated research.bib

* added no core densities

* Force sexplib version 0.11.0
2019-03-28 10:09:03 -05:00
c22814c27c Removed unused variable 2019-03-20 13:45:25 +01:00
134 changed files with 25340 additions and 1052 deletions

View File

@ -1,32 +1,100 @@
# YAML 1.2 # YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/) # Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.0.3 cff-version: 1.0.3
message: If you use this software, please cite it using these metadata. message: "If you use this software, please cite it using these metadata."
title: Quantum Package title: Quantum Package
doi: 10.5281/zenodo.825872 doi: 10.1021/acs.jctc.9b00176
authors: authors:
- given-names: Anthony
family-names: Scemama
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
- given-names: Yann - given-names: Yann
family-names: Garniron family-names: Garniron
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Michel
family-names: Caffarel
affiliation: Laboratoire de Chimie et Physique Quantiques / CNRS
- given-names: Thomas - given-names: Thomas
family-names: Applencourt family-names: Applencourt
affiliation: Argonne National Lab affiliation: Computational Science Division, Argonne National Laboratory, Argonne, Illinois 60439, United States
- given-names: Kevin - given-names: Kevin
family-names: Gasperich family-names: Gasperich
affiliation: Argonne National Lab affiliation: Department of Chemistry, University of Pittsburgh, Pittsburgh, Pennsylvania 15260, United States
- given-names: Anouar - given-names: Anouar
family-names: Benali family-names: Benali
affiliation: Argonne National Lab affiliation: Computational Science Division, Argonne National Laboratory, Argonne, Illinois 60439, United States
- given-names: Anthony
family-names: Ferté
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Julien
family-names: Paquier
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Barthélémy
family-names: Pradines
affiliation: Institut des Sciences du Calcul et des Données, Sorbonne Université, F-75005 Paris, France
- given-names: Roland
family-names: Assaraf
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Peter
family-names: Reinhardt
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Julien
family-names: Toulouse
affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Pierrette
family-names: Barbaresco
affiliation: CALMIP, Université de Toulouse, CNRS, INPT, INSA, UPS, UMS 3667, Toulouse, France
- given-names: Nicolas
family-names: Renon
affiliation: CALMIP, Université de Toulouse, CNRS, INPT, INSA, UPS, UMS 3667, Toulouse, France
- given-names: Grégoire
family-names: David
affiliation: Aix-Marseille Univ, CNRS, ICR, Marseille, France
- given-names: Jean-Paul
family-names: Malrieu
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Mickaël
family-names: Véril
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Michel
family-names: Caffarel
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Pierre-François
family-names: Loos
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
- given-names: Emmanuel - given-names: Emmanuel
family-names: Giner family-names: Giner
affiliation: Laboratoire de Chimie Theorique / CNRS affiliation: Laboratoire de Chimie Théorique, Sorbonne Université, CNRS, Paris, France
- given-names: Anthony
family-names: Scemama
affiliation: Laboratoire de Chimie et Physique Quantiques (UMR 5626), Université de Toulouse, CNRS, UPS, Toulouse, France
abstract: "Quantum chemistry is a discipline which relies heavily on very
expensive numerical computations. The scaling of correlated wave function
methods lies, in their standard implementation, between O(N^5) and O(exp(N)),
where N is proportional to the system size. Therefore, performing accurate
calculations on chemically meaningful systems requires (i) approximations that
can lower the computational scaling and (ii) efficient implementations that
take advantage of modern massively parallel architectures. Quantum Package is
an open-source programming environment for quantum chemistry specially designed
for wave function methods. Its main goal is the development of
determinant-driven selected configuration interaction (sCI) methods and
multireference second-order perturbation theory (PT2). The determinant-driven
framework allows the programmer to include any arbitrary set of determinants in
the reference space, hence providing greater methodological freedom. The sCI
method implemented in Quantum Package is based on the CIPSI (Configuration
Interaction using a Perturbative Selection made Iteratively) algorithm which
complements the variational sCI energy with a PT2 correction. Additional
external plugins have been recently added to perform calculations with
multireference coupled cluster theory and range-separated density-functional
theory. All the programs are developed with the IRPF90 code generator, which
simplifies collaborative work and the development of new features. Quantum
Package strives to allow easy implementation and experimentation of new
methods, while making parallel computation as simple and efficient as possible
on modern supercomputer architectures. Currently, the code enables, routinely,
to realize runs on roughly 2 000 CPU cores, with tens of millions of
determinants in the reference space. Moreover, we have been able to push up to
12 288 cores in order to test its parallel efficiency. In the present
manuscript, we also introduce some key new developments: (i) a renormalized
second-order perturbative correction for efficient extrapolation to the full CI
limit and (ii) a stochastic version of the CIPSI selection performed
simultaneously to the PT2 calculation at no extra cost."
version: '2.0' version: '2.0'
date-released: 2019-02-11 url: https://quantumpackage.github.io/qp2/
date-released: 2019-05-13
repository-code: https://github.com/QuantumPackage/qp2 repository-code: https://github.com/QuantumPackage/qp2
keywords: [ "computational chemistry", "configuration interaction", "cipsi", "perturbation theory" ]
license: AGPL-3.0-or-later license: AGPL-3.0-or-later

View File

@ -45,6 +45,8 @@ Requirements
- |ZeroMQ| : networking library - |ZeroMQ| : networking library
- `GMP <https://gmplib.org/>`_ : Gnu Multiple Precision Arithmetic Library - `GMP <https://gmplib.org/>`_ : Gnu Multiple Precision Arithmetic Library
- |OCaml| compiler with |OPAM| package manager - |OCaml| compiler with |OPAM| package manager
- `Bubblewrap <https://github.com/projectatomic/bubblewrap>`_ : Sandboxing tool required by Opam
- `libcap https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git`_ : POSIX capabilities required by Bubblewrap
- |Ninja| : a parallel build system - |Ninja| : a parallel build system
@ -86,6 +88,8 @@ The following packages are supported by the :command:`configure` installer:
* zeromq * zeromq
* f77zmq * f77zmq
* gmp * gmp
* libcap
* bwrap
* ocaml ( :math:`\approx` 10 minutes) * ocaml ( :math:`\approx` 10 minutes)
* ezfio * ezfio
* docopt * docopt
@ -243,6 +247,55 @@ With Debian or Ubuntu, you can use
sudo apt install libgmp-dev sudo apt install libgmp-dev
libcap
------
Libcap is a library for getting and setting POSIX.1e draft 15 capabilities.
* Download the latest version of libcap here:
`<https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/snapshot/libcap-2.25.tar.gz>`_
and move it in the :file:`${QP_ROOT}/external` directory
* Extract the archive, go into the :file:`libcap-*/libcap` directory and run
the following command
.. code:: bash
prefix=$QP_ROOT make install
With Debian or Ubuntu, you can use
.. code:: bash
sudo apt install libcap-dev
Bubblewrap
----------
Bubblewrap is an unprivileged sandboxing tool.
* Download Bubblewrap here:
`<https://github.com/projectatomic/bubblewrap/releases/download/v0.3.3/bubblewrap-0.3.3.tar.xz>`_
and move it in the :file:`${QP_ROOT}/external` directory
* Extract the archive, go into the :file:`bubblewrap-*` directory and run
the following commands
.. code:: bash
./configure --prefix=$QP_ROOT && make -j 8
make install-exec-am
With Debian or Ubuntu, you can use
.. code:: bash
sudo apt install bubblewrap
OCaml OCaml
----- -----

View File

@ -1,12 +1,28 @@
# Quantum Package 2.0 # Quantum Package 2.0
<img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250">
*Quantum package 2.0: an open-source determinant-driven suite of programs*\
[*Quantum package 2.0: an open-source determinant-driven suite of programs*](https://pubs.acs.org/doi/10.1021/acs.jctc.9b00176)\
Y. Garniron, K. Gasperich, T. Applencourt, A. Benali, A. Ferté, J. Paquier, B. Pradines, R. Assaraf, P. Reinhardt, J. Toulouse, P. Barbaresco, N. Renon, G. David, J. P. Malrieu, M. Véril, M. Caffarel, P. F. Loos, E. Giner and A. Scemama\ Y. Garniron, K. Gasperich, T. Applencourt, A. Benali, A. Ferté, J. Paquier, B. Pradines, R. Assaraf, P. Reinhardt, J. Toulouse, P. Barbaresco, N. Renon, G. David, J. P. Malrieu, M. Véril, M. Caffarel, P. F. Loos, E. Giner and A. Scemama\
J. Chem. Theory Comput., 15:6, 3591--3609, (2019)\
https://arxiv.org/abs/1902.08154 https://arxiv.org/abs/1902.08154
```
![QP](https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png) @article{doi:10.1021/acs.jctc.9b00176,
author = {Garniron, Yann and Applencourt, Thomas and Gasperich, Kevin and Benali, Anouar and Ferté, Anthony and Paquier, Julien and Pradines, Barthélémy and Assaraf, Roland and Reinhardt, Peter and Toulouse, Julien and Barbaresco, Pierrette and Renon, Nicolas and David, Grégoire and Malrieu, Jean-Paul and Véril, Mickaël and Caffarel, Michel and Loos, Pierre-François and Giner, Emmanuel and Scemama, Anthony},
title = {Quantum Package 2.0: An Open-Source Determinant-Driven Suite of Programs},
journal = {Journal of Chemical Theory and Computation},
volume = {15},
number = {6},
pages = {3591-3609},
year = {2019},
doi = {10.1021/acs.jctc.9b00176},
note ={PMID: 31082265},
URL = { https://doi.org/10.1021/acs.jctc.9b00176 },
eprint = { https://doi.org/10.1021/acs.jctc.9b00176 }
}
```
# Getting started # Getting started

View File

@ -6,6 +6,7 @@ Usage:
qp_plugins download <url> [-n <name>] qp_plugins download <url> [-n <name>]
qp_plugins install <name>... qp_plugins install <name>...
qp_plugins uninstall <name> qp_plugins uninstall <name>
qp_plugins update [-r <repo>]
qp_plugins create -n <name> [-r <repo>] [<needed_modules>...] qp_plugins create -n <name> [-r <repo>] [<needed_modules>...]
Options: Options:
@ -23,6 +24,8 @@ Options:
uninstall Uninstall a plugin uninstall Uninstall a plugin
update Update the repository
create create
-n --name=<name> Create a new plugin named <name> -n --name=<name> Create a new plugin named <name>
-r --repository=<repo> Name of the repository in which to create the plugin -r --repository=<repo> Name of the repository in which to create the plugin
@ -89,16 +92,19 @@ def save_new_module(path, l_child):
end end
""") """)
def get_repositories():
l_result = [f for f in os.listdir(QP_PLUGINS) \
if f not in [".gitignore", "local"] ]
return sorted(l_result)
def main(arguments): def main(arguments):
"""Main function""" """Main function"""
arguments["<name>"] = [os.path.normpath(name) for name in arguments["<name>"]] arguments["<name>"] = [os.path.normpath(name) for name in arguments["<name>"]]
if arguments["list"]: if arguments["list"]:
if arguments["--repositories"]: if arguments["--repositories"]:
l_result = [f for f in os.listdir(QP_PLUGINS) \ for repo in get_repositories():
if f not in [".gitignore", "local"] ]
for repo in sorted(l_result):
print repo print repo
else: else:
@ -138,6 +144,7 @@ def main(arguments):
for module in sorted(l_result): for module in sorted(l_result):
print "%-30s %-30s"%(module, repo_of_plugin[module]) print "%-30s %-30s"%(module, repo_of_plugin[module])
if arguments["create"]: if arguments["create"]:
m_instance = ModuleHandler([QP_SRC]) m_instance = ModuleHandler([QP_SRC])
@ -306,6 +313,20 @@ def main(arguments):
print "%s is a core module which can't be removed" % module print "%s is a core module which can't be removed" % module
elif arguments["update"]:
if arguments["--repository"]:
l_repositories = [ arguments["--repository"] ]
else:
l_repositories = get_repositories()
for repo in l_repositories:
print "Updating ", repo
os.chdir(os.path.join(QP_PLUGINS,repo))
git_cmd=["git", "pull"]
subprocess.check_call(git_cmd)
if __name__ == '__main__': if __name__ == '__main__':
ARG = docopt(__doc__) ARG = docopt(__doc__)
main(ARG) main(ARG)

View File

@ -6,17 +6,39 @@ Automatically finds n, the number of core electrons. Calls qp_set_mo_class
setting all MOs as Active, except the n/2 first ones which are set as Core. setting all MOs as Active, except the n/2 first ones which are set as Core.
If pseudo-potentials are used, all the MOs are set as Active. If pseudo-potentials are used, all the MOs are set as Active.
For elements on the right of the periodic table, qp_set_frozen_core will work
as expected. But for elements on the left, a small core will be chosen. For
example, a Carbon atom will have 2 core electrons, but a Lithium atom will have
zero.
Usage: Usage:
qp_set_frozen_core [-q|--query] EZFIO_DIR qp_set_frozen_core [-q|--query] [(-l|-s|--large|--small)] EZFIO_DIR
Options: Options:
-q --query Prints in the standard output the number of frozen MOs -q --query Prints in the standard output the number of frozen MOs
-l --large Use a small core
-s --small Use a large core
Default numbers of frozen electrons:
========== ========= ======= =======
Range Default Small Large
========== ========= ======= =======
H -> He 0 0 0
Li -> Be 0 0 2
B -> Ne 2 2 2
Na -> Mg 2 2 10
Al -> Ar 10 2 10
K -> Ca 10 10 18
Sc -> Zn 10 10 18
Ga -> Kr 18 10 18
Rb -> Sr 18 18 36
Y -> Cd 18 18 36
In -> Xe 36 18 36
Cs -> Ba 36 36 54
La -> Hg 36 36 54
Tl -> Rn 54 36 54
Fr -> Ra 54 54 86
Ac -> Cn 54 54 86
Nh -> Og 86 54 86
========== ========= ======= =======
""" """
@ -46,16 +68,36 @@ def main(arguments):
except: except:
do_pseudo = False do_pseudo = False
if not do_pseudo: if not do_pseudo:
if arguments["--large"]:
for charge in ezfio.nuclei_nucl_charge: for charge in ezfio.nuclei_nucl_charge:
if charge < 5: if charge <= 2: pass
pass elif charge <= 10: n_frozen += 1
elif charge < 13: elif charge <= 18: n_frozen += 5
n_frozen += 1 elif charge <= 36: n_frozen += 9
elif charge < 31: elif charge <= 54: n_frozen += 18
n_frozen += 5 elif charge <= 86: n_frozen += 27
else: elif charge <= 118: n_frozen += 43
n_frozen += 9
elif arguments["--small"]:
if charge <= 4: pass
elif charge <= 18: n_frozen += 1
elif charge <= 36: n_frozen += 5
elif charge <= 54: n_frozen += 9
elif charge <= 86: n_frozen += 18
elif charge <= 118: n_frozen += 27
else: # default
for charge in ezfio.nuclei_nucl_charge:
if charge <= 4: pass
elif charge <= 12: n_frozen += 1
elif charge <= 30: n_frozen += 5
elif charge <= 48: n_frozen += 9
elif charge <= 80: n_frozen += 18
elif charge <= 112: n_frozen += 27
mo_num = ezfio.mo_basis_mo_num mo_num = ezfio.mo_basis_mo_num
@ -65,10 +107,10 @@ def main(arguments):
if n_frozen == 0: if n_frozen == 0:
os.system("""qp_set_mo_class -a "[1-%d]" %s""" % os.system("""qp_set_mo_class -a "[1-%d]" %s""" %
(mo_num, sys.argv[1])) (mo_num, filename))
else: else:
os.system("""qp_set_mo_class -c "[1-%d]" -a "[%d-%d]" %s""" % os.system("""qp_set_mo_class -c "[1-%d]" -a "[%d-%d]" %s""" %
(n_frozen, n_frozen+1, mo_num, sys.argv[1])) (n_frozen, n_frozen+1, mo_num, filename))

79
bin/qp_set_frozen_large_core Executable file
View File

@ -0,0 +1,79 @@
#!/usr/bin/env python2
"""
Automatically finds n, the number of core electrons. Calls qp_set_mo_class
setting all MOs as Active, except the n/2 first ones which are set as Core.
If pseudo-potentials are used, all the MOs are set as Active.
Usage:
qp_set_frozen_core [-q|--query] EZFIO_DIR
Options:
-q --query Prints in the standard output the number of frozen MOs
"""
import os
import sys
import os.path
try:
import qp_path
except ImportError:
print "source .quantum_package.rc"
raise
from docopt import docopt
from ezfio import ezfio
def main(arguments):
"""Main function"""
filename = arguments["EZFIO_DIR"]
ezfio.set_filename(filename)
n_frozen = 0
try:
do_pseudo = ezfio.pseudo_do_pseudo
except:
do_pseudo = False
if not do_pseudo:
for charge in ezfio.nuclei_nucl_charge:
if charge <= 2:
pass
elif charge <= 10:
n_frozen += 1
elif charge <= 18:
n_frozen += 5
elif charge <= 36:
n_frozen += 9
elif charge <= 54:
n_frozen += 18
elif charge <= 86:
n_frozen += 27
elif charge <= 118:
n_frozen += 43
mo_num = ezfio.mo_basis_mo_num
if arguments["--query"]:
print n_frozen
sys.exit(0)
if n_frozen == 0:
os.system("""qp_set_mo_class -a "[1-%d]" %s""" %
(mo_num, sys.argv[1]))
else:
os.system("""qp_set_mo_class -c "[1-%d]" -a "[%d-%d]" %s""" %
(n_frozen, n_frozen+1, mo_num, sys.argv[1]))
if __name__ == '__main__':
ARGUMENTS = docopt(__doc__)
main(ARGUMENTS)

71
bin/qp_tunnel Executable file
View File

@ -0,0 +1,71 @@
#!/usr/bin/env python2
"""
Creates an ssh tunnel for using slaves on another network.
Launch a server on the front-end node of the cluster on which the master
process runs. Then start a client ont the front-end node of the distant
cluster.
Usage:
qp_tunnel server EZFIO_DIR
qp_tunnel client <address> EZFIO_DIR
Options:
-h --help
"""
import os
import sys
import zmq
try:
import qp_path
except ImportError:
print "source .quantum_package.rc"
raise
from docopt import docopt
from ezfio import ezfio
def get_address(filename):
with open(os.path.join(filename,'work','qp_run_address'),'r') as f:
a = f.readlines()[0].strip()
return a
def set_address(filename,address):
with open(os.path.join(filename,'work','qp_run_address'),'r') as f:
backup = f.readlines()
with open(os.path.join(filename,'work','qp_run_address'),'w') as f:
f.write('\n'.join([address]+backup))
def main_server(arguments,filename):
destination = get_address(filename)
print destination
def main_client(arguments,filename):
destination = arguments["<address>"]
print destination
def main(arguments):
"""Main function"""
print arguments
filename = arguments["EZFIO_DIR"]
if arguments["server"]:
return main_server(arguments, filename)
if arguments["client"]:
return main_client(arguments, filename)
if __name__ == '__main__':
ARGUMENTS = docopt(__doc__)
main(ARGUMENTS)

View File

@ -32,7 +32,7 @@ OPENMP : 1 ; Append OpenMP flags
# #
[OPT] [OPT]
FC : -traceback FC : -traceback
FCFLAGS : -xAVX -O2 -ip -ftz -g FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g
# Profiling flags # Profiling flags
################# #################

View File

@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags
# -ftz : Flushes denormal results to zero # -ftz : Flushes denormal results to zero
# #
[OPT] [OPT]
FCFLAGS : -xAVX -O2 -ip -ftz -g -traceback FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g -traceback
# Profiling flags # Profiling flags
################# #################
# #
[PROFILE] [PROFILE]
FC : -p -g FC : -p -g
FCFLAGS : -xSSE4.2 -O2 -ip -ftz FCFLAGS : -march=corei7 -O2 -ip -ftz
# Debugging flags # Debugging flags

63
config/ifort_epyc.cfg Normal file
View File

@ -0,0 +1,63 @@
# Common flags
##############
#
# -mkl=[parallel|sequential] : Use the MKL library
# --ninja : Allow the utilisation of ninja. It is mandatory !
# --align=32 : Align all provided arrays on a 32-byte boundary
#
[COMMON]
FC : ifort -fpic
LAPACK_LIB : -mkl=parallel
IRPF90 : irpf90
IRPF90_FLAGS : --ninja --align=32
# Global options
################
#
# 1 : Activate
# 0 : Deactivate
#
[OPTION]
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
CACHE : 0 ; Enable cache_compile.py
OPENMP : 1 ; Append OpenMP flags
# Optimization flags
####################
#
# -xHost : Compile a binary optimized for the current architecture
# -O2 : O3 not better than O2.
# -ip : Inter-procedural optimizations
# -ftz : Flushes denormal results to zero
#
[OPT]
FC : -traceback
FCFLAGS : -march=core-avx2 -O2 -ip -ftz -g
# Profiling flags
#################
#
[PROFILE]
FC : -p -g
FCFLAGS : -march=core-avx2 -O2 -ip -ftz
# Debugging flags
#################
#
# -traceback : Activate backtrace on runtime
# -fpe0 : All floating point exaceptions
# -C : Checks uninitialized variables, array subscripts, etc...
# -g : Extra debugging information
# -xSSE2 : Valgrind needs a very simple x86 executable
#
[DEBUG]
FC : -g -traceback
FCFLAGS : -xSSE2 -C -fpe0 -implicitnone
# OpenMP flags
#################
#
[OPENMP]
FC : -qopenmp
IRPF90_FLAGS : --openmp

47
configure vendored
View File

@ -175,7 +175,7 @@ if [[ "${PACKAGES}.x" != ".x" ]] ; then
fi fi
if [[ ${PACKAGES} = all ]] ; then if [[ ${PACKAGES} = all ]] ; then
PACKAGES="zlib ninja irpf90 zeromq f77zmq gmp ocaml ezfio docopt resultsFile bats" PACKAGES="zlib ninja irpf90 zeromq f77zmq gmp libcap bwrap ocaml ezfio docopt resultsFile bats"
fi fi
@ -206,6 +206,32 @@ EOF
make install make install
EOF EOF
elif [[ ${PACKAGE} = libcap ]] ; then
download \
"https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/snapshot/libcap-2.25.tar.gz" \
"${QP_ROOT}"/external/libcap.tar.gz
execute << EOF
cd "\${QP_ROOT}"/external
tar --gunzip --extract --file libcap.tar.gz
rm libcap.tar.gz
cd libcap-*/libcap
prefix=$QP_ROOT make install
EOF
elif [[ ${PACKAGE} = bwrap ]] ; then
download \
"https://github.com/projectatomic/bubblewrap/releases/download/v0.3.3/bubblewrap-0.3.3.tar.xz" \
"${QP_ROOT}"/external/bwrap.tar.xz
execute << EOF
cd "\${QP_ROOT}"/external
tar --xz --extract --file bwrap.tar.xz
rm bwrap.tar.xz
cd bubblewrap*
./configure --prefix=$QP_ROOT && make -j 8
make install-exec-am
EOF
elif [[ ${PACKAGE} = irpf90 ]] ; then elif [[ ${PACKAGE} = irpf90 ]] ; then
@ -276,7 +302,7 @@ EOF
rm ${QP_ROOT}/external/opam_installer.sh rm ${QP_ROOT}/external/opam_installer.sh
source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
${QP_ROOT}/bin/opam init --disable-sandboxing --verbose --yes ${QP_ROOT}/bin/opam init --verbose --yes
eval $(${QP_ROOT}/bin/opam env) eval $(${QP_ROOT}/bin/opam env)
opam install -y ${OCAML_PACKAGES} || exit 1 opam install -y ${OCAML_PACKAGES} || exit 1
@ -290,8 +316,7 @@ EOF
| sh \${QP_ROOT}/external/opam_installer.sh | sh \${QP_ROOT}/external/opam_installer.sh
rm \${QP_ROOT}/external/opam_installer.sh rm \${QP_ROOT}/external/opam_installer.sh
source \${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true source \${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
\${QP_ROOT}/bin/opam init --disable-sandboxing --verbose \ \${QP_ROOT}/bin/opam init --verbose --yes
--yes
eval \$(\${QP_ROOT}/bin/opam env) eval \$(\${QP_ROOT}/bin/opam env)
opam install -y \${OCAML_PACKAGES} || exit 1 opam install -y \${OCAML_PACKAGES} || exit 1
EOF EOF
@ -388,7 +413,7 @@ if [[ ${ZEROMQ} = $(not_found) ]] ; then
fail fail
fi fi
F77ZMQ=$(find_lib -lzmq -lf77zmq) F77ZMQ=$(find_lib -lzmq -lf77zmq -lpthread)
if [[ ${F77ZMQ} = $(not_found) ]] ; then if [[ ${F77ZMQ} = $(not_found) ]] ; then
error "Fortran binding of ZeroMQ (f77zmq) is not installed." error "Fortran binding of ZeroMQ (f77zmq) is not installed."
fail fail
@ -400,6 +425,18 @@ if [[ ${ZLIB} = $(not_found) ]] ; then
fail fail
fi fi
BWRAP=$(find_exe bwrap)
if [[ ${BWRAP} = $(not_found) ]] ; then
error "Bubblewrap (bwrap) is not installed."
fail
fi
LIBCAP=$(find_lib -lcap)
if [[ ${LIBCAP} = $(not_found) ]] ; then
error "Libcap (libcap) is not installed."
fail
fi
OPAM=$(find_exe opam) OPAM=$(find_exe opam)
if [[ ${OPAM} = $(not_found) ]] ; then if [[ ${OPAM} = $(not_found) ]] ; then
error "OPAM (ocaml) package manager is not installed." error "OPAM (ocaml) package manager is not installed."

View File

@ -263,4 +263,16 @@ vtz_mclean-chandler 'McLean/Chandler VTZ' VTZ Vale
vtzp_binning-curtiss 'Binning/Curtiss VTZP' VTZP Valence Triple Zeta + Polarization vtzp_binning-curtiss 'Binning/Curtiss VTZP' VTZP Valence Triple Zeta + Polarization
wachters+f 'Wachters+f' VDZP Valence Double Zeta + Polarization on All Atoms wachters+f 'Wachters+f' VDZP Valence Double Zeta + Polarization on All Atoms
aug-cc-pvdz_ecp_ncsu 'aug-cc-pvdz ecp ncsu' augmented cc-pvDz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
aug-cc-pvtz_ecp_ncsu 'aug-cc-pvtz ecp ncsu' augmented cc-pvTz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
aug-cc-pvqz_ecp_ncsu 'aug-cc-pvqz ecp ncsu' augmented cc-pvQz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
aug-cc-pv5z_ecp_ncsu 'aug-cc-pv5z ecp ncsu' augmented cc-pv5z basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
cc-pvdz_ecp_ncsu 'cc-pvdz ecp ncsu' cc-pvDz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
cc-pvtz_ecp_ncsu 'cc-pvtz ecp ncsu' cc-pvTz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
cc-pvqz_ecp_ncsu 'cc-pvqz ecp ncsu' cc-pvQz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
cc-pv5z_ecp_ncsu 'cc-pv5z ecp ncsu' cc-pv5z basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
# ; vim::nowrap # ; vim::nowrap

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3512
data/basis/cc-pv5z_ecp_ncsu Normal file

File diff suppressed because it is too large Load Diff

1773
data/basis/cc-pvdz_ecp_ncsu Normal file

File diff suppressed because it is too large Load Diff

2889
data/basis/cc-pvqz_ecp_ncsu Normal file

File diff suppressed because it is too large Load Diff

2309
data/basis/cc-pvtz_ecp_ncsu Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +1,46 @@
H GEN 0 1 H GEN 0 1
3 3
-10.851924053 2 21.7769665504 1.00000000000000 1 21.24359508259891
1.0 1 21.2435950826 21.24359508259891 3 21.24359508259891
21.2435950826 3 21.2435950826 -10.85192405303825 2 21.77696655044365
1 1
0.0 2 1.0 0.00000000000000 2 1.000000000000000
B GEN 2 1
3
3.00000 1 31.49298
94.47895 3 22.56509
-9.74800 2 8.64669
1
20.74800 2 4.06246
C GEN 2 1 C GEN 2 1
3 3
4.0 1 14.43502 4.00000 1 14.43502
57.74008 3 8.39889 57.74008 3 8.39889
-25.81955 2 7.38188 -25.81955 2 7.38188
1 1
52.13345 2 7.76079 52.13345 2 7.76079
Cl GEN 10 2 N GEN 2 1
6
3.25000 1 12.91881
1.75000 1 9.22825
41.98612 3 12.96581
16.14945 3 8.05477
-26.09522 2 12.54876
-10.32626 2 7.53360
2
34.77692 2 9.41609
15.20330 2 8.16694
O GEN 2 1
3 3
7.0 1 22.71655173 6.000000 1 12.30997
159.01586213 3 78.57185685 73.85984 3 14.76962
-15.6531065 2 7.47352436 -47.87600 2 13.71419
2 1
6.50888648 2 17.23708573 85.86406 2 13.65512
46.763467 2 4.31148447
2
2.9946477 2 11.38275704
28.0170341 2 3.83218762
Co GEN 10 2
4
17.0 1 24.7400138129
420.580234819 3 23.5426031368
-194.630579018 2 24.0406241364
-2.94301943013 2 10.237411369
2
270.86974114 2 23.0205711168
54.1910212498 2 10.9219568474
2
200.63032558 2 25.3244045243
38.9480947892 2 10.6533915029
Cr GEN 10 2
4
14.0 1 18.2809107439
255.932750414 3 17.0980065531
-132.018263171 2 16.7226727605
-0.773887613451 2 5.02865105891
2
219.481462096 2 16.9007876081
28.079331766 2 7.33662150761
2
139.983968717 2 17.3197451654
19.5483578632 2 6.92409757503
F GEN 2 1 F GEN 2 1
3 3
@ -60,124 +50,214 @@ F GEN 2 1
1 1
51.3934743997 2 11.3903478843 51.3934743997 2 11.3903478843
Fe GEN 10 2 Na GEN 10 2
4
16.0 1 23.2209171361
371.534674178 3 23.5471467972
-181.226034452 2 23.4725634461
-2.3730523614 2 9.85238815041
2
277.500325475 2 22.2106269743
46.2049558527 2 9.51515800919
2
194.998750566 2 24.5700087185
31.6794513291 2 8.86648776669
Mn GEN 10 2
4
15.0 1 21.9061889166
328.592833748 3 21.3460106503
-162.049880237 2 21.2709151562
-1.85679609726 2 7.90771171833
2
244.669998154 2 18.9263045646
33.5399867643 2 8.31114792811
2
162.350195446 2 20.162449313
24.1593874179 2 7.79269955633
Ni GEN 10 2
4
18.0 1 37.839331506
681.107967108 3 23.875701156
-173.162219465 2 19.8803935987
0.34274858261 2 3.56565870195
2
91.6513902571 2 13.545098213
331.659352198 2 27.7907700999
2
7.5147228016 2 6.46792786898
265.586894944 2 23.6921476759
O GEN 2 1
3 3
6.0 1 12.30997 1.000000 1 4.311678
73.85984 3 14.76962 4.311678 3 1.925689
-47.876 2 13.71419 -2.083137 2 1.549498
1 2
85.86406 2 13.65512 6.234064 2 5.377666
9.075931 2 1.408414
2
3.232724 2 1.379949
2.494079 2 0.862453
Mg GEN 10 2
3
2.000000 1 6.048538
12.097075 3 2.796989
-17.108313 2 2.547408
2
6.428631 2 5.936017
14.195491 2 1.592891
2
3.315069 2 1.583969
4.403025 2 1.077297
Al GEN 2 1
3
11.000000 1 11.062056
121.682619 3 12.369778
-82.624567 2 11.965444
2
25.157259 2 81.815564
113.067525 2 24.522883
Si GEN 10 2
3
4.000000 1 5.168316
20.673264 3 8.861690
-14.818174 2 3.933474
2
14.832760 2 9.447023
26.349664 2 2.553812
2
7.621400 2 3.660001
10.331583 2 1.903653
P GEN 2 1
3
13.000000 1 15.073300
195.952906 3 18.113176
-117.611086 2 17.371539
2
25.197230 2 101.982019
189.426261 2 37.485881
S GEN 2 1 S GEN 2 1
3 3
14.00000000 1 17.46806994 14.000000 1 17.977612
244.55297916 3 16.40396851 251.686565 3 20.435964
-128.37752591 2 16.71429998 -135.538891 2 19.796579
2 2
30.00006536 2 54.87912854 25.243283 2 111.936344
125.50010056 2 31.32968867 227.060768 2 43.941844
Cl GEN 2 1
3
15.000000 1 22.196266
332.943994 3 26.145117
-161.999982 2 25.015118
2
26.837357 2 124.640433
277.296696 2 52.205433
Ar GEN 2 1
3
16.000000 1 23.431337
374.901386 3 26.735872
-178.039517 2 26.003325
2
25.069215 2 135.620522
332.151842 2 60.471053
Sc GEN 10 2 Sc GEN 10 2
4 4
11.0 1 16.0484863686 11.00000000 1 16.02394388
176.533350054 3 14.07764439 176.26338271 3 14.08647403
-83.673420518 2 11.993486653 -83.68149599 2 11.93985121
0.331064789149 2 3.75115298216 0.43282764 2 3.69440111
2 2
153.959870288 2 11.4712713921 153.96530175 2 11.49466541
14.9643185607 2 5.00756742752 14.93675657 2 5.01031394
2 2
97.2094454291 2 11.4449481137 97.21725690 2 11.45126730
10.8162163087 2 4.78509457131 10.81704018 2 4.76798446
Ti GEN 10 2 Ti GEN 10 2
4 4
12.0 1 18.4136620219 12.00000000 1 18.41366202
220.963944263 3 15.9229241432 220.96394426 3 15.92292414
-94.2902582468 2 13.6500062314 -94.29025824 2 13.65000623
0.0979114248227 2 5.0955521057 0.09791142 2 5.09555210
2 2
173.946572359 2 12.7058061392 173.94657235 2 12.70580613
18.8376833381 2 6.11178551988 18.83768333 2 6.11178551
2 2
111.45672882 2 12.6409192965 111.45672882 2 12.64091929
11.1770268269 2 5.35437415684 11.17702682 2 5.35437415
V GEN 10 2 V GEN 10 2
4 4
13.0 1 20.3216891426 13.00000000 1 20.32168914
264.181958854 3 19.5969804012 264.18195885 3 19.59698040
-115.292932083 2 17.3314734817 -115.29293208 2 17.33147348
-0.662887260057 2 5.12320657929 -0.66288726 2 5.12320657
2 2
195.567138911 2 15.1250215054 195.56713891 2 15.12502150
22.8864283476 2 6.2989891447 22.88642834 2 6.29898914
2 2
126.421195008 2 15.9385511327 126.42119500 2 15.93855113
16.0359712766 2 5.74006266866 16.03597127 2 5.74006266
Zn GEN 10 2 Cr GEN 10 2
4 4
20.0 1 35.8079761618 14.00000000 1 18.28091074
716.159523235 3 34.536460837 255.93275041 3 17.09800655
-204.683933235 2 28.6283017827 -132.01826317 2 16.72267276
0.760266144617 2 7.9623968256 -0.77388761 2 5.02865105
2 2
95.8764043739 2 14.6349869153 219.48146209 2 16.90078760
431.708043027 2 35.0214135667 28.07933176 2 7.33662150
2 2
74.0127004894 2 14.5742930415 139.98396871 2 17.31974516
313.577705639 2 42.2297923499 19.54835786 2 6.92409757
Mn GEN 10 2
4
15.00000000 1 21.91937433
328.79061500 3 21.35527127
-162.05172805 2 21.27162653
-1.82694272 2 7.93913962
2
244.66870492 2 18.92044965
33.54162717 2 8.32764757
2
162.35033685 2 20.17347020
24.17956695 2 7.80047874
Fe GEN 10 2
4
16.00000000 1 23.22091713
371.53467417 3 23.54714679
-181.22603445 2 23.47256344
-2.37305236 2 9.85238815
2
277.50032547 2 22.21062697
46.20495585 2 9.51515800
2
194.99875056 2 24.57000871
31.67945132 2 8.86648776
Co GEN 10 2
4
17.00000000 1 25.00124115
425.02109971 3 22.83490096
-195.48211282 2 23.47468155
-2.81572866 2 10.33794825
2
271.77708486 2 23.41427030
54.26461121 2 10.76931694
2
201.53430745 2 25.47446316
38.99231927 2 10.68404901
Ni GEN 10 2
4
18.000 1 2.82630001015327e+01
508.7340018275886 3 2.69360254587070e+01
-2.20099999296390e+02 2 2.70860075292970e+01
-2.13493270999809e+00 2 1.22130001295874e+01
2
3.21240002430625e+02 2 2.64320193944270e+01
6.03470084610628e+01 2 1.17489696842121e+01
2
2.36539998999428e+02 2 2.94929998193907e+01
4.43969887908906e+01 2 1.15569831458722e+01
Cu GEN 10 2 Cu GEN 10 2
4 4
19.0 1 31.5381126304 19.00000000 1 31.53811263
599.224139977 3 31.0692553147 599.22413997 3 31.06925531
-244.689154841 2 30.5903586806 -244.68915484 2 30.59035868
-1.2934952584 2 14.0514106386 -1.29349525 2 14.05141063
2 2
66.2756081341 2 12.7723591969 370.71371824 2 29.35562242
370.71371825 2 29.355622426 66.27560813 2 12.77235919
2 2
49.7626505709 2 12.5247148487 271.66281028 2 33.51694543
271.662810283 2 33.5169454376 49.76265057 2 12.52471484
Zn GEN 10 2
4
20.00000000 1 35.80797616
716.15952323 3 34.53646083
-204.68393323 2 28.62830178
0.76026614 2 7.96239682
2
431.70804302 2 35.02141356
95.87640437 2 14.63498691
2
313.57770563 2 42.22979234
74.01270048 2 14.57429304

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 5.9 MiB

View File

@ -953,6 +953,7 @@ Subroutines / functions
Gets multiple AO bi-electronic integral from the AO map . Gets multiple AO bi-electronic integral from the AO map .
All i are retrieved for j,k,l fixed. All i are retrieved for j,k,l fixed.
physicist convention : <ij|kl>
Needs: Needs:
@ -1224,6 +1225,8 @@ Subroutines / functions
subroutine two_e_integrals_index(i,j,k,l,i1) subroutine two_e_integrals_index(i,j,k,l,i1)
Gives a unique index for i,j,k,l using permtuation symmetry.
i <-> k, j <-> l, and (i,k) <-> (j,l)
Called by: Called by:
@ -1255,7 +1258,7 @@ Subroutines / functions
* :c:data:`mo_integrals_erf_cache` * :c:data:`mo_integrals_erf_cache`
* :c:data:`mo_integrals_erf_map` * :c:data:`mo_integrals_erf_map`
* :c:data:`mo_integrals_map` * :c:data:`mo_integrals_map`
* :c:func:`two_e_integrals_index_reverse` * :c:func:`test`
.. c:function:: two_e_integrals_index_reverse: .. c:function:: two_e_integrals_index_reverse:
@ -1268,6 +1271,15 @@ Subroutines / functions
subroutine two_e_integrals_index_reverse(i,j,k,l,i1) subroutine two_e_integrals_index_reverse(i,j,k,l,i1)
Computes the 4 indices $i,j,k,l$ from a unique index $i_1$.
For 2 indices $i,j$ and $i \le j$, we have
$p = i(i-1)/2 + j$.
The key point is that because $j < i$,
$i(i-1)/2 < p \le i(i+1)/2$. So $i$ can be found by solving
$i^2 - i - 2p=0$. One obtains $i=1 + \sqrt{1+8p}/2$
and $j = p - i(i-1)/2$.
This rule is applied 3 times. First for the symmetry of the
pairs (i,k) and (j,l), and then for the symmetry within each pair.
Called by: Called by:
@ -1275,11 +1287,5 @@ Subroutines / functions
:columns: 3 :columns: 3
* :c:data:`ao_two_e_integral_alpha` * :c:data:`ao_two_e_integral_alpha`
* :c:func:`test`
Calls:
.. hlist::
:columns: 3
* :c:func:`two_e_integrals_index`

View File

@ -51,3 +51,13 @@ EZFIO parameters
Beta one body density matrix on the |MO| basis computed with the wave function Beta one body density matrix on the |MO| basis computed with the wave function
.. option:: data_one_e_dm_alpha_ao
Alpha one body density matrix on the |AO| basis computed with the wave function
.. option:: data_one_e_dm_beta_ao
Beta one body density matrix on the |AO| basis computed with the wave function

View File

@ -241,6 +241,7 @@ Providers
* :c:data:`mos_in_r_array` * :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: final_weight_at_r .. c:var:: final_weight_at_r
@ -339,6 +340,7 @@ Providers
* :c:data:`mos_in_r_array` * :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: grid_points_per_atom .. c:var:: grid_points_per_atom
@ -468,6 +470,7 @@ Providers
* :c:data:`mos_in_r_array` * :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: index_final_points_reverse .. c:var:: index_final_points_reverse
@ -532,6 +535,7 @@ Providers
* :c:data:`mos_in_r_array` * :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: m_knowles .. c:var:: m_knowles
@ -608,6 +612,7 @@ Providers
* :c:data:`mos_lapl_in_r_array` * :c:data:`mos_lapl_in_r_array`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
* :c:data:`pot_grad_x_alpha_ao_pbe` * :c:data:`pot_grad_x_alpha_ao_pbe`
* :c:data:`pot_grad_xc_alpha_ao_pbe` * :c:data:`pot_grad_xc_alpha_ao_pbe`
* :c:data:`pot_scal_x_alpha_ao_pbe` * :c:data:`pot_scal_x_alpha_ao_pbe`
@ -749,6 +754,7 @@ Providers
* :c:data:`grid_points_per_atom` * :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid` * :c:data:`n_points_radial_grid`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord_transp` * :c:data:`nucl_coord_transp`
* :c:data:`nucl_dist_inv` * :c:data:`nucl_dist_inv`
* :c:data:`nucl_num` * :c:data:`nucl_num`
@ -818,6 +824,7 @@ Subroutines / functions
* :c:data:`nucl_dist_inv` * :c:data:`nucl_dist_inv`
* :c:data:`slater_bragg_type_inter_distance_ua` * :c:data:`slater_bragg_type_inter_distance_ua`
* :c:data:`nucl_coord_transp` * :c:data:`nucl_coord_transp`
* :c:data:`nucl_charge`
* :c:data:`nucl_num` * :c:data:`nucl_num`

View File

@ -108,10 +108,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -150,8 +152,6 @@ Providers
* :c:data:`closed_shell_ref_bitmask` * :c:data:`closed_shell_ref_bitmask`
* :c:data:`psi_cas` * :c:data:`psi_cas`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
.. c:var:: closed_shell_ref_bitmask .. c:var:: closed_shell_ref_bitmask
@ -246,10 +246,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -374,10 +376,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -814,10 +818,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -943,10 +949,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1021,10 +1029,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1099,10 +1109,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1110,12 +1122,12 @@ Providers
.. c:var:: list_core_inact_act .. c:var:: list_core_inact_act
File : :file:`bitmask/bitmasks.irp.f` File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran .. code:: fortran
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb) integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
integer, allocatable :: list_core_inact_act_reverse (mo_num) integer, allocatable :: list_core_inact_act_reverse (n_core_inact_act_orb)
@ -1125,7 +1137,8 @@ Providers
:columns: 3 :columns: 3
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`mo_num` * :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_int` * :c:data:`n_int`
* :c:data:`reunion_of_core_inact_act_bitmask` * :c:data:`reunion_of_core_inact_act_bitmask`
@ -1134,12 +1147,12 @@ Providers
.. c:var:: list_core_inact_act_reverse .. c:var:: list_core_inact_act_reverse
File : :file:`bitmask/bitmasks.irp.f` File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran .. code:: fortran
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb) integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
integer, allocatable :: list_core_inact_act_reverse (mo_num) integer, allocatable :: list_core_inact_act_reverse (n_core_inact_act_orb)
@ -1149,7 +1162,8 @@ Providers
:columns: 3 :columns: 3
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`mo_num` * :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_int` * :c:data:`n_int`
* :c:data:`reunion_of_core_inact_act_bitmask` * :c:data:`reunion_of_core_inact_act_bitmask`
@ -1225,10 +1239,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1303,10 +1319,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1381,10 +1399,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1459,14 +1479,38 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
.. c:var:: list_inact_act
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
integer, allocatable :: list_inact_act (n_inact_act_orb)
Needs:
.. hlist::
:columns: 3
* :c:data:`list_inact`
* :c:data:`n_core_orb`
* :c:data:`n_inact_act_orb`
.. c:var:: list_inact_reverse .. c:var:: list_inact_reverse
@ -1537,10 +1581,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1615,10 +1661,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1693,10 +1741,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`
@ -1772,9 +1822,13 @@ Providers
* :c:data:`dim_list_core_orb` * :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb_allocate` * :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate` * :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f` * :c:data:`pt2_f`
@ -1813,31 +1867,26 @@ Providers
.. c:var:: n_core_inact_act_orb .. c:var:: n_core_inact_act_orb
File : :file:`bitmask/bitmasks.irp.f` File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran .. code:: fortran
integer(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2)
integer :: n_core_inact_act_orb integer :: n_core_inact_act_orb
Reunion of the core, inactive and active bitmasks
Needs: Needs:
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`cas_bitmask` * :c:data:`n_core_orb`
* :c:data:`n_int`
* :c:data:`reunion_of_core_inact_bitmask`
Needed by: Needed by:
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`core_inact_act_bitmask_4`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
@ -1919,9 +1968,13 @@ Providers
* :c:data:`dim_list_core_orb` * :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb_allocate` * :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate` * :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f` * :c:data:`pt2_f`
@ -2004,9 +2057,13 @@ Providers
* :c:data:`dim_list_core_orb` * :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb_allocate` * :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate` * :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f` * :c:data:`pt2_f`
@ -2072,6 +2129,32 @@ Providers
* :c:data:`generators_bitmask_restart` * :c:data:`generators_bitmask_restart`
.. c:var:: n_inact_act_orb
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
integer :: n_inact_act_orb
Needs:
.. hlist::
:columns: 3
* :c:data:`n_core_orb`
Needed by:
.. hlist::
:columns: 3
* :c:data:`list_inact_act`
.. c:var:: n_inact_orb .. c:var:: n_inact_orb
@ -2129,9 +2212,13 @@ Providers
* :c:data:`dim_list_core_orb` * :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb_allocate` * :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate` * :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f` * :c:data:`pt2_f`
@ -2309,9 +2396,13 @@ Providers
* :c:data:`dim_list_core_orb` * :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_inact_act_orb`
* :c:data:`n_core_orb_allocate` * :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate` * :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f` * :c:data:`pt2_f`
@ -2412,7 +2503,6 @@ Providers
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`cas_bitmask`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`n_int` * :c:data:`n_int`
@ -2426,7 +2516,6 @@ Providers
.. code:: fortran .. code:: fortran
integer(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2) integer(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2)
integer :: n_core_inact_act_orb
Reunion of the core, inactive and active bitmasks Reunion of the core, inactive and active bitmasks
@ -2436,7 +2525,7 @@ Providers
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`cas_bitmask` * :c:data:`list_inact`
* :c:data:`n_int` * :c:data:`n_int`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
@ -2570,10 +2659,12 @@ Providers
* :c:data:`fock_matrix_mo` * :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask` * :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act`
* :c:data:`list_inact_act`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4` * :c:data:`virt_bitmask_4`

View File

@ -344,6 +344,34 @@ Providers
.. c:var:: pt2_match_weight
File : :file:`cipsi/selection.irp.f`
.. code:: fortran
double precision, allocatable :: pt2_match_weight (N_states)
Weights adjusted along the selection to make the PT2 contributions
of each state coincide.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_states`
Needed by:
.. hlist::
:columns: 3
* :c:data:`selection_weight`
.. c:var:: pt2_mindetinfirstteeth .. c:var:: pt2_mindetinfirstteeth
@ -698,6 +726,7 @@ Providers
* :c:data:`c0_weight` * :c:data:`c0_weight`
* :c:data:`n_states` * :c:data:`n_states`
* :c:data:`pt2_match_weight`
@ -854,6 +883,8 @@ Subroutines / functions
* :c:data:`psi_det_hii` * :c:data:`psi_det_hii`
* :c:data:`do_only_1h1p` * :c:data:`do_only_1h1p`
* :c:data:`h0_type` * :c:data:`h0_type`
* :c:data:`thresh_sym`
* :c:data:`pseudo_sym`
* :c:data:`psi_det_generators` * :c:data:`psi_det_generators`
Called by: Called by:
@ -1584,6 +1615,7 @@ Subroutines / functions
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`psi_occ_pattern` * :c:data:`psi_occ_pattern`
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate` * :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`
@ -1805,6 +1837,7 @@ Subroutines / functions
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:func:`fci`
* :c:func:`pt2` * :c:func:`pt2`
Calls: Calls:
@ -1991,6 +2024,7 @@ Subroutines / functions
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`psi_occ_pattern` * :c:data:`psi_occ_pattern`
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate` * :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`
@ -2344,6 +2378,7 @@ Subroutines / functions
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
* :c:data:`n_det` * :c:data:`n_det`
* :c:data:`s2_eig` * :c:data:`s2_eig`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_j` * :c:data:`pt2_j`
* :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_in_map`
* :c:data:`psi_bilinear_matrix_transp_values` * :c:data:`psi_bilinear_matrix_transp_values`
@ -2415,6 +2450,7 @@ Subroutines / functions
* :c:data:`psi_det` * :c:data:`psi_det`
* :c:data:`psi_det_size` * :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit` * :c:data:`psi_det_sorted_bit`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate` * :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
@ -2441,6 +2477,7 @@ Subroutines / functions
* :c:data:`n_det` * :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_columns_loc` * :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`n_det_selectors` * :c:data:`n_det_selectors`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_det_alpha_unique` * :c:data:`psi_det_alpha_unique`
* :c:data:`psi_bilinear_matrix_transp_values` * :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
@ -2456,7 +2493,7 @@ Subroutines / functions
* :c:data:`n_states` * :c:data:`n_states`
* :c:data:`pt2_f` * :c:data:`pt2_f`
* :c:data:`n_det_generators` * :c:data:`n_det_generators`
* :c:data:`psi_bilinear_matrix_transp_values` * :c:data:`pt2_match_weight`
* :c:data:`n_int` * :c:data:`n_int`
Called by: Called by:
@ -2496,4 +2533,5 @@ Subroutines / functions
* :c:data:`psi_det` * :c:data:`psi_det`
* :c:data:`psi_det_size` * :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit` * :c:data:`psi_det_sorted_bit`
* :c:data:`pt2_match_weight`

View File

@ -72,7 +72,7 @@ Subroutines / functions
.. c:function:: h_apply_cis: .. c:function:: h_apply_cis:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran .. code:: fortran
@ -134,7 +134,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexc: .. c:function:: h_apply_cis_diexc:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran .. code:: fortran
@ -169,7 +169,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexcorg: .. c:function:: h_apply_cis_diexcorg:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran .. code:: fortran
@ -208,7 +208,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexcp: .. c:function:: h_apply_cis_diexcp:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran .. code:: fortran
@ -243,7 +243,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_monoexc: .. c:function:: h_apply_cis_monoexc:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran .. code:: fortran
@ -278,3 +278,215 @@ Subroutines / functions
* :c:func:`bitstring_to_list_ab` * :c:func:`bitstring_to_list_ab`
* :c:func:`fill_h_apply_buffer_no_selection` * :c:func:`fill_h_apply_buffer_no_selection`
.. c:function:: h_apply_cis_sym:
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
subroutine H_apply_cis_sym()
Calls H_apply on the |HF| determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
Needs:
.. hlist::
:columns: 3
* :c:data:`psi_coef`
* :c:data:`n_states`
* :c:data:`generators_bitmask`
* :c:data:`mo_num`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`n_det`
* :c:data:`s2_eig`
* :c:data:`n_det_generators`
* :c:data:`i_bitmask_gen`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_det_generators`
* :c:data:`psi_det_generators`
Calls:
.. hlist::
:columns: 3
* :c:func:`build_fock_tmp`
* :c:func:`copy_h_apply_buffer_to_wf`
* :c:func:`dsort`
* :c:func:`h_apply_cis_sym_diexc`
* :c:func:`h_apply_cis_sym_monoexc`
* :c:func:`make_s2_eigenfunction`
* :c:func:`wall_time`
Touches:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cis_sym_diexc:
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
subroutine H_apply_cis_sym_diexc(key_in, key_prev, hole_1,particl_1, hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_det`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym`
Calls:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym_diexcp`
.. c:function:: h_apply_cis_sym_diexcorg:
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
subroutine H_apply_cis_sym_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`elec_alpha_num`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym_diexcp`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_list_ab`
* :c:func:`connected_to_hf`
* :c:func:`fill_h_apply_buffer_no_selection`
.. c:function:: h_apply_cis_sym_diexcp:
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
subroutine H_apply_cis_sym_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_det`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym_diexc`
Calls:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym_diexcorg`
.. c:function:: h_apply_cis_sym_monoexc:
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
subroutine H_apply_cis_sym_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in )
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`elec_alpha_num`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cis_sym`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_list_ab`
* :c:func:`connected_to_hf`
* :c:func:`fill_h_apply_buffer_no_selection`

View File

@ -65,7 +65,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd: .. c:function:: h_apply_cisd:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran .. code:: fortran
@ -127,7 +127,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexc: .. c:function:: h_apply_cisd_diexc:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran .. code:: fortran
@ -162,7 +162,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexcorg: .. c:function:: h_apply_cisd_diexcorg:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran .. code:: fortran
@ -201,7 +201,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexcp: .. c:function:: h_apply_cisd_diexcp:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran .. code:: fortran
@ -236,7 +236,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_monoexc: .. c:function:: h_apply_cisd_monoexc:
File : :file:`h_apply.irp.f_shell_8` File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran .. code:: fortran
@ -271,3 +271,215 @@ Subroutines / functions
* :c:func:`bitstring_to_list_ab` * :c:func:`bitstring_to_list_ab`
* :c:func:`fill_h_apply_buffer_no_selection` * :c:func:`fill_h_apply_buffer_no_selection`
.. c:function:: h_apply_cisd_sym:
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
subroutine H_apply_cisd_sym()
Calls H_apply on the |HF| determinant and selects all connected single and double
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
Needs:
.. hlist::
:columns: 3
* :c:data:`psi_coef`
* :c:data:`n_states`
* :c:data:`generators_bitmask`
* :c:data:`mo_num`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`n_det`
* :c:data:`s2_eig`
* :c:data:`n_det_generators`
* :c:data:`i_bitmask_gen`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_det_generators`
* :c:data:`psi_det_generators`
Calls:
.. hlist::
:columns: 3
* :c:func:`build_fock_tmp`
* :c:func:`copy_h_apply_buffer_to_wf`
* :c:func:`dsort`
* :c:func:`h_apply_cisd_sym_diexc`
* :c:func:`h_apply_cisd_sym_monoexc`
* :c:func:`make_s2_eigenfunction`
* :c:func:`wall_time`
Touches:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cisd_sym_diexc:
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
subroutine H_apply_cisd_sym_diexc(key_in, key_prev, hole_1,particl_1, hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_det`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym`
Calls:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym_diexcp`
.. c:function:: h_apply_cisd_sym_diexcorg:
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
subroutine H_apply_cisd_sym_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`elec_alpha_num`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym_diexcp`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_list_ab`
* :c:func:`connected_to_hf`
* :c:func:`fill_h_apply_buffer_no_selection`
.. c:function:: h_apply_cisd_sym_diexcp:
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
subroutine H_apply_cisd_sym_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, fock_diag_tmp, i_generator, iproc_in )
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_det`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym_diexc`
Calls:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym_diexcorg`
.. c:function:: h_apply_cisd_sym_monoexc:
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
subroutine H_apply_cisd_sym_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in )
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`elec_alpha_num`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`h_apply_cisd_sym`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_list_ab`
* :c:func:`connected_to_hf`
* :c:func:`fill_h_apply_buffer_no_selection`

View File

@ -44,6 +44,12 @@ EZFIO parameters
Default: full_density Default: full_density
.. option:: normalize_dm
if .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb
Default: True
Providers Providers
--------- ---------
@ -131,6 +137,9 @@ Providers
:columns: 3 :columns: 3
* :c:data:`ao_num` * :c:data:`ao_num`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`density_for_dft`
* :c:data:`mo_coef` * :c:data:`mo_coef`
* :c:data:`mo_num` * :c:data:`mo_num`
* :c:data:`n_states` * :c:data:`n_states`
@ -147,6 +156,39 @@ Providers
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
.. c:var:: one_e_dm_alpha_ao_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft_no_core (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft_no_core (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft_no_core
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: one_e_dm_average_mo_for_dft .. c:var:: one_e_dm_average_mo_for_dft
@ -195,6 +237,9 @@ Providers
:columns: 3 :columns: 3
* :c:data:`ao_num` * :c:data:`ao_num`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`density_for_dft`
* :c:data:`mo_coef` * :c:data:`mo_coef`
* :c:data:`mo_num` * :c:data:`mo_num`
* :c:data:`n_states` * :c:data:`n_states`
@ -211,6 +256,39 @@ Providers
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
.. c:var:: one_e_dm_beta_ao_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_ao_for_dft_no_core (ao_num,ao_num,N_states)
double precision, allocatable :: one_e_dm_beta_ao_for_dft_no_core (ao_num,ao_num,N_states)
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft_no_core
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: one_e_dm_mo_alpha_for_dft .. c:var:: one_e_dm_mo_alpha_for_dft
@ -228,14 +306,18 @@ Providers
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`ao_num`
* :c:data:`damping_for_rs_dft` * :c:data:`damping_for_rs_dft`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`density_for_dft` * :c:data:`density_for_dft`
* :c:data:`elec_alpha_num`
* :c:data:`list_inact`
* :c:data:`mo_coef` * :c:data:`mo_coef`
* :c:data:`mo_num` * :c:data:`mo_num`
* :c:data:`n_core_orb` * :c:data:`n_core_orb`
* :c:data:`n_states` * :c:data:`n_states`
* :c:data:`no_core_density` * :c:data:`no_core_density`
* :c:data:`normalize_dm`
* :c:data:`one_body_dm_mo_alpha_one_det` * :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_e_dm_mo_alpha` * :c:data:`one_e_dm_mo_alpha`
* :c:data:`one_e_dm_mo_alpha_average` * :c:data:`one_e_dm_mo_alpha_average`
@ -246,12 +328,44 @@ Providers
:columns: 3 :columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft` * :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_for_dft` * :c:data:`one_e_dm_mo_for_dft`
* :c:data:`psi_dft_energy_kinetic` * :c:data:`psi_dft_energy_kinetic`
* :c:data:`trace_v_xc` * :c:data:`trace_v_xc`
* :c:data:`trace_v_xc_new` * :c:data:`trace_v_xc_new`
.. c:var:: one_e_dm_mo_alpha_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha_for_dft_no_core (mo_num,mo_num,N_states)
density matrix for alpha electrons in the MO basis without the core orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`list_inact`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_dm_mo_beta_for_dft .. c:var:: one_e_dm_mo_beta_for_dft
@ -269,14 +383,18 @@ Providers
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`ao_num`
* :c:data:`damping_for_rs_dft` * :c:data:`damping_for_rs_dft`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`density_for_dft` * :c:data:`density_for_dft`
* :c:data:`elec_beta_num`
* :c:data:`list_inact`
* :c:data:`mo_coef` * :c:data:`mo_coef`
* :c:data:`mo_num` * :c:data:`mo_num`
* :c:data:`n_core_orb` * :c:data:`n_core_orb`
* :c:data:`n_states` * :c:data:`n_states`
* :c:data:`no_core_density` * :c:data:`no_core_density`
* :c:data:`normalize_dm`
* :c:data:`one_body_dm_mo_alpha_one_det` * :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_e_dm_mo_alpha` * :c:data:`one_e_dm_mo_alpha`
* :c:data:`one_e_dm_mo_alpha_average` * :c:data:`one_e_dm_mo_alpha_average`
@ -287,12 +405,44 @@ Providers
:columns: 3 :columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft` * :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
* :c:data:`one_e_dm_mo_for_dft` * :c:data:`one_e_dm_mo_for_dft`
* :c:data:`psi_dft_energy_kinetic` * :c:data:`psi_dft_energy_kinetic`
* :c:data:`trace_v_xc` * :c:data:`trace_v_xc`
* :c:data:`trace_v_xc_new` * :c:data:`trace_v_xc_new`
.. c:var:: one_e_dm_mo_beta_for_dft_no_core
File : :file:`density_for_dft/density_for_dft.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_beta_for_dft_no_core (mo_num,mo_num,N_states)
density matrix for beta electrons in the MO basis without the core orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`list_inact`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_beta_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_dm_mo_for_dft .. c:var:: one_e_dm_mo_for_dft

View File

@ -71,7 +71,7 @@ EZFIO parameters
Thresholds on generators (fraction of the square of the norm) Thresholds on generators (fraction of the square of the norm)
Default: 0.99 Default: 0.999
.. option:: n_int .. option:: n_int
@ -119,6 +119,18 @@ EZFIO parameters
Weight of the states in state-average calculations. Weight of the states in state-average calculations.
.. option:: thresh_sym
Thresholds to check if a determinant is connected with HF
Default: 1.e-15
.. option:: pseudo_sym
If |true|, discard any Slater determinants with an interaction smaller than thresh_sym with HF.
Default: False
Providers Providers
--------- ---------
@ -3971,6 +3983,37 @@ Subroutines / functions
* :c:func:`debug_det` * :c:func:`debug_det`
.. c:function:: connected_to_hf:
File : :file:`determinants/slater_rules.irp.f`
.. code:: fortran
subroutine connected_to_hf(key_i,yes_no)
Needs:
.. hlist::
:columns: 3
* :c:data:`thresh_sym`
* :c:data:`ref_bitmask`
* :c:data:`mo_one_e_integrals`
* :c:data:`n_int`
Calls:
.. hlist::
:columns: 3
* :c:func:`get_excitation_degree`
* :c:func:`get_single_excitation`
* :c:func:`i_h_j`
.. c:function:: connected_to_ref: .. c:function:: connected_to_ref:
@ -5367,6 +5410,7 @@ Subroutines / functions
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:func:`connected_to_hf`
* :c:data:`degree_max_generators` * :c:data:`degree_max_generators`
* :c:func:`diag_h_mat_elem_fock` * :c:func:`diag_h_mat_elem_fock`
* :c:func:`example_determinants` * :c:func:`example_determinants`
@ -5699,6 +5743,7 @@ Subroutines / functions
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:func:`connected_to_hf`
* :c:func:`diag_h_mat_elem_fock` * :c:func:`diag_h_mat_elem_fock`
* :c:func:`get_excitation` * :c:func:`get_excitation`
* :c:func:`i_h_j` * :c:func:`i_h_j`
@ -5866,6 +5911,7 @@ Subroutines / functions
:columns: 3 :columns: 3
* :c:data:`coef_hf_selector` * :c:data:`coef_hf_selector`
* :c:func:`connected_to_hf`
* :c:func:`example_determinants` * :c:func:`example_determinants`
* :c:func:`get_d0` * :c:func:`get_d0`
* :c:func:`get_d1` * :c:func:`get_d1`

View File

@ -344,6 +344,94 @@ Providers
* :c:data:`mos_lapl_in_r_array` * :c:data:`mos_lapl_in_r_array`
.. c:var:: elec_alpha_num_grid_becke
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
double precision, allocatable :: elec_beta_num_grid_becke (N_states)
double precision, allocatable :: elec_alpha_num_grid_becke (N_states)
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate)
where r_i is the ith point of the grid and istate is the state number
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`final_grid_points`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`aos_sr_vxc_alpha_lda_w`
* :c:data:`aos_vc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
* :c:data:`energy_sr_x_lda`
* :c:data:`energy_x_lda`
* :c:data:`energy_x_sr_lda`
.. c:var:: elec_beta_num_grid_becke
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
double precision, allocatable :: elec_beta_num_grid_becke (N_states)
double precision, allocatable :: elec_alpha_num_grid_becke (N_states)
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate)
where r_i is the ith point of the grid and istate is the state number
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`final_grid_points`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`aos_sr_vxc_alpha_lda_w`
* :c:data:`aos_vc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
* :c:data:`energy_sr_x_lda`
* :c:data:`energy_x_lda`
* :c:data:`energy_x_sr_lda`
.. c:var:: mos_grad_in_r_array .. c:var:: mos_grad_in_r_array
@ -467,6 +555,8 @@ Providers
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states) double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states) double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
double precision, allocatable :: elec_beta_num_grid_becke (N_states)
double precision, allocatable :: elec_alpha_num_grid_becke (N_states)
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
@ -628,6 +718,8 @@ Providers
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states) double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states) double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
double precision, allocatable :: elec_beta_num_grid_becke (N_states)
double precision, allocatable :: elec_alpha_num_grid_becke (N_states)
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
@ -688,6 +780,66 @@ Providers
.. c:var:: one_e_dm_no_core_and_grad_alpha_in_r
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_no_core_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_no_core_and_grad_beta_in_r (4,n_points_final_grid,N_states)
one_e_dm_no_core_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) without core orbitals
where r_i is the ith point of the grid and istate is the state number
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`final_grid_points`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_dm_no_core_and_grad_beta_in_r
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_no_core_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
double precision, allocatable :: one_e_dm_no_core_and_grad_beta_in_r (4,n_points_final_grid,N_states)
one_e_dm_no_core_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) without core orbitals
one_e_dm_no_core_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) without core orbitals
where r_i is the ith point of the grid and istate is the state number
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`final_grid_points`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
.. c:var:: one_e_grad_2_dm_alpha_at_r .. c:var:: one_e_grad_2_dm_alpha_at_r
@ -784,6 +936,55 @@ Providers
Subroutines / functions Subroutines / functions
----------------------- -----------------------
.. c:function:: dens_grad_a_b_no_core_and_aos_grad_aos_at_r:
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
subroutine dens_grad_a_b_no_core_and_aos_grad_aos_at_r(r,dm_a,dm_b, grad_dm_a, grad_dm_b, aos_array, grad_aos_array)
input:
* r(1) ==> r(1) = x, r(2) = y, r(3) = z
output:
* dm_a = alpha density evaluated at r without the core orbitals
* dm_b = beta density evaluated at r without the core orbitals
* aos_array(i) = ao(i) evaluated at r without the core orbitals
* grad_dm_a(1) = X gradient of the alpha density evaluated in r without the core orbitals
* grad_dm_a(1) = X gradient of the beta density evaluated in r without the core orbitals
* grad_aos_array(1) = X gradient of the aos(i) evaluated at r
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
* :c:data:`n_states`
Called by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
Calls:
.. hlist::
:columns: 3
* :c:func:`dsymv`
* :c:func:`give_all_aos_and_grad_at_r`
.. c:function:: density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r: .. c:function:: density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r:
@ -905,3 +1106,35 @@ Subroutines / functions
* :c:func:`dgemv` * :c:func:`dgemv`
* :c:func:`give_all_aos_at_r` * :c:func:`give_all_aos_at_r`
.. c:function:: dm_dft_alpha_beta_no_core_at_r:
File : :file:`dft_utils_in_r/dm_in_r.irp.f`
.. code:: fortran
subroutine dm_dft_alpha_beta_no_core_at_r(r,dm_a,dm_b)
input: r(1) ==> r(1) = x, r(2) = y, r(3) = z
output : dm_a = alpha density evaluated at r(3) without the core orbitals
output : dm_b = beta density evaluated at r(3) without the core orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
* :c:data:`n_states`
Calls:
.. hlist::
:columns: 3
* :c:func:`dgemv`
* :c:func:`give_all_aos_at_r`

View File

@ -387,320 +387,6 @@ Providers
* :c:data:`energy_x_sr_pbe` * :c:data:`energy_x_sr_pbe`
.. c:var:: potential_sr_c_alpha_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
short range correlation alpha/beta potentials with LDA functional on the |AO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_c_alpha_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_x_alpha_ao_pbe`
* :c:data:`pot_sr_scal_x_alpha_ao_pbe`
.. c:var:: potential_sr_c_beta_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
short range correlation alpha/beta potentials with LDA functional on the |AO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_c_beta_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_x_alpha_ao_pbe`
* :c:data:`pot_sr_scal_x_alpha_ao_pbe`
.. c:var:: potential_sr_x_alpha_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
short range exchange alpha/beta potentials with LDA functional on the |AO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_x_alpha_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_x_alpha_ao_pbe`
* :c:data:`pot_sr_scal_x_alpha_ao_pbe`
.. c:var:: potential_sr_x_beta_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
short range exchange alpha/beta potentials with LDA functional on the |AO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_x_beta_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_x_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_x_beta_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_c_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_x_alpha_ao_pbe`
* :c:data:`pot_sr_scal_x_alpha_ao_pbe`
.. c:var:: potential_sr_xc_alpha_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda_smashed.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_xc_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_xc_beta_ao_lda (ao_num,ao_num,N_states)
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vxc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_xc_alpha_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe_smashed.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_xc_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_xc_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_xc_alpha_ao_pbe`
* :c:data:`pot_sr_scal_xc_alpha_ao_pbe`
.. c:var:: potential_sr_xc_beta_ao_lda
File : :file:`dft_utils_one_e/sr_pot_ao_lda_smashed.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_xc_alpha_ao_lda (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_xc_beta_ao_lda (ao_num,ao_num,N_states)
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`aos_in_r_array`
* :c:data:`aos_sr_vxc_alpha_lda_w`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
.. c:var:: potential_sr_xc_beta_ao_pbe
File : :file:`dft_utils_one_e/sr_pot_ao_pbe_smashed.irp.f`
.. code:: fortran
double precision, allocatable :: potential_sr_xc_alpha_ao_pbe (ao_num,ao_num,N_states)
double precision, allocatable :: potential_sr_xc_beta_ao_pbe (ao_num,ao_num,N_states)
exchange / correlation potential for alpha / beta electrons with the Perdew-Burke-Ernzerhof GGA functional
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`pot_sr_grad_xc_alpha_ao_pbe`
* :c:data:`pot_sr_scal_xc_alpha_ao_pbe`
.. c:var:: psi_dft_energy_h_core .. c:var:: psi_dft_energy_h_core

View File

@ -58,7 +58,9 @@ Providers
* :c:data:`correlation_energy_ratio_max` * :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion` * :c:data:`disk_access_nuclear_repulsion`
@ -131,6 +133,7 @@ Providers
* :c:data:`pseudo_lmax` * :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k` * :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
* :c:data:`psi_coef` * :c:data:`psi_coef`
@ -146,6 +149,7 @@ Providers
* :c:data:`state_following` * :c:data:`state_following`
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`
@ -219,7 +223,9 @@ Providers
* :c:data:`correlation_energy_ratio_max` * :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion` * :c:data:`disk_access_nuclear_repulsion`
@ -281,6 +287,7 @@ Providers
* :c:data:`pseudo_lmax` * :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k` * :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations` * :c:data:`pt2_iterations`
@ -292,6 +299,7 @@ Providers
* :c:data:`state_following` * :c:data:`state_following`
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`
@ -330,7 +338,9 @@ Providers
* :c:data:`correlation_energy_ratio_max` * :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion` * :c:data:`disk_access_nuclear_repulsion`
@ -392,6 +402,7 @@ Providers
* :c:data:`pseudo_lmax` * :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k` * :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations` * :c:data:`pt2_iterations`
@ -403,6 +414,7 @@ Providers
* :c:data:`state_following` * :c:data:`state_following`
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`
@ -673,7 +685,9 @@ Subroutines / functions
* :c:func:`damping_scf` * :c:func:`damping_scf`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:func:`davidson_diag_hjj_sjj` * :c:func:`davidson_diag_hjj_sjj`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
@ -740,6 +754,7 @@ Subroutines / functions
* :c:data:`pseudo_lmax` * :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k` * :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations` * :c:data:`pt2_iterations`
@ -752,6 +767,7 @@ Subroutines / functions
* :c:data:`state_following` * :c:data:`state_following`
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`

View File

@ -51,6 +51,7 @@ Programs
-------- --------
* :ref:`scf` * :ref:`scf`
* :ref:`test`
Providers Providers
--------- ---------

View File

@ -80,9 +80,9 @@ Providers
Molecular orbital coefficients on |AO| basis set Molecular orbital coefficients on |AO| basis set
mo_coef(i,j) = coefficient of the i-th |AO| on the jth mo mo_coef(i,j) = coefficient of the i-th |AO| on the jth |MO|
mo_label : Label characterizing the MOS (local, canonical, natural, etc) mo_label : Label characterizing the |MOs| (local, canonical, natural, etc)
Needs: Needs:
@ -286,7 +286,6 @@ Providers
* :c:data:`fps_spf_matrix_mo` * :c:data:`fps_spf_matrix_mo`
* :c:data:`full_ijkl_bitmask` * :c:data:`full_ijkl_bitmask`
* :c:data:`int_erf_3_index` * :c:data:`int_erf_3_index`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`mo_class` * :c:data:`mo_class`
* :c:data:`mo_coef` * :c:data:`mo_coef`
@ -762,8 +761,11 @@ Subroutines / functions
* :c:func:`hcore_guess` * :c:func:`hcore_guess`
* :c:func:`huckel_guess` * :c:func:`huckel_guess`
* :c:func:`roothaan_hall_scf` * :c:func:`roothaan_hall_scf`
* :c:func:`rotate_mos`
* :c:func:`save_natural_mos` * :c:func:`save_natural_mos`
* :c:func:`save_ortho_mos` * :c:func:`save_ortho_mos`
* :c:func:`sort_by_fock_energies`
* :c:func:`swap_mos`
Calls: Calls:

View File

@ -74,7 +74,9 @@ Providers
* :c:data:`correlation_energy_ratio_max` * :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion` * :c:data:`disk_access_nuclear_repulsion`
@ -152,6 +154,7 @@ Providers
* :c:data:`pseudo_lmax` * :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k` * :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
* :c:data:`psi_cas` * :c:data:`psi_cas`
@ -174,6 +177,7 @@ Providers
* :c:data:`state_following` * :c:data:`state_following`
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`

View File

@ -526,7 +526,7 @@ Providers
.. code:: fortran .. code:: fortran
double precision, allocatable :: slater_bragg_radii (100) double precision, allocatable :: slater_bragg_radii (0:100)
atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater
@ -604,7 +604,7 @@ Providers
.. code:: fortran .. code:: fortran
double precision, allocatable :: slater_bragg_radii_ua (100) double precision, allocatable :: slater_bragg_radii_ua (0:100)

View File

@ -165,7 +165,7 @@ Providers
double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_num) double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_num)
Eigenvectors of the Fock matrix in the MO basis obtained with level shift. Eigenvectors of the Fock matrix in the |MO| basis obtained with level shift.
Needs: Needs:

View File

@ -22,9 +22,12 @@ Programs
* :ref:`print_ci_vectors` * :ref:`print_ci_vectors`
* :ref:`print_e_conv` * :ref:`print_e_conv`
* :ref:`print_wf` * :ref:`print_wf`
* :ref:`rotate_mos`
* :ref:`save_natorb` * :ref:`save_natorb`
* :ref:`save_one_e_dm` * :ref:`save_one_e_dm`
* :ref:`save_ortho_mos` * :ref:`save_ortho_mos`
* :ref:`sort_by_fock_energies`
* :ref:`swap_mos`
* :ref:`write_integrals_erf` * :ref:`write_integrals_erf`
Subroutines / functions Subroutines / functions
@ -115,6 +118,7 @@ Subroutines / functions
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:data:`one_e_dm_ao_alpha`
* :c:data:`one_e_dm_mo_alpha` * :c:data:`one_e_dm_mo_alpha`
Called by: Called by:
@ -129,6 +133,8 @@ Subroutines / functions
.. hlist:: .. hlist::
:columns: 3 :columns: 3
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_alpha_ao`
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_alpha_mo` * :c:func:`ezfio_set_aux_quantities_data_one_e_dm_alpha_mo`
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_ao`
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_mo` * :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_mo`

View File

@ -997,6 +997,7 @@ Subroutines / functions
* :c:func:`make_selection_buffer_s2` * :c:func:`make_selection_buffer_s2`
* :c:data:`psi_det_sorted` * :c:data:`psi_det_sorted`
* :c:func:`reorder_core_orb` * :c:func:`reorder_core_orb`
* :c:func:`sort_by_fock_energies`
* :c:func:`sort_selection_buffer` * :c:func:`sort_selection_buffer`
Calls: Calls:

View File

@ -168,7 +168,9 @@ Index of Providers
* :c:data:`damping_for_rs_dft` * :c:data:`damping_for_rs_dft`
* :c:data:`data_energy_proj` * :c:data:`data_energy_proj`
* :c:data:`data_energy_var` * :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo` * :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo` * :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_criterion` * :c:data:`davidson_criterion`
* :c:data:`davidson_sze_max` * :c:data:`davidson_sze_max`
@ -214,7 +216,9 @@ Index of Providers
* :c:data:`eigenvectors_fock_matrix_ao` * :c:data:`eigenvectors_fock_matrix_ao`
* :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`elec_alpha_num` * :c:data:`elec_alpha_num`
* :c:data:`elec_alpha_num_grid_becke`
* :c:data:`elec_beta_num` * :c:data:`elec_beta_num`
* :c:data:`elec_beta_num_grid_becke`
* :c:data:`elec_num` * :c:data:`elec_num`
* :c:data:`elec_num_tab` * :c:data:`elec_num_tab`
* :c:data:`element_mass` * :c:data:`element_mass`
@ -351,6 +355,7 @@ Index of Providers
* :c:data:`list_del` * :c:data:`list_del`
* :c:data:`list_del_reverse` * :c:data:`list_del_reverse`
* :c:data:`list_inact` * :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`list_inact_reverse` * :c:data:`list_inact_reverse`
* :c:data:`list_virt` * :c:data:`list_virt`
* :c:data:`list_virt_reverse` * :c:data:`list_virt_reverse`
@ -441,6 +446,7 @@ Index of Providers
* :c:data:`n_double_selectors` * :c:data:`n_double_selectors`
* :c:data:`n_generators_bitmask` * :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart` * :c:data:`n_generators_bitmask_restart`
* :c:data:`n_inact_act_orb`
* :c:data:`n_inact_orb` * :c:data:`n_inact_orb`
* :c:data:`n_inact_orb_allocate` * :c:data:`n_inact_orb_allocate`
* :c:data:`n_int` * :c:data:`n_int`
@ -463,6 +469,7 @@ Index of Providers
* :c:data:`no_ivvv_integrals` * :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals` * :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals` * :c:data:`no_vvvv_integrals`
* :c:data:`normalize_dm`
* :c:data:`nproc` * :c:data:`nproc`
* :c:data:`nthreads_davidson` * :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2` * :c:data:`nthreads_pt2`
@ -487,6 +494,7 @@ Index of Providers
* :c:data:`one_body_dm_mo_alpha_one_det` * :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_body_dm_mo_beta_one_det` * :c:data:`one_body_dm_mo_beta_one_det`
* :c:data:`one_e_dm_alpha_ao_for_dft` * :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
* :c:data:`one_e_dm_alpha_at_r` * :c:data:`one_e_dm_alpha_at_r`
* :c:data:`one_e_dm_alpha_in_r` * :c:data:`one_e_dm_alpha_in_r`
* :c:data:`one_e_dm_and_grad_alpha_in_r` * :c:data:`one_e_dm_and_grad_alpha_in_r`
@ -495,6 +503,7 @@ Index of Providers
* :c:data:`one_e_dm_ao_beta` * :c:data:`one_e_dm_ao_beta`
* :c:data:`one_e_dm_average_mo_for_dft` * :c:data:`one_e_dm_average_mo_for_dft`
* :c:data:`one_e_dm_beta_ao_for_dft` * :c:data:`one_e_dm_beta_ao_for_dft`
* :c:data:`one_e_dm_beta_ao_for_dft_no_core`
* :c:data:`one_e_dm_beta_at_r` * :c:data:`one_e_dm_beta_at_r`
* :c:data:`one_e_dm_beta_in_r` * :c:data:`one_e_dm_beta_in_r`
* :c:data:`one_e_dm_dagger_mo_spin_index` * :c:data:`one_e_dm_dagger_mo_spin_index`
@ -502,12 +511,16 @@ Index of Providers
* :c:data:`one_e_dm_mo_alpha` * :c:data:`one_e_dm_mo_alpha`
* :c:data:`one_e_dm_mo_alpha_average` * :c:data:`one_e_dm_mo_alpha_average`
* :c:data:`one_e_dm_mo_alpha_for_dft` * :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_alpha_for_dft_no_core`
* :c:data:`one_e_dm_mo_beta` * :c:data:`one_e_dm_mo_beta`
* :c:data:`one_e_dm_mo_beta_average` * :c:data:`one_e_dm_mo_beta_average`
* :c:data:`one_e_dm_mo_beta_for_dft` * :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft_no_core`
* :c:data:`one_e_dm_mo_diff` * :c:data:`one_e_dm_mo_diff`
* :c:data:`one_e_dm_mo_for_dft` * :c:data:`one_e_dm_mo_for_dft`
* :c:data:`one_e_dm_mo_spin_index` * :c:data:`one_e_dm_mo_spin_index`
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
* :c:data:`one_e_dm_no_core_and_grad_beta_in_r`
* :c:data:`one_e_energy` * :c:data:`one_e_energy`
* :c:data:`one_e_grad_2_dm_alpha_at_r` * :c:data:`one_e_grad_2_dm_alpha_at_r`
* :c:data:`one_e_grad_2_dm_beta_at_r` * :c:data:`one_e_grad_2_dm_beta_at_r`
@ -556,18 +569,6 @@ Index of Providers
* :c:data:`potential_c_beta_ao_sr_lda` * :c:data:`potential_c_beta_ao_sr_lda`
* :c:data:`potential_c_beta_ao_sr_pbe` * :c:data:`potential_c_beta_ao_sr_pbe`
* :c:data:`potential_c_beta_mo` * :c:data:`potential_c_beta_mo`
* :c:data:`potential_sr_c_alpha_ao_lda`
* :c:data:`potential_sr_c_alpha_ao_pbe`
* :c:data:`potential_sr_c_beta_ao_lda`
* :c:data:`potential_sr_c_beta_ao_pbe`
* :c:data:`potential_sr_x_alpha_ao_lda`
* :c:data:`potential_sr_x_alpha_ao_pbe`
* :c:data:`potential_sr_x_beta_ao_lda`
* :c:data:`potential_sr_x_beta_ao_pbe`
* :c:data:`potential_sr_xc_alpha_ao_lda`
* :c:data:`potential_sr_xc_alpha_ao_pbe`
* :c:data:`potential_sr_xc_beta_ao_lda`
* :c:data:`potential_sr_xc_beta_ao_pbe`
* :c:data:`potential_x_alpha_ao` * :c:data:`potential_x_alpha_ao`
* :c:data:`potential_x_alpha_ao_lda` * :c:data:`potential_x_alpha_ao_lda`
* :c:data:`potential_x_alpha_ao_none` * :c:data:`potential_x_alpha_ao_none`
@ -609,6 +610,7 @@ Index of Providers
* :c:data:`pseudo_n_k_transp` * :c:data:`pseudo_n_k_transp`
* :c:data:`pseudo_n_kl` * :c:data:`pseudo_n_kl`
* :c:data:`pseudo_n_kl_transp` * :c:data:`pseudo_n_kl_transp`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k` * :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_k_transp` * :c:data:`pseudo_v_k_transp`
* :c:data:`pseudo_v_kl` * :c:data:`pseudo_v_kl`
@ -679,6 +681,7 @@ Index of Providers
* :c:data:`pt2_f` * :c:data:`pt2_f`
* :c:data:`pt2_iterations` * :c:data:`pt2_iterations`
* :c:data:`pt2_j` * :c:data:`pt2_j`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_max` * :c:data:`pt2_max`
* :c:data:`pt2_mindetinfirstteeth` * :c:data:`pt2_mindetinfirstteeth`
* :c:data:`pt2_n_0` * :c:data:`pt2_n_0`
@ -773,6 +776,7 @@ Index of Providers
* :c:data:`target_energy` * :c:data:`target_energy`
* :c:data:`theta_angular_integration_lebedev` * :c:data:`theta_angular_integration_lebedev`
* :c:data:`thresh_scf` * :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson` * :c:data:`threshold_davidson`
* :c:data:`threshold_diis` * :c:data:`threshold_diis`
* :c:data:`threshold_diis_nonzero` * :c:data:`threshold_diis_nonzero`
@ -891,6 +895,7 @@ Index of Subroutines/Functions
* :c:func:`compute_ao_two_e_integrals` * :c:func:`compute_ao_two_e_integrals`
* :c:func:`compute_ao_two_e_integrals_erf` * :c:func:`compute_ao_two_e_integrals_erf`
* :c:func:`connect_to_taskserver` * :c:func:`connect_to_taskserver`
* :c:func:`connected_to_hf`
* :c:func:`connected_to_ref` * :c:func:`connected_to_ref`
* :c:func:`connected_to_ref_by_single` * :c:func:`connected_to_ref_by_single`
* :c:func:`copy_h_apply_buffer_to_wf` * :c:func:`copy_h_apply_buffer_to_wf`
@ -925,6 +930,7 @@ Index of Subroutines/Functions
* :c:func:`decode_exc` * :c:func:`decode_exc`
* :c:func:`decode_exc_spin` * :c:func:`decode_exc_spin`
* :c:func:`delete_selection_buffer` * :c:func:`delete_selection_buffer`
* :c:func:`dens_grad_a_b_no_core_and_aos_grad_aos_at_r`
* :c:func:`density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r` * :c:func:`density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r`
* :c:func:`derivative_knowles_function` * :c:func:`derivative_knowles_function`
* :c:func:`det_inf` * :c:func:`det_inf`
@ -942,6 +948,7 @@ Index of Subroutines/Functions
* :c:func:`disconnect_from_taskserver_state` * :c:func:`disconnect_from_taskserver_state`
* :c:func:`dm_dft_alpha_beta_and_all_aos_at_r` * :c:func:`dm_dft_alpha_beta_and_all_aos_at_r`
* :c:func:`dm_dft_alpha_beta_at_r` * :c:func:`dm_dft_alpha_beta_at_r`
* :c:func:`dm_dft_alpha_beta_no_core_at_r`
* :c:func:`do_single_excitation` * :c:func:`do_single_excitation`
* :c:func:`dpol` * :c:func:`dpol`
* :c:func:`dpold` * :c:func:`dpold`
@ -1093,11 +1100,21 @@ Index of Subroutines/Functions
* :c:func:`h_apply_cis_diexcorg` * :c:func:`h_apply_cis_diexcorg`
* :c:func:`h_apply_cis_diexcp` * :c:func:`h_apply_cis_diexcp`
* :c:func:`h_apply_cis_monoexc` * :c:func:`h_apply_cis_monoexc`
* :c:func:`h_apply_cis_sym`
* :c:func:`h_apply_cis_sym_diexc`
* :c:func:`h_apply_cis_sym_diexcorg`
* :c:func:`h_apply_cis_sym_diexcp`
* :c:func:`h_apply_cis_sym_monoexc`
* :c:func:`h_apply_cisd` * :c:func:`h_apply_cisd`
* :c:func:`h_apply_cisd_diexc` * :c:func:`h_apply_cisd_diexc`
* :c:func:`h_apply_cisd_diexcorg` * :c:func:`h_apply_cisd_diexcorg`
* :c:func:`h_apply_cisd_diexcp` * :c:func:`h_apply_cisd_diexcp`
* :c:func:`h_apply_cisd_monoexc` * :c:func:`h_apply_cisd_monoexc`
* :c:func:`h_apply_cisd_sym`
* :c:func:`h_apply_cisd_sym_diexc`
* :c:func:`h_apply_cisd_sym_diexcorg`
* :c:func:`h_apply_cisd_sym_diexcp`
* :c:func:`h_apply_cisd_sym_monoexc`
* :c:func:`h_s2_u_0_nstates_openmp` * :c:func:`h_s2_u_0_nstates_openmp`
* :c:func:`h_s2_u_0_nstates_openmp_work` * :c:func:`h_s2_u_0_nstates_openmp_work`
* :c:func:`h_s2_u_0_nstates_openmp_work_1` * :c:func:`h_s2_u_0_nstates_openmp_work_1`
@ -1321,6 +1338,7 @@ Index of Subroutines/Functions
* :c:func:`rinteg` * :c:func:`rinteg`
* :c:func:`rintgauss` * :c:func:`rintgauss`
* :c:func:`roothaan_hall_scf` * :c:func:`roothaan_hall_scf`
* :c:func:`rotate_mos`
* :c:func:`routine` * :c:func:`routine`
* :c:func:`routine_e_conv` * :c:func:`routine_e_conv`
* :c:func:`routine_example_psi_det` * :c:func:`routine_example_psi_det`
@ -1369,6 +1387,7 @@ Index of Subroutines/Functions
* :c:func:`set_order_big` * :c:func:`set_order_big`
* :c:func:`single_excitation_wee` * :c:func:`single_excitation_wee`
* :c:func:`sort` * :c:func:`sort`
* :c:func:`sort_by_fock_energies`
* :c:func:`sort_dets_ab` * :c:func:`sort_dets_ab`
* :c:func:`sort_dets_ab_v` * :c:func:`sort_dets_ab_v`
* :c:func:`sort_dets_ba_v` * :c:func:`sort_dets_ba_v`
@ -1384,10 +1403,12 @@ Index of Subroutines/Functions
* :c:func:`spot_isinwf` * :c:func:`spot_isinwf`
* :c:func:`step_function_becke` * :c:func:`step_function_becke`
* :c:func:`svd` * :c:func:`svd`
* :c:func:`swap_mos`
* :c:func:`switch_qp_run_to_master` * :c:func:`switch_qp_run_to_master`
* :c:func:`tamiser` * :c:func:`tamiser`
* :c:func:`task_done_to_taskserver` * :c:func:`task_done_to_taskserver`
* :c:func:`tasks_done_to_taskserver` * :c:func:`tasks_done_to_taskserver`
* :c:func:`test`
* :c:func:`testteethbuilding` * :c:func:`testteethbuilding`
* :c:func:`total_memory` * :c:func:`total_memory`
* :c:func:`two_e_integrals_index` * :c:func:`two_e_integrals_index`

View File

@ -60,6 +60,7 @@ fci
:columns: 3 :columns: 3
* :c:func:`run_cipsi` * :c:func:`run_cipsi`
* :c:func:`run_slave_cipsi`
* :c:func:`run_stochastic_cipsi` * :c:func:`run_stochastic_cipsi`
Touches: Touches:
@ -75,6 +76,7 @@ fci
* :c:data:`n_iter` * :c:data:`n_iter`
* :c:data:`psi_occ_pattern` * :c:data:`psi_occ_pattern`
* :c:data:`c0_weight` * :c:data:`c0_weight`
* :c:data:`distributed_davidson`
* :c:data:`psi_coef` * :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit` * :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det` * :c:data:`psi_det`
@ -83,6 +85,9 @@ fci
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`psi_occ_pattern` * :c:data:`psi_occ_pattern`
* :c:data:`psi_energy` * :c:data:`psi_energy`
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate` * :c:data:`pt2_stoch_istate`
* :c:data:`read_wf`
* :c:data:`state_average_weight` * :c:data:`state_average_weight`
* :c:data:`threshold_generators` * :c:data:`threshold_generators`

View File

@ -9,15 +9,15 @@ save_one_e_dm
Program that computes the one body density on the |MO| basis Program that computes the one body density on the |MO| and |AO| basis
for $\alpha$ and $\beta$ electrons from the wave function for $\alpha$ and $\beta$ electrons from the wave function
stored in the |EZFIO| directory, and then saves it into the stored in the |EZFIO| directory, and then saves it into the
:ref:`module_aux_quantities`. :ref:`module_aux_quantities`.
Then, the global variable :option:`aux_quantities data_one_e_dm_alpha_mo` Then, the global variable :option:`aux_quantities data_one_e_dm_alpha_mo`
and :option:`aux_quantities data_one_e_dm_beta_mo` will automatically and :option:`aux_quantities data_one_e_dm_beta_mo` (and the corresponding for |AO|)
read this density in the next calculation. This can be used to perform will automatically ! read this density in the next calculation.
damping on the density in |RSDFT| calculations (see This can be used to perform damping on the density in |RSDFT| calculations (see
:ref:`module_density_for_dft`). :ref:`module_density_for_dft`).
Needs: Needs:

View File

@ -1,14 +1,66 @@
%%% ARXIV TO BE UPDATED %%% %%% ARXIV TO BE UPDATED %%%
@misc{BibEntry2019Feb, @article{Dash2019May,
title = {{Quantum Package 2.0: An Open-Source Determinant-Driven Suite of author = {Dash, Monika and Feldt, Jonas and Moroni, Saverio and Scemama, Anthony and Filippi, Claudia},
Programs}}, title = {{Excited states with selected CI-QMC: chemically accurate excitation energies and geometries}},
journal = {arXiv}, journal = {arXiv},
year = {2019}, year = {2019},
month = {Feb}, month = {May},
note = {[Online; accessed 7. Mar. 2019]}, eprint = {1905.06737},
url = {https://arxiv.org/abs/1902.08154.pdf} url = {https://arxiv.org/abs/1905.06737}
} }
@article{Burton2019May,
author = {Burton, Hugh G. A. and Thom, Alex J. W.},
title = {{A General Approach for Multireference Ground and Excited States using Non-Orthogonal Configuration Interaction}},
journal = {arXiv},
year = {2019},
month = {May},
eprint = {1905.02626},
url = {https://arxiv.org/abs/1905.02626}
}
%%%% PUBLISHED PAPERS
@article{Loos_2019,
doi = {10.1021/acs.jpclett.9b01176},
url = {https://doi.org/10.1021%2Facs.jpclett.9b01176},
year = 2019,
month = {may},
publisher = {American Chemical Society ({ACS})},
volume = {10},
number = {11},
pages = {2931--2937},
author = {Pierre-Fran{\c{c}}ois Loos and Barth{\'{e}}l{\'{e}}my Pradines and Anthony Scemama and Julien Toulouse and Emmanuel Giner},
title = {A Density-Based Basis-Set Correction for Wave Function Theory},
journal = {The Journal of Physical Chemistry Letters}
}
@article{Garniron_2019,
doi = {10.1021/acs.jctc.9b00176},
url = {https://doi.org/10.1021%2Facs.jctc.9b00176},
year = 2019,
month = {may},
publisher = {American Chemical Society ({ACS})},
author = {Yann Garniron and Thomas Applencourt and Kevin Gasperich and Anouar Benali and Anthony Fert{\'{e}} and Julien Paquier and Barth{\'{e}}l{\'{e}}my Pradines and Roland Assaraf and Peter Reinhardt and Julien Toulouse and Pierrette Barbaresco and Nicolas Renon and Gr{\'{e}}goire David and Jean-Paul Malrieu and Mickaël V{\'{e}}ril and Michel Caffarel and Pierre-Fran{\c{c}}ois Loos and Emmanuel Giner and Anthony Scemama},
title = {Quantum Package 2.0: An Open-Source Determinant-Driven Suite of Programs},
journal = {Journal of Chemical Theory and Computation}
}
@article{Scemama_2019,
doi = {10.1016/j.rechem.2019.100002},
url = {https://doi.org/10.1016%2Fj.rechem.2019.100002},
year = 2019,
month = {may},
publisher = {Elsevier {BV}},
pages = {100002},
author = {Anthony Scemama and Michel Caffarel and Anouar Benali and Denis Jacquemin and Pierre-Fran{\c{c}}ois Loos},
title = {Influence of pseudopotentials on excitation energies from selected configuration interaction and diffusion Monte Carlo},
journal = {Results in Chemistry}
}
@article{Applencourt2018Dec, @article{Applencourt2018Dec,
author = {Applencourt, Thomas and Gasperich, Kevin and Scemama, Anthony}, author = {Applencourt, Thomas and Gasperich, Kevin and Scemama, Anthony},
title = {{Spin adaptation with determinant-based selected configuration interaction}}, title = {{Spin adaptation with determinant-based selected configuration interaction}},
@ -19,9 +71,6 @@ Programs}},
url = {https://arxiv.org/abs/1812.06902} url = {https://arxiv.org/abs/1812.06902}
} }
%%%% PUBLISHED PAPERS
@article{Loos2019Mar, @article{Loos2019Mar,
author = {Loos, Pierre-Fran\c{c}ois and Boggio-Pasqua, Martial and Scemama, Anthony and Caffarel, Michel and Jacquemin, Denis}, author = {Loos, Pierre-Fran\c{c}ois and Boggio-Pasqua, Martial and Scemama, Anthony and Caffarel, Michel and Jacquemin, Denis},
title = {{Reference Energies for Double Excitations}}, title = {{Reference Energies for Double Excitations}},

View File

@ -53,6 +53,10 @@ Usage
Uninstall the plugin ``plugin_name``. Uninstall the plugin ``plugin_name``.
.. option:: update
Update the repositories of the plugins. Should be followed by a re-compilation.
.. option:: -n, --name=<plugin_name> .. option:: -n, --name=<plugin_name>
Create a new plugin named ``plugin_name`` (in local repository by default). Create a new plugin named ``plugin_name`` (in local repository by default).

View File

@ -11,6 +11,29 @@ Automatically finds *n*, the number of core electrons. Calls
:math:`n/2` first ones which are set as ``Core``. If pseudo-potentials :math:`n/2` first ones which are set as ``Core``. If pseudo-potentials
are used, all the |MOs| are set as ``Active``. are used, all the |MOs| are set as ``Active``.
========== ========= ======= =======
Range Default Small Large
========== ========= ======= =======
H -> He 0 0 0
Li -> Be 0 0 2
B -> Ne 2 2 2
Na -> Mg 2 2 10
Al -> Ar 10 2 10
K -> Ca 10 10 18
Sc -> Zn 10 10 18
Ga -> Kr 18 10 18
Rb -> Sr 18 18 36
Y -> Cd 18 18 36
In -> Xe 36 18 36
Cs -> Ba 36 36 54
La -> Hg 36 36 54
Tl -> Rn 54 36 54
Fr -> Ra 54 54 86
Ac -> Cn 54 54 86
Nh -> Og 86 54 86
========== ========= ======= =======
For elements on the right of the periodic table, `qp_set_frozen_core` For elements on the right of the periodic table, `qp_set_frozen_core`
will work as expected. But for elements on the left, a small core will will work as expected. But for elements on the left, a small core will
be chosen. For example, a Carbon atom will have 2 core electrons, but a be chosen. For example, a Carbon atom will have 2 core electrons, but a
@ -21,11 +44,19 @@ Usage
.. code:: bash .. code:: bash
qp_set_frozen_core [-q] EZFIO_DIR qp_set_frozen_core [-q|--query] [(-l|-s|--large|--small) EZFIO_DIR
.. option:: -q .. option:: -q, --query
Prints in the standard output the number of core electrons. Prints in the standard output the number of core electrons.
.. option:: -s, --small
Use a small core.
.. option:: -l, --large
Use a large core.

1
etc/.gitignore vendored
View File

@ -1 +1,2 @@
00.qp_root 00.qp_root
local.rc

View File

@ -16,6 +16,7 @@
# export OMP_NUM_THREADS=16 # export OMP_NUM_THREADS=16
# Name of the network interface to be chosen # Name of the network interface to be chosen
# export QP_NIC=lo
# export QP_NIC=ib0 # export QP_NIC=ib0

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "CIS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "CIS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
cis \- | Quantum Package > cis \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "CISD" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "CISD" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
cisd \- | Quantum Package > cisd \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "CONFIGURE" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "CONFIGURE" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
configure \- | Quantum Package > configure \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "DIAGONALIZE_H" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "DIAGONALIZE_H" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
diagonalize_h \- | Quantum Package > diagonalize_h \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "EXCITED_STATES" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "EXCITED_STATES" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
excited_states \- | Quantum Package > excited_states \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "FCI" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "FCI" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
fci \- | Quantum Package > fci \- | Quantum Package >
. .
@ -98,9 +98,11 @@ Calls:
.UNINDENT .UNINDENT
.INDENT 2.0 .INDENT 2.0
.IP \(bu 2 .IP \(bu 2
\fBrun_stochastic_cipsi()\fP \fBrun_slave_cipsi()\fP
.UNINDENT .UNINDENT
.INDENT 2.0 .INDENT 2.0
.IP \(bu 2
\fBrun_stochastic_cipsi()\fP
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.sp .sp
@ -121,10 +123,12 @@ Touches:
\fBn_iter\fP \fBn_iter\fP
.IP \(bu 2 .IP \(bu 2
\fBpsi_occ_pattern\fP \fBpsi_occ_pattern\fP
.IP \(bu 2
\fBc0_weight\fP
.UNINDENT .UNINDENT
.INDENT 2.0 .INDENT 2.0
.IP \(bu 2 .IP \(bu 2
\fBc0_weight\fP \fBdistributed_davidson\fP
.IP \(bu 2 .IP \(bu 2
\fBpsi_coef\fP \fBpsi_coef\fP
.IP \(bu 2 .IP \(bu 2
@ -135,17 +139,23 @@ Touches:
\fBpsi_det_size\fP \fBpsi_det_size\fP
.IP \(bu 2 .IP \(bu 2
\fBpsi_det_sorted_bit\fP \fBpsi_det_sorted_bit\fP
.IP \(bu 2
\fBpsi_energy\fP
.IP \(bu 2
\fBpsi_occ_pattern\fP
.UNINDENT .UNINDENT
.INDENT 2.0 .INDENT 2.0
.IP \(bu 2 .IP \(bu 2
\fBpsi_energy\fP \fBpsi_energy\fP
.IP \(bu 2 .IP \(bu 2
\fBpsi_occ_pattern\fP \fBpt2_e0_denominator\fP
.IP \(bu 2 .IP \(bu 2
\fBpsi_energy\fP \fBpt2_match_weight\fP
.IP \(bu 2 .IP \(bu 2
\fBpt2_stoch_istate\fP \fBpt2_stoch_istate\fP
.IP \(bu 2 .IP \(bu 2
\fBread_wf\fP
.IP \(bu 2
\fBstate_average_weight\fP \fBstate_average_weight\fP
.IP \(bu 2 .IP \(bu 2
\fBthreshold_generators\fP \fBthreshold_generators\fP

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "FCIDUMP" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "FCIDUMP" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
fcidump \- | Quantum Package > fcidump \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "FOUR_IDX_TRANSFORM" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "FOUR_IDX_TRANSFORM" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
four_idx_transform \- | Quantum Package > four_idx_transform \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "INTERFACES" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "INTERFACES" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
interfaces \- | Quantum Package > interfaces \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "KS_SCF" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "KS_SCF" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
ks_scf \- | Quantum Package > ks_scf \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "MOLDEN" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "MOLDEN" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
molden \- | Quantum Package > molden \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "NATURAL_ORBITALS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "NATURAL_ORBITALS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
natural_orbitals \- | Quantum Package > natural_orbitals \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PLUGINS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "PLUGINS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
plugins \- | Quantum Package > plugins \- | Quantum Package >
. .

87
man/print_ci_vectors.1 Normal file
View File

@ -0,0 +1,87 @@
.\" Man page generated from reStructuredText.
.
.TH "PRINT_CI_VECTORS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME
print_ci_vectors \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.INDENT 0.0
.INDENT 3.5
Print the ground state wave function stored in the \fI\%EZFIO\fP directory
in the intermediate normalization.
.sp
It also prints a lot of information regarding the excitation
operators from the reference determinant ! and a first\-order
perturbative analysis of the wave function.
.sp
If the wave function strongly deviates from the first\-order analysis,
something funny is going on :)
.sp
Needs:
.INDENT 0.0
.INDENT 2.0
.IP \(bu 2
\fBread_wf\fP
.UNINDENT
.INDENT 2.0
.UNINDENT
.INDENT 2.0
.UNINDENT
.UNINDENT
.sp
Calls:
.INDENT 0.0
.INDENT 2.0
.IP \(bu 2
\fBroutine()\fP
.UNINDENT
.INDENT 2.0
.UNINDENT
.INDENT 2.0
.UNINDENT
.UNINDENT
.sp
Touches:
.INDENT 0.0
.INDENT 2.0
.IP \(bu 2
\fBread_wf\fP
.UNINDENT
.INDENT 2.0
.UNINDENT
.INDENT 2.0
.UNINDENT
.UNINDENT
.UNINDENT
.UNINDENT
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2019, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PRINT_E_CONV" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "PRINT_E_CONV" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
print_e_conv \- | Quantum Package > print_e_conv \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PRINT_WF" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "PRINT_WF" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
print_wf \- | Quantum Package > print_wf \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PRINTING" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "PRINTING" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
printing \- | Quantum Package > printing \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "PT2" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "PT2" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
pt2 \- | Quantum Package > pt2 \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_convert_output_to_ezfio \- | Quantum Package > qp_convert_output_to_ezfio \- | Quantum Package >
. .

235
man/qp_create_ezfio.1 Normal file
View File

@ -0,0 +1,235 @@
.\" Man page generated from reStructuredText.
.
.TH "QP_CREATE_EZFIO" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME
qp_create_ezfio \- | Quantum Package >
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
This command creates an \fI\%EZFIO\fP directory from a standard \fIxyz\fP file or
from a \fIz\-matrix\fP file in Gaussian format.
.SH USAGE
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_create_ezfio [\-a] \-b <string> [\-c <int>] [\-d <float>]
[\-h] [\-m <int>] [\-o EZFIO_DIR] [\-p <string>] [\-x] [\-\-] FILE
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-a, \-\-au
If present, input geometry is in atomic units.
.UNINDENT
.INDENT 0.0
.TP
.B \-b, \-\-basis=<string>
Name of basis set. The basis set is defined as a single string if
all the atoms are taken from the same basis set, otherwise specific
elements can be defined as follows:
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
\-b "cc\-pcvdz | H:cc\-pvdz | C:6\-31g"
\-b "cc\-pvtz | 1,H:sto\-3g | 3,H:6\-31g"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
By default, the basis set is obtained from the local database of the.
\fIQuantum Package\fP This option is mandatory .
.sp
If \fB<string>\fP is set to \fBshow\fP, the list of all available basis
sets is displayed.
.UNINDENT
.INDENT 0.0
.TP
.B \-c, \-\-charge=<int>
Total charge of the molecule. Default is 0.
.UNINDENT
.INDENT 0.0
.TP
.B \-d, \-\-dummy=<float>
Add dummy atoms (X) between atoms when the distance between two atoms
is less than x \etimes \esum R_\emathrm{cov}, the covalent radii
of the atoms. The default is x=0, so no dummy atom is added.
.UNINDENT
.INDENT 0.0
.TP
.B \-h, \-\-help
Print the help text and exit
.UNINDENT
.INDENT 0.0
.TP
.B \-m, \-\-multiplicity=<int>
Spin multiplicity 2S+1 of the molecule. Default is 1.
.UNINDENT
.INDENT 0.0
.TP
.B \-o, \-\-output=EZFIO_DIR
Name of the created \fI\%EZFIO\fP directory.
.UNINDENT
.INDENT 0.0
.TP
.B \-p <string>, \-\-pseudo=<string>
Name of the pseudo\-potential. Follows the same conventions as the basis set.
.UNINDENT
.INDENT 0.0
.TP
.B \-x, \-\-cart
Compute AOs in the Cartesian basis set (6d, 10f, …)
.UNINDENT
.SH USING CUSTOM ATOMIC BASIS SETS
.sp
If a file with the same name as the basis set exists, this file will
be read. For example, if the file containing the basis set is named
\fBcustom.basis\fP, and the \fIxyz\fP geometry is in \fBmolecule.xyz\fP, the
following should be used:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_create_ezfio \-b custom.basis molecule.xyz
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Basis set files should be given in \fI\%GAMESS\fP format, where the full
names of the atoms are given, and the basis sets for each element are
separated by a blank line. Here is an example
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
HYDROGEN
S 3
1 13.0100000 0.0196850
2 1.9620000 0.1379770
3 0.4446000 0.4781480
S 1
1 0.1220000 1.0000000
P 1
1 0.7270000 1.0000000
BORON
S 8
1 4570.0000000 0.0006960
2 685.9000000 0.0053530
3 156.5000000 0.0271340
4 44.4700000 0.1013800
5 14.4800000 0.2720550
6 5.1310000 0.4484030
7 1.8980000 0.2901230
8 0.3329000 0.0143220
S 8
1 4570.0000000 \-0.0001390
2 685.9000000 \-0.0010970
3 156.5000000 \-0.0054440
4 44.4700000 \-0.0219160
5 14.4800000 \-0.0597510
6 5.1310000 \-0.1387320
7 1.8980000 \-0.1314820
8 0.3329000 0.5395260
S 1
1 0.1043000 1.0000000
P 3
1 6.0010000 0.0354810
2 1.2410000 0.1980720
3 0.3364000 0.5052300
P 1
1 0.0953800 1.0000000
D 1
1 0.3430000 1.0000000
.ft P
.fi
.UNINDENT
.UNINDENT
.SH USING CUSTOM PSEUDO-POTENTIALS
.sp
As for the basis set, if a file with the same name as the
pseudo\-potential exists, this file will be read. For example, if the
file containing the custom pseudo\-potential is named \fBcustom.pseudo\fP,
the basis set is named \fBcustom.basis\fP, and the \fIxyz\fP geometry is in
\fBmolecule.xyz\fP, the following command should be used
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_create_ezfio \-b custom.basis \-p custom.pseudo molecule.xyz
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Pseudo\-potential files should be given in a format very close to
\fI\%GAMESS\fP format. The first line should be formatted as \fB%s GEN %d %d\fP
where the first string is the chemical symbol, the first integer is
the number of core electrons to be removed and the second integer is
LMAX+1 as in \fI\%GAMESS\fP format. The pseudo\-potential for each element are
separated by a blank line. Here is an example
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
Ne GEN 2 1
3
8.00000000 1 10.74945199
85.99561593 3 10.19801460
\-56.79004456 2 10.18694048
1
55.11144535 2 12.85042963
F GEN 2 1
3
7.00000000 1 11.39210685
79.74474797 3 10.74911370
\-49.45159098 2 10.45120693
1
50.25646328 2 11.30345826
.ft P
.fi
.UNINDENT
.UNINDENT
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT
2019, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_EDIT" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_EDIT" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_edit \- | Quantum Package > qp_edit \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_EXPORT_AS_TGZ" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_EXPORT_AS_TGZ" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_export_as_tgz \- | Quantum Package > qp_export_as_tgz \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_PLUGINS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_PLUGINS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_plugins \- | Quantum Package > qp_plugins \- | Quantum Package >
. .
@ -93,6 +93,11 @@ Uninstall the plugin \fBplugin_name\fP\&.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B update
Update the repositories of the plugins. Should be followed by a re\-compilation.
.UNINDENT
.INDENT 0.0
.TP
.B \-n, \-\-name=<plugin_name> .B \-n, \-\-name=<plugin_name>
Create a new plugin named \fBplugin_name\fP (in local repository by default). Create a new plugin named \fBplugin_name\fP (in local repository by default).
.UNINDENT .UNINDENT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_RESET" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_RESET" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_reset \- | Quantum Package > qp_reset \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_RUN" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_RUN" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_run \- | Quantum Package > qp_run \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_SET_FROZEN_CORE" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_SET_FROZEN_CORE" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_set_frozen_core \- | Quantum Package > qp_set_frozen_core \- | Quantum Package >
. .
@ -35,6 +35,191 @@ Automatically finds \fIn\fP, the number of core electrons. Calls
qp_set_mo_class setting all MOs as \fBActive\fP, except the qp_set_mo_class setting all MOs as \fBActive\fP, except the
n/2 first ones which are set as \fBCore\fP\&. If pseudo\-potentials n/2 first ones which are set as \fBCore\fP\&. If pseudo\-potentials
are used, all the MOs are set as \fBActive\fP\&. are used, all the MOs are set as \fBActive\fP\&.
.TS
center;
|l|l|l|l|.
_
T{
Range
T} T{
Default
T} T{
Small
T} T{
Large
T}
_
T{
H \-> He
T} T{
0
T} T{
0
T} T{
0
T}
_
T{
Li \-> Be
T} T{
0
T} T{
0
T} T{
2
T}
_
T{
B \-> Ne
T} T{
2
T} T{
2
T} T{
2
T}
_
T{
Na \-> Mg
T} T{
2
T} T{
2
T} T{
10
T}
_
T{
Al \-> Ar
T} T{
10
T} T{
2
T} T{
10
T}
_
T{
K \-> Ca
T} T{
10
T} T{
10
T} T{
18
T}
_
T{
Sc \-> Zn
T} T{
10
T} T{
10
T} T{
18
T}
_
T{
Ga \-> Kr
T} T{
18
T} T{
10
T} T{
18
T}
_
T{
Rb \-> Sr
T} T{
18
T} T{
18
T} T{
36
T}
_
T{
Y \-> Cd
T} T{
18
T} T{
18
T} T{
36
T}
_
T{
In \-> Xe
T} T{
36
T} T{
18
T} T{
36
T}
_
T{
Cs \-> Ba
T} T{
36
T} T{
36
T} T{
54
T}
_
T{
La \-> Hg
T} T{
36
T} T{
36
T} T{
54
T}
_
T{
Tl \-> Rn
T} T{
54
T} T{
36
T} T{
54
T}
_
T{
Fr \-> Ra
T} T{
54
T} T{
54
T} T{
86
T}
_
T{
Ac \-> Cn
T} T{
54
T} T{
54
T} T{
86
T}
_
T{
Nh \-> Og
T} T{
86
T} T{
54
T} T{
86
T}
_
.TE
.sp .sp
For elements on the right of the periodic table, \fIqp_set_frozen_core\fP For elements on the right of the periodic table, \fIqp_set_frozen_core\fP
will work as expected. But for elements on the left, a small core will will work as expected. But for elements on the left, a small core will
@ -46,16 +231,26 @@ Lithium atom will have zero.
.sp .sp
.nf .nf
.ft C .ft C
qp_set_frozen_core [\-q] EZFIO_DIR qp_set_frozen_core [\-q|\-\-query] [(\-l|\-s|\-\-large|\-\-small) EZFIO_DIR
.ft P .ft P
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-q .B \-q, \-\-query
Prints in the standard output the number of core electrons. Prints in the standard output the number of core electrons.
.UNINDENT .UNINDENT
.INDENT 0.0
.TP
.B \-s, \-\-small
Use a small core.
.UNINDENT
.INDENT 0.0
.TP
.B \-l, \-\-large
Use a large core.
.UNINDENT
.SH AUTHOR .SH AUTHOR
A. Scemama, E. Giner A. Scemama, E. Giner
.SH COPYRIGHT .SH COPYRIGHT

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_SET_MO_CLASS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_SET_MO_CLASS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_set_mo_class \- | Quantum Package > qp_set_mo_class \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_STOP" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_STOP" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_stop \- | Quantum Package > qp_stop \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QP_UPDATE" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QP_UPDATE" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qp_update \- | Quantum Package > qp_update \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "QPSH" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "QPSH" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
qpsh \- | Quantum Package > qpsh \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "RS_KS_SCF" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "RS_KS_SCF" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
rs_ks_scf \- | Quantum Package > rs_ks_scf \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "SAVE_NATORB" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "SAVE_NATORB" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
save_natorb \- | Quantum Package > save_natorb \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "SAVE_ONE_E_DM" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "SAVE_ONE_E_DM" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
save_one_e_dm \- | Quantum Package > save_one_e_dm \- | Quantum Package >
. .
@ -32,15 +32,15 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.. ..
.INDENT 0.0 .INDENT 0.0
.INDENT 3.5 .INDENT 3.5
Program that computes the one body density on the MO basis Program that computes the one body density on the MO and AO basis
for $alpha$ and $beta$ electrons from the wave function for $alpha$ and $beta$ electrons from the wave function
stored in the \fI\%EZFIO\fP directory, and then saves it into the stored in the \fI\%EZFIO\fP directory, and then saves it into the
module_aux_quantities\&. module_aux_quantities\&.
.sp .sp
Then, the global variable \fBaux_quantities data_one_e_dm_alpha_mo\fP Then, the global variable \fBaux_quantities data_one_e_dm_alpha_mo\fP
and \fBaux_quantities data_one_e_dm_beta_mo\fP will automatically and \fBaux_quantities data_one_e_dm_beta_mo\fP (and the corresponding for AO)
read this density in the next calculation. This can be used to perform will automatically ! read this density in the next calculation.
damping on the density in RSDFT calculations (see This can be used to perform damping on the density in RSDFT calculations (see
module_density_for_dft). module_density_for_dft).
.sp .sp
Needs: Needs:

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "SAVE_ORTHO_MOS" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "SAVE_ORTHO_MOS" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
save_ortho_mos \- | Quantum Package > save_ortho_mos \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "SCF" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "SCF" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
scf \- | Quantum Package > scf \- | Quantum Package >
. .

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "WRITE_INTEGRALS_ERF" "1" "Mar 07, 2019" "2.0" "Quantum Package" .TH "WRITE_INTEGRALS_ERF" "1" "May 28, 2019" "2.0" "Quantum Package"
.SH NAME .SH NAME
write_integrals_erf \- | Quantum Package > write_integrals_erf \- | Quantum Package >
. .

View File

@ -3,14 +3,19 @@ open Qptypes
exception ElementError of string exception ElementError of string
type t = type t = X
|X
|H |He |H |He
|Li|Be |B |C |N |O |F |Ne |Li|Be |B |C |N |O |F |Ne
|Na|Mg |Al|Si|P |S |Cl|Ar |Na|Mg |Al|Si|P |S |Cl|Ar
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr |K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe |Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|Pt |Cs|Ba|La|Hf|Ta|W |Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn
|Fr|Ra|Ac|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Nh|Fl|Mc|Lv|Ts|Og
|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu
|Th|Pa|U |Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr
[@@deriving sexp] [@@deriving sexp]
let of_string x = let of_string x =
@ -70,7 +75,70 @@ let of_string x =
| "Te" | "Tellurium" -> Te | "Te" | "Tellurium" -> Te
| "I" | "Iodine" -> I | "I" | "Iodine" -> I
| "Xe" | "Xenon" -> Xe | "Xe" | "Xenon" -> Xe
| "Cs" | "Cesium" -> Cs
| "Ba" | "Barium" -> Ba
| "La" | "Lanthanum" -> La
| "Ce" | "Cerium" -> Ce
| "Pr" | "Praseodymium" -> Pr
| "Nd" | "Neodymium" -> Nd
| "Pm" | "Promethium" -> Pm
| "Sm" | "Samarium" -> Sm
| "Eu" | "Europium" -> Eu
| "Gd" | "Gadolinium" -> Gd
| "Tb" | "Terbium" -> Tb
| "Dy" | "Dysprosium" -> Dy
| "Ho" | "Holmium" -> Ho
| "Er" | "Erbium" -> Er
| "Tm" | "Thulium" -> Tm
| "Yb" | "Ytterbium" -> Yb
| "Lu" | "Lutetium" -> Lu
| "Hf" | "Hafnium" -> Hf
| "Ta" | "Tantalum" -> Ta
| "W" | "Tungsten" -> W
| "Re" | "Rhenium" -> Re
| "Os" | "Osmium" -> Os
| "Ir" | "Iridium" -> Ir
| "Pt" | "Platinum" -> Pt | "Pt" | "Platinum" -> Pt
| "Au" | "Gold" -> Au
| "Hg" | "Mercury" -> Hg
| "Tl" | "Thallium" -> Tl
| "Pb" | "Lead" -> Pb
| "Bi" | "Bismuth" -> Bi
| "Po" | "Polonium" -> Po
| "At" | "Astatine" -> At
| "Rn" | "Radon" -> Rn
| "Fr" | "Francium" -> Fr
| "Ra" | "Radium" -> Ra
| "Ac" | "Actinium" -> Ac
| "Th" | "Thorium" -> Th
| "Pa" | "Protactinium" -> Pa
| "U" | "Uranium" -> U
| "Np" | "Neptunium" -> Np
| "Pu" | "Plutonium" -> Pu
| "Am" | "Americium" -> Am
| "Cm" | "Curium" -> Cm
| "Bk" | "Berkelium" -> Bk
| "Cf" | "Californium" -> Cf
| "Es" | "Einsteinium" -> Es
| "Fm" | "Fermium" -> Fm
| "Md" | "Mendelevium" -> Md
| "No" | "Nobelium" -> No
| "Lr" | "Lawrencium" -> Lr
| "Rf" | "Rutherfordium"-> Rf
| "Db" | "Dubnium" -> Db
| "Sg" | "Seaborgium" -> Sg
| "Bh" | "Bohrium" -> Bh
| "Hs" | "Hassium" -> Hs
| "Mt" | "Meitnerium" -> Mt
| "Ds" | "Darmstadtium" -> Ds
| "Rg" | "Roentgenium" -> Rg
| "Cn" | "Copernicium" -> Cn
| "Nh" | "Nihonium" -> Nh
| "Fl" | "Flerovium" -> Fl
| "Mc" | "Moscovium" -> Mc
| "Lv" | "Livermorium" -> Lv
| "Ts" | "Tennessine" -> Ts
| "Og" | "Oganesson" -> Og
| x -> raise (ElementError ("Element "^x^" unknown")) | x -> raise (ElementError ("Element "^x^" unknown"))
@ -130,7 +198,70 @@ let to_string = function
| Te -> "Te" | Te -> "Te"
| I -> "I" | I -> "I"
| Xe -> "Xe" | Xe -> "Xe"
| Cs -> "Cs"
| Ba -> "Ba"
| La -> "La"
| Hf -> "Hf"
| Ta -> "Ta"
| W -> "W"
| Re -> "Re"
| Os -> "Os"
| Ir -> "Ir"
| Pt -> "Pt" | Pt -> "Pt"
| Au -> "Au"
| Hg -> "Hg"
| Tl -> "Tl"
| Pb -> "Pb"
| Bi -> "Bi"
| Po -> "Po"
| At -> "At"
| Rn -> "Rn"
| Fr -> "Fr"
| Ra -> "Ra"
| Ac -> "Ac"
| Rf -> "Rf"
| Db -> "Db"
| Sg -> "Sg"
| Bh -> "Bh"
| Hs -> "Hs"
| Mt -> "Mt"
| Ds -> "Ds"
| Rg -> "Rg"
| Cn -> "Cn"
| Nh -> "Nh"
| Fl -> "Fl"
| Mc -> "Mc"
| Lv -> "Lv"
| Ts -> "Ts"
| Og -> "Og"
| Ce -> "Ce"
| Pr -> "Pr"
| Nd -> "Nd"
| Pm -> "Pm"
| Sm -> "Sm"
| Eu -> "Eu"
| Gd -> "Gd"
| Tb -> "Tb"
| Dy -> "Dy"
| Ho -> "Ho"
| Er -> "Er"
| Tm -> "Tm"
| Yb -> "Yb"
| Lu -> "Lu"
| Th -> "Th"
| Pa -> "Pa"
| U -> "U"
| Np -> "Np"
| Pu -> "Pu"
| Am -> "Am"
| Cm -> "Cm"
| Bk -> "Bk"
| Cf -> "Cf"
| Es -> "Es"
| Fm -> "Fm"
| Md -> "Md"
| No -> "No"
| Lr -> "Lr"
let to_long_string = function let to_long_string = function
@ -189,8 +320,70 @@ let to_long_string = function
| Te -> "Tellurium" | Te -> "Tellurium"
| I -> "Iodine" | I -> "Iodine"
| Xe -> "Xenon" | Xe -> "Xenon"
| Cs -> "Cesium"
| Ba -> "Barium"
| La -> "Lanthanum"
| Ce -> "Cerium"
| Pr -> "Praseodymium"
| Nd -> "Neodymium"
| Pm -> "Promethium"
| Sm -> "Samarium"
| Eu -> "Europium"
| Gd -> "Gadolinium"
| Tb -> "Terbium"
| Dy -> "Dysprosium"
| Ho -> "Holmium"
| Er -> "Erbium"
| Tm -> "Thulium"
| Yb -> "Ytterbium"
| Lu -> "Lutetium"
| Hf -> "Hafnium"
| Ta -> "Tantalum"
| W -> "Tungsten"
| Re -> "Rhenium"
| Os -> "Osmium"
| Ir -> "Iridium"
| Pt -> "Platinum" | Pt -> "Platinum"
| Au -> "Gold"
| Hg -> "Mercury"
| Tl -> "Thallium"
| Pb -> "Lead"
| Bi -> "Bismuth"
| Po -> "Polonium"
| At -> "Astatine"
| Rn -> "Radon"
| Fr -> "Francium"
| Ra -> "Radium"
| Ac -> "Actinium"
| Th -> "Thorium"
| Pa -> "Protactinium"
| U -> "Uranium"
| Np -> "Neptunium"
| Pu -> "Plutonium"
| Am -> "Americium"
| Cm -> "Curium"
| Bk -> "Berkelium"
| Cf -> "Californium"
| Es -> "Einsteinium"
| Fm -> "Fermium"
| Md -> "Mendelevium"
| No -> "Nobelium"
| Lr -> "Lawrencium"
| Rf -> "Rutherfordium"
| Db -> "Dubnium"
| Sg -> "Seaborgium"
| Bh -> "Bohrium"
| Hs -> "Hassium"
| Mt -> "Meitnerium"
| Ds -> "Darmstadtium"
| Rg -> "Roentgenium"
| Cn -> "Copernicium"
| Nh -> "Nihonium"
| Fl -> "Flerovium"
| Mc -> "Moscovium"
| Lv -> "Livermorium"
| Ts -> "Tennessine"
| Og -> "Oganesson"
let to_charge c = let to_charge c =
let result = match c with let result = match c with
@ -249,7 +442,70 @@ let to_charge c =
| Te -> 52 | Te -> 52
| I -> 53 | I -> 53
| Xe -> 54 | Xe -> 54
| Cs -> 55
| Ba -> 56
| La -> 57
| Ce -> 58
| Pr -> 59
| Nd -> 60
| Pm -> 61
| Sm -> 62
| Eu -> 63
| Gd -> 64
| Tb -> 65
| Dy -> 66
| Ho -> 67
| Er -> 68
| Tm -> 69
| Yb -> 70
| Lu -> 71
| Hf -> 72
| Ta -> 73
| W -> 74
| Re -> 75
| Os -> 76
| Ir -> 77
| Pt -> 78 | Pt -> 78
| Au -> 79
| Hg -> 80
| Tl -> 81
| Pb -> 82
| Bi -> 83
| Po -> 84
| At -> 85
| Rn -> 86
| Fr -> 87
| Ra -> 88
| Ac -> 89
| Th -> 90
| Pa -> 91
| U -> 92
| Np -> 93
| Pu -> 94
| Am -> 95
| Cm -> 96
| Bk -> 97
| Cf -> 98
| Es -> 99
| Fm -> 100
| Md -> 101
| No -> 102
| Lr -> 103
| Rf -> 104
| Db -> 105
| Sg -> 106
| Bh -> 107
| Hs -> 108
| Mt -> 109
| Ds -> 110
| Rg -> 111
| Cn -> 112
| Nh -> 113
| Fl -> 114
| Mc -> 115
| Lv -> 116
| Ts -> 117
| Og -> 118
in Charge.of_int result in Charge.of_int result
@ -309,49 +565,112 @@ let of_charge c = match (Charge.to_int c) with
| 52 -> Te | 52 -> Te
| 53 -> I | 53 -> I
| 54 -> Xe | 54 -> Xe
| 55 -> Cs
| 56 -> Ba
| 57 -> La
| 58 -> Ce
| 59 -> Pr
| 60 -> Nd
| 61 -> Pm
| 62 -> Sm
| 63 -> Eu
| 64 -> Gd
| 65 -> Tb
| 66 -> Dy
| 67 -> Ho
| 68 -> Er
| 69 -> Tm
| 70 -> Yb
| 71 -> Lu
| 72 -> Hf
| 73 -> Ta
| 74 -> W
| 75 -> Re
| 76 -> Os
| 77 -> Ir
| 78 -> Pt | 78 -> Pt
| 79 -> Au
| 80 -> Hg
| 81 -> Tl
| 82 -> Pb
| 83 -> Bi
| 84 -> Po
| 85 -> At
| 86 -> Rn
| 87 -> Fr
| 88 -> Ra
| 89 -> Ac
| 90 -> Th
| 91 -> Pa
| 92 -> U
| 93 -> Np
| 94 -> Pu
| 95 -> Am
| 96 -> Cm
| 97 -> Bk
| 98 -> Cf
| 99 -> Es
| 100 -> Fm
| 101 -> Md
| 102 -> No
| 103 -> Lr
| 104 -> Rf
| 105 -> Db
| 106 -> Sg
| 107 -> Bh
| 108 -> Hs
| 109 -> Mt
| 110 -> Ds
| 111 -> Rg
| 112 -> Cn
| 113 -> Nh
| 114 -> Fl
| 115 -> Mc
| 116 -> Lv
| 117 -> Ts
| 118 -> Og
| x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown")) | x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown"))
let covalent_radius x = let covalent_radius x =
let result = function let result = function
| X -> 0. | X -> 0.
| H -> 0.37 | H -> 0.31
| He -> 0.70 | He -> 0.28
| Li -> 1.23 | Li -> 1.28
| Be -> 0.89 | Be -> 0.96
| B -> 0.90 | B -> 0.85
| C -> 0.85 | C -> 0.76
| N -> 0.74 | N -> 0.71
| O -> 0.74 | O -> 0.66
| F -> 0.72 | F -> 0.57
| Ne -> 0.70 | Ne -> 0.58
| Na -> 1.00 | Na -> 1.66
| Mg -> 1.36 | Mg -> 1.41
| Al -> 1.25 | Al -> 1.21
| Si -> 1.17 | Si -> 1.11
| P -> 1.10 | P -> 1.07
| S -> 1.10 | S -> 1.05
| Cl -> 0.99 | Cl -> 1.02
| Ar -> 0.70 | Ar -> 1.06
| K -> 2.03 | K -> 2.03
| Ca -> 1.74 | Ca -> 1.76
| Sc -> 1.44 | Sc -> 1.70
| Ti -> 1.32 | Ti -> 1.60
| V -> 1.22 | V -> 1.53
| Cr -> 0.00 | Cr -> 1.39
| Mn -> 1.16 | Mn -> 1.39
| Fe -> 0.00 | Fe -> 1.32
| Co -> 1.15 | Co -> 1.26
| Ni -> 1.17 | Ni -> 1.24
| Cu -> 1.25 | Cu -> 1.32
| Zn -> 1.25 | Zn -> 1.22
| Ga -> 1.20 | Ga -> 1.22
| Ge -> 1.21 | Ge -> 1.20
| As -> 1.16 | As -> 1.19
| Se -> 0.70 | Se -> 1.20
| Br -> 1.24 | Br -> 1.20
| Kr -> 1.91 | Kr -> 1.16
| Rb -> 2.20 | Rb -> 2.20
| Sr -> 1.95 | Sr -> 1.95
| Y -> 1.90 | Y -> 1.90
@ -370,112 +689,241 @@ let covalent_radius x =
| Te -> 1.38 | Te -> 1.38
| I -> 1.39 | I -> 1.39
| Xe -> 1.40 | Xe -> 1.40
| Pt -> 1.30 | Cs -> 2.44
| Ba -> 2.15
| La -> 2.07
| Ce -> 2.04
| Pr -> 2.03
| Nd -> 2.01
| Pm -> 1.99
| Sm -> 1.98
| Eu -> 1.98
| Gd -> 1.96
| Tb -> 1.94
| Dy -> 1.92
| Ho -> 1.92
| Er -> 1.89
| Tm -> 1.90
| Yb -> 1.87
| Lu -> 1.87
| Hf -> 1.75
| Ta -> 1.70
| W -> 1.62
| Re -> 1.51
| Os -> 1.44
| Ir -> 1.41
| Pt -> 1.36
| Au -> 1.36
| Hg -> 1.32
| Tl -> 1.45
| Pb -> 1.46
| Bi -> 1.48
| Po -> 1.40
| At -> 1.50
| Rn -> 1.50
| Fr -> 2.60
| Ra -> 2.21
| Ac -> 2.15
| Th -> 2.06
| Pa -> 2.00
| U -> 1.96
| Np -> 1.90
| Pu -> 1.87
| Am -> 1.80
| Cm -> 1.69
| Bk -> raise (ElementError "Covalent radius not defined for Bk")
| Cf -> raise (ElementError "Covalent radius not defined for Cf")
| Es -> raise (ElementError "Covalent radius not defined for Es")
| Fm -> raise (ElementError "Covalent radius not defined for Fm")
| Md -> raise (ElementError "Covalent radius not defined for Md")
| No -> raise (ElementError "Covalent radius not defined for No")
| Lr -> raise (ElementError "Covalent radius not defined for Lr")
| Rf -> raise (ElementError "Covalent radius not defined for Rf")
| Db -> raise (ElementError "Covalent radius not defined for Db")
| Sg -> raise (ElementError "Covalent radius not defined for Sg")
| Bh -> raise (ElementError "Covalent radius not defined for Bh")
| Hs -> raise (ElementError "Covalent radius not defined for Hs")
| Mt -> raise (ElementError "Covalent radius not defined for Mt")
| Ds -> raise (ElementError "Covalent radius not defined for Ds")
| Rg -> raise (ElementError "Covalent radius not defined for Rg")
| Cn -> raise (ElementError "Covalent radius not defined for Cn")
| Nh -> raise (ElementError "Covalent radius not defined for Nh")
| Fl -> raise (ElementError "Covalent radius not defined for Fl")
| Mc -> raise (ElementError "Covalent radius not defined for Mc")
| Lv -> raise (ElementError "Covalent radius not defined for Lv")
| Ts -> raise (ElementError "Covalent radius not defined for Ts")
| Og -> raise (ElementError "Covalent radius not defined for Og")
in in
Units.angstrom_to_bohr *. (result x) Units.angstrom_to_bohr *. (result x)
|> Positive_float.of_float |> Positive_float.of_float
let vdw_radius x = let vdw_radius x =
let result = function let result = function
| X -> 0. | X -> Some 0.
| H -> 1.20 | H -> Some 1.20
| He -> 1.70 | He -> Some 1.40
| Li -> 1.70 | Li -> Some 1.82
| Be -> 1.70 | Be -> None
| B -> 1.70 | B -> None
| C -> 1.70 | C -> Some 1.70
| N -> 1.55 | N -> Some 1.55
| O -> 1.52 | O -> Some 1.52
| F -> 1.47 | F -> Some 1.47
| Ne -> 1.70 | Ne -> Some 1.54
| Na -> 1.70 | Na -> Some 2.27
| Mg -> 1.70 | Mg -> Some 1.73
| Al -> 1.94 | Al -> Some 1.94
| Si -> 2.10 | Si -> Some 2.10
| P -> 1.80 | P -> Some 1.80
| S -> 1.80 | S -> Some 1.80
| Cl -> 1.75 | Cl -> Some 1.75
| Ar -> 1.70 | Ar -> Some 1.88
| K -> 1.70 | K -> Some 2.75
| Ca -> 1.70 | Ca -> None
| Sc -> 1.70 | Sc -> None
| Ti -> 1.70 | Ti -> None
| V -> 1.98 | V -> Some 1.98
| Cr -> 1.94 | Cr -> Some 1.94
| Mn -> 1.93 | Mn -> Some 1.93
| Fe -> 1.93 | Fe -> Some 1.93
| Co -> 1.92 | Co -> Some 1.92
| Ni -> 1.70 | Ni -> Some 1.63
| Cu -> 1.70 | Cu -> Some 1.40
| Zn -> 1.70 | Zn -> Some 1.39
| Ga -> 2.02 | Ga -> Some 1.87
| Ge -> 1.70 | Ge -> None
| As -> 1.96 | As -> Some 1.85
| Se -> 1.70 | Se -> Some 1.90
| Br -> 2.10 | Br -> Some 1.85
| Kr -> 1.70 | Kr -> Some 2.02
| Rb -> 3.03 | Rb -> Some 3.03
| Sr -> 2.49 | Sr -> Some 2.49
| Y -> 0. | Y -> None
| Zr -> 0. | Zr -> None
| Nb -> 0. | Nb -> None
| Mo -> 0. | Mo -> None
| Tc -> 0. | Tc -> None
| Ru -> 0. | Ru -> None
| Rh -> 0. | Rh -> None
| Pd -> 1.63 | Pd -> Some 1.63
| Ag -> 1.72 | Ag -> Some 1.72
| Cd -> 1.58 | Cd -> Some 1.58
| In -> 1.93 | In -> Some 1.93
| Sn -> 2.17 | Sn -> Some 2.17
| Sb -> 2.06 | Sb -> Some 2.06
| Te -> 2.06 | Te -> Some 2.06
| I -> 1.98 | I -> Some 1.98
| Xe -> 2.16 | Xe -> Some 2.16
| Pt -> 1.75 | Cs -> None
| Ba -> None
| La -> None
| Ce -> None
| Pr -> None
| Nd -> None
| Pm -> None
| Sm -> None
| Eu -> None
| Gd -> None
| Tb -> None
| Dy -> None
| Ho -> None
| Er -> None
| Tm -> None
| Yb -> None
| Lu -> None
| Hf -> None
| Ta -> None
| W -> None
| Re -> None
| Os -> None
| Ir -> None
| Pt -> Some 1.75
| Au -> Some 1.66
| Hg -> Some 1.55
| Tl -> Some 1.96
| Pb -> Some 2.02
| Bi -> None
| Po -> None
| At -> None
| Rn -> None
| Fr -> None
| Ra -> None
| Ac -> None
| Th -> None
| Pa -> None
| U -> Some 1.86
| Np -> None
| Pu -> None
| Am -> None
| Cm -> None
| Bk -> None
| Cf -> None
| Es -> None
| Fm -> None
| Md -> None
| No -> None
| Lr -> None
| Rf -> None
| Db -> None
| Sg -> None
| Bh -> None
| Hs -> None
| Mt -> None
| Ds -> None
| Rg -> None
| Cn -> None
| Nh -> None
| Fl -> None
| Mc -> None
| Lv -> None
| Ts -> None
| Og -> None
in in
Units.angstrom_to_bohr *. (result x) match result x with
|> Positive_float.of_float | Some y -> Some (Positive_float.of_float @@ Units.angstrom_to_bohr *. y )
| None -> None
let mass x = let mass x =
let result = function let result = function
| X -> 0. | X -> 0.
| H -> 1.0079 | H -> 1.0079
| He -> 4.00260 | He -> 4.002602
| Li -> 6.941 | Li -> 6.941
| Be -> 9.01218 | Be -> 9.0121831
| B -> 10.81 | B -> 10.81
| C -> 12.011 | C -> 12.011
| N -> 14.0067 | N -> 14.0067
| O -> 15.9994 | O -> 15.9994
| F -> 18.998403 | F -> 18.998403163
| Ne -> 20.179 | Ne -> 20.1797
| Na -> 22.98977 | Na -> 22.98976928
| Mg -> 24.305 | Mg -> 24.305
| Al -> 26.98154 | Al -> 26.9815385
| Si -> 28.0855 | Si -> 28.0855
| P -> 30.97376 | P -> 30.973761998
| S -> 32.06 | S -> 32.06
| Cl -> 35.453 | Cl -> 35.453
| Ar -> 39.948 | Ar -> 39.948
| K -> 39.0983 | K -> 39.0983
| Ca -> 40.08 | Ca -> 40.078
| Sc -> 44.9559 | Sc -> 44.955908
| Ti -> 47.90 | Ti -> 47.867
| V -> 50.9415 | V -> 50.9415
| Cr -> 51.996 | Cr -> 51.9961
| Mn -> 54.9380 | Mn -> 54.938044
| Fe -> 55.9332 | Fe -> 55.845
| Co -> 58.9332 | Co -> 58.933194
| Ni -> 58.70 | Ni -> 58.6934
| Cu -> 63.546 | Cu -> 63.546
| Zn -> 65.38 | Zn -> 65.38
| Ga -> 69.72 | Ga -> 69.723
| Ge -> 72.59 | Ge -> 72.630
| As -> 74.9216 | As -> 74.921595
| Se -> 78.96 | Se -> 78.971
| Br -> 79.904 | Br -> 79.904
| Kr -> 83.80 | Kr -> 83.798
| Rb -> 85.4678 | Rb -> 85.4678
| Sr -> 87.62 | Sr -> 87.62
| Y -> 88.90584 | Y -> 88.90584
@ -494,7 +942,70 @@ let mass x =
| Te -> 127.60 | Te -> 127.60
| I -> 126.90447 | I -> 126.90447
| Xe -> 131.293 | Xe -> 131.293
| Cs -> 132.90545196
| Ba -> 137.327
| La -> 138.90547
| Ce -> 140.116
| Pr -> 140.90766
| Nd -> 144.242
| Pm -> 145.
| Sm -> 150.36
| Eu -> 151.964
| Gd -> 157.25
| Tb -> 158.92535
| Dy -> 162.500
| Ho -> 164.93033
| Er -> 167.259
| Tm -> 168.93422
| Yb -> 173.045
| Lu -> 174.9668
| Hf -> 178.49
| Ta -> 180.94788
| W -> 183.84
| Re -> 186.207
| Os -> 190.23
| Ir -> 192.217
| Pt -> 195.084 | Pt -> 195.084
| Au -> 196.966569
| Hg -> 200.592
| Tl -> 204.38
| Pb -> 207.2
| Bi -> 208.98040
| Po -> 209.
| At -> 210.
| Rn -> 222.
| Fr -> 223.
| Ra -> 226.
| Ac -> 227.
| Th -> 232.0377
| Pa -> 231.03588
| U -> 238.02891
| Np -> 237.
| Pu -> 244.
| Am -> 243.
| Cm -> 247.
| Bk -> 247.
| Cf -> 251.
| Es -> 252.
| Fm -> 257.
| Md -> 258.
| No -> 259.
| Lr -> 262.
| Rf -> 267.
| Db -> 270.
| Sg -> 269.
| Bh -> 270.
| Hs -> 270.
| Mt -> 278.
| Ds -> 281.
| Rg -> 281.
| Cn -> 285.
| Nh -> 286.
| Fl -> 289.
| Mc -> 289.
| Lv -> 293.
| Ts -> 293.
| Og -> 294.
in in
result x result x
|> Positive_float.of_float |> Positive_float.of_float

View File

@ -1,13 +1,18 @@
exception ElementError of string exception ElementError of string
type t = type t = X
|X
|H |He |H |He
|Li|Be |B |C |N |O |F |Ne |Li|Be |B |C |N |O |F |Ne
|Na|Mg |Al|Si|P |S |Cl|Ar |Na|Mg |Al|Si|P |S |Cl|Ar
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr |K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe |Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|Pt |Cs|Ba|La|Hf|Ta|W |Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn
|Fr|Ra|Ac|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Nh|Fl|Mc|Lv|Ts|Og
|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu
|Th|Pa|U |Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr
[@@deriving sexp] [@@deriving sexp]
(** String conversion functions *) (** String conversion functions *)
@ -19,5 +24,5 @@ val to_long_string : t -> string
val to_charge : t -> Charge.t val to_charge : t -> Charge.t
val of_charge : Charge.t -> t val of_charge : Charge.t -> t
val covalent_radius : t -> Qptypes.Positive_float.t val covalent_radius : t -> Qptypes.Positive_float.t
val vdw_radius : t -> Qptypes.Positive_float.t val vdw_radius : t -> Qptypes.Positive_float.t option
val mass : t -> Qptypes.Positive_float.t val mass : t -> Qptypes.Positive_float.t

View File

@ -81,10 +81,7 @@ end = struct
;; ;;
let write_n_det n = let write_n_det n =
let n_det_old = Det_number.to_int n
Ezfio.get_determinants_n_det ()
in
min n_det_old (Det_number.to_int n)
|> Ezfio.set_determinants_n_det |> Ezfio.set_determinants_n_det
;; ;;

View File

@ -6,6 +6,7 @@ type t =
| Natural | Natural
| Localized | Localized
| Orthonormalized | Orthonormalized
| MCSCF
| None | None
[@@deriving sexp] [@@deriving sexp]
@ -16,6 +17,7 @@ let to_string = function
| Orthonormalized -> "Orthonormalized" | Orthonormalized -> "Orthonormalized"
| Natural -> "Natural" | Natural -> "Natural"
| Localized -> "Localized" | Localized -> "Localized"
| MCSCF -> "MCSCF"
| None -> "None" | None -> "None"
;; ;;
@ -26,7 +28,8 @@ let of_string s =
| "natural" -> Natural | "natural" -> Natural
| "localized" -> Localized | "localized" -> Localized
| "orthonormalized" -> Orthonormalized | "orthonormalized" -> Orthonormalized
| "mcscf" -> MCSCF
| "none" -> None | "none" -> None
| _ -> (print_endline s ; failwith "MO_label should be one of: | _ -> (print_endline s ; failwith "MO_label should be one of:
Guess | Orthonormalized | Canonical | Natural | Localized | None.") Guess | Orthonormalized | Canonical | Natural | Localized | MCSCF | None.")
;; ;;

View File

@ -4,6 +4,7 @@ type t =
| Natural | Natural
| Localized | Localized
| Orthonormalized | Orthonormalized
| MCSCF
| None | None
[@@deriving sexp] [@@deriving sexp]

View File

@ -2,9 +2,6 @@ open Qptypes
open Element open Element
let () = let () =
let indices =
Array.init 78 (fun i -> i)
in
let out_channel = let out_channel =
open_out (Qpackage.root ^ "/data/list_element.txt") open_out (Qpackage.root ^ "/data/list_element.txt")
in in

View File

@ -5,6 +5,8 @@ import os
keywords = """ keywords = """
check_double_excitation check_double_excitation
copy_buffer copy_buffer
filter_only_connected_to_hf_single
filter_only_connected_to_hf_double
declarations declarations
decls_main decls_main
deinit_thread deinit_thread
@ -205,84 +207,84 @@ class H_apply(object):
def filter_only_2h(self): def filter_only_2h(self):
self["only_2h_single"] = """ self["only_2h_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_2h(hole).eqv. .False.) cycle if (.not.is_a_2h(hole)) cycle
""" """
self["only_2h_double"] = """ self["only_2h_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if ( is_a_2h(key).eqv. .False. )cycle if (.not.is_a_2h(key))cycle
""" """
def filter_only_1h(self): def filter_only_1h(self):
self["only_1h_single"] = """ self["only_1h_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_1h(hole) .eqv. .False.) cycle if (.not.is_a_1h(hole)) cycle
""" """
self["only_1h_double"] = """ self["only_1h_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_1h(key) .eqv. .False.) cycle if (.not.is_a_1h(key) ) cycle
""" """
def filter_only_1p(self): def filter_only_1p(self):
self["only_1p_single"] = """ self["only_1p_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if ( is_a_1p(hole) .eqv. .False.) cycle if (.not. is_a_1p(hole) ) cycle
""" """
self["only_1p_double"] = """ self["only_1p_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if ( is_a_1p(key) .eqv. .False.) cycle if (.not. is_a_1p(key) ) cycle
""" """
def filter_only_2h1p(self): def filter_only_2h1p(self):
self["only_2h1p_single"] = """ self["only_2h1p_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if ( is_a_2h1p(hole) .eqv. .False.) cycle if (.not. is_a_2h1p(hole) ) cycle
""" """
self["only_2h1p_double"] = """ self["only_2h1p_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_2h1p(key) .eqv. .False.) cycle if (.not.is_a_2h1p(key) ) cycle
""" """
def filter_only_2p(self): def filter_only_2p(self):
self["only_2p_single"] = """ self["only_2p_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_2p(hole).eqv. .False.) cycle if (.not.is_a_2p(hole)) cycle
""" """
self["only_2p_double"] = """ self["only_2p_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_2p(key).eqv. .False.) cycle if (.not.is_a_2p(key)) cycle
""" """
def filter_only_1h1p(self): def filter_only_1h1p(self):
self["filter_only_1h1p_single"] = """ self["filter_only_1h1p_single"] = """
! ! DIR$ FORCEINLINE if (.not.is_a_1h1p(hole)) cycle
if (is_a_1h1p(hole).eqv..False.) cycle
""" """
self["filter_only_1h1p_double"] = """ self["filter_only_1h1p_double"] = """
! ! DIR$ FORCEINLINE if (.not.is_a_1h1p(key)) cycle
if (is_a_1h1p(key).eqv..False.) cycle
""" """
def filter_only_2h2p(self): def filter_only_2h2p(self):
self["filter_only_2h2p_single"] = """ self["filter_only_2h2p_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_two_holes_two_particles(hole).eqv..False.) cycle if (.not.is_a_two_holes_two_particles(hole)) cycle
""" """
self["filter_only_2h2p_double"] = """ self["filter_only_2h2p_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_two_holes_two_particles(key).eqv..False.) cycle if (.not.is_a_two_holes_two_particles(key)) cycle
""" """
def filter_only_1h2p(self): def filter_only_1h2p(self):
self["filter_only_1h2p_single"] = """ self["filter_only_1h2p_single"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_1h2p(hole).eqv..False.) cycle if (.not.is_a_1h2p(hole)) cycle
""" """
self["filter_only_1h2p_double"] = """ self["filter_only_1h2p_double"] = """
! ! DIR$ FORCEINLINE ! ! DIR$ FORCEINLINE
if (is_a_1h2p(key).eqv..False.) cycle if (.not.is_a_1h2p(key)) cycle
""" """
@ -294,6 +296,16 @@ class H_apply(object):
if (is_a_two_holes_two_particles(hole)) cycle if (is_a_two_holes_two_particles(hole)) cycle
""" """
def filter_only_connected_to_hf(self):
self["filter_only_connected_to_hf_single"] = """
call connected_to_hf(hole,yes_no)
if (.not.yes_no) cycle
"""
self["filter_only_connected_to_hf_double"] = """
call connected_to_hf(key,yes_no)
if (.not.yes_no) cycle
"""
def set_perturbation(self,pert): def set_perturbation(self,pert):
if self.perturbation is not None: if self.perturbation is not None:

View File

@ -15,5 +15,10 @@ EXES=$(find -L ${QP_ROOT}/src -maxdepth 2 -depth -executable -type f | grep -e "
for EXE in $EXES for EXE in $EXES
do do
printf "%-30s %s\n" $(basename $EXE) $EXE | sed "s|${QP_ROOT}|\$QP_ROOT|g" >> executables case "$(basename $EXE)" in
install) continue;;
uninstall) continue;;
*)
printf "%-30s %s\n" $(basename $EXE) $EXE | sed "s|${QP_ROOT}|\$QP_ROOT|g" >> executables ;;
esac
done done

View File

@ -16,6 +16,8 @@ double precision function ao_two_e_integral_erf(i,j,k,l)
integer :: iorder_p(3), iorder_q(3) integer :: iorder_p(3), iorder_q(3)
double precision :: ao_two_e_integral_schwartz_accel_erf double precision :: ao_two_e_integral_schwartz_accel_erf
provide mu_erf
if (ao_prim_num(i) * ao_prim_num(j) * ao_prim_num(k) * ao_prim_num(l) > 1024 ) then if (ao_prim_num(i) * ao_prim_num(j) * ao_prim_num(k) * ao_prim_num(l) > 1024 ) then
ao_two_e_integral_erf = ao_two_e_integral_schwartz_accel_erf(i,j,k,l) ao_two_e_integral_erf = ao_two_e_integral_schwartz_accel_erf(i,j,k,l)
return return

View File

@ -19,6 +19,10 @@ END_PROVIDER
subroutine two_e_integrals_index(i,j,k,l,i1) subroutine two_e_integrals_index(i,j,k,l,i1)
use map_module use map_module
implicit none implicit none
BEGIN_DOC
! Gives a unique index for i,j,k,l using permtuation symmetry.
! i <-> k, j <-> l, and (i,k) <-> (j,l)
END_DOC
integer, intent(in) :: i,j,k,l integer, intent(in) :: i,j,k,l
integer(key_kind), intent(out) :: i1 integer(key_kind), intent(out) :: i1
integer(key_kind) :: p,q,r,s,i2 integer(key_kind) :: p,q,r,s,i2
@ -36,14 +40,25 @@ end
subroutine two_e_integrals_index_reverse(i,j,k,l,i1) subroutine two_e_integrals_index_reverse(i,j,k,l,i1)
use map_module use map_module
implicit none implicit none
BEGIN_DOC
! Computes the 4 indices $i,j,k,l$ from a unique index $i_1$.
! For 2 indices $i,j$ and $i \le j$, we have
! $p = i(i-1)/2 + j$.
! The key point is that because $j < i$,
! $i(i-1)/2 < p \le i(i+1)/2$. So $i$ can be found by solving
! $i^2 - i - 2p=0$. One obtains $i=1 + \sqrt{1+8p}/2$
! and $j = p - i(i-1)/2$.
! This rule is applied 3 times. First for the symmetry of the
! pairs (i,k) and (j,l), and then for the symmetry within each pair.
END_DOC
integer, intent(out) :: i(8),j(8),k(8),l(8) integer, intent(out) :: i(8),j(8),k(8),l(8)
integer(key_kind), intent(in) :: i1 integer(key_kind), intent(in) :: i1
integer(key_kind) :: i2,i3 integer(key_kind) :: i2,i3
i = 0 i = 0
i2 = ceiling(0.5d0*(dsqrt(8.d0*dble(i1)+1.d0)-1.d0)) i2 = ceiling(0.5d0*(dsqrt(dble(shiftl(i1,3)+1))-1.d0))
l(1) = ceiling(0.5d0*(dsqrt(8.d0*dble(i2)+1.d0)-1.d0)) l(1) = ceiling(0.5d0*(dsqrt(dble(shiftl(i2,3)+1))-1.d0))
i3 = i1 - shiftr(i2*i2-i2,1) i3 = i1 - shiftr(i2*i2-i2,1)
k(1) = ceiling(0.5d0*(dsqrt(8.d0*dble(i3)+1.d0)-1.d0)) k(1) = ceiling(0.5d0*(dsqrt(dble(shiftl(i3,3)+1))-1.d0))
j(1) = int(i2 - shiftr(l(1)*l(1)-l(1),1),4) j(1) = int(i2 - shiftr(l(1)*l(1)-l(1),1),4)
i(1) = int(i3 - shiftr(k(1)*k(1)-k(1),1),4) i(1) = int(i3 - shiftr(k(1)*k(1)-k(1),1),4)
@ -95,16 +110,18 @@ subroutine two_e_integrals_index_reverse(i,j,k,l,i1)
endif endif
enddo enddo
enddo enddo
do ii=1,8 ! This has been tested with up to 1000 AOs, and all the reverse indices are
if (i(ii) /= 0) then ! correct ! We can remove the test
call two_e_integrals_index(i(ii),j(ii),k(ii),l(ii),i2) ! do ii=1,8
if (i1 /= i2) then ! if (i(ii) /= 0) then
print *, i1, i2 ! call two_e_integrals_index(i(ii),j(ii),k(ii),l(ii),i2)
print *, i(ii), j(ii), k(ii), l(ii) ! if (i1 /= i2) then
stop 'two_e_integrals_index_reverse failed' ! print *, i1, i2
endif ! print *, i(ii), j(ii), k(ii), l(ii)
endif ! stop 'two_e_integrals_index_reverse failed'
enddo ! endif
! endif
! enddo
end end
@ -196,6 +213,7 @@ subroutine get_ao_two_e_integrals(j,k,l,sze,out_val)
BEGIN_DOC BEGIN_DOC
! Gets multiple AO bi-electronic integral from the AO map . ! Gets multiple AO bi-electronic integral from the AO map .
! All i are retrieved for j,k,l fixed. ! All i are retrieved for j,k,l fixed.
! physicist convention : <ij|kl>
END_DOC END_DOC
implicit none implicit none
integer, intent(in) :: j,k,l, sze integer, intent(in) :: j,k,l, sze
@ -261,6 +279,100 @@ subroutine get_ao_two_e_integrals_non_zero(j,k,l,sze,out_val,out_val_index,non_z
end end
subroutine get_ao_two_e_integrals_non_zero_jl(j,l,thresh,sze_max,sze,out_val,out_val_index,non_zero_int)
use map_module
implicit none
BEGIN_DOC
! Gets multiple AO bi-electronic integral from the AO map .
! All non-zero i are retrieved for j,k,l fixed.
END_DOC
double precision, intent(in) :: thresh
integer, intent(in) :: j,l, sze,sze_max
real(integral_kind), intent(out) :: out_val(sze_max)
integer, intent(out) :: out_val_index(2,sze_max),non_zero_int
integer :: i,k
integer(key_kind) :: hash
double precision :: tmp
PROVIDE ao_two_e_integrals_in_map
non_zero_int = 0
if (ao_overlap_abs(j,l) < thresh) then
out_val = 0.d0
return
endif
non_zero_int = 0
do k = 1, sze
do i = 1, sze
integer, external :: ao_l4
double precision, external :: ao_two_e_integral
!DIR$ FORCEINLINE
if (ao_two_e_integral_schwartz(i,k)*ao_two_e_integral_schwartz(j,l) < thresh) then
cycle
endif
call two_e_integrals_index(i,j,k,l,hash)
call map_get(ao_integrals_map, hash,tmp)
if (dabs(tmp) < thresh ) cycle
non_zero_int = non_zero_int+1
out_val_index(1,non_zero_int) = i
out_val_index(2,non_zero_int) = k
out_val(non_zero_int) = tmp
enddo
enddo
end
subroutine get_ao_two_e_integrals_non_zero_jl_from_list(j,l,thresh,list,n_list,sze_max,out_val,out_val_index,non_zero_int)
use map_module
implicit none
BEGIN_DOC
! Gets multiple AO two-electron integrals from the AO map .
! All non-zero i are retrieved for j,k,l fixed.
END_DOC
double precision, intent(in) :: thresh
integer, intent(in) :: sze_max
integer, intent(in) :: j,l, n_list,list(2,sze_max)
real(integral_kind), intent(out) :: out_val(sze_max)
integer, intent(out) :: out_val_index(2,sze_max),non_zero_int
integer :: i,k
integer(key_kind) :: hash
double precision :: tmp
PROVIDE ao_two_e_integrals_in_map
non_zero_int = 0
if (ao_overlap_abs(j,l) < thresh) then
out_val = 0.d0
return
endif
non_zero_int = 0
integer :: kk
do kk = 1, n_list
k = list(1,kk)
i = list(2,kk)
integer, external :: ao_l4
double precision, external :: ao_two_e_integral
!DIR$ FORCEINLINE
if (ao_two_e_integral_schwartz(i,k)*ao_two_e_integral_schwartz(j,l) < thresh) then
cycle
endif
call two_e_integrals_index(i,j,k,l,hash)
call map_get(ao_integrals_map, hash,tmp)
if (dabs(tmp) < thresh ) cycle
non_zero_int = non_zero_int+1
out_val_index(1,non_zero_int) = i
out_val_index(2,non_zero_int) = k
out_val(non_zero_int) = tmp
enddo
end
function get_ao_map_size() function get_ao_map_size()
implicit none implicit none
integer (map_size_kind) :: get_ao_map_size integer (map_size_kind) :: get_ao_map_size

View File

@ -24,3 +24,17 @@ type: double precision
size: (mo_basis.mo_num,mo_basis.mo_num,determinants.n_states) size: (mo_basis.mo_num,mo_basis.mo_num,determinants.n_states)
[data_one_e_dm_alpha_ao]
interface: ezfio, provider
doc: Alpha one body density matrix on the |AO| basis computed with the wave function
type: double precision
size: (ao_basis.ao_num,ao_basis.ao_num,determinants.n_states)
[data_one_e_dm_beta_ao]
interface: ezfio, provider
doc: Beta one body density matrix on the |AO| basis computed with the wave function
type: double precision
size: (ao_basis.ao_num,ao_basis.ao_num,determinants.n_states)

View File

@ -8,3 +8,9 @@ default: 2
type: integer type: integer
doc: Total number of grid points doc: Total number of grid points
interface: ezfio interface: ezfio
[thresh_grid]
type: double precision
doc: threshold on the weight of a given grid point
interface: ezfio,provider,ocaml
default: 1.e-20

View File

@ -0,0 +1,9 @@
BEGIN_PROVIDER [ integer, grid_atomic_number, (nucl_num) ]
implicit none
BEGIN_DOC
! Atomic number used to adjust the grid
END_DOC
grid_atomic_number(:) = max(1,int(nucl_charge(:)))
END_PROVIDER

View File

@ -146,7 +146,7 @@ BEGIN_PROVIDER [double precision, grid_points_per_atom, (3,n_points_integration_
x = grid_points_radial(j) x = grid_points_radial(j)
! value of the radial coordinate for the integration ! value of the radial coordinate for the integration
r = knowles_function(alpha_knowles(int(nucl_charge(i))),m_knowles,x) r = knowles_function(alpha_knowles(grid_atomic_number(i)),m_knowles,x)
! explicit values of the grid points centered around each atom ! explicit values of the grid points centered around each atom
do k = 1, n_points_integration_angular do k = 1, n_points_integration_angular
@ -232,8 +232,8 @@ BEGIN_PROVIDER [double precision, final_weight_at_r, (n_points_integration_angul
do i = 1, n_points_radial_grid -1 !for each radial grid attached to the "jth" atom do i = 1, n_points_radial_grid -1 !for each radial grid attached to the "jth" atom
x = grid_points_radial(i) ! x value for the mapping of the [0, +\infty] to [0,1] x = grid_points_radial(i) ! x value for the mapping of the [0, +\infty] to [0,1]
do k = 1, n_points_integration_angular ! for each angular point attached to the "jth" atom do k = 1, n_points_integration_angular ! for each angular point attached to the "jth" atom
contrib_integration = derivative_knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)& contrib_integration = derivative_knowles_function(alpha_knowles(grid_atomic_number(j)),m_knowles,x)&
*knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)**2 *knowles_function(alpha_knowles(grid_atomic_number(j)),m_knowles,x)**2
final_weight_at_r(k,i,j) = weights_angular_points(k) * weight_at_r(k,i,j) * contrib_integration * dr_radial_integral final_weight_at_r(k,i,j) = weights_angular_points(k) * weight_at_r(k,i,j) * contrib_integration * dr_radial_integral
if(isnan(final_weight_at_r(k,i,j)))then if(isnan(final_weight_at_r(k,i,j)))then
print*,'isnan(final_weight_at_r(k,i,j))' print*,'isnan(final_weight_at_r(k,i,j))'

View File

@ -0,0 +1,53 @@
BEGIN_PROVIDER [integer, n_pts_per_atom, (nucl_num)]
&BEGIN_PROVIDER [integer, n_pts_max_per_atom]
BEGIN_DOC
! Number of points which are non zero
END_DOC
integer :: i,j,k,l
n_pts_per_atom = 0
do j = 1, nucl_num
do i = 1, n_points_radial_grid -1
do k = 1, n_points_integration_angular
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
cycle
endif
n_pts_per_atom(j) += 1
enddo
enddo
enddo
n_pts_max_per_atom = maxval(n_pts_per_atom)
END_PROVIDER
BEGIN_PROVIDER [double precision, final_grid_points_per_atom, (3,n_pts_max_per_atom,nucl_num)]
&BEGIN_PROVIDER [double precision, final_weight_at_r_vector_per_atom, (n_pts_max_per_atom,nucl_num) ]
&BEGIN_PROVIDER [integer, index_final_points_per_atom, (3,n_pts_max_per_atom,nucl_num) ]
&BEGIN_PROVIDER [integer, index_final_points_per_atom_reverse, (n_points_integration_angular,n_points_radial_grid,nucl_num) ]
implicit none
integer :: i,j,k,l,i_count(nucl_num)
double precision :: r(3)
i_count = 0
do j = 1, nucl_num
do i = 1, n_points_radial_grid -1
do k = 1, n_points_integration_angular
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
cycle
endif
i_count(j) += 1
final_grid_points_per_atom(1,i_count(j),j) = grid_points_per_atom(1,k,i,j)
final_grid_points_per_atom(2,i_count(j),j) = grid_points_per_atom(2,k,i,j)
final_grid_points_per_atom(3,i_count(j),j) = grid_points_per_atom(3,k,i,j)
final_weight_at_r_vector_per_atom(i_count(j),j) = final_weight_at_r(k,i,j)
index_final_points_per_atom(1,i_count(j),j) = k
index_final_points_per_atom(2,i_count(j),j) = i
index_final_points_per_atom(3,i_count(j),j) = j
index_final_points_per_atom_reverse(k,i,j) = i_count(j)
enddo
enddo
enddo
END_PROVIDER

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