This commit is contained in:
Emmanuel Giner 2019-01-16 20:20:01 +01:00
commit c461a7840d
23 changed files with 665 additions and 626 deletions

4
configure vendored
View File

@ -287,7 +287,7 @@ EOF
elif [[ ${PACKAGE} = ezfio ]] ; then
download \
"https://gitlab.com/scemama/EZFIO/-/archive/v1.3.4/EZFIO-v1.3.4.tar.gz" \
"https://gitlab.com/scemama/EZFIO/-/archive/v1.3.5/EZFIO-v1.3.5.tar.gz" \
"${QP_ROOT}"/external/ezfio.tar.gz
execute << EOF
cd "\${QP_ROOT}"/external
@ -431,7 +431,7 @@ if [[ -n $CONFIG ]] ; then
fi
if [[ -f ${QP_ROOT}/build.ninja ]] ; then
[[ -z ${TRAVIS} ]] && exec ${QP_ROOT}/bin/qpsh
[[ -z ${TRAVIS} ]] && echo "You can now run ./bin/qpsh to enter in the QP shell mode :)"
else
echo ""
echo "${QP_ROOT}/build.ninja does not exist,"

View File

@ -126,6 +126,11 @@ EZFIO parameters
Programs
--------
* :ref:`test_det`
Providers
---------

View File

@ -586,13 +586,13 @@ Providers
double precision, allocatable :: effective_one_e_potential (mo_num,mo_num,N_states)
double precision, allocatable :: effective_one_e_potential_without_kin (mo_num,mo_num,N_states)
File: :file:`effective_pot.irp.f`
File: :file:`sr_coulomb.irp.f`
Effective_one_e_potential(i,j) = :math:`\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle`
on the |MO| basis Taking the expectation value does not provide any energy, but effective_one_e_potential(i,j) is the potential coupling DFT and WFT part to be used in any WFT calculation.
Effective_one_e_potential(i,j) = :math:`\rangle i| v_{H}^{sr} |j\rangle + \rangle i| h_{core} |j\rangle + \rangle i|v_{xc} |j\rangle`
Taking the expectation value does not provide any energy, but effective_one_e_potential(i,j) is the potential coupling DFT and WFT part to be used in any WFT calculation.
shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal
@ -604,13 +604,13 @@ Providers
double precision, allocatable :: effective_one_e_potential (mo_num,mo_num,N_states)
double precision, allocatable :: effective_one_e_potential_without_kin (mo_num,mo_num,N_states)
File: :file:`effective_pot.irp.f`
File: :file:`sr_coulomb.irp.f`
Effective_one_e_potential(i,j) = :math:`\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle`
on the |MO| basis Taking the expectation value does not provide any energy, but effective_one_e_potential(i,j) is the potential coupling DFT and WFT part to be used in any WFT calculation.
Effective_one_e_potential(i,j) = :math:`\rangle i| v_{H}^{sr} |j\rangle + \rangle i| h_{core} |j\rangle + \rangle i|v_{xc} |j\rangle`
Taking the expectation value does not provide any energy, but effective_one_e_potential(i,j) is the potential coupling DFT and WFT part to be used in any WFT calculation.
shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal

View File

@ -33,6 +33,33 @@ Providers
.. c:var:: n_det_generators
.. code:: text
integer :: n_det_generators
File: :file:`generators.irp.f`
For Single reference wave functions, the number of generators is 1 : the Hartree-Fock determinant
.. c:var:: psi_coef_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_coef_sorted_gen
.. code:: text
@ -48,6 +75,20 @@ Providers
.. c:var:: psi_det_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_sorted_gen
.. code:: text
@ -76,3 +117,29 @@ Providers
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: select_max
.. code:: text
double precision, allocatable :: select_max (size_select_max)
File: :file:`generators.irp.f`
Memo to skip useless selectors
.. c:var:: size_select_max
.. code:: text
integer :: size_select_max
File: :file:`generators.irp.f`
Size of the select_max array

View File

