.. _cis: .. program:: cis .. default-role:: option === cis === This module contains a CIS program. The user point of view ---------------------- The :command:`cis` program performs the CI of the ROHF-like + all single excitations on top of it. This program can be very useful to : * **Ground state calculations**: generate a guess for the ground state wave function if one is not sure that the :c:func:`scf` program gave the lowest SCF solution. In combination with :c:func:`save_natorb` it can produce new |MOs| in order to reperform an :c:func:`scf` optimization. * **Excited states calculations**: generate guess for all the :option:`determinants n_states` wave functions, that will be used by the :c:func:`fci` program. The main keywords/options to be used are: * :option:`determinants n_states` : number of states to consider for the |CIS| calculation * :option:`determinants s2_eig` : force all states to have the desired value of :math:`S^2` * :option:`determinants expected_s2` : desired value of :math:`S^2` The programmer point of view ---------------------------- This module have been built by setting the following rules: * The only generator determinant is the Hartree-Fock (single-reference method) * All generated singly excited determinants are included in the wave function (no perturbative selection) These rules are set in the ``H_apply.irp.f`` file. EZFIO parameters ---------------- .. option:: energy Variational |CIS| energy Programs -------- * :ref:`cis` Subroutines / functions ----------------------- .. c:function:: h_apply_cis .. code:: text subroutine H_apply_cis() File: :file:`h_apply.irp.f_shell_8` Calls H_apply on the |HF| determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. .. c:function:: h_apply_cis_diexc .. code:: text subroutine H_apply_cis_diexc(key_in, key_prev, hole_1,particl_1, hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in ) File: :file:`h_apply.irp.f_shell_8` .. c:function:: h_apply_cis_diexcorg .. code:: text subroutine H_apply_cis_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in ) File: :file:`h_apply.irp.f_shell_8` Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. .. c:function:: h_apply_cis_diexcp .. code:: text subroutine H_apply_cis_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, fock_diag_tmp, i_generator, iproc_in ) File: :file:`h_apply.irp.f_shell_8` .. c:function:: h_apply_cis_monoexc .. code:: text subroutine H_apply_cis_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in ) File: :file:`h_apply.irp.f_shell_8` Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.