mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-22 20:35:19 +01:00
no more connected_to_ref in mrcc_dress + cleaning
This commit is contained in:
parent
48c91aeda7
commit
1064e7470b
@ -10,7 +10,7 @@
|
||||
#
|
||||
#
|
||||
[COMMON]
|
||||
FC : gfortran -g -ffree-line-length-none -mavx -I .
|
||||
FC : gfortran -g -ffree-line-length-none -I .
|
||||
LAPACK_LIB : -llapack -lblas
|
||||
IRPF90 : irpf90
|
||||
IRPF90_FLAGS : --ninja --align=32
|
||||
|
@ -0,0 +1,821 @@
|
||||
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#L17>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`davidson_diag_hjj_mrcc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/davidson.irp.f#L59>`_
|
||||
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#L4>`_
|
||||
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
|
||||
|
||||
|
||||
`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#L266>`_
|
||||
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
|
||||
|
||||
|
||||
`gen_det_idx <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L258>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`gen_det_shortcut <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L256>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`gen_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L255>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`gen_det_version <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/mrcc_dress.irp.f#L257>`_
|
||||
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#L553>`_
|
||||
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#L127>`_
|
||||
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#L100>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`h_apply_mrcc_monoexc <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/H_apply.irp.f_shell_27#L399>`_
|
||||
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#L371>`_
|
||||
Computes v_0 = H|u_0>
|
||||
.br
|
||||
n : number of determinants
|
||||
.br
|
||||
H_jj : array of <j|H|j>
|
||||
|
||||
|
||||
`h_u_0_mrcc_org <http://github.com/LCPQ/quantum_package/tree/master/plugins/MRCC_Utils/davidson.irp.f#L474>`_
|
||||
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#L65>`_
|
||||
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#L4>`_
|
||||
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.
|
||||
|
||||
|
||||
`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
|
||||
|
||||
|
||||
`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.
|
||||
|
@ -431,7 +431,6 @@ subroutine H_u_0_mrcc(v_0,u_0,H_jj,n,keys_tmp,shortcut,sort_idx,Nint,istate)
|
||||
do ii=shortcut(sh),shortcut(sh+1)-1
|
||||
idx(0) = ii
|
||||
|
||||
|
||||
!call filter_connected_davidson_mwen(keys_tmp,shortcut,keys_tmp(1,1,ii),Nint,ii-1,idx)
|
||||
call filter_connected_davidson_warp(keys_tmp,warp,keys_tmp(1,1,ii),Nint,ii-1,idx)
|
||||
i = sort_idx(ii)
|
||||
|
@ -91,22 +91,42 @@ subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n
|
||||
integer :: iint, ipos
|
||||
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
|
||||
integer(bit_kind),allocatable :: miniList(:,:,:)
|
||||
integer(bit_kind),intent(in) :: key_mask(Nint, 2)
|
||||
integer,allocatable :: idx_miniList(:)
|
||||
integer :: N_miniList, ni
|
||||
|
||||
|
||||
|
||||
! N_miniList = 0
|
||||
! do i=i_generator-1,1,-1
|
||||
! k = popcnt(key_mask(1,1)) + popcnt(key_mask(1,2)) - popcnt(iand(key_mask(1,1), psi_det_generators(1,1,i))) - popcnt(iand(key_mask(1,2), psi_det_generators(1,2,i)))
|
||||
! if(k == 0) then
|
||||
! return
|
||||
! end if
|
||||
! if(k <= 2) then
|
||||
! N_minilist += 1
|
||||
! miniList(:,:,N_minilist) = psi_det_generators(:,:,i)
|
||||
! end if
|
||||
! end do
|
||||
allocate(miniList(Nint, 2, max(N_det_generators, N_det_non_ref)), idx_miniList(max(N_det_generators, N_det_non_ref)))
|
||||
|
||||
l = 0
|
||||
do ni = 1,Nint
|
||||
l += popcnt(key_mask(ni,1)) + popcnt(key_mask(ni,2))
|
||||
end do
|
||||
|
||||
if(l == 0) then
|
||||
N_miniList = i_generator-1
|
||||
miniList(:,:,:N_miniList) = psi_det_generators(:,:,:N_minilist)
|
||||
else
|
||||
N_miniList = 0
|
||||
do i=i_generator-1,1,-1
|
||||
k = l
|
||||
do ni=1,nint
|
||||
k -= popcnt(iand(key_mask(ni,1), psi_det_generators(ni,1,i))) + popcnt(iand(key_mask(ni,2), psi_det_generators(ni,2,i)))
|
||||
end do
|
||||
|
||||
if(k == 0) then
|
||||
deallocate(miniList, idx_miniList)
|
||||
return
|
||||
end if
|
||||
if(k <= 2) then
|
||||
N_minilist += 1
|
||||
miniList(:,:,N_minilist) = psi_det_generators(:,:,i)
|
||||
end if
|
||||
end do
|
||||
end if
|
||||
|
||||
|
||||
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq,miniList,N_minilist)
|
||||
|
||||
@ -227,71 +247,19 @@ subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_ref, Ndet_non_ref,i_generator,n
|
||||
enddo
|
||||
enddo
|
||||
deallocate (dIa_hla)
|
||||
deallocate(miniList, idx_miniList)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
! subroutine mrcc_dress_simple(delta_ij_non_ref_,Ndet_non_ref,i_generator,n_selected,det_buffer,Nint,iproc)
|
||||
! use bitmasks
|
||||
! implicit none
|
||||
!
|
||||
! integer, intent(in) :: i_generator,n_selected, Nint, iproc
|
||||
! integer, intent(in) :: Ndet_non_ref
|
||||
! double precision, intent(inout) :: delta_ij_non_ref_(Ndet_non_ref,Ndet_non_ref,*)
|
||||
!
|
||||
! integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected)
|
||||
! integer :: i,j,k,m
|
||||
! integer :: new_size
|
||||
! integer :: degree(psi_det_size)
|
||||
! integer :: idx(0:psi_det_size)
|
||||
! logical :: good
|
||||
!
|
||||
! integer(bit_kind) :: tq(Nint,2,n_selected)
|
||||
! integer :: N_tq, c_ref
|
||||
! integer :: connected_to_ref
|
||||
!
|
||||
!
|
||||
! call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
||||
!
|
||||
! ! Compute <k|H|a><a|H|j> / (E0 - Haa)
|
||||
! double precision :: hka, haa
|
||||
! double precision :: haj
|
||||
! double precision :: f(N_states)
|
||||
!
|
||||
! do i=1,N_tq
|
||||
! call get_excitation_degree_vector(psi_non_ref,tq(1,1,i),degree,Nint,Ndet_non_ref,idx)
|
||||
! call i_h_j(tq(1,1,i),tq(1,1,i),Nint,haa)
|
||||
! do m=1,N_states
|
||||
! f(m) = 1.d0/(ci_electronic_energy(m)-haa)
|
||||
! enddo
|
||||
! do k=1,idx(0)
|
||||
! call i_h_j(tq(1,1,i),psi_non_ref(1,1,idx(k)),Nint,hka)
|
||||
! do j=k,idx(0)
|
||||
! call i_h_j(tq(1,1,i),psi_non_ref(1,1,idx(j)),Nint,haj)
|
||||
! do m=1,N_states
|
||||
! delta_ij_non_ref_(idx(k), idx(j),m) += haj*hka* f(m)
|
||||
! delta_ij_non_ref_(idx(j), idx(k),m) += haj*hka* f(m)
|
||||
! enddo
|
||||
! enddo
|
||||
! enddo
|
||||
! enddo
|
||||
! end
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), gen_det_sorted, (N_int,2,N_det_generators,2) ]
|
||||
&BEGIN_PROVIDER [ integer, gen_det_shortcut, (0:N_det_generators,2) ]
|
||||
&BEGIN_PROVIDER [ integer, gen_det_version, (N_int, N_det_generators,2) ]
|
||||
&BEGIN_PROVIDER [ integer, gen_det_idx, (N_det_generators,2) ]
|
||||
|
||||
gen_det_sorted(:,:,:,1) = psi_det_generators(:,:,:N_det_generators)
|
||||
gen_det_sorted(:,:,:,2) = psi_det_generators(:,:,:N_det_generators)
|
||||
call sort_dets_ab_v(gen_det_sorted(:,:,:,1), gen_det_idx(:,1), gen_det_shortcut(0:,1), gen_det_version(:,:,1), N_det_generators, N_int)
|
||||
call sort_dets_ba_v(gen_det_sorted(:,:,:,2), gen_det_idx(:,2), gen_det_shortcut(0:,2), gen_det_version(:,:,2), N_det_generators, N_int)
|
||||
print *, " *********************** ", gen_det_shortcut(0,:)
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
@ -311,166 +279,32 @@ subroutine find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq
|
||||
|
||||
integer(bit_kind), intent(out) :: tq(Nint,2,n_selected)
|
||||
integer, intent(out) :: N_tq
|
||||
integer :: c_ref
|
||||
integer :: connected_to_ref
|
||||
|
||||
|
||||
integer :: na, nb, nt,mex, lex, sh,ni
|
||||
integer :: nt,ni
|
||||
|
||||
|
||||
integer(bit_kind),intent(in) :: miniList(Nint,2,N_det_generators)
|
||||
integer(bit_kind),intent(in) :: miniList(Nint,2,N_det_generators)
|
||||
integer,intent(in) :: N_miniList
|
||||
|
||||
|
||||
|
||||
|
||||
N_tq = 0
|
||||
do i=1,N_selected
|
||||
! c_ref = 0
|
||||
! do j=1,N_miniList
|
||||
! na = popcnt(xor(miniList(1,1,j), det_buffer(1,1,i)))
|
||||
! nb = popcnt(xor(miniList(1,2,j), det_buffer(1,2,i)))
|
||||
! if(na+nb <= 4) then
|
||||
! c_ref = 1
|
||||
! exit
|
||||
! end if
|
||||
! end do
|
||||
|
||||
|
||||
!
|
||||
! if(Nint /= 1) then
|
||||
! c_ref = 0
|
||||
! na = 0
|
||||
! nb = 0
|
||||
! do ni=1,Nint
|
||||
! na += popcnt(xor(det_buffer(ni,1,i), psi_ref(ni,1,1)))
|
||||
! nb += popcnt(xor(det_buffer(ni,2,i), psi_ref(ni,2,1)))
|
||||
! end do
|
||||
! if(na > nb) then
|
||||
! mex = 1
|
||||
! lex = 2
|
||||
! else
|
||||
! mex = 2
|
||||
! lex = 1
|
||||
! end if
|
||||
!
|
||||
!
|
||||
! sh_loop : do sh=1,gen_det_shortcut(0,lex)
|
||||
! do ni=1,Nint
|
||||
! if(det_buffer(ni,lex,i) /= gen_det_sorted(ni,lex,gen_det_shortcut(sh, lex),lex)) then
|
||||
! cycle sh_loop
|
||||
! end if
|
||||
! end do
|
||||
! do j=gen_det_shortcut(sh,lex),gen_det_shortcut(sh+1,lex)-1
|
||||
! if(gen_det_idx(j,lex) >= i_generator) then
|
||||
! cycle
|
||||
! end if
|
||||
! nt = 0
|
||||
! do ni=1,nint
|
||||
! nt += popcnt(xor(det_buffer(ni,mex,i), gen_det_sorted(ni,mex,j,lex)))
|
||||
! end do
|
||||
! if(nt <= 4) then
|
||||
! ! if(gen_det_idx(j,lex) < i_generator) then
|
||||
! c_ref = 1!gen_det_idx(j,lex)
|
||||
! exit sh_loop
|
||||
! ! end if
|
||||
! end if
|
||||
! end do
|
||||
! exit sh_loop
|
||||
! end do sh_loop
|
||||
!
|
||||
! if(c_ref == 0) then
|
||||
! sh_loop2 : do sh = 1,gen_det_shortcut(0,mex)
|
||||
! na = 0
|
||||
! do ni=1,Nint
|
||||
! na += popcnt(xor(det_buffer(ni,mex,i), gen_det_sorted(ni,mex,gen_det_shortcut(sh, mex),mex)))
|
||||
! end do
|
||||
! if(na > 2) then
|
||||
! cycle
|
||||
! end if
|
||||
|
||||
! do j=gen_det_shortcut(sh, mex), gen_det_shortcut(sh+1,mex)-1
|
||||
! if(gen_det_idx(j,mex) >= i_generator) then
|
||||
! cycle
|
||||
! end if
|
||||
! nt = na
|
||||
! do ni=1,Nint
|
||||
! nt += popcnt(xor(det_buffer(ni,lex,i), gen_det_sorted(ni,lex,j,mex)))
|
||||
! end do
|
||||
! if(nt <= 4) then
|
||||
! ! if(gen_det_idx(j,mex) < i_generator) then
|
||||
! c_ref = 2!gen_det_idx(j,mex)
|
||||
! exit sh_loop2
|
||||
! ! end if
|
||||
! end if
|
||||
! end do
|
||||
! end do sh_loop2
|
||||
! end if
|
||||
! else
|
||||
! c_ref = 0
|
||||
! na = popcnt(xor(det_buffer(1,1,i), psi_ref(1,1,1)))
|
||||
! nb = popcnt(xor(det_buffer(1,2,i), psi_ref(1,2,1)))
|
||||
! if(na > nb) then
|
||||
! mex = 1
|
||||
! lex = 2
|
||||
! else
|
||||
! mex = 2
|
||||
! lex = 1
|
||||
! end if
|
||||
!
|
||||
!
|
||||
! sh_loop3 : do sh=1,gen_det_shortcut(0,lex)
|
||||
! if(det_buffer(1,lex,i) /= gen_det_version(1,sh,lex)) then!gen_det_sorted(1,lex,gen_det_shortcut(sh, lex),lex)) then
|
||||
! cycle sh_loop3
|
||||
! end if
|
||||
! do j=gen_det_shortcut(sh,lex),gen_det_shortcut(sh+1,lex)-1
|
||||
! if(gen_det_idx(j,lex) >= i_generator) then
|
||||
! cycle
|
||||
! end if
|
||||
! nt = popcnt(xor(det_buffer(1,mex,i), gen_det_sorted(1,mex,j,lex)))
|
||||
! if(nt <= 4) then
|
||||
! ! if(gen_det_idx(j,lex) < i_generator) then
|
||||
! c_ref = 1!gen_det_idx(j,lex)
|
||||
! exit sh_loop3
|
||||
! ! end if
|
||||
! end if
|
||||
! end do
|
||||
! exit sh_loop3
|
||||
! end do sh_loop3
|
||||
!
|
||||
! if(c_ref == 0) then
|
||||
! sh_loop4 : do sh = 1,gen_det_shortcut(0,mex)
|
||||
! na = popcnt(xor(det_buffer(1,mex,i),gen_det_version(1,sh,mex)))! gen_det_sorted(1,mex,gen_det_shortcut(sh, mex),mex)))
|
||||
! if(na > 2) then
|
||||
! cycle sh_loop4
|
||||
! end if
|
||||
! do j=gen_det_shortcut(sh, mex), gen_det_shortcut(sh+1,mex)-1
|
||||
! if(gen_det_idx(j,mex) >= i_generator) then
|
||||
! cycle
|
||||
! end if
|
||||
! nt = na
|
||||
! nt += popcnt(xor(det_buffer(1,lex,i), gen_det_sorted(1,lex,j,mex)))
|
||||
! if(nt <= 4) then
|
||||
! ! if(gen_det_idx(j,mex) < i_generator) then
|
||||
! c_ref = 2!gen_det_idx(j,mex)
|
||||
! exit sh_loop4
|
||||
! ! end if
|
||||
! end if
|
||||
! end do
|
||||
! end do sh_loop4
|
||||
! end if
|
||||
i_loop : do i=1,N_selected
|
||||
do j=1,N_miniList
|
||||
nt = 0
|
||||
do ni=1,Nint
|
||||
nt += popcnt(xor(miniList(ni,1,j), det_buffer(ni,1,i))) + popcnt(xor(miniList(ni,2,j), det_buffer(ni,2,i)))
|
||||
end do
|
||||
if(nt <= 4) then
|
||||
cycle i_loop
|
||||
end if
|
||||
end do
|
||||
! if(connected_to_ref(det_buffer(1,1,i),psi_det_generators,Nint, &
|
||||
! i_generator,N_det_generators) /= 0) then
|
||||
! cycle i_loop
|
||||
! end if
|
||||
|
||||
|
||||
|
||||
c_ref = connected_to_ref(det_buffer(1,1,i),psi_det_generators,Nint, &
|
||||
i_generator,N_det_generators)
|
||||
|
||||
|
||||
if (c_ref /= 0) then
|
||||
cycle
|
||||
endif
|
||||
|
||||
! Select determinants that are triple or quadruple excitations
|
||||
! from the ref
|
||||
good = .True.
|
||||
@ -491,8 +325,7 @@ subroutine find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq
|
||||
enddo
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
enddo i_loop
|
||||
end
|
||||
|
||||
|
||||
|
@ -0,0 +1,926 @@
|
||||
Needed Modules
|
||||
==============
|
||||
.. Do not edit this section It was auto-generated
|
||||
.. by the `update_README.py` script.
|
||||
|
||||
|
||||
.. image:: tree_dependency.png
|
||||
|
||||
* `Integrals_Monoelec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec>`_
|
||||
* `Integrals_Bielec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec>`_
|
||||
|
||||
Documentation
|
||||
=============
|
||||
.. Do not edit this section It was auto-generated
|
||||
.. by the `update_README.py` script.
|
||||
|
||||
|
||||
`a_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1110>`_
|
||||
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
|
||||
|
||||
|
||||
`abs_psi_coef_min <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L452>`_
|
||||
Max and min values of the coefficients
|
||||
|
||||
|
||||
`ac_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1155>`_
|
||||
Needed for diag_H_mat_elem
|
||||
|
||||
|
||||
`apply_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/excitations_utils.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`bi_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ref_bitmask.irp.f#L5>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
|
||||
`ci_eigenvectors <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L37>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_eigenvectors_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_mono.irp.f#L2>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_eigenvectors_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L38>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_eigenvectors_s2_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_mono.irp.f#L3>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L36>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_electronic_energy_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_mono.irp.f#L1>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L18>`_
|
||||
N_states lowest eigenvalues of the CI matrix
|
||||
|
||||
|
||||
`ci_sc2_eigenvectors <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_SC2.irp.f#L27>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_sc2_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_SC2.irp.f#L26>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
|
||||
`ci_sc2_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_SC2.irp.f#L1>`_
|
||||
N_states_diag lowest eigenvalues of the CI matrix
|
||||
|
||||
|
||||
`cisd <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/truncate_wf.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`cisd_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/SC2.irp.f#L1>`_
|
||||
CISD+SC2 method :: take off all the disconnected terms of a CISD (selected or not)
|
||||
.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
|
||||
Initial guess vectors are not necessarily orthonormal
|
||||
|
||||
|
||||
`connected_to_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L157>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`connected_to_ref_by_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L255>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`copy_h_apply_buffer_to_wf <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L103>`_
|
||||
Copies the H_apply buffer to psi_coef.
|
||||
After calling this subroutine, N_det, psi_det and psi_coef need to be touched
|
||||
|
||||
|
||||
`create_wf_of_psi_bilinear_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L417>`_
|
||||
Generate a wave function containing all possible products
|
||||
of alpha and beta determinants
|
||||
|
||||
|
||||
`davidson_converged <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L563>`_
|
||||
True if the Davidson algorithm is converged
|
||||
|
||||
|
||||
`davidson_criterion <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L553>`_
|
||||
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||
|
||||
|
||||
`davidson_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L18>`_
|
||||
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
|
||||
|
||||
|
||||
`davidson_diag_hjj <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L239>`_
|
||||
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_iter_max <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L1>`_
|
||||
Max number of Davidson iterations
|
||||
|
||||
|
||||
`davidson_sze_max <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L9>`_
|
||||
Max number of Davidson sizes
|
||||
|
||||
|
||||
`davidson_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L554>`_
|
||||
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||
|
||||
|
||||
`decode_exc <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L76>`_
|
||||
Decodes the exc arrays returned by get_excitation.
|
||||
h1,h2 : Holes
|
||||
p1,p2 : Particles
|
||||
s1,s2 : Spins (1:alpha, 2:beta)
|
||||
degree : Degree of excitation
|
||||
|
||||
|
||||
`det_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L138>`_
|
||||
det_coef
|
||||
|
||||
|
||||
`det_connections <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1380>`_
|
||||
Build connection proxy between determinants
|
||||
|
||||
|
||||
`det_inf <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L69>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`det_num <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L248>`_
|
||||
det_num
|
||||
|
||||
|
||||
`det_occ <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L226>`_
|
||||
det_occ
|
||||
|
||||
|
||||
`det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L1>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
|
||||
`det_to_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L2>`_
|
||||
Transform a determinant to an occupation pattern
|
||||
|
||||
|
||||
`diag_algorithm <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L1>`_
|
||||
Diagonalization algorithm (Davidson or Lapack)
|
||||
|
||||
|
||||
`diag_h_mat_elem <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1048>`_
|
||||
Computes <i|H|i>
|
||||
|
||||
|
||||
`diagonalize_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI.irp.f#L105>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
|
||||
`diagonalize_ci_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_mono.irp.f#L73>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
|
||||
`diagonalize_ci_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_SC2.irp.f#L45>`_
|
||||
Replace the coefficients of the CI states_diag by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
|
||||
`do_mono_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/create_excitations.irp.f#L1>`_
|
||||
Apply the mono excitation operator : a^{dager}_(i_particle) a_(i_hole) of spin = ispin
|
||||
on key_in
|
||||
ispin = 1 == alpha
|
||||
ispin = 2 == beta
|
||||
i_ok = 1 == the excitation is possible
|
||||
i_ok = -1 == the excitation is not possible
|
||||
|
||||
|
||||
`double_exc_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants_bitmasks.irp.f#L40>`_
|
||||
double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1
|
||||
double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1
|
||||
double_exc_bitmask(:,3,i) is the bitmask for holes of excitation 2
|
||||
double_exc_bitmask(:,4,i) is the bitmask for particles of excitation 2
|
||||
for a given couple of hole/particle excitations i.
|
||||
|
||||
|
||||
`expected_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L48>`_
|
||||
Expected value of S2 : S*(S+1)
|
||||
|
||||
|
||||
`fill_h_apply_buffer_no_selection <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L258>`_
|
||||
Fill the H_apply buffer with determiants for CISD
|
||||
|
||||
|
||||
`filter_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L423>`_
|
||||
Returns a determinant with only the 3 highest electrons
|
||||
|
||||
|
||||
`filter_connected <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L2>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
.br
|
||||
returns the array idx which contains the index of the
|
||||
.br
|
||||
determinants in the array key1 that interact
|
||||
.br
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
|
||||
|
||||
`filter_connected_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L257>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
returns the array idx which contains the index of the
|
||||
determinants in the array key1 that interact
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
key1 should come from psi_det_sorted_ab.
|
||||
|
||||
|
||||
`filter_connected_davidson_shortcut <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L193>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
returns the array idx which contains the index of the
|
||||
determinants in the array key1 that interact
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
key1 should come from psi_det_sorted_ab.
|
||||
|
||||
|
||||
`filter_connected_davidson_warp <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L102>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
returns the array idx which contains the index of the
|
||||
determinants in the array key1 that interact
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
key1 should come from psi_det_sorted_ab.
|
||||
|
||||
|
||||
`filter_connected_i_h_psi0 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L389>`_
|
||||
returns the array idx which contains the index of the
|
||||
.br
|
||||
determinants in the array key1 that interact
|
||||
.br
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
|
||||
|
||||
`filter_connected_i_h_psi0_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/filter_connected.irp.f#L488>`_
|
||||
standard filter_connected_i_H_psi but returns in addition
|
||||
.br
|
||||
the array of the index of the non connected determinants to key1
|
||||
.br
|
||||
in order to know what double excitation can be repeated on key1
|
||||
.br
|
||||
idx_repeat(0) is the number of determinants that can be used
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
|
||||
`generate_all_alpha_beta_det_products <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L472>`_
|
||||
Create a wave function from all possible alpha x beta determinants
|
||||
|
||||
|
||||
`get_double_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L142>`_
|
||||
Returns the two excitation operators between two doubly excited determinants and the phase
|
||||
|
||||
|
||||
`get_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L30>`_
|
||||
Returns the excitation operators between two determinants and the phase
|
||||
|
||||
|
||||
`get_excitation_degree <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1>`_
|
||||
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#L953>`_
|
||||
Applies get_excitation_degree to an array of determinants
|
||||
|
||||
|
||||
`get_index_in_psi_det_alpha_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L141>`_
|
||||
Returns the index of the determinant in the ``psi_det_alpha_unique`` array
|
||||
|
||||
|
||||
`get_index_in_psi_det_beta_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L223>`_
|
||||
Returns the index of the determinant in the ``psi_det_beta_unique`` array
|
||||
|
||||
|
||||
`get_index_in_psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L50>`_
|
||||
Returns the index of the determinant in the ``psi_det_sorted_bit`` array
|
||||
|
||||
|
||||
`get_mono_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L275>`_
|
||||
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#L1203>`_
|
||||
Returns a list of occupation numbers from a bitstring
|
||||
|
||||
|
||||
`get_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L1>`_
|
||||
Returns <S^2>
|
||||
|
||||
|
||||
`get_s2_u0 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L109>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`get_s2_u0_old <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L82>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`h_apply_buffer_allocated <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L15>`_
|
||||
Buffer of determinants/coefficients/perturbative energy for H_apply.
|
||||
Uninitialized. Filled by H_apply subroutines.
|
||||
|
||||
|
||||
`h_apply_buffer_lock <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L16>`_
|
||||
Buffer of determinants/coefficients/perturbative energy for H_apply.
|
||||
Uninitialized. Filled by H_apply subroutines.
|
||||
|
||||
|
||||
`h_matrix_all_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/utils.irp.f#L1>`_
|
||||
H matrix on the basis of the slater determinants defined by psi_det
|
||||
|
||||
|
||||
`h_matrix_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L115>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1219>`_
|
||||
Computes v_0 = H|u_0>
|
||||
.br
|
||||
n : number of determinants
|
||||
.br
|
||||
H_jj : array of <j|H|j>
|
||||
|
||||
|
||||
`h_u_0_org <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L1303>`_
|
||||
Computes v_0 = H|u_0>
|
||||
.br
|
||||
n : number of determinants
|
||||
.br
|
||||
H_jj : array of <j|H|j>
|
||||
|
||||
|
||||
`i_h_j <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L356>`_
|
||||
Returns <i|H|j> where i and j are determinants
|
||||
|
||||
|
||||
`i_h_j_phase_out <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L492>`_
|
||||
Returns <i|H|j> where i and j are determinants
|
||||
|
||||
|
||||
`i_h_j_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L628>`_
|
||||
Returns <i|H|j> where i and j are determinants
|
||||
|
||||
|
||||
`i_h_psi <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L767>`_
|
||||
<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#L850>`_
|
||||
<key|H|psi> for the various Nstate
|
||||
.br
|
||||
returns in addition
|
||||
.br
|
||||
the array of the index of the non connected determinants to key1
|
||||
.br
|
||||
in order to know what double excitation can be repeated on key1
|
||||
.br
|
||||
idx_repeat(0) is the number of determinants that can be used
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
|
||||
`i_h_psi_sc2_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L897>`_
|
||||
<key|H|psi> for the various Nstate
|
||||
.br
|
||||
returns in addition
|
||||
.br
|
||||
the array of the index of the non connected determinants to key1
|
||||
.br
|
||||
in order to know what double excitation can be repeated on key1
|
||||
.br
|
||||
idx_repeat(0) is the number of determinants that can be used
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
|
||||
`i_h_psi_sec_ord <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/slater_rules.irp.f#L803>`_
|
||||
<key|H|psi> for the various Nstates
|
||||
|
||||
|
||||
`idx_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.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.
|
||||
|
||||
|
||||
`idx_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L65>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
|
||||
`int_of_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L388>`_
|
||||
Returns an integer*8 as :
|
||||
.br
|
||||
|_<--- 21 bits ---><--- 21 bits ---><--- 21 bits --->|
|
||||
.br
|
||||
|0<--- i1 ---><--- i2 ---><--- i3 --->|
|
||||
.br
|
||||
It encodes the value of the indices of the 3 highest MOs
|
||||
in descending order
|
||||
.br
|
||||
|
||||
|
||||
`is_in_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L36>`_
|
||||
True if the determinant ``det`` is in the wave function
|
||||
|
||||
|
||||
`kinetic_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ref_bitmask.irp.f#L3>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
|
||||
`make_s2_eigenfunction <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L251>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`max_degree_exc <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L32>`_
|
||||
Maximum degree of excitation in the wf
|
||||
|
||||
|
||||
`mono_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ref_bitmask.irp.f#L2>`_
|
||||
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#L1372>`_
|
||||
Number of integers to represent the connections between determinants
|
||||
|
||||
|
||||
`n_det <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L3>`_
|
||||
Number of determinants in the wave function
|
||||
|
||||
|
||||
`n_det_alpha_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f_template_136#L4>`_
|
||||
Unique alpha determinants
|
||||
|
||||
|
||||
`n_det_beta_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f_template_136#L80>`_
|
||||
Unique beta determinants
|
||||
|
||||
|
||||
`n_det_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.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.
|
||||
|
||||
|
||||
`n_det_max <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L50>`_
|
||||
Max number of determinants in the wave function
|
||||
|
||||
|
||||
`n_det_max_jacobi <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L94>`_
|
||||
Maximum number of determinants diagonalized by Jacobi
|
||||
|
||||
|
||||
`n_det_max_property <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L292>`_
|
||||
Max number of determinants in the wave function when you select for a given property
|
||||
|
||||
|
||||
`n_det_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L66>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
|
||||
`n_double_exc_bitmasks <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants_bitmasks.irp.f#L31>`_
|
||||
Number of double excitation bitmasks
|
||||
|
||||
|
||||
`n_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L143>`_
|
||||
array of the occ_pattern present in the wf
|
||||
psi_occ_pattern(:,1,j) = jth occ_pattern of the wave function : represent all the single occupation
|
||||
psi_occ_pattern(:,2,j) = jth occ_pattern of the wave function : represent all the double occupation
|
||||
|
||||
|
||||
`n_single_exc_bitmasks <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants_bitmasks.irp.f#L8>`_
|
||||
Number of single excitation bitmasks
|
||||
|
||||
|
||||
`n_states <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L72>`_
|
||||
Number of states to consider
|
||||
|
||||
|
||||
`n_states_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/options.irp.f#L1>`_
|
||||
Number of states to consider for the diagonalization
|
||||
|
||||
|
||||
`nucl_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ref_bitmask.irp.f#L4>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
|
||||
`occ_pattern_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/connected_to_ref.irp.f#L18>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
|
||||
`occ_pattern_to_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L42>`_
|
||||
Generate all possible determinants for a give occ_pattern
|
||||
|
||||
|
||||
`occ_pattern_to_dets_size <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L20>`_
|
||||
Number of possible determinants for a given occ_pattern
|
||||
|
||||
|
||||
`one_body_dm_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L164>`_
|
||||
One-body density matrix
|
||||
|
||||
|
||||
`one_body_dm_mo_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L1>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
|
||||
`one_body_dm_mo_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L2>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
|
||||
`one_body_single_double_dm_mo_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L80>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
|
||||
`one_body_single_double_dm_mo_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L81>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
|
||||
`one_body_spin_density_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L172>`_
|
||||
rho(alpha) - rho(beta)
|
||||
|
||||
|
||||
`only_single_double_dm <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L182>`_
|
||||
If true, The One body DM is calculated with ignoring the Double<->Doubles extra diag elements
|
||||
|
||||
|
||||
`pouet <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/program_initial_determinants.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`psi_average_norm_contrib <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L273>`_
|
||||
Contribution of determinants to the state-averaged density
|
||||
|
||||
|
||||
`psi_average_norm_contrib_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L303>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
|
||||
`psi_bilinear_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L400>`_
|
||||
Coefficient matrix if the wave function is expressed in a bilinear form :
|
||||
D_a^t C D_b
|
||||
|
||||
|
||||
`psi_bilinear_matrix_columns <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L362>`_
|
||||
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
|
||||
D_a^t C D_b
|
||||
|
||||
|
||||
`psi_bilinear_matrix_rows <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L361>`_
|
||||
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
|
||||
D_a^t C D_b
|
||||
|
||||
|
||||
`psi_bilinear_matrix_values <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L360>`_
|
||||
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
|
||||
D_a^t C D_b
|
||||
|
||||
|
||||
`psi_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.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_cas_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.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_cas_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L50>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_cas_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L146>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`psi_cas_energy_diagonalized <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L128>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`psi_cas_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L49>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L227>`_
|
||||
The wave function coefficients. Initialized with Hartree-Fock if the EZFIO file
|
||||
is empty
|
||||
|
||||
|
||||
`psi_coef_cas_diagonalized <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L127>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`psi_coef_max <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L449>`_
|
||||
Max and min values of the coefficients
|
||||
|
||||
|
||||
`psi_coef_min <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L450>`_
|
||||
Max and min values of the coefficients
|
||||
|
||||
|
||||
`psi_coef_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L302>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
|
||||
`psi_coef_sorted_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L468>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
|
||||
`psi_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L333>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_det <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L65>`_
|
||||
The wave function determinants. Initialized with Hartree-Fock if the EZFIO file
|
||||
is empty
|
||||
|
||||
|
||||
`psi_det_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L27>`_
|
||||
List of alpha determinants of psi_det
|
||||
|
||||
|
||||
`psi_det_alpha_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f_template_136#L3>`_
|
||||
Unique alpha determinants
|
||||
|
||||
|
||||
`psi_det_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L41>`_
|
||||
List of beta determinants of psi_det
|
||||
|
||||
|
||||
`psi_det_beta_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f_template_136#L79>`_
|
||||
Unique beta determinants
|
||||
|
||||
|
||||
`psi_det_size <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L47>`_
|
||||
Size of the psi_det/psi_coef arrays
|
||||
|
||||
|
||||
`psi_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L301>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
|
||||
`psi_det_sorted_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L467>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
|
||||
`psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L332>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_det_sorted_next_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L469>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
|
||||
`psi_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L63>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
|
||||
`psi_non_cas_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L64>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
|
||||
`psi_non_cas_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L103>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_non_cas_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/psi_cas.irp.f#L102>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`psi_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L142>`_
|
||||
array of the occ_pattern present in the wf
|
||||
psi_occ_pattern(:,1,j) = jth occ_pattern of the wave function : represent all the single occupation
|
||||
psi_occ_pattern(:,2,j) = jth occ_pattern of the wave function : represent all the double occupation
|
||||
|
||||
|
||||
`put_gess <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/guess_triplet.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`read_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L598>`_
|
||||
Reads the determinants from the EZFIO file
|
||||
|
||||
|
||||
`read_wf <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L160>`_
|
||||
If true, read the wave function from the EZFIO file
|
||||
|
||||
|
||||
`rec_occ_pattern_to_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/occ_pattern.irp.f#L102>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ref_bitmask.irp.f#L1>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
|
||||
`remove_duplicates_in_psi_det <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L190>`_
|
||||
Removes duplicate determinants in the wave function.
|
||||
|
||||
|
||||
`resize_h_apply_buffer <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/H_apply.irp.f#L48>`_
|
||||
Resizes the H_apply buffer of proc iproc. The buffer lock should
|
||||
be set before calling this function.
|
||||
|
||||
|
||||
`routine <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/program_initial_determinants.irp.f#L7>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`s2_eig <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L116>`_
|
||||
Force the wave function to be an eigenfunction of S^2
|
||||
|
||||
|
||||
`s2_values <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L67>`_
|
||||
array of the averaged values of the S^2 operator on the various states
|
||||
|
||||
|
||||
`s_z <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L36>`_
|
||||
z component of the Spin
|
||||
|
||||
|
||||
`s_z2_sz <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/s2.irp.f#L37>`_
|
||||
z component of the Spin
|
||||
|
||||
|
||||
`save_natorb <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/save_natorb.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`save_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L196>`_
|
||||
Save natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
|
||||
|
||||
|
||||
`save_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L645>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
|
||||
`save_wavefunction_general <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L664>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
|
||||
`save_wavefunction_specified <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L752>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
|
||||
`save_wavefunction_unsorted <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L655>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
|
||||
`set_bite_to_integer <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/create_excitations.irp.f#L38>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`set_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L180>`_
|
||||
Set natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
|
||||
|
||||
|
||||
`single_exc_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants_bitmasks.irp.f#L17>`_
|
||||
single_exc_bitmask(:,1,i) is the bitmask for holes
|
||||
single_exc_bitmask(:,2,i) is the bitmask for particles
|
||||
for a given couple of hole/particle excitations i.
|
||||
|
||||
|
||||
`sort_dets_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L195>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`sort_dets_ab_v <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L148>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`sort_dets_ba_v <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L124>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`sort_dets_by_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L489>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
|
||||
`sort_dets_by_det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/determinants.irp.f#L346>`_
|
||||
Determinants are sorted are sorted according to their det_search_key.
|
||||
Useful to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
|
||||
`spin_det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L9>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
|
||||
`state_average_weight <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/density_matrix.irp.f#L207>`_
|
||||
Weights in the state-average calculation of the density matrix
|
||||
|
||||
|
||||
`tamiser <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/davidson.irp.f#L91>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
`threshold_convergence_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/diagonalize_CI_SC2.irp.f#L18>`_
|
||||
convergence of the correlation energy of SC2 iterations
|
||||
|
||||
|
||||
`threshold_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L270>`_
|
||||
Thresholds on generators (fraction of the norm)
|
||||
|
||||
|
||||
`threshold_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/ezfio_interface.irp.f#L6>`_
|
||||
Thresholds on selectors (fraction of the norm)
|
||||
|
||||
|
||||
`write_spindeterminants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants/spindeterminants.irp.f#L305>`_
|
||||
Undocumented
|
||||
|
@ -98,65 +98,6 @@ subroutine filter_connected(key1,key2,Nint,sze,idx)
|
||||
end
|
||||
|
||||
|
||||
subroutine filter_connected_sorted_ab(key1,key2,next,Nint,sze,idx)
|
||||
use bitmasks
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Filters out the determinants that are not connected by H
|
||||
! returns the array idx which contains the index of the
|
||||
! determinants in the array key1 that interact
|
||||
! via the H operator with key2.
|
||||
! idx(0) is the number of determinants that interact with key1
|
||||
!
|
||||
! Determinants are taken from the psi_det_sorted_ab array
|
||||
END_DOC
|
||||
integer, intent(in) :: Nint, sze
|
||||
integer, intent(in) :: next(2,N_det)
|
||||
integer(bit_kind), intent(in) :: key1(Nint,2,sze)
|
||||
integer(bit_kind), intent(in) :: key2(Nint,2)
|
||||
integer, intent(out) :: idx(0:sze)
|
||||
|
||||
integer :: i,j,l
|
||||
integer :: degree_x2
|
||||
integer(bit_kind) :: det3_1(Nint,2), det3_2(Nint,2)
|
||||
|
||||
ASSERT (Nint > 0)
|
||||
ASSERT (sze >= 0)
|
||||
|
||||
l=1
|
||||
|
||||
call filter_3_highest_electrons( key2(1,1), det3_2(1,1), Nint)
|
||||
if (Nint==1) then
|
||||
|
||||
i = 1
|
||||
do while ( i<= sze )
|
||||
call filter_3_highest_electrons( key1(1,1,i), det3_1(1,1), Nint)
|
||||
degree_x2 = popcnt( xor( det3_1(1,1), det3_2(1,1)))
|
||||
if (degree_x2 > 4) then
|
||||
i = next(1,i)
|
||||
cycle
|
||||
else
|
||||
degree_x2 = popcnt( xor( key1(1,1,i), key2(1,1)) )
|
||||
if (degree_x2 <= 4) then
|
||||
degree_x2 += popcnt( xor( key1(1,2,i), key2(1,2)) )
|
||||
if (degree_x2 <= 4) then
|
||||
idx(l) = i
|
||||
l += 1
|
||||
endif
|
||||
endif
|
||||
i += 1
|
||||
endif
|
||||
enddo
|
||||
|
||||
else
|
||||
|
||||
print *, 'Not implemented', irp_here
|
||||
stop 1
|
||||
|
||||
endif
|
||||
idx(0) = l-1
|
||||
end
|
||||
|
||||
|
||||
subroutine filter_connected_davidson_warp(key1,warp,key2,Nint,sze,idx)
|
||||
use bitmasks
|
||||
@ -337,6 +278,7 @@ subroutine filter_connected_davidson(key1,key2,Nint,sze,idx)
|
||||
|
||||
PROVIDE N_con_int det_connections
|
||||
|
||||
|
||||
ASSERT (Nint > 0)
|
||||
ASSERT (sze >= 0)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user