9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-03 10:28:25 +01:00

Update documentation and qp_set_frozne_core

This commit is contained in:
Anthony Scemama 2019-05-28 10:23:50 +02:00
parent 2a2d1050b5
commit b5111d0f62
63 changed files with 1834 additions and 466 deletions

View File

@ -6,6 +6,7 @@ Usage:
qp_plugins download <url> [-n <name>]
qp_plugins install <name>...
qp_plugins uninstall <name>
qp_plugins update [-r <repo>]
qp_plugins create -n <name> [-r <repo>] [<needed_modules>...]
Options:
@ -23,6 +24,8 @@ Options:
uninstall Uninstall a plugin
update Update the repository
create
-n --name=<name> Create a new plugin named <name>
-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
""")
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):
"""Main function"""
arguments["<name>"] = [os.path.normpath(name) for name in arguments["<name>"]]
if arguments["list"]:
if arguments["--repositories"]:
l_result = [f for f in os.listdir(QP_PLUGINS) \
if f not in [".gitignore", "local"] ]
for repo in sorted(l_result):
for repo in get_repositories():
print repo
else:
@ -138,6 +144,7 @@ def main(arguments):
for module in sorted(l_result):
print "%-30s %-30s"%(module, repo_of_plugin[module])
if arguments["create"]:
m_instance = ModuleHandler([QP_SRC])
@ -306,6 +313,20 @@ def main(arguments):
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__':
ARG = docopt(__doc__)
main(ARG)

View File

@ -6,18 +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.
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:
qp_set_frozen_core [-q|--query] [-l|--large] EZFIO_DIR
qp_set_frozen_core [-q|--query] [(-l|-s|--large|--small)] EZFIO_DIR
Options:
-q --query Prints in the standard output the number of frozen MOs
-l --large Use a large core
-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
========== ========= ======= =======
"""
@ -47,47 +68,36 @@ def main(arguments):
except:
do_pseudo = False
large = 0
small = 1
size = small
if arguments["--large"]:
size = large
if not do_pseudo:
if size == large:
if arguments["--large"]:
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
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
if size == small:
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 < 5:
pass
elif charge < 13:
n_frozen += 1
elif charge < 31:
n_frozen += 5
elif charge < 49:
n_frozen += 9
elif charge < 81:
n_frozen += 18
elif charge < 113:
n_frozen += 27
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

View File

@ -953,6 +953,7 @@ Subroutines / functions
Gets multiple AO bi-electronic integral from the AO map .
All i are retrieved for j,k,l fixed.
physicist convention : <ij|kl>
Needs:
@ -1224,6 +1225,8 @@ Subroutines / functions
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:
@ -1255,7 +1258,7 @@ Subroutines / functions
* :c:data:`mo_integrals_erf_cache`
* :c:data:`mo_integrals_erf_map`
* :c:data:`mo_integrals_map`
* :c:func:`two_e_integrals_index_reverse`
* :c:func:`test`
.. c:function:: two_e_integrals_index_reverse:
@ -1268,6 +1271,15 @@ Subroutines / functions
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:
@ -1275,11 +1287,5 @@ Subroutines / functions
:columns: 3
* :c:data:`ao_two_e_integral_alpha`
Calls:
.. hlist::
:columns: 3
* :c:func:`two_e_integrals_index`
* :c:func:`test`

View File

