mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-24 21:41:46 +02:00
minilist primitive/tri par alpha en cours
This commit is contained in:
parent
59a2d2a56d
commit
bbbc72341a
@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : gfortran -ffree-line-length-none -I .
|
FC : gfortran -ffree-line-length-none -I . -mavx
|
||||||
LAPACK_LIB : -llapack -lblas
|
LAPACK_LIB : -llapack -lblas
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32
|
IRPF90_FLAGS : --ninja --align=32
|
||||||
@ -35,7 +35,7 @@ OPENMP : 1 ; Append OpenMP flags
|
|||||||
# -ffast-math and the Fortran-specific
|
# -ffast-math and the Fortran-specific
|
||||||
# -fno-protect-parens and -fstack-arrays.
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
[OPT]
|
[OPT]
|
||||||
FCFLAGS : -Ofast
|
FCFLAGS : -Ofast -g
|
||||||
|
|
||||||
# Profiling flags
|
# Profiling flags
|
||||||
#################
|
#################
|
||||||
|
56
ocaml/.gitignore
vendored
56
ocaml/.gitignore
vendored
@ -3,47 +3,47 @@ ezfio.ml
|
|||||||
Qptypes.ml
|
Qptypes.ml
|
||||||
qptypes_generator.byte
|
qptypes_generator.byte
|
||||||
_build
|
_build
|
||||||
qp_basis_clean.native
|
|
||||||
qp_create_ezfio_from_xyz.native
|
qp_create_ezfio_from_xyz.native
|
||||||
qp_edit.native
|
|
||||||
qp_print.native
|
|
||||||
qp_run.native
|
|
||||||
qp_set_ddci.native
|
qp_set_ddci.native
|
||||||
qp_set_mo_class.native
|
qp_print.native
|
||||||
|
qp_edit.native
|
||||||
|
qp_set_mo_class.native
|
||||||
|
qp_basis_clean.native
|
||||||
|
qp_run.native
|
||||||
qp_edit.native
|
qp_edit.native
|
||||||
test_atom.byte
|
|
||||||
test_basis.byte
|
|
||||||
test_bitlist.byte
|
|
||||||
test_determinants.byte
|
|
||||||
test_elements.byte
|
|
||||||
test_excitation.byte
|
|
||||||
test_gto.byte
|
|
||||||
test_mo_label.byte
|
test_mo_label.byte
|
||||||
test_molecule.byte
|
|
||||||
test_point3d.byte
|
test_point3d.byte
|
||||||
test_atom
|
test_gto.byte
|
||||||
test_basis
|
test_excitation.byte
|
||||||
test_bitlist
|
test_determinants.byte
|
||||||
test_determinants
|
test_basis.byte
|
||||||
test_elements
|
test_molecule.byte
|
||||||
test_excitation
|
test_elements.byte
|
||||||
test_gto
|
test_bitlist.byte
|
||||||
|
test_atom.byte
|
||||||
test_mo_label
|
test_mo_label
|
||||||
test_molecule
|
|
||||||
test_point3d
|
test_point3d
|
||||||
qp_basis_clean
|
test_gto
|
||||||
|
test_excitation
|
||||||
|
test_determinants
|
||||||
|
test_basis
|
||||||
|
test_molecule
|
||||||
|
test_elements
|
||||||
|
test_bitlist
|
||||||
|
test_atom
|
||||||
qp_create_ezfio_from_xyz
|
qp_create_ezfio_from_xyz
|
||||||
qp_edit
|
|
||||||
qp_print
|
|
||||||
qp_run
|
|
||||||
qp_set_ddci
|
qp_set_ddci
|
||||||
|
qp_print
|
||||||
|
qp_edit
|
||||||
qp_set_mo_class
|
qp_set_mo_class
|
||||||
|
qp_basis_clean
|
||||||
|
qp_run
|
||||||
Input_determinants.ml
|
Input_determinants.ml
|
||||||
Input_hartree_fock.ml
|
|
||||||
Input_integrals_bielec.ml
|
Input_integrals_bielec.ml
|
||||||
Input_perturbation.ml
|
|
||||||
Input_properties.ml
|
|
||||||
Input_pseudo.ml
|
Input_pseudo.ml
|
||||||
|
Input_perturbation.ml
|
||||||
|
Input_hartree_fock.ml
|
||||||
|
Input_properties.ml
|
||||||
qp_edit.ml
|
qp_edit.ml
|
||||||
qp_edit
|
qp_edit
|
||||||
qp_edit.native
|
qp_edit.native
|
||||||
|
@ -96,3 +96,124 @@ Needed Modules
|
|||||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||||
* `Generators_CAS <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS>`_
|
* `Generators_CAS <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS>`_
|
||||||
|
|
||||||
|
Needed Modules
|
||||||
|
==============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: tree_dependency.png
|
||||||
|
|
||||||
|
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation>`_
|
||||||
|
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Selectors_full>`_
|
||||||
|
* `Generators_CAS <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/cas_sd_selected.irp.f#L1>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L531>`_
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L3>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L113>`_
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L68>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L381>`_
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_pt2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L3148>`_
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_pt2_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2519>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_pt2_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2651>`_
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_pt2_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2595>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_pt2_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2960>`_
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2271>`_
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L1606>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L1740>`_
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L1683>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L2069>`_
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_no_skip <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L1386>`_
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_no_skip_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L721>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_no_skip_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L855>`_
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_no_skip_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L798>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_cas_sd_selected_no_skip_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/CAS_SD/H_apply.irp.f_shell_22#L1184>`_
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
@ -27,137 +27,201 @@ Documentation
|
|||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L521>`_
|
`h_apply_fci <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L668>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1>`_
|
`h_apply_fci_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L137>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_mono <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2720>`_
|
`h_apply_fci_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L80>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_mono <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3306>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_mono_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2198>`_
|
`h_apply_fci_mono_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2639>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_mono_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2773>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_mono_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2522>`_
|
`h_apply_fci_mono_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2716>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_mono_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3102>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L325>`_
|
`h_apply_fci_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L466>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_no_skip <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1980>`_
|
`h_apply_fci_no_skip <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2419>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_no_skip_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1460>`_
|
`h_apply_fci_no_skip_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1754>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_no_skip_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1888>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_no_skip_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1784>`_
|
`h_apply_fci_no_skip_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1831>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_no_skip_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2217>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_pt2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1253>`_
|
`h_apply_fci_pt2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1545>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_pt2_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L767>`_
|
`h_apply_fci_pt2_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L916>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_pt2_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1048>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_fci_pt2_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1071>`_
|
`h_apply_fci_pt2_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L992>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_fci_pt2_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L1357>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4222>`_
|
`h_apply_pt2_mono_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5100>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3734>`_
|
`h_apply_pt2_mono_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4469>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_pt2_mono_delta_rho_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4601>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4038>`_
|
`h_apply_pt2_mono_delta_rho_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4545>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_pt2_mono_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4910>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_di_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5681>`_
|
`h_apply_pt2_mono_di_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L6851>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_di_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5195>`_
|
`h_apply_pt2_mono_di_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L6222>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_pt2_mono_di_delta_rho_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L6354>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_pt2_mono_di_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5499>`_
|
`h_apply_pt2_mono_di_delta_rho_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L6298>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_pt2_mono_di_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L6663>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3488>`_
|
`h_apply_select_mono_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4221>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L2966>`_
|
`h_apply_select_mono_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3554>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_select_mono_delta_rho_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3688>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3290>`_
|
`h_apply_select_mono_delta_rho_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L3631>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_select_mono_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4017>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_di_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4949>`_
|
`h_apply_select_mono_di_delta_rho <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5974>`_
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
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.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_di_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4429>`_
|
`h_apply_select_mono_di_delta_rho_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5309>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_select_mono_di_delta_rho_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5443>`_
|
||||||
Generate all double excitations of key_in using the bit masks of holes and
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
`h_apply_select_mono_di_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L4753>`_
|
`h_apply_select_mono_di_delta_rho_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5386>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_select_mono_di_delta_rho_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/H_apply.irp.f_shell_43#L5772>`_
|
||||||
Generate all single excitations of key_in using the bit masks of holes and
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
particles.
|
particles.
|
||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
@ -11,6 +11,7 @@ program full_ci
|
|||||||
|
|
||||||
pt2 = 1.d0
|
pt2 = 1.d0
|
||||||
diag_algorithm = "Lapack"
|
diag_algorithm = "Lapack"
|
||||||
|
|
||||||
if (N_det > N_det_max) then
|
if (N_det > N_det_max) then
|
||||||
call diagonalize_CI
|
call diagonalize_CI
|
||||||
call save_wavefunction
|
call save_wavefunction
|
||||||
|
@ -49,3 +49,40 @@ Needed Modules
|
|||||||
|
|
||||||
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_
|
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_
|
||||||
|
|
||||||
|
Needed Modules
|
||||||
|
==============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: tree_dependency.png
|
||||||
|
|
||||||
|
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`n_det_generators <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS/generators.irp.f#L3>`_
|
||||||
|
Number of generator detetrminants
|
||||||
|
|
||||||
|
|
||||||
|
`psi_coef_generators <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS/generators.irp.f#L35>`_
|
||||||
|
For Single reference wave functions, the generator is the
|
||||||
|
Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
`psi_det_generators <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS/generators.irp.f#L34>`_
|
||||||
|
For Single reference wave functions, the generator is the
|
||||||
|
Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
`select_max <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS/generators.irp.f#L78>`_
|
||||||
|
Memo to skip useless selectors
|
||||||
|
|
||||||
|
|
||||||
|
`size_select_max <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_CAS/generators.irp.f#L70>`_
|
||||||
|
Size of the select_max array
|
||||||
|
|
||||||
|
@ -31,3 +31,30 @@ Documentation
|
|||||||
`print_cas_coefs <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC_CASSD/mrcc_cassd.irp.f#L11>`_
|
`print_cas_coefs <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC_CASSD/mrcc_cassd.irp.f#L11>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
Needed Modules
|
||||||
|
==============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: tree_dependency.png
|
||||||
|
|
||||||
|
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation>`_
|
||||||
|
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Selectors_full>`_
|
||||||
|
* `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_full>`_
|
||||||
|
* `Psiref_CAS <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS>`_
|
||||||
|
* `MRCC_Utils <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_CASSD/mrcc_cassd.irp.f#L1>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`print_cas_coefs <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_CASSD/mrcc_cassd.irp.f#L11>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ s.data["declarations"] += """
|
|||||||
double precision, intent(in) :: delta_ij_(Ndet_ref,Ndet_non_ref,*)
|
double precision, intent(in) :: delta_ij_(Ndet_ref,Ndet_non_ref,*)
|
||||||
double precision, intent(in) :: delta_ii_(Ndet_ref,*)
|
double precision, intent(in) :: delta_ii_(Ndet_ref,*)
|
||||||
"""
|
"""
|
||||||
s.data["keys_work"] = "call mrcc_dress(delta_ij_,delta_ii_,Ndet_ref,Ndet_non_ref,i_generator,key_idx,keys_out,N_int,iproc)"
|
s.data["keys_work"] = "call mrcc_dress(delta_ij_,delta_ii_,Ndet_ref,Ndet_non_ref,i_generator,key_idx,keys_out,N_int,iproc,key_mask)"
|
||||||
s.data["params_post"] += ", delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref"
|
s.data["params_post"] += ", delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref"
|
||||||
s.data["params_main"] += "delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref"
|
s.data["params_main"] += "delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref"
|
||||||
s.data["decls_main"] += """
|
s.data["decls_main"] += """
|
||||||
|
@ -166,3 +166,816 @@ Documentation
|
|||||||
`set_generators_bitmasks_as_holes_and_particles <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC_Utils/mrcc_general.irp.f#L69>`_
|
`set_generators_bitmasks_as_holes_and_particles <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC_Utils/mrcc_general.irp.f#L69>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
Needed Modules
|
||||||
|
==============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: tree_dependency.png
|
||||||
|
|
||||||
|
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation>`_
|
||||||
|
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Selectors_full>`_
|
||||||
|
* `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/plugins/Generators_full>`_
|
||||||
|
* `Psiref_Utils <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`a_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L252>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`abort_all <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/abort.irp.f#L1>`_
|
||||||
|
If True, all the calculation is aborted
|
||||||
|
|
||||||
|
|
||||||
|
`abort_here <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/abort.irp.f#L11>`_
|
||||||
|
If True, all the calculation is aborted
|
||||||
|
|
||||||
|
|
||||||
|
`add_poly <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L306>`_
|
||||||
|
Add two polynomials
|
||||||
|
D(t) =! D(t) +( B(t)+C(t))
|
||||||
|
|
||||||
|
|
||||||
|
`add_poly_multiply <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L334>`_
|
||||||
|
Add a polynomial multiplied by a constant
|
||||||
|
D(t) =! D(t) +( cst * B(t))
|
||||||
|
|
||||||
|
|
||||||
|
`align_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L48>`_
|
||||||
|
Compute 1st dimension such that it is aligned for vectorization.
|
||||||
|
|
||||||
|
|
||||||
|
`apply_rotation <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L168>`_
|
||||||
|
Apply the rotation found by find_rotation
|
||||||
|
|
||||||
|
|
||||||
|
`approx_dble <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L380>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`b_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L257>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`binom <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L31>`_
|
||||||
|
Binomial coefficients
|
||||||
|
|
||||||
|
|
||||||
|
`binom_func <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L1>`_
|
||||||
|
.. math ::
|
||||||
|
.br
|
||||||
|
\frac{i!}{j!(i-j)!}
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`binom_transp <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L32>`_
|
||||||
|
Binomial coefficients
|
||||||
|
|
||||||
|
|
||||||
|
`catch_signal <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/abort.irp.f#L30>`_
|
||||||
|
What to do on Ctrl-C. If two Ctrl-C are pressed within 1 sec, the calculation if aborted.
|
||||||
|
|
||||||
|
|
||||||
|
`ci_eigenvectors_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L166>`_
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
`ci_eigenvectors_s2_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L167>`_
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
`ci_electronic_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L165>`_
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
`ci_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L232>`_
|
||||||
|
N_states lowest eigenvalues of the dressed CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
`create_minilist <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L16>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`davidson_diag_hjj_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/davidson.irp.f#L56>`_
|
||||||
|
Davidson diagonalization with specific diagonal elements of the H matrix
|
||||||
|
.br
|
||||||
|
H_jj : specific diagonal H matrix elements to diagonalize de Davidson
|
||||||
|
.br
|
||||||
|
dets_in : bitmasks corresponding to determinants
|
||||||
|
.br
|
||||||
|
u_in : guess coefficients on the various states. Overwritten
|
||||||
|
on exit
|
||||||
|
.br
|
||||||
|
dim_in : leftmost dimension of u_in
|
||||||
|
.br
|
||||||
|
sze : Number of determinants
|
||||||
|
.br
|
||||||
|
N_st : Number of eigenstates
|
||||||
|
.br
|
||||||
|
iunit : Unit for the I/O
|
||||||
|
.br
|
||||||
|
Initial guess vectors are not necessarily orthonormal
|
||||||
|
|
||||||
|
|
||||||
|
`davidson_diag_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/davidson.irp.f#L1>`_
|
||||||
|
Davidson diagonalization.
|
||||||
|
.br
|
||||||
|
dets_in : bitmasks corresponding to determinants
|
||||||
|
.br
|
||||||
|
u_in : guess coefficients on the various states. Overwritten
|
||||||
|
on exit
|
||||||
|
.br
|
||||||
|
dim_in : leftmost dimension of u_in
|
||||||
|
.br
|
||||||
|
sze : Number of determinants
|
||||||
|
.br
|
||||||
|
N_st : Number of eigenstates
|
||||||
|
.br
|
||||||
|
iunit : Unit number for the I/O
|
||||||
|
.br
|
||||||
|
Initial guess vectors are not necessarily orthonormal
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L138>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact_even <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L155>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact_odd <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L176>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`dble_logfact <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L210>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`ddfact2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L243>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`delta_ii <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L104>`_
|
||||||
|
Dressing matrix in N_det basis
|
||||||
|
|
||||||
|
|
||||||
|
`delta_ij <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L103>`_
|
||||||
|
Dressing matrix in N_det basis
|
||||||
|
|
||||||
|
|
||||||
|
`det_inf <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L81>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`diagonalize_ci_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L247>`_
|
||||||
|
Replace the coefficients of the CI states by the coefficients of the
|
||||||
|
eigenstates of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
`dset_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_216#L27>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`dset_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L94>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L339>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`erf0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L105>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`f_integral <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L408>`_
|
||||||
|
function that calculates the following integral
|
||||||
|
\int_{\-infty}^{+\infty} x^n \exp(-p x^2) dx
|
||||||
|
|
||||||
|
|
||||||
|
`fact <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L63>`_
|
||||||
|
n!
|
||||||
|
|
||||||
|
|
||||||
|
`fact_inv <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L125>`_
|
||||||
|
1/n!
|
||||||
|
|
||||||
|
|
||||||
|
`find_rotation <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L149>`_
|
||||||
|
Find A.C = B
|
||||||
|
|
||||||
|
|
||||||
|
`find_triples_and_quadruples <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L371>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`gammln <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L271>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`gammp <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L133>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`gaussian_product <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L184>`_
|
||||||
|
Gaussian product in 1D.
|
||||||
|
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||||
|
|
||||||
|
|
||||||
|
`gaussian_product_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L226>`_
|
||||||
|
Gaussian product in 1D.
|
||||||
|
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||||
|
|
||||||
|
|
||||||
|
`gcf <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L211>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`get_pseudo_inverse <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L95>`_
|
||||||
|
Find C = A^-1
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L46>`_
|
||||||
|
Transforms the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta)
|
||||||
|
into
|
||||||
|
fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 )
|
||||||
|
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||||
|
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L122>`_
|
||||||
|
Transforms the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3)
|
||||||
|
exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) exp(-(r-Nucl_center)^2 gama
|
||||||
|
.br
|
||||||
|
into
|
||||||
|
fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 )
|
||||||
|
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||||
|
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L1>`_
|
||||||
|
Transform the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta)
|
||||||
|
into
|
||||||
|
fact_k (x-x_P)^iorder(1) (y-y_P)^iorder(2) (z-z_P)^iorder(3) exp(-p(r-P)^2)
|
||||||
|
|
||||||
|
|
||||||
|
`gser <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L167>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L547>`_
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_mrcc_diexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L3>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_mrcc_diexcorg <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L121>`_
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_mrcc_diexcp <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L72>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_apply_mrcc_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L393>`_
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and
|
||||||
|
particles.
|
||||||
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`h_matrix_dressed <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L140>`_
|
||||||
|
Dressed H with Delta_ij
|
||||||
|
|
||||||
|
|
||||||
|
`h_u_0_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/davidson.irp.f#L360>`_
|
||||||
|
Computes v_0 = H|u_0>
|
||||||
|
.br
|
||||||
|
n : number of determinants
|
||||||
|
.br
|
||||||
|
H_jj : array of <j|H|j>
|
||||||
|
|
||||||
|
|
||||||
|
`heap_dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L210>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L273>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L744>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L807>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L566>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L629>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L388>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_isort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L451>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L32>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L95>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`hermite <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L540>`_
|
||||||
|
Hermite polynomial
|
||||||
|
|
||||||
|
|
||||||
|
`i2radix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_450#L323>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i2set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_216#L102>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`i2set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L271>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L873>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`i8radix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_450#L163>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i8radix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_450#L643>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i8set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_216#L77>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`i8set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L212>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L695>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L180>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L61>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L714>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L238>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L536>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L179>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L358>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_isort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L120>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L2>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L2>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`inv_int <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L257>`_
|
||||||
|
1/i
|
||||||
|
|
||||||
|
|
||||||
|
`iradix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_450#L3>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`iradix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_450#L483>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`iset_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_216#L52>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`iset_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L153>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L517>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`lambda_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L5>`_
|
||||||
|
cm/<Psi_0|H|D_m> or perturbative 1/Delta_E(m)
|
||||||
|
|
||||||
|
|
||||||
|
`lambda_mrcc_tmp <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L81>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`lambda_pert <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L6>`_
|
||||||
|
cm/<Psi_0|H|D_m> or perturbative 1/Delta_E(m)
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L247>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diag_s2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L310>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diagd <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L180>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_partial_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L376>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`logfact <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L93>`_
|
||||||
|
n!
|
||||||
|
|
||||||
|
|
||||||
|
`mrcc_dress <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L164>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`mrcc_dress_simple <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L325>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`mrcc_iterations <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_general.irp.f#L7>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L264>`_
|
||||||
|
Multiply two polynomials
|
||||||
|
D(t) =! D(t) +( B(t)*C(t))
|
||||||
|
|
||||||
|
|
||||||
|
`normalize <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L356>`_
|
||||||
|
Normalizes vector u
|
||||||
|
u is expected to be aligned in memory.
|
||||||
|
|
||||||
|
|
||||||
|
`nproc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L283>`_
|
||||||
|
Number of current OpenMP threads
|
||||||
|
|
||||||
|
|
||||||
|
`ortho_lowdin <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L1>`_
|
||||||
|
Compute C_new=C_old.S^-1/2 canonical orthogonalization.
|
||||||
|
.br
|
||||||
|
overlap : overlap matrix
|
||||||
|
.br
|
||||||
|
LDA : leftmost dimension of overlap array
|
||||||
|
.br
|
||||||
|
N : Overlap matrix is NxN (array is (LDA,N) )
|
||||||
|
.br
|
||||||
|
C : Coefficients of the vectors to orthogonalize. On exit,
|
||||||
|
orthogonal vectors
|
||||||
|
.br
|
||||||
|
LDC : leftmost dimension of C
|
||||||
|
.br
|
||||||
|
m : Coefficients matrix is MxN, ( array is (LDC,N) )
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`oscillations <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L86>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_a_b_c <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/one_e_integration.irp.f#L35>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/one_e_integration.irp.f#L1>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
\sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_gaussian_xyz <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/one_e_integration.irp.f#L113>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
S_x = \int (x-A_x)^{a_x} exp(-\alpha(x-A_x)^2) (x-B_x)^{b_x} exp(-beta(x-B_x)^2) dx \\
|
||||||
|
S = S_x S_y S_z
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_x_abs <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/one_e_integration.irp.f#L175>`_
|
||||||
|
.. math ::
|
||||||
|
.br
|
||||||
|
\int_{-infty}^{+infty} (x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) dx
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`pert_determinants <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_utils.irp.f#L1>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`progress_active <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L29>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_bar <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L27>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_timeout <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L28>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_title <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L31>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_value <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L30>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_lock <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L3>`_
|
||||||
|
Locks on ref determinants to fill delta_ij
|
||||||
|
|
||||||
|
|
||||||
|
`recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L363>`_
|
||||||
|
Recenter two polynomials
|
||||||
|
|
||||||
|
|
||||||
|
`rint <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L436>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
\int_0^1 dx \exp(-p x^2) x^n
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`rint1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L596>`_
|
||||||
|
Standard version of rint
|
||||||
|
|
||||||
|
|
||||||
|
`rint_large_n <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L565>`_
|
||||||
|
Version of rint for large values of n
|
||||||
|
|
||||||
|
|
||||||
|
`rint_sum <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/integration.irp.f#L484>`_
|
||||||
|
Needed for the calculation of two-electron integrals.
|
||||||
|
|
||||||
|
|
||||||
|
`rinteg <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L47>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`rintgauss <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L31>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`run_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_general.irp.f#L1>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`run_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L45>`_
|
||||||
|
Display a progress bar with documentation of what is happening
|
||||||
|
|
||||||
|
|
||||||
|
`sabpartial <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/need.irp.f#L2>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`set_generators_bitmasks_as_holes_and_particles <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_general.irp.f#L69>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_216#L2>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_283#L35>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`set_zero_extra_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/LinearAlgebra.irp.f#L433>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/sort.irp.f_template_184#L161>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`sort_detlist <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L139>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`start_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L1>`_
|
||||||
|
Starts the progress bar
|
||||||
|
|
||||||
|
|
||||||
|
`stop_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/progress.irp.f#L19>`_
|
||||||
|
Stop the progress bar
|
||||||
|
|
||||||
|
|
||||||
|
`tamiser <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L104>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`trap_signals <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/abort.irp.f#L19>`_
|
||||||
|
What to do when a signal is caught. Here, trap Ctrl-C and call the control_C subroutine.
|
||||||
|
|
||||||
|
|
||||||
|
`u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L325>`_
|
||||||
|
Compute <u|u>
|
||||||
|
|
||||||
|
|
||||||
|
`u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L299>`_
|
||||||
|
Compute <u|v>
|
||||||
|
|
||||||
|
|
||||||
|
`wall_time <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L268>`_
|
||||||
|
The equivalent of cpu_time, but for the wall time.
|
||||||
|
|
||||||
|
|
||||||
|
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/util.irp.f#L243>`_
|
||||||
|
Write the last git commit in file iunit.
|
||||||
|
|
||||||
|
@ -12,12 +12,161 @@ BEGIN_PROVIDER [ integer(omp_lock_kind), psi_ref_lock, (psi_det_size) ]
|
|||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n_selected,det_buffer,Nint,iproc)
|
|
||||||
|
subroutine create_minilist(key_mask, fullList, miniList, idx_miniList, N_fullList, N_miniList, Nint)
|
||||||
|
use bitmasks
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer(bit_kind), intent(in) :: fullList(Nint, 2, N_fullList)
|
||||||
|
integer, intent(in) :: N_fullList
|
||||||
|
integer(bit_kind),intent(out) :: miniList(Nint, 2, N_fullList)
|
||||||
|
integer,intent(out) :: idx_miniList(N_fullList), N_miniList
|
||||||
|
integer, intent(in) :: Nint
|
||||||
|
integer(bit_kind) :: key_mask(Nint, 2)
|
||||||
|
integer :: ni, i, n_a, n_b, e_a, e_b
|
||||||
|
|
||||||
|
|
||||||
|
n_a = 0
|
||||||
|
n_b = 0
|
||||||
|
do ni=1,nint
|
||||||
|
n_a = n_a + popcnt(key_mask(ni,1))
|
||||||
|
n_b = n_b + popcnt(key_mask(ni,2))
|
||||||
|
end do
|
||||||
|
|
||||||
|
if(n_a == 0) then
|
||||||
|
N_miniList = N_fullList
|
||||||
|
miniList(:,:,:) = fullList(:,:,:)
|
||||||
|
do i=1,N_fullList
|
||||||
|
idx_miniList(i) = i
|
||||||
|
end do
|
||||||
|
return
|
||||||
|
end if
|
||||||
|
|
||||||
|
N_miniList = 0
|
||||||
|
|
||||||
|
do i=1,N_fullList
|
||||||
|
e_a = n_a
|
||||||
|
e_b = n_b
|
||||||
|
do ni=1,nint
|
||||||
|
e_a -= popcnt(iand(fullList(ni, 1, i), key_mask(ni, 1)))
|
||||||
|
e_b -= popcnt(iand(fullList(ni, 2, i), key_mask(ni, 2)))
|
||||||
|
end do
|
||||||
|
|
||||||
|
if(e_a + e_b <= 2) then
|
||||||
|
N_miniList = N_miniList + 1
|
||||||
|
miniList(:,:,N_miniList) = fullList(:,:,i)
|
||||||
|
idx_miniList(N_miniList) = i
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
|
||||||
|
! if(N_miniList > 2) then
|
||||||
|
! call sort_detList(miniList, idx_miniList, N_miniList, Nint)
|
||||||
|
! end if
|
||||||
|
!
|
||||||
|
! shortcut(0) = 1
|
||||||
|
! shortcut(1) = 1
|
||||||
|
! do i=2,N_miniList
|
||||||
|
! do ni=1,nint
|
||||||
|
! if(miniList(ni,1,i) /= miniList(ni,1,i-1)) then
|
||||||
|
! shortcut(0) = shortcut(0) + 1
|
||||||
|
! shortcut(shortcut(0)) = i
|
||||||
|
! exit
|
||||||
|
! end if
|
||||||
|
! end do
|
||||||
|
! end do
|
||||||
|
!print *, N_miniList_tot , " vers ", dik
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
|
||||||
|
subroutine det_inf(res, key1, key2, Nint)
|
||||||
|
use bitmasks
|
||||||
|
implicit none
|
||||||
|
integer(bit_kind),intent(in) :: key1(Nint, 2), key2(Nint, 2)
|
||||||
|
integer,intent(in) :: Nint
|
||||||
|
integer :: i,j
|
||||||
|
logical,intent(out) :: res
|
||||||
|
|
||||||
|
res = .false.
|
||||||
|
|
||||||
|
do i=1,2
|
||||||
|
do j=Nint,1,-1
|
||||||
|
if(key1(j,i) < key2(j,i)) then
|
||||||
|
res = .true.
|
||||||
|
return
|
||||||
|
else if(key1(j,i) > key2(j,i)) then
|
||||||
|
return
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end function
|
||||||
|
|
||||||
|
|
||||||
|
subroutine tamiser(key, idx, no, n, Nint, N_key)
|
||||||
|
use bitmasks
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer(bit_kind),intent(inout) :: key(Nint, 2, N_key)
|
||||||
|
integer,intent(in) :: no, n, Nint, N_key
|
||||||
|
integer,intent(inout) :: idx(N_key)
|
||||||
|
integer :: k,j,tmpidx
|
||||||
|
integer(bit_kind) :: tmp(Nint, 2)
|
||||||
|
logical :: inf
|
||||||
|
|
||||||
|
k = no
|
||||||
|
j = 2*k
|
||||||
|
do while(j <= n)
|
||||||
|
call det_inf(inf, key(:,:,j), key(:,:,j+1), Nint)
|
||||||
|
if(j < n .and. inf) then
|
||||||
|
j = j+1
|
||||||
|
end if
|
||||||
|
call det_inf(inf, key(:,:,k), key(:,:,j), Nint)
|
||||||
|
if(inf) then
|
||||||
|
tmp(:,:) = key(:,:,k)
|
||||||
|
key(:,:,k) = key(:,:,j)
|
||||||
|
key(:,:,j) = tmp(:,:)
|
||||||
|
tmpidx = idx(k)
|
||||||
|
idx(k) = idx(j)
|
||||||
|
idx(j) = tmpidx
|
||||||
|
k = j
|
||||||
|
j = 2*k
|
||||||
|
else
|
||||||
|
return
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
|
||||||
|
subroutine sort_detList(key, idx, N_key, Nint)
|
||||||
|
use bitmasks
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
integer(bit_kind),intent(inout) :: key(Nint,2,N_key)
|
||||||
|
integer,intent(inout) :: idx(N_key)
|
||||||
|
integer, intent(in) :: Nint, N_key
|
||||||
|
integer(bit_kind) :: tmp(Nint, 2)
|
||||||
|
integer :: tmpidx,i
|
||||||
|
|
||||||
|
do i=N_key/2,1,-1
|
||||||
|
!call tamiser(key, idx, i, N_key, Nint, N_key)
|
||||||
|
end do
|
||||||
|
|
||||||
|
do i=N_key,2,-1
|
||||||
|
tmp(:,:) = key(:,:,i)
|
||||||
|
key(:,:,i) = key(:,:,1)
|
||||||
|
key(:,:,1) = tmp(:,:)
|
||||||
|
tmpidx = idx(i)
|
||||||
|
idx(i) = idx(1)
|
||||||
|
idx(1) = tmpidx
|
||||||
|
!call tamiser(key, idx, 1, i-1, Nint, N_key)
|
||||||
|
end do
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n_selected,det_buffer,Nint,iproc,key_mask)
|
||||||
use bitmasks
|
use bitmasks
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
integer, intent(in) :: i_generator,n_selected, Nint, iproc
|
integer, intent(in) :: i_generator,n_selected, Nint, iproc
|
||||||
integer, intent(in) :: Ndet_ref, Ndet_non_ref
|
integer, intent(in) :: Ndet_ref, Ndet_non_ref
|
||||||
double precision, intent(inout) :: delta_ij_(Ndet_ref,Ndet_non_ref,*)
|
double precision, intent(inout) :: delta_ij_(Ndet_ref,Ndet_non_ref,*)
|
||||||
double precision, intent(inout) :: delta_ii_(Ndet_ref,*)
|
double precision, intent(inout) :: delta_ii_(Ndet_ref,*)
|
||||||
|
|
||||||
@ -40,7 +189,12 @@ subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n
|
|||||||
integer(bit_kind) :: tmp_det(Nint,2)
|
integer(bit_kind) :: tmp_det(Nint,2)
|
||||||
integer :: iint, ipos
|
integer :: iint, ipos
|
||||||
integer :: i_state, k_sd, l_sd, i_I, i_alpha
|
integer :: i_state, k_sd, l_sd, i_I, i_alpha
|
||||||
|
|
||||||
|
integer(bit_kind) :: miniList(Nint, 2, N_det_non_ref), key_mask(Nint, 2)
|
||||||
|
integer :: idx_miniList(N_det_non_ref), N_miniList
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
||||||
|
|
||||||
allocate (dIa_hla(N_states,Ndet_non_ref))
|
allocate (dIa_hla(N_states,Ndet_non_ref))
|
||||||
@ -48,9 +202,20 @@ subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n
|
|||||||
! |I>
|
! |I>
|
||||||
|
|
||||||
! |alpha>
|
! |alpha>
|
||||||
|
|
||||||
|
if(N_tq > 0) then
|
||||||
|
call create_minilist(key_mask, psi_non_ref, miniList, idx_miniList, N_det_non_ref, N_minilist, Nint)
|
||||||
|
end if
|
||||||
|
|
||||||
|
|
||||||
do i_alpha=1,N_tq
|
do i_alpha=1,N_tq
|
||||||
call get_excitation_degree_vector(psi_non_ref,tq(1,1,i_alpha),degree_alpha,Nint,N_det_non_ref,idx_alpha)
|
! call get_excitation_degree_vector(psi_non_ref,tq(1,1,i_alpha),degree_alpha,Nint,N_det_non_ref,idx_alpha)
|
||||||
|
call get_excitation_degree_vector(miniList,tq(1,1,i_alpha),degree_alpha,Nint,N_minilist,idx_alpha)
|
||||||
|
|
||||||
|
do j=1,idx_alpha(0)
|
||||||
|
idx_alpha(j) = idx_miniList(idx_alpha(j))
|
||||||
|
end do
|
||||||
|
|
||||||
! |I>
|
! |I>
|
||||||
do i_I=1,N_det_ref
|
do i_I=1,N_det_ref
|
||||||
! Find triples and quadruple grand parents
|
! Find triples and quadruple grand parents
|
||||||
@ -233,7 +398,8 @@ subroutine find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq
|
|||||||
! Select determinants that are triple or quadruple excitations
|
! Select determinants that are triple or quadruple excitations
|
||||||
! from the ref
|
! from the ref
|
||||||
good = .True.
|
good = .True.
|
||||||
call get_excitation_degree_vector(psi_ref,det_buffer(1,1,i),degree,Nint,N_det_ref,idx)
|
call get_excitation_degree_vector(psi_ref,det_buffer(1,1,i),degree,Nint,N_det_ref,idx)
|
||||||
|
!good=(idx(0) == 0) tant que degree > 2 pas retourné par get_excitation_degree_vector
|
||||||
do k=1,idx(0)
|
do k=1,idx(0)
|
||||||
if (degree(k) < 3) then
|
if (degree(k) < 3) then
|
||||||
good = .False.
|
good = .False.
|
||||||
|
@ -112,37 +112,37 @@ Documentation
|
|||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_dipole_moment_z <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L896>`_
|
`perturb_buffer_by_mono_dipole_moment_z <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L266>`_
|
||||||
Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_epstein_nesbet <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L686>`_
|
`perturb_buffer_by_mono_epstein_nesbet <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L371>`_
|
||||||
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_epstein_nesbet_2x2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L791>`_
|
`perturb_buffer_by_mono_epstein_nesbet_2x2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L476>`_
|
||||||
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_epstein_nesbet_sc2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L581>`_
|
`perturb_buffer_by_mono_epstein_nesbet_sc2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L791>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L476>`_
|
`perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L686>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_epstein_nesbet_sc2_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L371>`_
|
`perturb_buffer_by_mono_epstein_nesbet_sc2_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L581>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_by_mono_h_core <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L266>`_
|
`perturb_buffer_by_mono_h_core <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L896>`_
|
||||||
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
@ -157,37 +157,37 @@ Documentation
|
|||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_dipole_moment_z <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L845>`_
|
`perturb_buffer_dipole_moment_z <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L215>`_
|
||||||
Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_epstein_nesbet <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L635>`_
|
`perturb_buffer_epstein_nesbet <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L320>`_
|
||||||
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_epstein_nesbet_2x2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L740>`_
|
`perturb_buffer_epstein_nesbet_2x2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L425>`_
|
||||||
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_epstein_nesbet_sc2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L530>`_
|
`perturb_buffer_epstein_nesbet_sc2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L740>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_epstein_nesbet_sc2_no_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L425>`_
|
`perturb_buffer_epstein_nesbet_sc2_no_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L635>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_epstein_nesbet_sc2_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L320>`_
|
`perturb_buffer_epstein_nesbet_sc2_projected <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L530>`_
|
||||||
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
|
||||||
`perturb_buffer_h_core <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L215>`_
|
`perturb_buffer_h_core <http://github.com/LCPQ/quantum_package/tree/master/plugins/Perturbation/perturbation.irp.f_shell_13#L845>`_
|
||||||
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply
|
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply
|
||||||
routine.
|
routine.
|
||||||
|
|
||||||
|
@ -49,3 +49,46 @@ Needed Modules
|
|||||||
|
|
||||||
* `Psiref_Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Psiref_Utils>`_
|
* `Psiref_Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Psiref_Utils>`_
|
||||||
|
|
||||||
|
Needed Modules
|
||||||
|
==============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: tree_dependency.png
|
||||||
|
|
||||||
|
* `Psiref_Utils <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`idx_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L5>`_
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the
|
||||||
|
determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
`n_det_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L6>`_
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the
|
||||||
|
determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L3>`_
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the
|
||||||
|
determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L4>`_
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the
|
||||||
|
determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_coef_restart <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L30>`_
|
||||||
|
Projection of the CAS wave function on the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_restart <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_CAS/psi_ref.irp.f#L29>`_
|
||||||
|
Projection of the CAS wave function on the restart wave function.
|
||||||
|
|
||||||
|
@ -119,3 +119,740 @@ Documentation
|
|||||||
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
||||||
function.
|
function.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`a_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L252>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`abort_all <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/abort.irp.f#L1>`_
|
||||||
|
If True, all the calculation is aborted
|
||||||
|
|
||||||
|
|
||||||
|
`abort_here <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/abort.irp.f#L11>`_
|
||||||
|
If True, all the calculation is aborted
|
||||||
|
|
||||||
|
|
||||||
|
`add_poly <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L306>`_
|
||||||
|
Add two polynomials
|
||||||
|
D(t) =! D(t) +( B(t)+C(t))
|
||||||
|
|
||||||
|
|
||||||
|
`add_poly_multiply <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L334>`_
|
||||||
|
Add a polynomial multiplied by a constant
|
||||||
|
D(t) =! D(t) +( cst * B(t))
|
||||||
|
|
||||||
|
|
||||||
|
`align_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L48>`_
|
||||||
|
Compute 1st dimension such that it is aligned for vectorization.
|
||||||
|
|
||||||
|
|
||||||
|
`apply_rotation <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L168>`_
|
||||||
|
Apply the rotation found by find_rotation
|
||||||
|
|
||||||
|
|
||||||
|
`approx_dble <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L380>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`b_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L257>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`binom <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L31>`_
|
||||||
|
Binomial coefficients
|
||||||
|
|
||||||
|
|
||||||
|
`binom_func <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L1>`_
|
||||||
|
.. math ::
|
||||||
|
.br
|
||||||
|
\frac{i!}{j!(i-j)!}
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`binom_transp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L32>`_
|
||||||
|
Binomial coefficients
|
||||||
|
|
||||||
|
|
||||||
|
`catch_signal <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/abort.irp.f#L30>`_
|
||||||
|
What to do on Ctrl-C. If two Ctrl-C are pressed within 1 sec, the calculation if aborted.
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L138>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact_even <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L155>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`dble_fact_odd <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L176>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`dble_logfact <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L210>`_
|
||||||
|
n!!
|
||||||
|
|
||||||
|
|
||||||
|
`ddfact2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L243>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`dset_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_216#L27>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`dset_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L94>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L339>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`erf0 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L105>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`f_integral <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L408>`_
|
||||||
|
function that calculates the following integral
|
||||||
|
\int_{\-infty}^{+\infty} x^n \exp(-p x^2) dx
|
||||||
|
|
||||||
|
|
||||||
|
`fact <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L63>`_
|
||||||
|
n!
|
||||||
|
|
||||||
|
|
||||||
|
`fact_inv <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L125>`_
|
||||||
|
1/n!
|
||||||
|
|
||||||
|
|
||||||
|
`find_rotation <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L149>`_
|
||||||
|
Find A.C = B
|
||||||
|
|
||||||
|
|
||||||
|
`gammln <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L271>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`gammp <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L133>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`gaussian_product <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L184>`_
|
||||||
|
Gaussian product in 1D.
|
||||||
|
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||||
|
|
||||||
|
|
||||||
|
`gaussian_product_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L226>`_
|
||||||
|
Gaussian product in 1D.
|
||||||
|
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||||
|
|
||||||
|
|
||||||
|
`gcf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L211>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`get_index_in_psi_ref_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L182>`_
|
||||||
|
Returns the index of the determinant in the ``psi_ref_sorted_bit`` array
|
||||||
|
|
||||||
|
|
||||||
|
`get_pseudo_inverse <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L95>`_
|
||||||
|
Find C = A^-1
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L46>`_
|
||||||
|
Transforms the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta)
|
||||||
|
into
|
||||||
|
fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 )
|
||||||
|
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||||
|
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian_double <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L122>`_
|
||||||
|
Transforms the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3)
|
||||||
|
exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) exp(-(r-Nucl_center)^2 gama
|
||||||
|
.br
|
||||||
|
into
|
||||||
|
fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 )
|
||||||
|
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||||
|
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||||
|
|
||||||
|
|
||||||
|
`give_explicit_poly_and_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L1>`_
|
||||||
|
Transform the product of
|
||||||
|
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta)
|
||||||
|
into
|
||||||
|
fact_k (x-x_P)^iorder(1) (y-y_P)^iorder(2) (z-z_P)^iorder(3) exp(-p(r-P)^2)
|
||||||
|
|
||||||
|
|
||||||
|
`gser <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L167>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`h_matrix_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L116>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`heap_dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L210>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L273>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L744>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L807>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L566>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L629>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L388>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_isort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L451>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`heap_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L32>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`heap_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L95>`_
|
||||||
|
Sort array x(isize) using the heap sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`hermite <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L540>`_
|
||||||
|
Hermite polynomial
|
||||||
|
|
||||||
|
|
||||||
|
`holes_operators <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_excitations_operators.irp.f#L3>`_
|
||||||
|
holes_operators represents an array of integers where all the holes have
|
||||||
|
been done going from psi_ref to psi_non_ref
|
||||||
|
particles_operators represents an array of integers where all the particles have
|
||||||
|
been done going from psi_ref to psi_non_ref
|
||||||
|
|
||||||
|
|
||||||
|
`i2radix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_450#L323>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i2set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_216#L102>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`i2set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L271>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L873>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`i8radix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_450#L163>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i8radix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_450#L643>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`i8set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_216#L77>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`i8set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L212>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L695>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`idx_non_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L20>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
`idx_non_ref_rev <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L21>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_dsort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L180>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_dsort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L61>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i2sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L714>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i2sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L238>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i8sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L536>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_i8sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L179>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L358>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_isort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L120>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L2>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`insertion_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L2>`_
|
||||||
|
Sort array x(isize) using the insertion sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`inv_int <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L257>`_
|
||||||
|
1/i
|
||||||
|
|
||||||
|
|
||||||
|
`iradix_sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_450#L3>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`iradix_sort_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_450#L483>`_
|
||||||
|
Sort integer array x(isize) using the radix sort algorithm.
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
iradix should be -1 in input.
|
||||||
|
|
||||||
|
|
||||||
|
`is_in_psi_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L168>`_
|
||||||
|
True if the determinant ``det`` is in the wave function
|
||||||
|
|
||||||
|
|
||||||
|
`iset_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_216#L52>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`iset_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L153>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`isort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L517>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L247>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diag_s2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L310>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_diagd <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L180>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`lapack_partial_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L376>`_
|
||||||
|
Diagonalize matrix H
|
||||||
|
.br
|
||||||
|
H is untouched between input and ouptut
|
||||||
|
.br
|
||||||
|
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||||
|
.br
|
||||||
|
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`logfact <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L93>`_
|
||||||
|
n!
|
||||||
|
|
||||||
|
|
||||||
|
`multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L264>`_
|
||||||
|
Multiply two polynomials
|
||||||
|
D(t) =! D(t) +( B(t)*C(t))
|
||||||
|
|
||||||
|
|
||||||
|
`n_det_non_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L22>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
`normalize <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L356>`_
|
||||||
|
Normalizes vector u
|
||||||
|
u is expected to be aligned in memory.
|
||||||
|
|
||||||
|
|
||||||
|
`nproc <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L283>`_
|
||||||
|
Number of current OpenMP threads
|
||||||
|
|
||||||
|
|
||||||
|
`ortho_lowdin <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L1>`_
|
||||||
|
Compute C_new=C_old.S^-1/2 canonical orthogonalization.
|
||||||
|
.br
|
||||||
|
overlap : overlap matrix
|
||||||
|
.br
|
||||||
|
LDA : leftmost dimension of overlap array
|
||||||
|
.br
|
||||||
|
N : Overlap matrix is NxN (array is (LDA,N) )
|
||||||
|
.br
|
||||||
|
C : Coefficients of the vectors to orthogonalize. On exit,
|
||||||
|
orthogonal vectors
|
||||||
|
.br
|
||||||
|
LDC : leftmost dimension of C
|
||||||
|
.br
|
||||||
|
m : Coefficients matrix is MxN, ( array is (LDC,N) )
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_a_b_c <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/one_e_integration.irp.f#L35>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/one_e_integration.irp.f#L1>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
\sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_gaussian_xyz <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/one_e_integration.irp.f#L113>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
S_x = \int (x-A_x)^{a_x} exp(-\alpha(x-A_x)^2) (x-B_x)^{b_x} exp(-beta(x-B_x)^2) dx \\
|
||||||
|
S = S_x S_y S_z
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`overlap_x_abs <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/one_e_integration.irp.f#L175>`_
|
||||||
|
.. math ::
|
||||||
|
.br
|
||||||
|
\int_{-infty}^{+infty} (x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) dx
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`particles_operators <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_excitations_operators.irp.f#L4>`_
|
||||||
|
holes_operators represents an array of integers where all the holes have
|
||||||
|
been done going from psi_ref to psi_non_ref
|
||||||
|
particles_operators represents an array of integers where all the particles have
|
||||||
|
been done going from psi_ref to psi_non_ref
|
||||||
|
|
||||||
|
|
||||||
|
`progress_active <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L29>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_bar <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L27>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_timeout <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L28>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_title <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L31>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`progress_value <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L30>`_
|
||||||
|
Current status for displaying progress bars. Global variable.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_coef_ref_diagonalized <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L128>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L18>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref_coef <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L19>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref_coef_restart <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L62>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
But this is with respect to the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L104>`_
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
||||||
|
function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref_restart <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L61>`_
|
||||||
|
Set of determinants which are not part of the reference, defined from the application
|
||||||
|
of the reference bitmask on the determinants.
|
||||||
|
idx_non_ref gives the indice of the determinant in psi_det.
|
||||||
|
But this is with respect to the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_non_ref_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L103>`_
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
||||||
|
function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L5>`_
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
||||||
|
function.
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_energy <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L147>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_energy_diagonalized <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L129>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`psi_ref_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/psi_ref_utils.irp.f#L4>`_
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave
|
||||||
|
function.
|
||||||
|
|
||||||
|
|
||||||
|
`recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L363>`_
|
||||||
|
Recenter two polynomials
|
||||||
|
|
||||||
|
|
||||||
|
`rint <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L436>`_
|
||||||
|
.. math::
|
||||||
|
.br
|
||||||
|
\int_0^1 dx \exp(-p x^2) x^n
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`rint1 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L596>`_
|
||||||
|
Standard version of rint
|
||||||
|
|
||||||
|
|
||||||
|
`rint_large_n <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L565>`_
|
||||||
|
Version of rint for large values of n
|
||||||
|
|
||||||
|
|
||||||
|
`rint_sum <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/integration.irp.f#L484>`_
|
||||||
|
Needed for the calculation of two-electron integrals.
|
||||||
|
|
||||||
|
|
||||||
|
`rinteg <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L47>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`rintgauss <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L31>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`run_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L45>`_
|
||||||
|
Display a progress bar with documentation of what is happening
|
||||||
|
|
||||||
|
|
||||||
|
`sabpartial <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/need.irp.f#L2>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`set_order <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_216#L2>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
|
||||||
|
|
||||||
|
`set_order_big <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_283#L35>`_
|
||||||
|
array A has already been sorted, and iorder has contains the new order of
|
||||||
|
elements of A. This subroutine changes the order of x to match the new order of A.
|
||||||
|
This is a version for very large arrays where the indices need
|
||||||
|
to be in integer*8 format
|
||||||
|
|
||||||
|
|
||||||
|
`set_zero_extra_diag <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/LinearAlgebra.irp.f#L433>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`sort <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/sort.irp.f_template_184#L161>`_
|
||||||
|
Sort array x(isize).
|
||||||
|
iorder in input should be (1,2,3,...,isize), and in output
|
||||||
|
contains the new order of the elements.
|
||||||
|
|
||||||
|
|
||||||
|
`start_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L1>`_
|
||||||
|
Starts the progress bar
|
||||||
|
|
||||||
|
|
||||||
|
`stop_progress <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/progress.irp.f#L19>`_
|
||||||
|
Stop the progress bar
|
||||||
|
|
||||||
|
|
||||||
|
`trap_signals <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/abort.irp.f#L19>`_
|
||||||
|
What to do when a signal is caught. Here, trap Ctrl-C and call the control_C subroutine.
|
||||||
|
|
||||||
|
|
||||||
|
`u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L325>`_
|
||||||
|
Compute <u|u>
|
||||||
|
|
||||||
|
|
||||||
|
`u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L299>`_
|
||||||
|
Compute <u|v>
|
||||||
|
|
||||||
|
|
||||||
|
`wall_time <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L268>`_
|
||||||
|
The equivalent of cpu_time, but for the wall time.
|
||||||
|
|
||||||
|
|
||||||
|
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/plugins/Psiref_Utils/util.irp.f#L243>`_
|
||||||
|
Write the last git commit in file iunit.
|
||||||
|
|
||||||
|
@ -1,4 +1,116 @@
|
|||||||
|
|
||||||
|
|
||||||
subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_generator, iproc_in $parameters )
|
subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_generator, iproc_in $parameters )
|
||||||
|
|
||||||
|
integer(bit_kind), intent(in) :: key_in(N_int, 2), hole_1(N_int, 2), hole_2(N_int, 2)
|
||||||
|
integer(bit_kind), intent(in) :: particl_1(N_int, 2), particl_2(N_int, 2)
|
||||||
|
integer(bit_kind) :: p1_mask(N_int, 2), p2_mask(N_int, 2)
|
||||||
|
integer,intent(in) :: i_generator,iproc_in
|
||||||
|
integer(bit_kind) :: status(N_int*bit_kind_size, 2)
|
||||||
|
integer :: highest, p1,p2,sp,ni,i,mi
|
||||||
|
$declarations
|
||||||
|
|
||||||
|
|
||||||
|
highest = 0
|
||||||
|
status(:,:) = 0
|
||||||
|
do sp=1,2
|
||||||
|
do ni=1,N_int
|
||||||
|
do i=1,bit_kind_size
|
||||||
|
if(iand(1,ishft(key_in(ni, sp), -(i-1))) == 0) then
|
||||||
|
cycle
|
||||||
|
end if
|
||||||
|
mi = (ni-1)*bit_kind_size+i
|
||||||
|
status(mi, sp) = iand(1,ishft(hole_1(ni, sp), -(i-1)))
|
||||||
|
status(mi, sp) = status(mi, sp) + 2*iand(1,ishft(hole_2(ni, sp), -(i-1)))
|
||||||
|
if(status(mi, sp) /= 0 .and. mi > highest) then
|
||||||
|
highest = mi
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
|
||||||
|
do sp=1,2
|
||||||
|
do p1=1,highest
|
||||||
|
if(status(p1, sp) == 0) then
|
||||||
|
cycle
|
||||||
|
end if
|
||||||
|
do p2=1,highest
|
||||||
|
if(status(p2, sp) == 0) then
|
||||||
|
cycle
|
||||||
|
end if
|
||||||
|
if((status(p1, sp) == 1 .and. status(p2, sp) > 1) .or. &
|
||||||
|
(status(p1, sp) == 2 .and. status(p2, sp) == 3) .or. &
|
||||||
|
(status(p1, sp) == 3 .and. status(p2, sp) == 3 .and. p2 > p1)) then
|
||||||
|
call $subroutine_diexcP(key_in, sp, p1, particl_1, sp, p2, particl_2, i_generator, iproc_in $parameters )
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
do p1=1,highest
|
||||||
|
if(status(p1, 1) == 0) then
|
||||||
|
cycle
|
||||||
|
end if
|
||||||
|
do p2=1,highest
|
||||||
|
if(status(p2, 2) == 0) then
|
||||||
|
cycle
|
||||||
|
end if
|
||||||
|
if((status(p1, 1) == 3) .or. &
|
||||||
|
(status(p1, 1) == 1 .and. status(p2, 2) >= 2) .or. &
|
||||||
|
(status(p1, 1) == 2 .and. status(p2, 2) /= 2)) then
|
||||||
|
|
||||||
|
call $subroutine_diexcP(key_in, 1, p1, particl_1, 2, p2, particl_2, i_generator, iproc_in $parameters )
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
|
||||||
|
subroutine $subroutine_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, i_generator, iproc_in $parameters )
|
||||||
|
|
||||||
|
integer(bit_kind), intent(in) :: key_in(N_int, 2), particl_1(N_int, 2), particl_2(N_int, 2)
|
||||||
|
integer(bit_kind) :: p1_mask(N_int, 2), p2_mask(N_int, 2), key_mask(N_int, 2)
|
||||||
|
integer,intent(in) :: fh1,fh2,fs1,fs2,i_generator,iproc_in
|
||||||
|
integer(bit_kind) :: miniList(N_int, 2, N_det)
|
||||||
|
integer :: n_minilist, n_alpha, n_beta, deg(2), i, ni
|
||||||
|
$declarations
|
||||||
|
|
||||||
|
p1_mask(:,:) = 0
|
||||||
|
p2_mask(:,:) = 0
|
||||||
|
p1_mask(fh1/bit_kind_size + 1, fs1) = 2**(mod(fh1-1,bit_kind_size))
|
||||||
|
p2_mask(fh2/bit_kind_size + 1, fs2) = 2**(mod(fh2-1,bit_kind_size))
|
||||||
|
|
||||||
|
! n_alpha = 0
|
||||||
|
! n_beta = 0
|
||||||
|
key_mask(:,:) = key_in(:,:)
|
||||||
|
key_mask(fh1/bit_kind_size + 1, fs1) -= 2**(mod(fh1-1,bit_kind_size))
|
||||||
|
key_mask(fh2/bit_kind_size + 1, fs2) -= 2**(mod(fh2-1,bit_kind_size))
|
||||||
|
!
|
||||||
|
! do i=1,N_int
|
||||||
|
! n_alpha = n_alpha + popcnt(key_mask(i, 1))
|
||||||
|
! n_beta = n_beta + popcnt(key_mask(i, 2))
|
||||||
|
! end do
|
||||||
|
!
|
||||||
|
! do i=1, N_det
|
||||||
|
! deg(1) = n_alpha
|
||||||
|
! deg(2) = n_beta
|
||||||
|
!
|
||||||
|
! do ni = 1, N_int
|
||||||
|
! ! deg(1) = deg(1) - popcnt(iand(key_mask(ni, 1), psi_non_ref(ni, 1, i)))
|
||||||
|
! ! deg(2) = deg(2) - popcnt(iand(key_mask(ni, 2), psi_non_ref(ni, 2, i)))
|
||||||
|
! end do
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! if(deg(1) + deg(2) <= 2) then
|
||||||
|
! ! ndet_out = ndet_out + 1
|
||||||
|
! ! idx(ndet_out) = i
|
||||||
|
! end if
|
||||||
|
! end do
|
||||||
|
|
||||||
|
call $subroutine_diexcOrg(key_in, key_mask, p1_mask, particl_1, p2_mask, particl_2, i_generator, iproc_in $parameters )
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
|
||||||
|
subroutine $subroutine_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, i_generator, iproc_in $parameters )
|
||||||
use omp_lib
|
use omp_lib
|
||||||
use bitmasks
|
use bitmasks
|
||||||
implicit none
|
implicit none
|
||||||
@ -10,7 +122,7 @@ subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_gene
|
|||||||
integer,parameter :: size_max = $size_max
|
integer,parameter :: size_max = $size_max
|
||||||
$declarations
|
$declarations
|
||||||
integer ,intent(in) :: i_generator
|
integer ,intent(in) :: i_generator
|
||||||
integer(bit_kind),intent(in) :: key_in(N_int,2)
|
integer(bit_kind),intent(in) :: key_in(N_int,2), key_mask(N_int, 2)
|
||||||
integer(bit_kind),allocatable :: keys_out(:,:,:)
|
integer(bit_kind),allocatable :: keys_out(:,:,:)
|
||||||
integer(bit_kind), intent(in) :: hole_1(N_int,2), particl_1(N_int,2)
|
integer(bit_kind), intent(in) :: hole_1(N_int,2), particl_1(N_int,2)
|
||||||
integer(bit_kind), intent(in) :: hole_2(N_int,2), particl_2(N_int,2)
|
integer(bit_kind), intent(in) :: hole_2(N_int,2), particl_2(N_int,2)
|
||||||
@ -290,13 +402,18 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc_in $pa
|
|||||||
double precision :: diag_H_mat_elem
|
double precision :: diag_H_mat_elem
|
||||||
integer(omp_lock_kind), save :: lck, ifirst=0
|
integer(omp_lock_kind), save :: lck, ifirst=0
|
||||||
integer :: iproc
|
integer :: iproc
|
||||||
|
|
||||||
|
integer(bit_kind) :: key_mask(N_int, 2)
|
||||||
|
|
||||||
logical :: check_double_excitation
|
logical :: check_double_excitation
|
||||||
|
|
||||||
|
key_mask(:,:) = 0_8
|
||||||
|
|
||||||
iproc = iproc_in
|
iproc = iproc_in
|
||||||
|
|
||||||
check_double_excitation = .True.
|
check_double_excitation = .True.
|
||||||
$check_double_excitation
|
$check_double_excitation
|
||||||
|
|
||||||
|
|
||||||
if (ifirst == 0) then
|
if (ifirst == 0) then
|
||||||
ifirst=1
|
ifirst=1
|
||||||
|
@ -54,7 +54,11 @@ Documentation
|
|||||||
.. by the `update_README.py` script.
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`a_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1109>`_
|
||||||
Needed for diag_H_mat_elem
|
Needed for diag_H_mat_elem
|
||||||
|
|
||||||
|
|
||||||
|
`abs_psi_coef_max <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L451>`_
|
||||||
Max and min values of the coefficients
|
Max and min values of the coefficients
|
||||||
|
|
||||||
|
|
||||||
@ -62,7 +66,7 @@ Documentation
|
|||||||
Max and min values of the coefficients
|
Max and min values of the coefficients
|
||||||
|
|
||||||
|
|
||||||
`ac_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1153>`_
|
`ac_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1154>`_
|
||||||
Needed for diag_H_mat_elem
|
Needed for diag_H_mat_elem
|
||||||
|
|
||||||
|
|
||||||
@ -225,7 +229,7 @@ Documentation
|
|||||||
det_coef
|
det_coef
|
||||||
|
|
||||||
|
|
||||||
`det_connections <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1283>`_
|
`det_connections <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1284>`_
|
||||||
Build connection proxy between determinants
|
Build connection proxy between determinants
|
||||||
|
|
||||||
|
|
||||||
@ -249,7 +253,7 @@ Documentation
|
|||||||
Diagonalization algorithm (Davidson or Lapack)
|
Diagonalization algorithm (Davidson or Lapack)
|
||||||
|
|
||||||
|
|
||||||
`diag_h_mat_elem <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1046>`_
|
`diag_h_mat_elem <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1047>`_
|
||||||
Computes <i|H|i>
|
Computes <i|H|i>
|
||||||
|
|
||||||
|
|
||||||
@ -367,7 +371,7 @@ Documentation
|
|||||||
Returns the excitation degree between two determinants
|
Returns the excitation degree between two determinants
|
||||||
|
|
||||||
|
|
||||||
`get_excitation_degree_vector <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L951>`_
|
`get_excitation_degree_vector <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L952>`_
|
||||||
Applies get_excitation_degree to an array of determinants
|
Applies get_excitation_degree to an array of determinants
|
||||||
|
|
||||||
|
|
||||||
@ -387,7 +391,7 @@ Documentation
|
|||||||
Returns the excitation operator between two singly excited determinants and the phase
|
Returns the excitation operator between two singly excited determinants and the phase
|
||||||
|
|
||||||
|
|
||||||
`get_occ_from_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1201>`_
|
`get_occ_from_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1202>`_
|
||||||
Returns a list of occupation numbers from a bitstring
|
Returns a list of occupation numbers from a bitstring
|
||||||
|
|
||||||
|
|
||||||
@ -421,7 +425,7 @@ Documentation
|
|||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1217>`_
|
`h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1218>`_
|
||||||
Computes v_0 = H|u_0>
|
Computes v_0 = H|u_0>
|
||||||
.br
|
.br
|
||||||
n : number of determinants
|
n : number of determinants
|
||||||
@ -445,7 +449,7 @@ Documentation
|
|||||||
<key|H|psi> for the various Nstates
|
<key|H|psi> for the various Nstates
|
||||||
|
|
||||||
|
|
||||||
`i_h_psi_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L848>`_
|
`i_h_psi_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L849>`_
|
||||||
<key|H|psi> for the various Nstate
|
<key|H|psi> for the various Nstate
|
||||||
.br
|
.br
|
||||||
returns in addition
|
returns in addition
|
||||||
@ -459,7 +463,7 @@ Documentation
|
|||||||
to repeat the excitations
|
to repeat the excitations
|
||||||
|
|
||||||
|
|
||||||
`i_h_psi_sc2_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L895>`_
|
`i_h_psi_sc2_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L896>`_
|
||||||
<key|H|psi> for the various Nstate
|
<key|H|psi> for the various Nstate
|
||||||
.br
|
.br
|
||||||
returns in addition
|
returns in addition
|
||||||
@ -473,7 +477,7 @@ Documentation
|
|||||||
to repeat the excitations
|
to repeat the excitations
|
||||||
|
|
||||||
|
|
||||||
`i_h_psi_sec_ord <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L801>`_
|
`i_h_psi_sec_ord <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L802>`_
|
||||||
<key|H|psi> for the various Nstates
|
<key|H|psi> for the various Nstates
|
||||||
|
|
||||||
|
|
||||||
@ -520,7 +524,7 @@ Documentation
|
|||||||
Energy of the reference bitmask used in Slater rules
|
Energy of the reference bitmask used in Slater rules
|
||||||
|
|
||||||
|
|
||||||
`n_con_int <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1275>`_
|
`n_con_int <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1276>`_
|
||||||
Number of integers to represent the connections between determinants
|
Number of integers to represent the connections between determinants
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ integer function connected_to_ref(key,keys,Nint,N_past_in,Ndet)
|
|||||||
|
|
||||||
! output : 0 : not connected
|
! output : 0 : not connected
|
||||||
! i : connected to determinant i of the past
|
! i : connected to determinant i of the past
|
||||||
! -i : is the ith determinant of the refernce wf keys
|
! -i : is the ith determinant of the reference wf keys
|
||||||
|
|
||||||
ASSERT (Nint > 0)
|
ASSERT (Nint > 0)
|
||||||
ASSERT (Nint == N_int)
|
ASSERT (Nint == N_int)
|
||||||
|
@ -787,6 +787,7 @@ subroutine i_H_psi(key,keys,coef,Nint,Ndet,Ndet_max,Nstate,i_H_psi_array)
|
|||||||
ASSERT (Ndet > 0)
|
ASSERT (Ndet > 0)
|
||||||
ASSERT (Ndet_max >= Ndet)
|
ASSERT (Ndet_max >= Ndet)
|
||||||
i_H_psi_array = 0.d0
|
i_H_psi_array = 0.d0
|
||||||
|
|
||||||
call filter_connected_i_H_psi0(keys,key,Nint,Ndet,idx)
|
call filter_connected_i_H_psi0(keys,key,Nint,Ndet,idx)
|
||||||
do ii=1,idx(0)
|
do ii=1,idx(0)
|
||||||
i = idx(ii)
|
i = idx(ii)
|
||||||
|
@ -170,3 +170,147 @@ Documentation
|
|||||||
Write a time stamp in the output for chronological reconstruction
|
Write a time stamp in the output for chronological reconstruction
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
.. Do not edit this section It was auto-generated
|
||||||
|
.. by the `update_README.py` script.
|
||||||
|
|
||||||
|
|
||||||
|
`ezfio_filename <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/ezfio.irp.f#L1>`_
|
||||||
|
Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment
|
||||||
|
variable if it is set, or as the 1st argument of the command line.
|
||||||
|
|
||||||
|
|
||||||
|
`getunitandopen <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/get_unit_and_open.irp.f#L1>`_
|
||||||
|
:f:
|
||||||
|
file name
|
||||||
|
.br
|
||||||
|
:mode:
|
||||||
|
'R' : READ, UNFORMATTED
|
||||||
|
'W' : WRITE, UNFORMATTED
|
||||||
|
'r' : READ, FORMATTED
|
||||||
|
'w' : WRITE, FORMATTED
|
||||||
|
'a' : APPEND, FORMATTED
|
||||||
|
'x' : READ/WRITE, FORMATTED
|
||||||
|
.br
|
||||||
|
|
||||||
|
|
||||||
|
`output_ao_basis <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L1>`_
|
||||||
|
Output file for AO_Basis
|
||||||
|
|
||||||
|
|
||||||
|
`output_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L21>`_
|
||||||
|
Output file for Bitmask
|
||||||
|
|
||||||
|
|
||||||
|
`output_cas_sd <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L41>`_
|
||||||
|
Output file for CAS_SD
|
||||||
|
|
||||||
|
|
||||||
|
`output_cpu_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L2>`_
|
||||||
|
Initial CPU and wall times when printing in the output files
|
||||||
|
|
||||||
|
|
||||||
|
`output_determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L61>`_
|
||||||
|
Output file for Determinants
|
||||||
|
|
||||||
|
|
||||||
|
`output_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L81>`_
|
||||||
|
Output file for Electrons
|
||||||
|
|
||||||
|
|
||||||
|
`output_ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L101>`_
|
||||||
|
Output file for Ezfio_files
|
||||||
|
|
||||||
|
|
||||||
|
`output_full_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L121>`_
|
||||||
|
Output file for Full_CI
|
||||||
|
|
||||||
|
|
||||||
|
`output_generators_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L141>`_
|
||||||
|
Output file for Generators_CAS
|
||||||
|
|
||||||
|
|
||||||
|
`output_generators_full <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L161>`_
|
||||||
|
Output file for Generators_full
|
||||||
|
|
||||||
|
|
||||||
|
`output_hartree_fock <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L181>`_
|
||||||
|
Output file for Hartree_Fock
|
||||||
|
|
||||||
|
|
||||||
|
`output_integrals_bielec <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L201>`_
|
||||||
|
Output file for Integrals_Bielec
|
||||||
|
|
||||||
|
|
||||||
|
`output_integrals_monoelec <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L221>`_
|
||||||
|
Output file for Integrals_Monoelec
|
||||||
|
|
||||||
|
|
||||||
|
`output_mo_basis <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L241>`_
|
||||||
|
Output file for MO_Basis
|
||||||
|
|
||||||
|
|
||||||
|
`output_moguess <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L261>`_
|
||||||
|
Output file for MOGuess
|
||||||
|
|
||||||
|
|
||||||
|
`output_mrcc_cassd <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L281>`_
|
||||||
|
Output file for MRCC_CASSD
|
||||||
|
|
||||||
|
|
||||||
|
`output_mrcc_utils <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L301>`_
|
||||||
|
Output file for MRCC_Utils
|
||||||
|
|
||||||
|
|
||||||
|
`output_nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L321>`_
|
||||||
|
Output file for Nuclei
|
||||||
|
|
||||||
|
|
||||||
|
`output_perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L341>`_
|
||||||
|
Output file for Perturbation
|
||||||
|
|
||||||
|
|
||||||
|
`output_properties <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L361>`_
|
||||||
|
Output file for Properties
|
||||||
|
|
||||||
|
|
||||||
|
`output_pseudo <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L381>`_
|
||||||
|
Output file for Pseudo
|
||||||
|
|
||||||
|
|
||||||
|
`output_psiref_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L401>`_
|
||||||
|
Output file for Psiref_CAS
|
||||||
|
|
||||||
|
|
||||||
|
`output_psiref_utils <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L421>`_
|
||||||
|
Output file for Psiref_Utils
|
||||||
|
|
||||||
|
|
||||||
|
`output_selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L441>`_
|
||||||
|
Output file for Selectors_full
|
||||||
|
|
||||||
|
|
||||||
|
`output_utils <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f_shell_40#L461>`_
|
||||||
|
Output file for Utils
|
||||||
|
|
||||||
|
|
||||||
|
`output_wall_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L1>`_
|
||||||
|
Initial CPU and wall times when printing in the output files
|
||||||
|
|
||||||
|
|
||||||
|
`write_bool <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L88>`_
|
||||||
|
Write an logical value in output
|
||||||
|
|
||||||
|
|
||||||
|
`write_double <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L58>`_
|
||||||
|
Write a double precision value in output
|
||||||
|
|
||||||
|
|
||||||
|
`write_int <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L73>`_
|
||||||
|
Write an integer value in output
|
||||||
|
|
||||||
|
|
||||||
|
`write_time <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files/output.irp.f#L42>`_
|
||||||
|
Write a time stamp in the output for chronological reconstruction
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user