2019-01-25 11:39:31 +01:00
|
|
|
.. _cisd:
|
|
|
|
|
|
|
|
.. program:: cisd
|
|
|
|
|
|
|
|
====
|
|
|
|
cisd
|
|
|
|
====
|
|
|
|
|
|
|
|
|
2019-01-25 14:54:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
Configuration Interaction with Single and Double excitations.
|
|
|
|
|
|
|
|
This program takes a reference Slater determinant of ROHF-like occupancy,
|
2019-01-25 11:39:31 +01:00
|
|
|
|
|
|
|
and performs all single and double excitations on top of it, disregarding
|
|
|
|
spatial symmetry and compute the "n_states" lowest eigenstates of that CI
|
|
|
|
matrix (see :option:`determinants n_states`).
|
|
|
|
|
|
|
|
This program can be useful in many cases:
|
|
|
|
|
2019-01-29 23:10:00 +01:00
|
|
|
* **Ground state calculation**: if even after a :c:func:`cis` calculation, natural
|
2019-01-25 11:39:31 +01:00
|
|
|
orbitals (see :c:func:`save_natorb`) and then :c:func:`scf` optimization, you are not sure to have the lowest scf
|
|
|
|
solution,
|
2020-12-06 22:58:30 +01:00
|
|
|
do the same strategy with the :c:func:`cisd` executable instead of the :c:func:`cis` exectuable to generate the natural
|
2019-01-25 11:39:31 +01:00
|
|
|
orbitals as a guess for the :c:func:`scf`.
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-29 23:10:00 +01:00
|
|
|
* **Excited states calculations**: the lowest excited states are much likely to
|
2019-01-25 11:39:31 +01:00
|
|
|
be dominanted by single- or double-excitations.
|
|
|
|
Therefore, running a :c:func:`cisd` will save the "n_states" lowest states within
|
|
|
|
the CISD space
|
2019-01-29 23:10:00 +01:00
|
|
|
in the |EZFIO| directory, which can afterward be used as guess wave functions
|
2019-01-25 11:39:31 +01:00
|
|
|
for a further multi-state fci calculation if you specify "read_wf" = True
|
|
|
|
before running the fci executable (see :option:`determinants read_wf`).
|
|
|
|
Also, if you specify "s2_eig" = True, the cisd will only retain states
|
|
|
|
having the good value :math:`S^2` value
|
|
|
|
(see :option:`determinants expected_s2` and :option:`determinants s2_eig`).
|
|
|
|
If "s2_eig" = False, it will take the lowest n_states, whatever
|
|
|
|
multiplicity they are.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note: if you would like to discard some orbitals, use
|
|
|
|
:ref:`qp_set_mo_class` to specify:
|
|
|
|
|
|
|
|
* "core" orbitals which will be always doubly occupied
|
|
|
|
|
|
|
|
* "act" orbitals where an electron can be either excited from or to
|
|
|
|
|
|
|
|
* "del" orbitals which will be never occupied
|
2019-01-29 15:40:00 +01:00
|
|
|
|
2019-01-25 11:39:31 +01:00
|
|
|
|
|
|
|
Needs:
|
|
|
|
|
|
|
|
.. hlist::
|
|
|
|
:columns: 3
|
|
|
|
|
2020-12-06 22:58:30 +01:00
|
|
|
* :c:data:`n_states`
|
2019-01-25 11:39:31 +01:00
|
|
|
* :c:data:`read_wf`
|
|
|
|
|
|
|
|
Calls:
|
|
|
|
|
|
|
|
.. hlist::
|
|
|
|
:columns: 3
|
|
|
|
|
|
|
|
* :c:func:`run`
|
|
|
|
|
|
|
|
Touches:
|
|
|
|
|
|
|
|
.. hlist::
|
|
|
|
:columns: 3
|
|
|
|
|
|
|
|
* :c:data:`fock_matrix_ao_alpha`
|
|
|
|
* :c:data:`fock_matrix_ao_alpha`
|
|
|
|
* :c:data:`mo_coef`
|
|
|
|
* :c:data:`level_shift`
|
|
|
|
* :c:data:`mo_coef`
|
|
|
|
* :c:data:`read_wf`
|