@ -51,3 +51,13 @@ EZFIO parameters
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:`one_e_dm_alpha_at_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
@ -339,6 +340,7 @@ Providers
* :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_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
@ -468,6 +470,7 @@ Providers
* :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_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
@ -532,6 +535,7 @@ Providers
* :c:data:`mos_in_r_array`
* :c:data:`one_e_dm_alpha_at_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
@ -608,6 +612,7 @@ Providers
* :c:data:`mos_lapl_in_r_array`
* :c:data:`one_e_dm_alpha_at_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_xc_alpha_ao_pbe`
* :c:data:`pot_scal_x_alpha_ao_pbe`
@ -749,6 +754,7 @@ Providers
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord_transp`
* :c:data:`nucl_dist_inv`
* :c:data:`nucl_num`
@ -818,6 +824,7 @@ Subroutines / functions
* :c:data:`nucl_dist_inv`
* :c:data:`slater_bragg_type_inter_distance_ua`
* :c:data:`nucl_coord_transp`
* :c:data:`nucl_charge`
* :c:data:`nucl_num`

View File

@ -108,10 +108,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -150,8 +152,6 @@ Providers
* :c:data:`closed_shell_ref_bitmask`
* :c:data:`psi_cas`
* :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
@ -246,10 +246,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -374,10 +376,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -814,10 +818,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -943,10 +949,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1021,10 +1029,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1099,10 +1109,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1110,12 +1122,12 @@ Providers
.. c:var:: list_core_inact_act
File : :file:`bitmask/bitmasks.irp.f`
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
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
* :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:`reunion_of_core_inact_act_bitmask`
@ -1134,12 +1147,12 @@ Providers
.. c:var:: list_core_inact_act_reverse
File : :file:`bitmask/bitmasks.irp.f`
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
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
* :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:`reunion_of_core_inact_act_bitmask`
@ -1225,10 +1239,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1303,10 +1319,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1381,10 +1399,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1459,14 +1479,38 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`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
@ -1537,10 +1581,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1615,10 +1661,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1693,10 +1741,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`virt_bitmask_4`
@ -1772,9 +1822,13 @@ Providers
* :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :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_inact_act_orb`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
@ -1813,31 +1867,26 @@ Providers
.. c:var:: n_core_inact_act_orb
File : :file:`bitmask/bitmasks.irp.f`
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
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
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`n_int`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`n_core_orb`
Needed by:
.. hlist::
:columns: 3
* :c:data:`core_inact_act_bitmask_4`
* :c:data:`list_core_inact_act`
@ -1919,9 +1968,13 @@ Providers
* :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :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_inact_act_orb`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
@ -2004,9 +2057,13 @@ Providers
* :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :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_inact_act_orb`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
@ -2072,6 +2129,32 @@ Providers
* :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
@ -2129,9 +2212,13 @@ Providers
* :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :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_inact_act_orb`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
@ -2309,9 +2396,13 @@ Providers
* :c:data:`dim_list_core_orb`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :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_inact_act_orb`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
@ -2412,7 +2503,6 @@ Providers
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`list_inact`
* :c:data:`n_int`
@ -2426,7 +2516,6 @@ Providers
.. code:: fortran
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
@ -2436,7 +2525,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`list_inact`
* :c:data:`n_int`
* :c:data:`reunion_of_core_inact_bitmask`
@ -2570,10 +2659,12 @@ Providers
* :c:data:`fock_matrix_mo`
* :c:data:`inact_virt_bitmask`
* :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_vv_from_ao`
* :c:data:`reunion_of_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:`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
@ -698,6 +726,7 @@ Providers
* :c:data:`c0_weight`
* :c:data:`n_states`
* :c:data:`pt2_match_weight`
@ -854,6 +883,8 @@ Subroutines / functions
* :c:data:`psi_det_hii`
* :c:data:`do_only_1h1p`
* :c:data:`h0_type`
* :c:data:`thresh_sym`
* :c:data:`pseudo_sym`
* :c:data:`psi_det_generators`
Called by:
@ -1584,6 +1615,7 @@ Subroutines / functions
* :c:data:`psi_energy`
* :c:data:`psi_occ_pattern`
* :c:data:`psi_energy`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
@ -1805,6 +1837,7 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`fci`
* :c:func:`pt2`
Calls:
@ -1991,6 +2024,7 @@ Subroutines / functions
* :c:data:`psi_energy`
* :c:data:`psi_occ_pattern`
* :c:data:`psi_energy`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
@ -2344,6 +2378,7 @@ Subroutines / functions
* :c:data:`state_average_weight`
* :c:data:`n_det`
* :c:data:`s2_eig`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_j`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`psi_bilinear_matrix_transp_values`
@ -2415,6 +2450,7 @@ Subroutines / functions
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
@ -2441,6 +2477,7 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`n_det_selectors`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_average_weight`
@ -2456,7 +2493,7 @@ Subroutines / functions
* :c:data:`n_states`
* :c:data:`pt2_f`
* :c:data:`n_det_generators`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`pt2_match_weight`
* :c:data:`n_int`
Called by:
@ -2496,4 +2533,5 @@ Subroutines / functions
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`pt2_match_weight`

View File

@ -72,7 +72,7 @@ Subroutines / functions
.. c:function:: h_apply_cis:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
@ -134,7 +134,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexc:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
@ -169,7 +169,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexcorg:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
@ -208,7 +208,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_diexcp:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
@ -243,7 +243,7 @@ Subroutines / functions
.. c:function:: h_apply_cis_monoexc:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_13`
.. code:: fortran
@ -278,3 +278,215 @@ Subroutines / functions
* :c:func:`bitstring_to_list_ab`
* :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:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
@ -127,7 +127,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexc:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
@ -162,7 +162,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexcorg:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
@ -201,7 +201,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_diexcp:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
@ -236,7 +236,7 @@ Subroutines / functions
.. c:function:: h_apply_cisd_monoexc:
File : :file:`h_apply.irp.f_shell_8`
File : :file:`h_apply.irp.f_shell_12`
.. code:: fortran
@ -271,3 +271,215 @@ Subroutines / functions
* :c:func:`bitstring_to_list_ab`
* :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
.. 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
---------
@ -131,6 +137,9 @@ Providers
:columns: 3
* :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_num`
* :c:data:`n_states`
@ -147,6 +156,39 @@ Providers
* :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
@ -195,6 +237,9 @@ Providers
:columns: 3
* :c:data:`ao_num`
* :c:data:`data_one_e_dm_alpha_ao`