Documentation

This commit is contained in:
Anthony Scemama 2019-03-07 17:49:59 +01:00
parent 8b22e38c9c
commit c527a2bd29
11 changed files with 1848 additions and 1512 deletions

View File

@ -186,23 +186,28 @@ def generate_index(entities):
with open(rst_file,'w') as f:
rst = [ "Index of Providers",
"------------------",
"" ]
"",
".. hlist::",
""]
for e in sorted(entities.keys()):
e = entities[e]
if e["type"] == 'p':
rst.append("* :c:data:`%s`" % (e["name"]))
rst.append(" * :c:data:`%s`" % (e["name"]))
rst += [ "",
rst += [ "","",
"Index of Subroutines/Functions",
"------------------------------",
"",
".. hlist::",
"" ]
for e in sorted(entities.keys()):
e = entities[e]
if e["type"] == 's':
rst.append("* :c:func:`%s`" % (e["name"]))
rst.append(" * :c:func:`%s`" % (e["name"]))
rst.append("\n")
f.write(" \n".join(rst))

View File

@ -27,7 +27,6 @@
users_guide/natural_orbitals
users_guide/printing
users_guide/plugins
users_guide/qp_plugins
users_guide/index

View File

@ -387,6 +387,320 @@ Providers
* :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

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@ excited states of different symmetries may enter in the calculation.
Note that it is possible to make state-average calculation of states
with different symmetries and/or different spin multiplicities.
To include excited state of all possible symmetries, a simple trick is
To include excited states of all possible symmetries, a simple trick is
to run a preliminary multi-state |CIS| calculation using the :ref:`CIS`
program, and then running the selected |FCI| restarting from the |CIS|
states, setting :option:`determinants read_wf` to |true|.
@ -34,6 +34,6 @@ convergence of excitation energies.
.. seealso::
The documentation of the :c:func:`scf`, :c:func:`cis` and
:c:func:`fci` programs.
The documentation of the :ref:`scf`, :ref:`cis` and
:ref:`fci` programs.

View File

@ -8,7 +8,7 @@ To produce state-average natural orbitals, run ::
qp_run save_natorb file.ezfio
The MOs will be replaced, so the two-electron integrals and the wave
The |MOs| will be replaced, so the two-electron integrals and the wave
function are invalidated as well.
@ -17,16 +17,16 @@ Extracting natural orbitals
---------------------------
Once obtained the near |FCI| wave function, one can obtain many
Onquantities related to it. e of these quantities are the natural
Onorbitals which have the properties of diagonalizing the one-body
Ondensity matrix:
quantities related to it. One of these quantities are the natural
orbitals which have the propertiy of diagonalizing the one-body
density matrix:
.. math::
\rho_{ij} = \delta_{ij}
where the element of the one-body density matrix :math:`\rho_{ij}` is
define as:
defined as:
.. math::
@ -50,7 +50,7 @@ Hands on
.. important::
As the |MOs| are changed, for the sake of coherence of future
calculations, the save_natorb program *automatically removes the
calculations, the :ref:`save_natorb` program *automatically removes the
current wave function* stored in the |EZFIO| database and replaces
it by a single Slater determinant corresponding to a |HF| occupation
of the new spin orbitals. Also, all the keywords to read the one-
@ -60,5 +60,5 @@ Hands on
.. seealso::
The documentation of the :c:func:`save_natorb` program.
The documentation of the :ref:`save_natorb` program.

View File

@ -23,20 +23,18 @@ Then, look for the word *hand* when you are in the :ref:`qp_edit`
mode. If the research is negative, then it means that the wave
function stored in the |EZFIO| database is too large to be edited
interactively in :ref:`qp_edit` mode. An alternative is to use the
:command:`print_wf` command:
:ref:`print_ci_vectors` program:
.. code::
qp_run print_wf file.ezfio | tee file.ezfio.fci_natorb.wf
qp_run print_ci_vectors file.ezfio > tee file.ezfio.wf
This program will, by default, print out the first :math:`10^4`
determinants whatever the size of the wave function stored in the
|EZFIO| directory. If you want to change the number of printed Slater
determinants, just change the :option:`determinants n_det_print_wf`
keyword using the :ref:`qp_edit` tool.
This program will, by default, print out the full set of determinants, whatever
the size of the wave function stored in the |EZFIO| directory.
.. seealso::
The documentation of the :ref:`print_wf` program.
To get some additional information on the wave function, you can use
the :ref:`print_wf` program.

View File

@ -4,7 +4,7 @@ Quick-start guide
This tutorial should teach you everything you need to get started with
the the basics of the |qp|. As an example, we will run a frozen core
|CIPSI| calculation on the HCN molecule in the 631-G basis set.
|CIPSI| calculation on the HCN molecule in the 6-31G basis set.
Demo video
@ -33,24 +33,24 @@ Please execute in the current shell:
where :code:`${QP_ROOT}` is the path to the source files of the |QP| installed on your architecture.
The |QPSH| mode: a bash-like experience for quantum chemistry
The |QPSH| mode: a Bash-like experience for quantum chemistry
-------------------------------------------------------------
The |QP| has been designed pretty much as an *interactive* environment for quantum-chemistry calculations,
in order to facilitate the user experience.
Just like in bash, there are many commands in the |QP| (see for instance :ref:`qp_edit` or :ref:`qp_run`)
Just like in Bash, there are many commands in the |QP| (see for instance :ref:`qp_edit` or :ref:`qp_run`)
which help in handling useful data or running executables (see for instance :ref:`scf` or :ref:`fci`).
All commands designed within the |qp| **begins** with `qp`, and are two ways of running a **command**:
All commands designed within the |qp| **begin** with `qp`, and there are two ways of running a **command**:
* the *executable* associated to the command:
* running the *executable* associated with the command:
.. code:: bash
qp_command
or the *qp* command which calls the *executable* :code:`qp_command`:
or executing the *qp* shell command which calls the *executable* :code:`qp_command`:
.. code:: bash
@ -58,7 +58,7 @@ or the *qp* command which calls the *executable* :code:`qp_command`:
Usually, when using the :command:`qp` command, the name of the |EZFIO| database is omitted.
The advantage or using :code:`qp command` is that you can, just like in bash, have:
The advantage of using :code:`qp command` is that you can, just like in Bash, have:
* the :kbd:`Tab` key for the auto-completion for basically any command of the |QP|
@ -147,13 +147,14 @@ The expected energy is ``-92.827856698`` au.
:ref:`scf` program.
This creates the |MOs| in the |EZFIO| database that will be used to
perform any other post-SCF method. The |qp| does not handle symmetry and
in any other post-SCF method. The |qp| does not handle symmetry and
the |MOs| are stored by increasing order of Fock energies.
Choose the target |MO| space
----------------------------
Now, we will modify the |EZFIO| database to make |CIPSI| calculation only in the
Now, we will modify the |EZFIO| database to make a |CIPSI| calculation only in the
full set of valence |MOs|, keeping the core |MOs| frozen. The simple
command :ref:`qp_set_frozen_core` does this automatically:
@ -167,7 +168,7 @@ In the case of HCN molecule in the 631G basis, one has 20 |MOs| in total and the
.. code::
qp set_mo_class --core "[1-2]" --act "[3-20]"
qp set_mo_class --core="[1-2]" --act="[3-20]"
@ -193,7 +194,7 @@ The program will start with a single determinant and will iteratively:
:math:`E=E_\text{FCI} - \alpha\, E_\text{PT2}`
By default, the program will stop when more than one million determinants have
entered in the internal space, or when the |PT2| energy is below :math:`10^{-4}`.
entered in the internal space, or when the |PT2| energy is below :math:`10^{-4}` au.
To have a pictural illustration of the convergence of the |CIPSI| algorithm, just run
@ -201,7 +202,10 @@ To have a pictural illustration of the convergence of the |CIPSI| algorithm, jus
qp_e_conv_fci
This will create the files "hcn.fci.out.conv" containing the data of the convergence of the energy that can be plotted, together with the file "hcn.fci.out.conv.1.eps" which is obtained from the gnuplot plot file "hcn.fci.out.conv.plt".
This will create the files :file:`hcn.fci.out.conv` containing the data of the
convergence of the energy that can be plotted, together with the file
:file:`hcn.fci.out.conv.1.eps` which is obtained from the gnuplot plot file
:file:`hcn.fci.out.conv.plt`.
The estimated |FCI| energy of HCN is ``-93.0501`` au.

View File

@ -49,7 +49,7 @@ excited states of different symmetries may enter in the calculation.
Note that it is possible to make state\-average calculation of states
with different symmetries and/or different spin multiplicities.
.sp
To include excited state of all possible symmetries, a simple trick is
To include excited states of all possible symmetries, a simple trick is
to run a preliminary multi\-state CIS calculation using the CIS
program, and then running the selected FCI restarting from the CIS
states, setting \fBdeterminants read_wf\fP to \fBtrue\fP\&.
@ -61,8 +61,8 @@ convergence of excitation energies.
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The documentation of the \fBscf()\fP, \fBcis()\fP and
\fBfci()\fP programs.
The documentation of the scf, cis and
fci programs.
.UNINDENT
.UNINDENT
.SH AUTHOR

View File

@ -49,9 +49,9 @@ function are invalidated as well.
.SH EXTRACTING NATURAL ORBITALS
.sp
Once obtained the near FCI wave function, one can obtain many
Onquantities related to it. e of these quantities are the natural
Onorbitals which have the properties of diagonalizing the one\-body
Ondensity matrix:
quantities related to it. One of these quantities are the natural
orbitals which have the propertiy of diagonalizing the one\-body
density matrix:
.INDENT 0.0
.INDENT 3.5
.sp
@ -62,7 +62,7 @@ Ondensity matrix:
.UNINDENT
.sp
where the element of the one\-body density matrix \erho_{ij} is
define as:
defined as:
.INDENT 0.0
.INDENT 3.5
.sp
@ -105,7 +105,7 @@ current set of MOs\&.
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The documentation of the \fBsave_natorb()\fP program.
The documentation of the save_natorb program.
.UNINDENT
.UNINDENT
.SH AUTHOR

View File

@ -60,28 +60,26 @@ Then, look for the word \fIhand\fP when you are in the qp_edit
mode. If the research is negative, then it means that the wave
function stored in the \fI\%EZFIO\fP database is too large to be edited
interactively in qp_edit mode. An alternative is to use the
\fBprint_wf\fP command:
print_ci_vectors program:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_run print_wf file.ezfio | tee file.ezfio.fci_natorb.wf
qp_run print_ci_vectors file.ezfio > tee file.ezfio.wf
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
This program will, by default, print out the first 10^4
determinants whatever the size of the wave function stored in the
\fI\%EZFIO\fP directory. If you want to change the number of printed Slater
determinants, just change the \fBdeterminants n_det_print_wf\fP
keyword using the qp_edit tool.
This program will, by default, print out the full set of determinants, whatever
the size of the wave function stored in the \fI\%EZFIO\fP directory.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The documentation of the print_wf program.
To get some additional information on the wave function, you can use
the print_wf program.
.UNINDENT
.UNINDENT
.SH AUTHOR