@ -57,105 +57,6 @@ Providers
---------
.. c:var:: ao_potential_alpha_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: ao_potential_beta_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: e_correlation_dft
.. code:: text
double precision :: e_correlation_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: e_exchange_dft
.. code:: text
double precision :: e_exchange_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: fock_matrix_alpha_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Mono electronic an Coulomb matrix in ao basis set
.. c:var:: fock_matrix_beta_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Mono electronic an Coulomb matrix in ao basis set
.. c:var:: fock_matrix_energy
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: ks_energy
.. code:: text
@ -172,82 +73,15 @@ Providers
.. c:var:: one_e_energy
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: trace_potential_xc
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: two_e_energy
.. code:: text
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`ks_enery.irp.f`
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional
.. c:function:: ks_cf
.. code:: text
subroutine check_coherence_functional
File: :file:`ks_scf.irp.f`
.. c:function:: srs_ks_cf
.. code:: text
subroutine srs_ks_cf
subroutine ks_cf
File: :file:`ks_scf.irp.f`

View File

@ -65,6 +65,122 @@ Providers
---------
.. c:var:: ao_potential_alpha_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: ao_potential_beta_xc
.. code:: text
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
File: :file:`pot_functionals.irp.f`
.. c:var:: e_correlation_dft
.. code:: text
double precision :: e_correlation_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: e_exchange_dft
.. code:: text
double precision :: e_exchange_dft
File: :file:`pot_functionals.irp.f`
.. c:var:: fock_matrix_alpha_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_rs_ks.irp.f`
Mono electronic an Coulomb matrix in AO basis set
.. c:var:: fock_matrix_beta_no_xc_ao
.. code:: text
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
File: :file:`fock_matrix_rs_ks.irp.f`
Mono electronic an Coulomb matrix in AO basis set
.. c:var:: fock_matrix_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: one_e_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: rs_ks_energy
.. code:: text
@ -81,6 +197,54 @@ Providers
.. c:var:: trace_potential_xc
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
.. c:var:: two_e_energy
.. code:: text
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
File: :file:`rs_ks_energy.irp.f`
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional
.. code:: text
subroutine check_coherence_functional
File: :file:`rs_ks_scf.irp.f`

View File

@ -12,74 +12,3 @@ Include this module for single reference methods.
Using this module, the only generator determinant is the Hartree-Fock determinant.
Providers
---------
.. c:var:: n_det_generators
.. code:: text
integer :: n_det_generators
File: :file:`generators.irp.f`
For Single reference wave functions, the number of generators is 1 : the Hartree-Fock determinant
.. c:var:: psi_coef_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: psi_det_generators
.. code:: text
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
File: :file:`generators.irp.f`
For Single reference wave functions, the generator is the Hartree-Fock determinant
.. c:var:: select_max
.. code:: text
double precision, allocatable :: select_max (1)
File: :file:`generators.irp.f`
Memo to skip useless selectors
.. c:var:: size_select_max
.. code:: text
integer :: size_select_max
File: :file:`generators.irp.f`
Size of select_max

View File

@ -101,20 +101,6 @@ Subroutines / functions
.. c:function:: write_integrals
.. code:: text
subroutine write_integrals
File: :file:`write_integrals_erf.irp.f`
Saves the two-electron integrals with the :math:`erf(\mu r_{12})/r_{12}` oprerator into the EZFIO folder
.. c:function:: write_intro_gamess
.. code:: text

View File

@ -11,6 +11,7 @@ Index of Modules
/modules/*
/programmers_guide/qp_*
/programmers_guide/conventions
.. Auto-generated file

View File

@ -1092,6 +1092,7 @@ Index of Subroutines/Functions
* :c:func:`iset_order_big`
* :c:func:`isort`
* :c:func:`knowles_function`
* :c:func:`ks_cf`
* :c:func:`ks_scf`
* :c:func:`lapack_diag`
* :c:func:`lapack_diagd`
@ -1292,13 +1293,13 @@ Index of Subroutines/Functions
* :c:func:`spin_det_search_key`
* :c:func:`splash_pq`
* :c:func:`spot_isinwf`
* :c:func:`srs_ks_cf`
* :c:func:`step_function_becke`
* :c:func:`svd`
* :c:func:`switch_qp_run_to_master`
* :c:func:`tamiser`
* :c:func:`task_done_to_taskserver`
* :c:func:`tasks_done_to_taskserver`
* :c:func:`test_det`
* :c:func:`testteethbuilding`
* :c:func:`total_memory`
* :c:func:`two_e_integrals_index`
@ -1328,7 +1329,6 @@ Index of Subroutines/Functions
* :c:func:`write_geometry`
* :c:func:`write_git_log`
* :c:func:`write_int`
* :c:func:`write_integrals`
* :c:func:`write_integrals_erf`
* :c:func:`write_intro_gamess`
* :c:func:`write_mo_basis`

View File

@ -15,19 +15,27 @@ cis
This program can be useful in many cases:
# Ground state calculation
Ground state calculation
------------------------
To be sure to have the lowest |SCF| solution, perform an :ref:`.scf.` (see the :ref:`hartree_fock` module), then a :ref:`.cis.`, save the natural orbitals (see :ref:`.save_natorb.`) and re-run an :ref:`.scf.` optimization from this |MO| guess.
# Excited states calculations
Excited states calculations
---------------------------
The lowest excited states are much likely to be dominated by single-excitations. Therefore, running a :ref:`.cis.` will save the `n_states` lowest states within the |CIS| space in the |EZFIO| directory, which can afterwards be used as guess wave functions for a further multi-state |FCI| calculation if :option:`determinants read_wf` is set to |true| before running the :ref:`.fci.` executable.
If :option:`determinants s2_eig` is set to |true|, the |CIS| will only retain states having the expected |S^2| value (see :option:`determinants expected_s2`). Otherwise, the |CIS| will take the lowest :option:`determinants n_states`, whatever multiplicity they are.
# Note
Note
----
To discard some orbitals, use the :ref:`qp_set_mo_class` command to specify:

View File

@ -6,6 +6,7 @@ Index of commands
:glob:
configure
qpsh
qp_*
@ -15,5 +16,6 @@ Index of programs
.. toctree::
:maxdepth: 1
:glob:
/programs/*

View File

@ -1,9 +1,9 @@
.. _qp_create_ezfio_from_xyz:
.. _qp_create_ezfio:
qp_create_ezfio_from_xyz
========================
qp_create_ezfio
===============
.. program:: qp_create_ezfio_from_xyz
.. program:: qp_create_ezfio
This command creates an |EZFIO| directory from a standard `xyz` file or from a
`z-matrix` file in Gaussian format.
@ -13,7 +13,7 @@ Usage
.. code:: bash
qp_create_ezfio_from_xyz [-a] -b <string> [-c <int>] [-d <float>]
qp_create_ezfio [-a] -b <string> [-c <int>] [-d <float>]
[-h] [-m <int>] [-o EZFIO_DIR] [-p <string>] [-x] [--] FILE
@ -80,7 +80,7 @@ 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 ``custom.basis``,
and the *xyz* geometry is in ``molecule.xyz``, the following should be used::
qp_create_ezfio_from_xyz -b custom.basis molecule.xyz
qp_create_ezfio -b custom.basis molecule.xyz
Basis set files should be given in |GAMESS| format, where the full names of the
atoms are given, and the basis sets for each element are separated by a blank
@ -138,7 +138,7 @@ command should be used
.. code:: bash
qp_create_ezfio_from_xyz -b custom.basis -p custom.pseudo molecule.xyz
qp_create_ezfio -b custom.basis -p custom.pseudo molecule.xyz
Pseudo-potential files should be given in a format very close to |GAMESS|
format. The first line should be formatted as ``%s GEN %d %d`` where the first

View File

@ -0,0 +1,149 @@
.. _qpsh:
====
qpsh
====
.. program:: qpsh
:command:`qpsh` is the |qp| shell. It is a Bash shell with all
the required evironment variables loaded, a modified prompt, and the
:ref:`qp` command.
.. _qp:
.. program:: qp
qp
==
This command is a hub to the most used command within |qp|.
The power of the :ref:`qpsh` shell is the auto-completion that comes
when the :kbd:`<Tab>` key is pressed with the :ref:`qp` command.
EZFIO access
------------
.. option:: set_file
.. code:: bash
qp set_file EZFIO_DIR
Sets the current |EZFIO| directory. All the following instruction will be
relative to this directory.
This command is equivalent to :command:`ezfio set_file EZFIO_DIR`.
.. option:: unset_file
.. code:: bash
qp unset_file
Unsets the current |EZFIO| directory.
This command is equivalent to :command:`ezfio unset_file`.
.. option:: has
.. code:: bash
qp has <module> <parameter>
If the `<module>/<parameter>` is set in the |EZFIO| directory, returns 1.
Otherwise returns 0.
This command is equivalent to :command:`ezfio has <module> <parameter>`.
.. option:: get
.. code:: bash
qp get <module> <parameter>
Returns the value of `<module>/<parameter>`.
This command is equivalent to :command:`ezfio get <module> <parameter>`.
.. option:: set
.. code:: bash
qp set <module> <parameter> [<value>]
Sets the value of `<module>/<parameter>`. If the value is not given in
the command line it is read from the standard input.
This command is equivalent to
:command:`ezfio set <module> <parameter> [<value>]`.
Running programs
----------------
.. option:: run
.. code:: bash
qp (run|srun|mpirun) [options] <program>
Runs :ref:`qp_run`, :ref:`qp_srun`, or :ref:`qp_mpirun` using the current
|EZFIO| directory.
Getting help
------------
.. option:: man
.. code:: bash
qp man (<program>|<qp_command>)
Displays a man page for a |qp| program or a |qp| command.
Running quantum package commands
--------------------------------
The ``qp_`` commands can be run without specifying the |EZFIO| directory:
.. option:: convert_output_to_ezfio
:command:`qp convert_output_to_ezfio` : runs :ref:`qp_convert_output_to_ezfio`
.. option:: create_ezfio
:command:`qp create_ezfio` : runs :ref:`qp_create_ezfio`
.. option:: plugins
:command:`qp plugins` : runs :ref:`qp_plugins`
.. option:: reset
:command:`qp reset` : runs :ref:`qp_reset`
.. option:: set_frozen_core
:command:`qp set_frozen_core` : runs :ref:`qp_set_frozen_core`
.. option:: set_mo_class
:command:`qp set_mo_class` : runs :ref:`qp_set_mo_class`
.. option:: update
:command:`qp update` : runs :ref:`qp_update`

View File

@ -44,12 +44,12 @@ The file :file:`hcn.xyz` contains::
N 0.0 0.0 -1.156
This xyz file is now used with the :ref:`qp_create_ezfio_from_xyz` command to
This xyz file is now used with the :ref:`qp_create_ezfio` command to
create an |EZFIO| database with the 6-31G basis set:
.. code:: bash
qp_create_ezfio_from_xyz -b "6-31G" hcn.xyz -o hcn
qp_create_ezfio -b "6-31G" hcn.xyz -o hcn
The EZFIO database now contains data relative to the nuclear coordinates and the atomic
basis set:

View File

@ -9,46 +9,51 @@ source ${QP_ROOT}/etc/ezfio.rc
function _qp_usage()
{
echo "
cat << EOF
qp - Shell function of the qpsh shell
Usage:
qp set_file EZFIO_DIRECTORY
qp unset_file
qp has DIRECTORY ITEM
qp get DIRECTORY ITEM
qp set DIRECTORY ITEM VALUE : Scalar values
qp set DIRECTORY ITEM : Array values read from stdin
EZFIO access:
qp run PROGRAM
qp man PROGRAM
qp srun PROGRAM
qp mpirun PROGRAM
qp set_file EZFIO_DIR Sets the current EZFIO directory.
qp set_frozen_core
qp unset_file Unsets the current EZFIO directory.
qp create_ezfio_from_xyz
qp convert_output_to_ezfio
qp update
qp set_mo_class
qp plugins
"
qp has <module> <parameter> If the <module>/<parameter> is set in the
EZFIO directory, returns 1. Otherwise returns 0.
qp get <module> <parameter> Returns the value of <module>/<parameter>.
qp set <module> <parameter> [<value>]
Sets the value of <module>/<parameter>. If the
value is not given in the command line it is read
from the standard input.
Running programs:
qp (run|srun|mpirun) <program>
Getting help:
qp man (<program>|<qp_command>)
Running quantum package commands:
qp convert_output_to_ezfio
qp create_ezfio
qp plugins The corresponding commands start with "qp_".
qp reset To get help for a command <qp_command>, run
qp set_frozen_core <qp_command> --help
qp set_mo_class
qp update
EOF
}
function qp()
{
function clean_ezfio() {
RESULT=""
while [[ -n $1 ]] ; do
case "$1" in
None) RESULT+='"None" ' ;;
*) RESULT+="$1 " ;;
esac
shift
done
eval set -- "$RESULT"
}
case $1 in
"set_file")
if [[ -d ${2} ]] ; then
@ -58,7 +63,6 @@ function qp()
fi;;
"has"|"set"|"get"|"unset_file")
clean_ezfio
ezfio "$@"
;;
@ -67,7 +71,12 @@ function qp()
qp_set_frozen_core "$@" ${EZFIO_FILE}
;;
"create_ezfio_from_xyz")
"reset")
shift
qp_reset "$@" ${EZFIO_FILE}
;;
"create_ezfio")
shift
# Replace ':' by spaces
for arg in "$@" ; do
@ -78,13 +87,13 @@ function qp()
_ARGS+=("${arg}") ;;
esac
done
echo qp_create_ezfio_from_xyz "${_ARGS[@]}"
NAME=$(qp_create_ezfio_from_xyz "${_ARGS[@]}")
echo qp_create_ezfio "${_ARGS[@]}"
NAME=$(qp_create_ezfio "${_ARGS[@]}")
if [[ -d $NAME ]] ; then
[[ -d $EZFIO_FILE ]] && ezfio unset_file
ezfio set_file $NAME
else
qp_create_ezfio_from_xyz -h | more
qp_create_ezfio -h | more
fi
unset _ARGS
;;
@ -156,7 +165,7 @@ function qp()
function _get_basis_sets () {
( qp_create_ezfio_from_xyz -b show \
( qp_create_ezfio -b show \
| tr ' ' ':' \
| while IFS= read -r LINE ; do
printf '%s\n' ${LINE}
@ -190,9 +199,9 @@ _qp_Complete()
COMPREPLY=( $(compgen -W "-o $(\ls)" -- ${cur} ) )
return 0
;;
create_ezfio_from_xyz)
create_ezfio)
case "${prev}" in
create_ezfio_from_xyz)
create_ezfio)
COMPREPLY=( $(compgen -W "-b -a -c -d -h -m -o -p -x" -- $cur ) )
return 0
;;
@ -245,7 +254,7 @@ _qp_Complete()
*)
COMPREPLY=( $(compgen -W 'plugins \
man \
create_ezfio_from_xyz \
create_ezfio \
convert_output_to_ezfio \
-h update' -- $cur ) )
@ -257,7 +266,7 @@ _qp_Complete()
case "${prev2}" in
set|has|get)
if [[ ${prev} == "qp" ]] ; then
COMPREPLY=( $(compgen -W "plugins set set_frozen_core set_mo_class" -- $cur ) )
COMPREPLY=( $(compgen -W "plugins set reset set_frozen_core set_mo_class" -- $cur ) )
elif [[ ! -d ${EZFIO_FILE}/${prev} ]] ; then
COMPREPLY=( $(compgen -W "" -- $cur ) )
else
@ -272,6 +281,10 @@ _qp_Complete()
COMPREPLY=( $(compgen -W "-h $(cat ${QP_ROOT}/data/executables | cut -d ' ' -f 1)" -- $cur ) )
return 0
;;
reset)
COMPREPLY=( $(compgen -W "-h -m -a -d" -- $cur ) )
return 0
;;
unset_file|set_frozen_core)
COMPREPLY=()
return 0
@ -291,7 +304,7 @@ _qp_Complete()
*)
COMPREPLY+=( $(compgen -W 'has get set unset_file edit \
run srun mpirun set_frozen_core \
set_mo_class ' \
reset set_mo_class ' \
-- $cur ) )
return 0
;;

View File

@ -38,17 +38,17 @@ This program takes a reference Slater determinant of ROHF\-like occupancy, and p
.sp
This program can be useful in many cases:
.sp
# Ground state calculation
Ground state calculation
.sp
To be sure to have the lowest SCF solution, perform an \&.scf. (see the hartree_fock module), then a \fI\%cis\fP, save the natural orbitals (see \&.save_natorb.) and re\-run an \&.scf. optimization from this MO guess.
.sp
# Excited states calculations
Excited states calculations
.sp
The lowest excited states are much likely to be dominated by single\-excitations. Therefore, running a \fI\%cis\fP will save the \fIn_states\fP lowest states within the CIS space in the \fI\%EZFIO\fP directory, which can afterwards be used as guess wave functions for a further multi\-state FCI calculation if \fBdeterminants read_wf\fP is set to \fBtrue\fP before running the \&.fci. executable.
.sp
If \fBdeterminants s2_eig\fP is set to \fBtrue\fP, the CIS will only retain states having the expected \ewidehat{S^2} value (see \fBdeterminants expected_s2\fP). Otherwise, the CIS will take the lowest \fBdeterminants n_states\fP, whatever multiplicity they are.
.sp
# Note
Note
.sp
To discard some orbitals, use the qp_set_mo_class command to specify:
.INDENT 0.0

View File

@ -1,234 +0,0 @@
.\" Man page generated from reStructuredText.
.
.TH "QP_CREATE_EZFIO_FROM_XYZ" "1" "Jan 16, 2019" "2.0" "Quantum Package"
.SH NAME
qp_create_ezfio_from_xyz \- | 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_from_xyz [\-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_from_xyz \-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_from_xyz \-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
2018, A. Scemama, E. Giner
.\" Generated by docutils manpage writer.
.

View File

@ -31,82 +31,190 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
\fBqpsh\fP is the \fIQuantum Package\fP shell. It is a
.nf
|Bash|
.fi
shell with all
\fBqpsh\fP is the \fIQuantum Package\fP shell. It is a Bash shell with all
the required evironment variables loaded, a modified prompt, and the
qp command.
\fI\%qp\fP command.
.SH QP
.sp
This command reads the content of the \fI\%EZFIO\fP directory and creates a temporary
file containing the data. The data is presented as a \fIReStructured Text\fP (rst)
document, where each section corresponds to the corresponding \fIQuantum Package\fP module. The
content of the file can be modified to change the input parameters. When the
text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory.
.sp
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
The text editor which will be opened is defined by the \fBEDITOR\fP
environment variable. If this variable is not set, the \fBvi\fP
text editor will be used by default.
.UNINDENT
.UNINDENT
.sp
\fBWARNING:\fP
.INDENT 0.0
.INDENT 3.5
When the wave function is too large (more than 10 000 determinants), the
determinants are not displayed.
.UNINDENT
.UNINDENT
.SH USAGE
This command is a hub to the most used command within \fIQuantum Package\fP\&.
The power of the \fI\%qpsh\fP shell is the auto\-completion that comes
when the \fB<Tab>\fP key is pressed with the \fI\%qp\fP command.
.SS EZFIO access
.INDENT 0.0
.TP
.B set_file
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
qp_edit [\-c] [\-h] [\-n <int>] [\-s <range>] [\-\-] EZFIO_DIR
.ft P
.fi
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-c, \-\-check
Checks the input data
.UNINDENT
.INDENT 0.0
.TP
.B \-h, \-\-help
Print the help text and exits
.UNINDENT
.INDENT 0.0
.TP
.B \-n, \-\-ndet=<int>
Truncates the wavefunction to the target number of determinants
.UNINDENT
.INDENT 0.0
.TP
.B \-s, \-\-state=<range>
Select the states to extract from the \fI\%EZFIO\fP directory, using the same conventions
as qp_set_mo_class\&. See example below.
.UNINDENT
.SH EXAMPLE
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp_edit \-\-state="[1,3\-5]" test.ezfio
qp set_file EZFIO_DIR
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Removes all states except states 1,3,4 and 5 from \fBtest.ezfio\fP\&. The
resulting \fI\%EZFIO\fP directory has 4 states.
Sets the current \fI\%EZFIO\fP directory. All the following instruction will be
relative to this directory.
.sp
This command is equivalent to \fBezfio set_file EZFIO_DIR\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B unset_file
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
qp unset_file
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Unsets the current \fI\%EZFIO\fP directory.
.sp
This command is equivalent to \fBezfio unset_file\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B has
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
qp has <module> <parameter>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
If the \fI<module>/<parameter>\fP is set in the \fI\%EZFIO\fP directory, returns 1.
Otherwise returns 0.
.sp
This command is equivalent to \fBezfio has <module> <parameter>\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B get
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
qp get <module> <parameter>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Returns the value of \fI<module>/<parameter>\fP\&.
.sp
This command is equivalent to \fBezfio get <module> <parameter>\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B set
.INDENT 7.0
.INDENT 3.5
.sp
.nf
.ft C
qp set <module> <parameter> [<value>]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Sets the value of \fI<module>/<parameter>\fP\&. If the value is not given in
the command line it is read from the standard input.
.sp
This command is equivalent to
\fBezfio set <module> <parameter> [<value>]\fP\&.
.UNINDENT
.SS Running programs
.INDENT 0.0
.TP
.B run
.INDENT 7.0
.INDENT 3.5
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp (run|srun|mpirun) [options] <program>
.ft P
.fi
.UNINDENT
.UNINDENT
.UNINDENT
.UNINDENT
.sp
Runs qp_run, qp_srun, or qp_mpirun using the current
\fI\%EZFIO\fP directory.
.UNINDENT
.SS Getting help
.INDENT 0.0
.TP
.B man
.INDENT 7.0
.INDENT 3.5
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
qp man (<program>|<qp_command>)
.ft P
.fi
.UNINDENT
.UNINDENT
.UNINDENT
.UNINDENT
.sp
Displays a man page for a \fIQuantum Package\fP program or a \fIQuantum Package\fP command.
.UNINDENT
.SS Running quantum package commands
.sp
The \fBqp_\fP commands can be run without specifying the \fI\%EZFIO\fP directory:
.INDENT 0.0
.TP
.B convert_output_to_ezfio
\fBqp convert_output_to_ezfio\fP : runs qp_convert_output_to_ezfio
.UNINDENT
.INDENT 0.0
.TP
.B create_ezfio
\fBqp create_ezfio\fP : runs qp_create_ezfio
.UNINDENT
.INDENT 0.0
.TP
.B plugins
\fBqp plugins\fP : runs qp_plugins
.UNINDENT
.INDENT 0.0
.TP
.B reset
\fBqp reset\fP : runs qp_reset
.UNINDENT
.INDENT 0.0
.TP
.B set_frozen_core
\fBqp set_frozen_core\fP : runs qp_set_frozen_core
.UNINDENT
.INDENT 0.0
.TP
.B set_mo_class
\fBqp set_mo_class\fP : runs qp_set_mo_class
.UNINDENT
.INDENT 0.0
.TP
.B update
\fBqp update\fP : runs qp_update
.UNINDENT
.SH AUTHOR
A. Scemama, E. Giner
.SH COPYRIGHT

View File

@ -93,10 +93,10 @@ ezfio=$1
qp set_file $ezfio
if [[ $dets -eq 1 ]] ; then
rm -- ${ezfio}/determinants/psi_{det,coef}.gz
rm --force -- ${ezfio}/determinants/n_det
rm --force -- ${ezfio}/determinants/psi_{det,coef}.gz
fi
set -x
if [[ $mos -eq 1 ]] ; then
if [[ -f ${ezfio}/mo_basis/mo_class.gz ]] && [[ $(qp get mo_basis mo_num) -ne \
$(zcat ${ezfio}/mo_basis/mo_class.gz |grep Active | wc -l) ]] ; then

View File

@ -2,12 +2,12 @@
becke_numerical_grid
====================
This module contains all quantities needed to build the Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions.
This module contains all quantities needed to build Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions.
This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains
a certain number of radial and angular points. No pruning is done on the angular part of the grid.
The main keyword for that modue is:
The main keyword for that module is:
* :option:`becke_numerical_grid grid_type_sgn` which controls the precision of the grid according the standard **SG-n** grids. This keyword controls the two providers `n_points_integration_angular` `n_points_radial_grid`.

View File

@ -11,7 +11,10 @@ program cis
!
! This program can be useful in many cases:
!
! # Ground state calculation
!
! Ground state calculation
!
! ------------------------
!
! To be sure to have the lowest |SCF| solution, perform an :ref:`.scf.`
! (see the :ref:`hartree_fock` module), then a :ref:`.cis.`, save
@ -19,7 +22,9 @@ program cis
! :ref:`.scf.` optimization from this |MO| guess.
!
!
! # Excited states calculations
! Excited states calculations
!
! ---------------------------
!
! The lowest excited states are much likely to be dominated by
! single-excitations. Therefore, running a :ref:`.cis.` will save
@ -35,7 +40,9 @@ program cis
! the lowest :option:`determinants n_states`, whatever multiplicity
! they are.
!
! # Note
! Note
!
! ----
!
! To discard some orbitals, use the :ref:`qp_set_mo_class`
! command to specify: