10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-02 11:25:26 +02:00

Documentation

This commit is contained in:
Anthony Scemama 2019-01-02 23:04:13 +01:00
parent c7894e3419
commit a9191d23b2
44 changed files with 1431 additions and 355 deletions

2
TODO
View File

@ -51,3 +51,5 @@
# EZFIO sans fork
/home/scemama/quantum_package/docs/source/modules/perturbation.rst:216: WARNING
: script pour mettre des :math: dans les commentaires

View File

@ -124,7 +124,7 @@ def generate_providers(abs_module):
entity = { "decl": [], "doc": [] ,
"name": name , "module": module }
for line in f.readlines():
line = line.strip()
line = line.rstrip()
if line.startswith(".SH Declaration"):
state = 1
continue
@ -157,7 +157,7 @@ def generate_providers(abs_module):
entity["type"] = 'p'
elif state == 2:
if line.startswith(".br"):
line = "\n"
line = "\n\n"
entity["doc"] += [ line ]
elif state == 3:
if line.startswith(".br"):

View File

@ -158,7 +158,7 @@ Providers
File: :file:`aos.irp.f`
Transposed :c:var:`ao_coef_normalized_ordered`
Transposed :c:data:`ao_coef_normalized_ordered`
@ -198,7 +198,7 @@ Providers
File: :file:`aos.irp.f`
Transposed :c:var:`ao_expo_ordered`
Transposed :c:data:`ao_expo_ordered`
@ -567,6 +567,7 @@ Subroutines / functions
File: :file:`aos.irp.f`
Unique index given to a triplet of powers:
:math:`\frac{1}{2} (l-n_x) (l-n_x+1) + n_z + 1`

View File

@ -77,7 +77,7 @@ Providers
File: :file:`ao_ortho_canonical.irp.f`
Inverse of :c:var:`ao_cart_to_sphe_coef`
Inverse of :c:data:`ao_cart_to_sphe_coef`
@ -120,7 +120,9 @@ Providers
File: :file:`kin_ao_ints.irp.f`
Second derivative matrix elements in the |AO| basis.
:math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
:math:`{\tt ao\_deriv2\_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
@ -137,7 +139,9 @@ Providers
File: :file:`kin_ao_ints.irp.f`
Second derivative matrix elements in the |AO| basis.
:math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
:math:`{\tt ao\_deriv2\_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
@ -154,7 +158,9 @@ Providers
File: :file:`kin_ao_ints.irp.f`
Second derivative matrix elements in the |AO| basis.
:math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
:math:`{\tt ao\_deriv2\_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
@ -171,7 +177,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * d/dx AO_j
* array of the integrals of AO_i * d/dy AO_j
* array of the integrals of AO_i * d/dz AO_j
@ -188,7 +196,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * d/dx AO_j
* array of the integrals of AO_i * d/dy AO_j
* array of the integrals of AO_i * d/dz AO_j
@ -205,7 +215,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * d/dx AO_j
* array of the integrals of AO_i * d/dy AO_j
* array of the integrals of AO_i * d/dz AO_j
@ -222,7 +234,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x AO_j
* array of the integrals of AO_i * y AO_j
* array of the integrals of AO_i * z AO_j
@ -239,7 +253,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x AO_j
* array of the integrals of AO_i * y AO_j
* array of the integrals of AO_i * z AO_j
@ -256,7 +272,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x AO_j
* array of the integrals of AO_i * y AO_j
* array of the integrals of AO_i * z AO_j
@ -271,6 +289,7 @@ Providers
File: :file:`kin_ao_ints.irp.f`
Kinetic energy integrals in the |AO| basis.
:math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
@ -313,6 +332,7 @@ Providers
File: :file:`pot_ao_ints.irp.f`
Nucleus-electron interaction, in the |AO| basis set.
:math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
@ -327,6 +347,7 @@ Providers
File: :file:`pot_ao_ints.irp.f`
Nucleus-electron interaction in the |AO| basis set, per atom A.
:math:`\langle \chi_i | -\frac{1}{|r-R_A|} | \chi_j \rangle`
@ -398,6 +419,7 @@ Providers
File: :file:`ao_overlap.irp.f`
Overlap between atomic basis functions:
:math:`\int \chi_i(r) \chi_j(r) dr`
@ -412,6 +434,7 @@ Providers
File: :file:`ao_overlap.irp.f`
Overlap between absolute values of atomic basis functions:
:math:`\int |\chi_i(r)| |\chi_j(r)| dr`
@ -429,6 +452,7 @@ Providers
File: :file:`ao_overlap.irp.f`
Overlap between atomic basis functions:
:math:`\int \chi_i(r) \chi_j(r) dr`
@ -446,6 +470,7 @@ Providers
File: :file:`ao_overlap.irp.f`
Overlap between atomic basis functions:
:math:`\int \chi_i(r) \chi_j(r) dr`
@ -463,6 +488,7 @@ Providers
File: :file:`ao_overlap.irp.f`
Overlap between atomic basis functions:
:math:`\int \chi_i(r) \chi_j(r) dr`
@ -518,7 +544,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x^2 AO_j
* array of the integrals of AO_i * y^2 AO_j
* array of the integrals of AO_i * z^2 AO_j
@ -535,7 +563,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x^2 AO_j
* array of the integrals of AO_i * y^2 AO_j
* array of the integrals of AO_i * z^2 AO_j
@ -552,7 +582,9 @@ Providers
File: :file:`spread_dipole_ao.irp.f`
* array of the integrals of AO_i * x^2 AO_j
* array of the integrals of AO_i * y^2 AO_j
* array of the integrals of AO_i * z^2 AO_j
@ -754,7 +786,7 @@ Subroutines / functions
File: :file:`pot_ao_erf_ints.irp.f`
subroutine that returs all integrals over r of type erf(mu_in * |r-C_center|)/|r-C_center|
subroutine that returs all integrals over r of type erf(mu_in * | r-C_center |)/| r-C_center |
@ -769,6 +801,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Returns the explicit polynomial in terms of the "t" variable of the following
:math:`I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q)`
@ -812,6 +845,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Computes the integral:
:math:`\int_{-\infty}^{\infty} x^n \exp(-\alpha x^2) dx`
@ -827,6 +861,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Computes the electron-nucleus attraction with two primitves.
:math:`\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle`
@ -855,7 +890,7 @@ Subroutines / functions
File: :file:`pot_ao_erf_ints.irp.f`
computes the following integral : int[-infty;+infty] dr AO_i_ao (r) AO_j_ao(r) erf(mu_in * |r-C_center|)/|r-C_center|
computes the following integral : int[-infty;+infty] dr AO_i_ao (r) AO_j_ao(r) erf(mu_in * | r-C_center |)/| r-C_center |
@ -926,7 +961,9 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Primitve nuclear attraction between the two primitves centered on the same atom.
primitive_1 = x**(a_x) y**(a_y) z**(a_z) exp(-alpha * r**2)
primitive_2 = x**(b_x) y**(b_y) z**(b_z) exp(- beta * r**2)
@ -942,6 +979,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Computes the angular "phi" part of the nuclear attraction integral:
:math:`\int_{0}^{2 \pi} \cos(\phi)^n \sin(\phi)^m d\phi`
@ -957,6 +995,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Computes the radial part of the nuclear attraction integral:
:math:`\int_{0}^{\infty} r^n \exp(-\alpha r^2) dr`
@ -964,6 +1003,7 @@ Subroutines / functions
.. c:function:: v_theta
.. code:: text
@ -973,6 +1013,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Computes the angular "theta" part of the nuclear attraction integral:
:math:`\int_{0}^{\pi} \cos(\theta)^n \sin(\theta)^m d\theta`
@ -988,6 +1029,7 @@ Subroutines / functions
File: :file:`pot_ao_ints.irp.f`
Wallis integral:
:math:`\int_{0}^{\pi} \cos(\theta)^n d\theta`

View File

@ -9,14 +9,22 @@ aux_quantities
==============
This module contains some global variables (such as densities and energies) which are stored in the EZFIO folder in a different place than determinants. This is used in practice to store density matrices which can be obtained from any methods, as long as they are stored in the same MO basis which is used for the calculations. In |RS-DFT| calculations, this can be done to perform damping on the density in order to speed up convergence.
This module contains some global variables (such as densities and energies)
which are stored in the EZFIO folder in a different place than determinants.
This is used in practice to store density matrices which can be obtained from
any methods, as long as they are stored in the same MO basis which is used for
the calculations. In |RSDFT| calculations, this can be done to perform damping
on the density in order to speed up convergence.
The main providers of that module are:
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the one-body alpha and beta densities which are necessary read from the EZFIO folder.
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the
one-body alpha and beta densities which are necessary read from the EZFIO
folder.
Thanks to these providers you can use any density matrix that does not necessary corresponds to that of the current wave function.
Thanks to these providers you can use any density matrix that does not
necessary corresponds to that of the current wave function.

View File

@ -146,8 +146,11 @@ Providers
File: :file:`grid_becke_vector.irp.f`
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
@ -178,13 +181,51 @@ Providers
File: :file:`grid_becke_vector.irp.f`
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: final_weight_functions_at_final_grid_points
.. code:: text
double precision, allocatable :: final_grid_points (3,n_points_final_grid)
double precision, allocatable :: final_weight_functions_at_final_grid_points (n_points_final_grid)
integer, allocatable :: index_final_points (3,n_points_final_grid)
integer, allocatable :: index_final_points_reverse (n_points_integration_angular,n_points_radial_grid,nucl_num)
File: :file:`grid_becke_vector.irp.f`
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
final_weight_functions_at_final_grid_points(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
.. c:var:: final_weight_functions_at_grid_points
.. code:: text
double precision, allocatable :: final_weight_functions_at_grid_points (n_points_integration_angular,n_points_radial_grid,nucl_num)
File: :file:`grid_becke.irp.f`
Total weight on each grid point which takes into account all Lebedev, Voronoi and radial weights.
.. c:var:: grid_points_per_atom
.. code:: text
@ -224,8 +265,11 @@ Providers
File: :file:`grid_becke_vector.irp.f`
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
@ -243,8 +287,11 @@ Providers
File: :file:`grid_becke_vector.irp.f`
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
@ -299,7 +346,9 @@ Providers
File: :file:`grid_becke.irp.f`
n_points_radial_grid = number of radial grid points per atom
n_points_integration_angular = number of angular grid points per atom
These numbers are automatically set by setting the grid_type_sgn parameter
@ -315,7 +364,9 @@ Providers
File: :file:`grid_becke.irp.f`
n_points_radial_grid = number of radial grid points per atom
n_points_integration_angular = number of angular grid points per atom
These numbers are automatically set by setting the grid_type_sgn parameter
@ -330,6 +381,22 @@ Providers
File: :file:`grid_becke.irp.f`
Weight function at grid points : w_n(r) according to the equation (22) of Becke original paper (JCP, 88, 1988)
The "n" discrete variable represents the nucleis which in this array is represented by the last dimension and the points are labelled by the other dimensions.
.. c:var:: weight_functions_at_grid_points
.. code:: text
double precision, allocatable :: weight_functions_at_grid_points (n_points_integration_angular,n_points_radial_grid,nucl_num)
File: :file:`grid_becke.irp.f`
Weight function at grid points : w_n(r) according to the equation (22) of Becke original paper (JCP, 88, 1988)
The "n" discrete variable represents the nucleis which in this array is represented by the last dimension and the points are labelled by the other dimensions.

View File

@ -141,18 +141,26 @@ Providers
File: :file:`bitmasks.irp.f`
Bitmasks for generator determinants. (N_int, alpha/beta, hole/particle, generator).
3rd index is :
* 1 : hole for single exc
* 2 : particle for single exc
* 3 : hole for 1st exc of double
* 4 : particle for 1st exc of double
* 5 : hole for 2nd exc of double
* 6 : particle for 2nd exc of double
.. c:var:: generators_bitmask_restart
.. code:: text
@ -162,18 +170,26 @@ Providers
File: :file:`bitmasks.irp.f`
Bitmasks for generator determinants. (N_int, alpha/beta, hole/particle, generator).
3rd index is :
* 1 : hole for single exc
* 2 : particle for single exc
* 3 : hole for 1st exc of double
* 4 : particle for 1st exc of double
* 5 : hole for 2nd exc of double
* 6 : particle for 2nd exc of double
.. c:var:: hf_bitmask
.. code:: text
@ -266,6 +282,7 @@ Providers
File: :file:`bitmasks.irp.f`
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital
@ -281,6 +298,7 @@ Providers
File: :file:`bitmasks.irp.f`
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals list_act_reverse(i) = 0 ::> not an active list_act_reverse(i) = k ::> IS the kth active orbital

View File

@ -11,7 +11,7 @@ davidson
Abstract module for Davidson's diagonalization.
It contains everything required for the Davidson algorithm, dressed or not. If
a dressing is used, the dressing column should be defined and the
:ref:`davidsondressed` module should be used. If no dressing is required,
:ref:`davidson_dressed` module should be used. If no dressing is required,
the :ref:`davidson` module should be used, and it has a default zero dressing vector.
The important providers for that module are:
@ -262,14 +262,23 @@ Subroutines / functions
File: :file:`diagonalization_hs2_dressed.irp.f`
Davidson diagonalization with specific diagonal elements of the H matrix
H_jj : specific diagonal H matrix elements to diagonalize de Davidson
S2_out : Output : s^2
dets_in : bitmasks corresponding to determinants
u_in : guess coefficients on the various states. Overwritten on exit
dim_in : leftmost dimension of u_in
sze : Number of determinants
N_st : Number of eigenstates
N_st_diag : Number of states in which H is diagonalized. Assumed > sze
Initial guess vectors are not necessarily orthonormal
@ -285,11 +294,17 @@ Subroutines / functions
File: :file:`diagonalization_hs2_dressed.irp.f`
Davidson diagonalization.
dets_in : bitmasks corresponding to determinants
u_in : guess coefficients on the various states. Overwritten on exit
dim_in : leftmost dimension of u_in
sze : Number of determinants
N_st : Number of eigenstates
Initial guess vectors are not necessarily orthonormal
@ -403,7 +418,9 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f`
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
Assumes that the determinants are in psi_det
istart, iend, ishift, istep are used in ZMQ parallelization.
@ -419,6 +436,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -434,6 +452,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f_template_457`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -449,6 +468,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f_template_457`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -464,6 +484,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f_template_457`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -479,6 +500,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f_template_457`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -494,6 +516,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f_template_457`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -509,7 +532,9 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f`
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
Assumes that the determinants are in psi_det
istart, iend, ishift, istep are used in ZMQ parallelization.
@ -525,6 +550,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -540,6 +566,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f_template_468`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -555,6 +582,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f_template_468`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -570,6 +598,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f_template_468`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -585,6 +614,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f_template_468`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -600,6 +630,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f_template_468`
Computes v_t = H|u_t> and s_t = S^2 |u_t>
Default should be 1,N_det,0,1
@ -615,8 +646,11 @@ Subroutines / functions
File: :file:`davidson_parallel.irp.f`
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
n : number of determinants
H_jj : array of <j|H|j>
S2_jj : array of <j|S^2|j>
@ -632,6 +666,7 @@ Subroutines / functions
File: :file:`u0_h_u0.irp.f`
Computes e_0 = <u_0|H|u_0>/<u_0|u_0>
n : number of determinants
@ -639,6 +674,7 @@ Subroutines / functions
.. c:function:: u_0_h_u_0_bielec
.. code:: text
@ -648,6 +684,7 @@ Subroutines / functions
File: :file:`u0_wee_u0.irp.f`
Computes e_0 = <u_0|H|u_0>/<u_0|u_0>
n : number of determinants
@ -655,6 +692,7 @@ Subroutines / functions
.. c:function:: zmq_get_n_states_diag
.. code:: text

View File

@ -215,6 +215,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Norm of the alpha and beta spin determinants in the wave function:
||Da||_i \sum_j C_{ij}**2
@ -230,6 +231,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Norm of the alpha and beta spin determinants in the wave function:
||Da||_i \sum_j C_{ij}**2
@ -830,6 +832,7 @@ Providers
File: :file:`determinants.irp.f`
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
@ -860,7 +863,9 @@ Providers
File: :file:`spindeterminants.irp.f`
Sparse coefficient matrix if the wave function is expressed in a bilinear form : D_a^t C D_b
Rows are alpha determinants and columns are beta.
Order refers to psi_det
@ -875,7 +880,9 @@ Providers
File: :file:`spindeterminants.irp.f`
Sparse coefficient matrix if the wave function is expressed in a bilinear form : D_a^t C D_b
Rows are alpha determinants and columns are beta.
Order refers to psi_det
@ -893,7 +900,9 @@ Providers
File: :file:`spindeterminants.irp.f`
Sparse coefficient matrix if the wave function is expressed in a bilinear form : D_a^t C D_b
Rows are alpha determinants and columns are beta.
Order refers to psi_det
@ -937,7 +946,9 @@ Providers
File: :file:`spindeterminants.irp.f`
Sparse coefficient matrix if the wave function is expressed in a bilinear form : D_a^t C D_b
Rows are alpha determinants and columns are beta.
Order refers to psi_det
@ -955,6 +966,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Transpose of psi_bilinear_matrix D_b^t C^t D_a
Rows are Alpha determinants and columns are beta, but the matrix is stored in row major format
@ -972,6 +984,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Transpose of psi_bilinear_matrix D_b^t C^t D_a
Rows are Alpha determinants and columns are beta, but the matrix is stored in row major format
@ -989,6 +1002,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Transpose of psi_bilinear_matrix D_b^t C^t D_a
Rows are Alpha determinants and columns are beta, but the matrix is stored in row major format
@ -1019,6 +1033,7 @@ Providers
File: :file:`spindeterminants.irp.f`
Transpose of psi_bilinear_matrix D_b^t C^t D_a
Rows are Alpha determinants and columns are beta, but the matrix is stored in row major format
@ -1036,7 +1051,9 @@ Providers
File: :file:`spindeterminants.irp.f`
Sparse coefficient matrix if the wave function is expressed in a bilinear form : D_a^t C D_b
Rows are alpha determinants and columns are beta.
Order refers to psi_det
@ -1200,6 +1217,7 @@ Providers
File: :file:`determinants.irp.f`
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
@ -1324,6 +1342,7 @@ Providers
File: :file:`determinants.irp.f`
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
@ -1355,6 +1374,7 @@ Providers
File: :file:`determinants.irp.f`
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
@ -1806,11 +1826,17 @@ Subroutines / functions
File: :file:`connected_to_ref.irp.f`
input : key : a given Slater determinant
: keys: a list of Slater determinants
: Ndet: the number of Slater determinants in keys
: N_past_in the number of Slater determinants for the connectivity research
output : 0 : key not connected to the N_past_in first Slater determinants in keys
i : key is connected to determinant i of keys
-i : key is the ith determinant of the reference wf keys
@ -1826,11 +1852,17 @@ Subroutines / functions
File: :file:`connected_to_ref.irp.f`
input : key : a given Slater determinant
: keys: a list of Slater determinants
: Ndet: the number of Slater determinants in keys
: N_past_in the number of Slater determinants for the connectivity research
output : 0 : key not connected by a MONO EXCITATION to the N_past_in first Slater determinants in keys
i : key is connected by a MONO EXCITATION to determinant i of keys
-i : key is the ith determinant of the reference wf keys
@ -2154,9 +2186,13 @@ Subroutines / functions
File: :file:`filter_connected.irp.f`
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
@ -2172,8 +2208,11 @@ Subroutines / functions
File: :file:`filter_connected.irp.f`
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
@ -2189,8 +2228,11 @@ Subroutines / functions
File: :file:`filter_connected.irp.f`
Returns the array idx which contains the index of the
determinants in the array key1 that DO NOT interact
via the H operator with key2.
idx(0) is the number of determinants that DO NOT interact with key1
@ -2220,6 +2262,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2227,6 +2270,7 @@ Subroutines / functions
.. c:function:: get_all_spin_doubles_1
.. code:: text
@ -2236,6 +2280,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2243,6 +2288,7 @@ Subroutines / functions
.. c:function:: get_all_spin_doubles_2
.. code:: text
@ -2252,6 +2298,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2259,6 +2306,7 @@ Subroutines / functions
.. c:function:: get_all_spin_doubles_3
.. code:: text
@ -2268,6 +2316,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2275,6 +2324,7 @@ Subroutines / functions
.. c:function:: get_all_spin_doubles_4
.. code:: text
@ -2284,6 +2334,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2291,6 +2342,7 @@ Subroutines / functions
.. c:function:: get_all_spin_doubles_n_int
.. code:: text
@ -2300,6 +2352,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the double excitations in the list of unique alpha determinants.
@ -2307,6 +2360,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles
.. code:: text
@ -2316,6 +2370,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2323,6 +2378,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_1
.. code:: text
@ -2332,6 +2388,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2339,6 +2396,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_2
.. code:: text
@ -2348,6 +2406,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2355,6 +2414,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_3
.. code:: text
@ -2364,6 +2424,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2371,6 +2432,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_4
.. code:: text
@ -2380,6 +2442,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2387,6 +2450,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles
.. code:: text
@ -2396,7 +2460,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2404,6 +2470,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles_1
.. code:: text
@ -2413,7 +2480,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2421,6 +2490,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles_2
.. code:: text
@ -2430,7 +2500,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2438,6 +2510,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles_3
.. code:: text
@ -2447,7 +2520,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2455,6 +2530,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles_4
.. code:: text
@ -2464,7 +2540,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2472,6 +2550,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_and_doubles_n_int
.. code:: text
@ -2481,7 +2560,9 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single and double excitations in the list of unique alpha determinants.
/!\ : The buffer is transposed !
@ -2489,6 +2570,7 @@ Subroutines / functions
.. c:function:: get_all_spin_singles_n_int
.. code:: text
@ -2498,6 +2580,7 @@ Subroutines / functions
File: :file:`spindeterminants.irp.f_template_1215`
Returns the indices of all the single excitations in the list of unique alpha determinants.
@ -2505,6 +2588,7 @@ Subroutines / functions
.. c:function:: get_double_excitation
.. code:: text
@ -2948,6 +3032,7 @@ Subroutines / functions
File: :file:`slater_rules.irp.f`
Computes <i|H|Psi> = :math:`\sum_J c_J \langle i | H | J \rangle`.
Uses filter_connected_i_H_psi0 to get all the |J> to which |i> is connected. The i_H_psi_minilist is much faster but requires to build the minilists
@ -2963,6 +3048,7 @@ Subroutines / functions
File: :file:`slater_rules.irp.f`
Computes <i|H|Psi> = \sum_J c_J <i|H|J>.
Uses filter_connected_i_H_psi0 to get all the |J> to which |i> is connected. The |J> are searched in short pre-computed lists.
@ -2978,6 +3064,7 @@ Subroutines / functions
File: :file:`s2.irp.f`
Computes <i|S2|Psi> = \sum_J c_J <i|S2|J>.
Uses filter_connected_i_H_psi0 to get all the |J> to which |i> is connected. The |J> are searched in short pre-computed lists.
@ -3105,7 +3192,9 @@ Subroutines / functions
File: :file:`occ_pattern.irp.f`
Transforms a determinant to an occupation pattern
occ(:,1) : Single occupations
occ(:,2) : Double occupations
@ -3113,6 +3202,7 @@ Subroutines / functions
.. c:function:: occ_pattern_search_key
.. code:: text
@ -3248,6 +3338,7 @@ Subroutines / functions
File: :file:`s2.irp.f`
Computes v_0 = S^2|u_0>
n : number of determinants
@ -3255,6 +3346,7 @@ Subroutines / functions
.. c:function:: s2_u_0_nstates
.. code:: text
@ -3264,6 +3356,7 @@ Subroutines / functions
File: :file:`s2.irp.f`
Computes v_0 = S^2|u_0>
n : number of determinants
@ -3271,6 +3364,7 @@ Subroutines / functions
.. c:function:: save_natural_mos
.. code:: text
@ -3434,6 +3528,7 @@ Subroutines / functions
File: :file:`determinants.irp.f`
Determinants are sorted are sorted according to their det_search_key. Useful to accelerate the search of a random determinant in the wave function.
/!\ The first dimension of coef_out and coef_in need to be psi_det_size
@ -3441,6 +3536,7 @@ Subroutines / functions
.. c:function:: spin_det_search_key
.. code:: text
@ -3478,6 +3574,7 @@ Subroutines / functions
File: :file:`s2.irp.f`
Computes e_0 = <u_0|S2|u_0>/<u_0|u_0>
n : number of determinants
@ -3485,6 +3582,7 @@ Subroutines / functions
.. c:function:: wf_of_psi_bilinear_matrix
.. code:: text

View File

@ -12,7 +12,7 @@ This module contains the main keywords related to a DFT calculation or RS-DFT ca
* :option:`dft_keywords exchange_functional`
* :option:`dft_keywords correlation_functional`
* :option:`dft_keywords HF_exchange` : only relevent for the :ref:`ks_scf` program
* :option:`dft_keywords HF_exchange` : only relevent for the :c:func:`rs_ks_scf` program
The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.

View File

@ -720,8 +720,8 @@ Providers
.. code:: text
subroutine GGA_sr_type_functionals(r,rho_a,rho_b,grad_rho_a_2,grad_rho_b_2,grad_rho_a_b, &
ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, &
ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b )
ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, &
ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b )
File: :file:`utils.irp.f`
@ -735,8 +735,8 @@ Providers
.. code:: text
subroutine GGA_type_functionals(r,rho_a,rho_b,grad_rho_a_2,grad_rho_b_2,grad_rho_a_b, &
ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, &
ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b )
ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, &
ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b )
File: :file:`utils.irp.f`
@ -1591,13 +1591,21 @@ Subroutines / functions
File: :file:`exc_sr_pbe.irp.f`
Short-range PBE correlation energy functional for erf interaction
input : ==========
mu = range separated parameter
rhoc, rhoo = total density and spin density
sigmacc = square of the gradient of the total density
sigmaco = square of the gradient of the spin density
sigmaoo = scalar product between the gradient of the total density and the one of the spin density
output: ==========
ec = correlation energy
@ -1605,6 +1613,7 @@ Subroutines / functions
.. c:function:: ec_pbe_sr
.. code:: text
@ -1614,19 +1623,33 @@ Subroutines / functions
File: :file:`exc_sr_pbe.irp.f`
Short-range PBE correlation energy functional for erf interaction
input : ==========
mu = range separated parameter
rhoc, rhoo = total density and spin density
sigmacc = square of the gradient of the total density
sigmaco = square of the gradient of the spin density
sigmaoo = scalar product between the gradient of the total density and the one of the spin density
output: ==========
ec = correlation energy
all variables v** are energy derivatives with respect to components of the density
vrhoc = derivative with respect to the total density
vrhoo = derivative with respect to spin density
vsigmacc = derivative with respect to the square of the gradient of the total density
vsigmaco = derivative with respect to scalar product between the gradients of total and spin densities
vsigmaoo = derivative with respect to the square of the gradient of the psin density

View File

@ -87,6 +87,7 @@ Subroutines / functions
File: :file:`get_unit_and_open.irp.f`
:f: file name
:mode: 'R' : READ, UNFORMATTED 'W' : WRITE, UNFORMATTED 'r' : READ, FORMATTED 'w' : WRITE, FORMATTED 'a' : APPEND, FORMATTED 'x' : READ/WRITE, FORMATTED
@ -94,6 +95,7 @@ Subroutines / functions
.. c:function:: write_bool
.. code:: text

View File

@ -33,7 +33,7 @@ By default, the program will stop when more than one million determinants have
been selected, or when the |PT2| energy is below :math:`10^{-4}`.
The variational and |PT2| energies of the iterations are stored in the
|EZFIO| database, in the :ref:`IterativeSave` module.
|EZFIO| database, in the :ref:`iterations` module.

View File

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

View File

@ -63,77 +63,6 @@ Providers
---------
.. c:var:: ao_bi_elec_integral_alpha
.. code:: text
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
File: :file:`fock_matrix_hf.irp.f`
Alpha Fock matrix in AO basis set
.. c:var:: ao_bi_elec_integral_beta
.. code:: text
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
File: :file:`fock_matrix_hf.irp.f`
Alpha Fock matrix in AO basis set
.. c:var:: extra_e_contrib_density
.. code:: text
double precision :: extra_e_contrib_density
File: :file:`hf_energy.irp.f`
Extra contribution to the SCF energy coming from the density.
For a Hartree-Fock calculation: extra_e_contrib_density = 0
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential
.. c:var:: fock_matrix_ao_alpha
.. code:: text
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
File: :file:`fock_matrix_hf.irp.f`
Alpha Fock matrix in AO basis set
.. c:var:: fock_matrix_ao_beta
.. code:: text
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
File: :file:`fock_matrix_hf.irp.f`
Alpha Fock matrix in AO basis set
.. c:var:: hf_energy
.. code:: text
@ -184,34 +113,6 @@ Subroutines / functions
.. c:function:: create_guess
.. code:: text
subroutine create_guess
File: :file:`scf_old.irp.f`
Create a MO guess if no MOs are present in the EZFIO directory
.. c:function:: run
.. code:: text
subroutine run
File: :file:`scf_old.irp.f`
Run SCF calculation
.. c:function:: scf
.. code:: text

View File

@ -52,6 +52,34 @@ Providers
---------
.. c:var:: ao_bi_elec_integral_alpha
.. code:: text
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Alpha Fock matrix in ao basis set
.. c:var:: ao_bi_elec_integral_beta
.. code:: text
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Alpha Fock matrix in ao basis set
.. c:var:: ao_potential_alpha_xc
.. code:: text
@ -106,6 +134,23 @@ Providers
.. c:var:: extra_e_contrib_density
.. code:: text
double precision :: extra_e_contrib_density
File: :file:`ks_enery.irp.f`
Extra contribution to the SCF energy coming from the density.
For a Hartree-Fock calculation: extra_e_contrib_density = 0
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - 1/2 trace of the V_xc potential
.. c:var:: fock_matrix_alpha_no_xc_ao
.. code:: text
@ -120,6 +165,34 @@ Providers
.. c:var:: fock_matrix_ao_alpha
.. code:: text
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Alpha Fock matrix in ao basis set
.. c:var:: fock_matrix_ao_beta
.. code:: text
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
File: :file:`fock_matrix_ks.irp.f`
Alpha Fock matrix in ao basis set
.. c:var:: fock_matrix_beta_no_xc_ao
.. code:: text
@ -238,6 +311,34 @@ Subroutines / functions
.. c:function:: create_guess
.. code:: text
subroutine create_guess
File: :file:`ks_scf.irp.f`
Create a MO guess if no MOs are present in the EZFIO directory
.. c:function:: run
.. code:: text
subroutine run
File: :file:`ks_scf.irp.f`
Run SCF calculation
.. c:function:: srs_ks_cf
.. code:: text

View File

@ -47,6 +47,15 @@ To start a calculation from scratch, the simplest way is to remove the
EZFIO parameters
----------------
.. option:: energy
SCF energy
Providers
---------
@ -66,3 +75,21 @@ Providers
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Subroutines / functions
-----------------------
.. c:function:: rs_ks_scf
.. code:: text
subroutine rs_ks_scf
File: :file:`rs_ks_scf.irp.f`
Produce `Range_separated_Kohn_Sham` MO orbital output: mo_basis.mo_tot_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy optional: mo_basis.mo_coef

View File

@ -91,6 +91,7 @@ Providers
File: :file:`track_orb.irp.f`
Void provider to store the coefficients of the |MO| basis at the beginning of the SCF iteration
Usefull to track some orbitals
@ -105,6 +106,7 @@ Providers
File: :file:`mos.irp.f`
MO coefficients in orthogonalized AO basis
C^(-1).C_mo
@ -189,6 +191,7 @@ Subroutines / functions
File: :file:`mos.irp.f`
Transform A from the AO basis to the orthogonal AO basis
C^(-1).A_ao.Ct^(-1)
@ -204,6 +207,7 @@ Subroutines / functions
File: :file:`mos.irp.f`
Transform A from the AO basis to the MO basis
Ct.A_ao.C
@ -261,6 +265,7 @@ Subroutines / functions
File: :file:`track_orb.irp.f`
Initialize :c:data:`mo_coef_begin_iteration` to the current :c:data:`mo_coef`
@ -276,8 +281,11 @@ Subroutines / functions
File: :file:`mos.irp.f`
Rotates the jth MO with the kth MO to give two new MO's that are
'+' = 1/sqrt(2) (|j> + |k>)
'-' = 1/sqrt(2) (|j> - |k>)
by convention, the '+' MO is in the lower index (min(j,k)) by convention, the '-' MO is in the larger index (max(j,k))

View File

@ -272,6 +272,7 @@ Subroutines / functions
File: :file:`ao_to_mo.irp.f`
Transform A from the MO basis to the AO basis
(S.C).A_mo.(S.C)t

View File

@ -72,7 +72,7 @@ Providers
.. code:: text
subroutine insert_into_mo_integrals_erf_map(n_integrals, &
buffer_i, buffer_values, thr)
buffer_i, buffer_values, thr)
File: :file:`map_integrals_erf.irp.f`
@ -91,6 +91,7 @@ Providers
File: :file:`ints_erf_3_index.irp.f`
int_erf_3_index(i,j) = <ij|ij> = (ii|jj) with the erf interaction
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction
@ -106,6 +107,7 @@ Providers
File: :file:`ints_erf_3_index.irp.f`
int_erf_3_index(i,j) = <ij|ij> = (ii|jj) with the erf interaction
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction

View File

@ -76,6 +76,7 @@ Providers
File: :file:`integrals_3_index.irp.f`
big_array_coulomb_integrals(i,j) = <ij|ij> = (ii|jj)
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
@ -91,6 +92,7 @@ Providers
File: :file:`integrals_3_index.irp.f`
big_array_coulomb_integrals(i,j) = <ij|ij> = (ii|jj)
big_array_exchange_integrals(i,j) = <ij|ji> = (ij|ij)
@ -127,7 +129,7 @@ Providers
.. code:: text
subroutine insert_into_mo_integrals_map(n_integrals, &
buffer_i, buffer_values, thr)
buffer_i, buffer_values, thr)
File: :file:`map_integrals.irp.f`

View File

@ -118,7 +118,7 @@ Providers
.. code:: text
subroutine fill_H_apply_buffer_selection(n_selected,det_buffer,e_2_pert_buffer,coef_pert_buffer, &
N_st,Nint,iproc,select_max_out)
N_st,Nint,iproc,select_max_out)
File: :file:`selection.irp.f`
@ -203,6 +203,22 @@ Subroutines / functions
.. c:function:: i_h_psi_pert_new_minilist
.. code:: text
subroutine i_H_psi_pert_new_minilist(key,keys,idx_key,N_minilist,coef,Nint,Ndet,Ndet_max,Nstate,i_H_psi_array,coef_pert)
File: :file:`pt2_new.irp.f`
Computes <i|H|Psi> = \sum_J c_J <i|H|J>.
Uses filter_connected_i_H_psi0 to get all the |J> to which |i> is connected. The |J> are searched in short pre-computed lists.
.. c:function:: perturb_buffer_by_mono_decontracted
.. code:: text
@ -492,8 +508,11 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
for the various N_st states.
c_pert(i) = <psi(i)|H|det_pert>/( E(i) - <det_pert|H|det_pert> )
e_2_pert(i) = <psi(i)|H|det_pert>^2/( E(i) - <det_pert|H|det_pert> )
@ -501,6 +520,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2
.. code:: text
@ -510,8 +530,11 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
for the various N_st states.
e_2_pert(i) = 0.5 * (( <det_pert|H|det_pert> - E(i) ) - sqrt( ( <det_pert|H|det_pert> - E(i)) ^2 + 4 <psi(i)|H|det_pert>^2 )
c_pert(i) = e_2_pert(i)/ <psi(i)|H|det_pert>
@ -519,6 +542,7 @@ Subroutines / functions
.. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag
.. code:: text
@ -528,8 +552,11 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
for the various N_st states.
e_2_pert(i) = 0.5 * (( <det_pert|H|det_pert> - E(i) ) - sqrt( ( <det_pert|H|det_pert> - E(i)) ^2 + 4 <psi(i)|H|det_pert>^2 )
c_pert(i) = e_2_pert(i)/ <psi(i)|H|det_pert>
@ -537,6 +564,7 @@ Subroutines / functions
.. c:function:: pt2_h_core
.. code:: text
@ -546,8 +574,11 @@ Subroutines / functions
File: :file:`pert_single.irp.f`
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
for the various N_st states.
c_pert(i) = <psi(i)|H|det_pert>/( E(i) - <det_pert|H|det_pert> )
e_2_pert(i) = <psi(i)|H|det_pert>^2/( E(i) - <det_pert|H|det_pert> )
@ -555,6 +586,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset
.. code:: text
@ -564,8 +596,11 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the standard Moller-Plesset perturbative first order coefficient and second order energetic contribution
for the various n_st states.
c_pert(i) = <psi(i)|H|det_pert>/(difference of orbital energies)
e_2_pert(i) = <psi(i)|H|det_pert>^2/(difference of orbital energies)
@ -573,6 +608,7 @@ Subroutines / functions
.. c:function:: pt2_moller_plesset_general
.. code:: text
@ -582,8 +618,11 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the general Moller-Plesset perturbative first order coefficient and second order energetic contribution
for the various n_st states.
c_pert(i) = <psi(i)|H|det_pert>/(difference of orbital energies)
e_2_pert(i) = <psi(i)|H|det_pert>^2/(difference of orbital energies)
@ -591,6 +630,7 @@ Subroutines / functions
.. c:function:: pt2_qdpt
.. code:: text
@ -600,7 +640,9 @@ Subroutines / functions
File: :file:`pt2_equations.irp.f_template_412`
compute the QDPT first order coefficient and second order energetic contribution
for the various N_st states.
c_pert(i) = <psi(i)|H|det_pert>/( <psi(i)|H|psi(i)> - <det_pert|H|det_pert> )
@ -608,6 +650,7 @@ Subroutines / functions
.. c:function:: remove_small_contributions
.. code:: text

View File

@ -12,3 +12,166 @@ Reference wave function is defined as a |CAS| wave function.
This module is required for |CAS-SD|, |MRPT| or |MRCC|.
Providers
---------
.. c:var:: idx_ref
.. code:: text
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_ref (psi_det_size)
integer :: n_det_ref
File: :file:`psi_ref.irp.f`
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.
.. c:var:: inv_norm_psi_ref
.. code:: text
double precision, allocatable :: norm_psi_ref (N_states)
double precision, allocatable :: inv_norm_psi_ref (N_states)
File: :file:`psi_ref.irp.f`
.. c:var:: n_det_ref
.. code:: text
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_ref (psi_det_size)
integer :: n_det_ref
File: :file:`psi_ref.irp.f`
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.
.. c:var:: norm_psi_ref
.. code:: text
double precision, allocatable :: norm_psi_ref (N_states)
double precision, allocatable :: inv_norm_psi_ref (N_states)
File: :file:`psi_ref.irp.f`
.. c:var:: psi_non_ref_coef_interm_norm
.. code:: text
double precision, allocatable :: psi_non_ref_coef_interm_norm (N_det_non_ref,N_states)
File: :file:`psi_ref.irp.f`
.. c:var:: psi_ref
.. code:: text
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_ref (psi_det_size)
integer :: n_det_ref
File: :file:`psi_ref.irp.f`
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.
.. c:var:: psi_ref_coef
.. code:: text
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_ref (psi_det_size)
integer :: n_det_ref
File: :file:`psi_ref.irp.f`
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.
.. c:var:: psi_ref_coef_interm_norm
.. code:: text
double precision, allocatable :: psi_ref_coef_interm_norm (N_det_ref,N_states)
File: :file:`psi_ref.irp.f`
.. c:var:: psi_ref_coef_inv
.. code:: text
double precision, allocatable :: psi_ref_coef_inv (psi_det_size,n_states)
File: :file:`psi_ref.irp.f`
1/psi_ref_coef
.. c:var:: psi_ref_coef_restart
.. code:: text
integer(bit_kind), allocatable :: psi_ref_restart (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef_restart (psi_det_size,n_states)
File: :file:`psi_ref.irp.f`
Projection of the CAS wave function on the restart wave function.
.. c:var:: psi_ref_restart
.. code:: text
integer(bit_kind), allocatable :: psi_ref_restart (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef_restart (psi_det_size,n_states)
File: :file:`psi_ref.irp.f`
Projection of the CAS wave function on the restart wave function.

View File

@ -14,3 +14,369 @@ needs to be loaded with any `psi_ref_*` module.
Providers
---------
.. c:var:: h_matrix_ref
.. code:: text
double precision, allocatable :: h_matrix_ref (N_det_ref,N_det_ref)
File: :file:`psi_ref_utils.irp.f`
.. c:var:: holes_operators
.. code:: text
integer(bit_kind), allocatable :: holes_operators (N_int,2)
integer(bit_kind), allocatable :: particles_operators (N_int,2)
File: :file:`psi_ref_excitations_operators.irp.f`
holes_operators represents an array of integers where all the holes have been done going from psi_ref to psi_non_ref particles_operators represents an array of integers where all the particles have been done going from psi_ref to psi_non_ref
.. c:var:: idx_non_ref
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_ref (psi_det_size)
integer, allocatable :: idx_non_ref_rev (psi_det_size)
integer :: n_det_non_ref
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
.. c:var:: idx_non_ref_from_sorted
.. code:: text
integer, allocatable :: idx_non_ref_from_sorted (N_det)
File: :file:`psi_ref_utils.irp.f`
.. c:var:: idx_non_ref_rev
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_ref (psi_det_size)
integer, allocatable :: idx_non_ref_rev (psi_det_size)
integer :: n_det_non_ref
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
.. c:var:: n_det_non_ref
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_ref (psi_det_size)
integer, allocatable :: idx_non_ref_rev (psi_det_size)
integer :: n_det_non_ref
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
.. c:var:: particles_operators
.. code:: text
integer(bit_kind), allocatable :: holes_operators (N_int,2)
integer(bit_kind), allocatable :: particles_operators (N_int,2)
File: :file:`psi_ref_excitations_operators.irp.f`
holes_operators represents an array of integers where all the holes have been done going from psi_ref to psi_non_ref particles_operators represents an array of integers where all the particles have been done going from psi_ref to psi_non_ref
.. c:var:: psi_non_ref
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_ref (psi_det_size)
integer, allocatable :: idx_non_ref_rev (psi_det_size)
integer :: n_det_non_ref
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
.. c:var:: psi_non_ref_coef
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_ref (psi_det_size)
integer, allocatable :: idx_non_ref_rev (psi_det_size)
integer :: n_det_non_ref
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
.. c:var:: psi_non_ref_coef_restart
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref_restart (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef_restart (psi_det_size,n_states)
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. But this is with respect to the restart wave function.
.. c:var:: psi_non_ref_coef_sorted_bit
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef_sorted_bit (psi_det_size,N_states)
File: :file:`psi_ref_utils.irp.f`
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
.. c:var:: psi_non_ref_coef_transp
.. code:: text
double precision, allocatable :: psi_non_ref_coef_transp (n_states,psi_det_size)
File: :file:`psi_ref_utils.irp.f`
Transposed psi_non_ref_coef
.. c:var:: psi_non_ref_restart
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref_restart (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef_restart (psi_det_size,n_states)
File: :file:`psi_ref_utils.irp.f`
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. But this is with respect to the restart wave function.
.. c:var:: psi_non_ref_sorted_bit
.. code:: text
integer(bit_kind), allocatable :: psi_non_ref_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_ref_coef_sorted_bit (psi_det_size,N_states)
File: :file:`psi_ref_utils.irp.f`
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
.. c:var:: psi_ref_coef_diagonalized
.. code:: text
double precision, allocatable :: psi_ref_coef_diagonalized (N_det_ref,N_states)
double precision, allocatable :: psi_ref_energy_diagonalized (N_states)
File: :file:`psi_ref_utils.irp.f`
.. c:var:: psi_ref_coef_normalized
.. code:: text
double precision, allocatable :: psi_ref_coef_normalized (psi_det_size,n_states)
File: :file:`psi_ref_utils.irp.f`
Normalized coefficients of the reference
.. c:var:: psi_ref_coef_sorted_bit
.. code:: text
integer(bit_kind), allocatable :: psi_ref_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef_sorted_bit (psi_det_size,N_states)
File: :file:`psi_ref_utils.irp.f`
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
.. c:var:: psi_ref_coef_transp
.. code:: text
double precision, allocatable :: psi_ref_coef_transp (n_states,psi_det_size)
File: :file:`psi_ref_utils.irp.f`
Transposed psi_ref_coef
.. c:var:: psi_ref_energy
.. code:: text
double precision, allocatable :: psi_ref_energy (N_states)
File: :file:`psi_ref_utils.irp.f`
.. c:var:: psi_ref_energy_diagonalized
.. code:: text
double precision, allocatable :: psi_ref_coef_diagonalized (N_det_ref,N_states)
double precision, allocatable :: psi_ref_energy_diagonalized (N_states)
File: :file:`psi_ref_utils.irp.f`
.. c:var:: psi_ref_sorted_bit
.. code:: text
integer(bit_kind), allocatable :: psi_ref_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_ref_coef_sorted_bit (psi_det_size,N_states)
File: :file:`psi_ref_utils.irp.f`
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
.. c:var:: ref_hamiltonian_matrix
.. code:: text
double precision, allocatable :: ref_hamiltonian_matrix (n_det_ref,n_det_ref)
File: :file:`psi_ref_utils.irp.f`
H matrix in the Reference space
Subroutines / functions
-----------------------
.. c:function:: extract_ref
.. code:: text
subroutine extract_ref
File: :file:`extract_ref.irp.f`
Replaces the total wave function by the normalized projection on the reference
.. c:function:: get_index_in_psi_ref_sorted_bit
.. code:: text
integer function get_index_in_psi_ref_sorted_bit(key,Nint)
File: :file:`psi_ref_utils.irp.f`
Returns the index of the determinant in the ``psi_ref_sorted_bit`` array
.. c:function:: is_in_psi_ref
.. code:: text
logical function is_in_psi_ref(key,Nint)
File: :file:`psi_ref_utils.irp.f`
True if the determinant ``det`` is in the wave function

View File

@ -1,38 +0,0 @@
.. _read_integral:
.. program:: read_integral
.. default-role:: option
=============
read_integral
=============
Warning: CAN NOT CHANGE THE NUMBER OF MO !
Scripts to read integrals and metadata and generates fake ezfio
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.
`print_integrals <http://github.com/LCPQ/quantum_package/tree/master/plugins/read_integral/read_integrals_mo.irp.f#L1>`_
Undocumented
`run <http://github.com/LCPQ/quantum_package/tree/master/plugins/read_integral/read_integrals_mo.irp.f#L8>`_
Undocumented

View File

@ -154,9 +154,9 @@ Providers
.. code:: text
subroutine extrapolate_Fock_matrix( &
error_matrix_DIIS,Fock_matrix_DIIS, &
Fock_matrix_AO_,size_Fock_matrix_AO, &
iteration_SCF,dim_DIIS &
error_matrix_DIIS,Fock_matrix_DIIS, &
Fock_matrix_AO_,size_Fock_matrix_AO, &
iteration_SCF,dim_DIIS &
)
File: :file:`roothaan_hall_scf.irp.f`
@ -188,15 +188,21 @@ Providers
File: :file:`fock_matrix.irp.f`
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is ::
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
F = 1/2 (Fa + Fb)
K = Fb - Fa
.. c:var:: fock_matrix_mo
.. code:: text
@ -206,15 +212,21 @@ Providers
File: :file:`fock_matrix.irp.f`
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is ::
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
F = 1/2 (Fa + Fb)
K = Fb - Fa
.. c:var:: fock_matrix_mo_alpha
.. code:: text

View File

@ -32,10 +32,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -56,10 +58,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -75,9 +79,10 @@ Providers
File: :file:`e_corr_selectors.irp.f`
degree of excitation respect to Hartree Fock for the wave function
for the all the selectors determinants
Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.
double_index_selectors = list of the index of the double excitations
n_double_selectors = number of double excitations in the selectors determinants
@ -98,10 +103,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -122,10 +129,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -146,10 +155,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -165,9 +176,10 @@ Providers
File: :file:`e_corr_selectors.irp.f`
degree of excitation respect to Hartree Fock for the wave function
for the all the selectors determinants
Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.
double_index_selectors = list of the index of the double excitations
n_double_selectors = number of double excitations in the selectors determinants
@ -188,10 +200,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -212,10 +226,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -236,10 +252,12 @@ Providers
File: :file:`e_corr_selectors.irp.f`
energy of correlation per determinant respect to the Hartree Fock determinant
for the all the double excitations in the selectors determinants
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.
E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
@ -255,9 +273,10 @@ Providers
File: :file:`e_corr_selectors.irp.f`
degree of excitation respect to Hartree Fock for the wave function
for the all the selectors determinants
Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.
double_index_selectors = list of the index of the double excitations
n_double_selectors = number of double excitations in the selectors determinants

View File

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

View File

@ -73,20 +73,6 @@ Subroutines / functions
.. c:function:: print_r2
.. code:: text
subroutine print_r2
File: :file:`print_r2.irp.f`
.. c:function:: print_wf
.. code:: text
@ -96,8 +82,11 @@ Subroutines / functions
File: :file:`print_wf.irp.f`
print the wave function stored in the EZFIO folder in the intermediate normalization
it also prints a lot of information regarding the excitation operators from the reference determinant
and a first-order perturbative analysis of the wave function.
If the wave function strongly deviates from the first-order analysis, something funny is going on :)
@ -141,7 +130,9 @@ Subroutines / functions
File: :file:`save_one_body_dm.irp.f`
programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
Then, the global variable data_one_body_alpha_dm_mo and data_one_body_beta_dm_mo will automatically read the density in a further calculation.
This can be used to perform dampin on the density in RS-DFT calculation (see the density_for_dft module).

View File

@ -221,17 +221,19 @@ Providers
.. code:: text
subroutine overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,&
power_B,overlap_x,overlap_y,overlap_z,overlap,dim)
power_B,overlap_x,overlap_y,overlap_z,overlap,dim)
File: :file:`one_e_integration.irp.f`
.. math::
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
.. c:var:: phi_angular_integration_lebedev
.. code:: text
@ -466,6 +468,7 @@ Subroutines / functions
File: :file:`util.irp.f`
.. math ::
\frac{i!}{j!(i-j)!}
@ -473,6 +476,7 @@ Subroutines / functions
.. c:function:: check_mem
.. code:: text
@ -790,6 +794,7 @@ Subroutines / functions
File: :file:`integration.irp.f`
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
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 )
@ -1253,8 +1258,11 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Diagonalize matrix H
H is untouched between input and ouptut
eigevalues(i) = ith lowest eigenvalue of the H matrix
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
@ -1262,6 +1270,7 @@ Subroutines / functions
.. c:function:: lapack_diagd
.. code:: text
@ -1271,8 +1280,11 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Diagonalize matrix H
H is untouched between input and ouptut
eigevalues(i) = ith lowest eigenvalue of the H matrix
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
@ -1280,6 +1292,7 @@ Subroutines / functions
.. c:function:: logfact
.. code:: text
@ -1401,11 +1414,17 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Compute C_new=C_old.U.s^-1/2 canonical orthogonalization.
overlap : overlap matrix
LDA : leftmost dimension of overlap array
N : Overlap matrix is NxN (array is (LDA,N) )
C : Coefficients of the vectors to orthogonalize. On exit, orthogonal vectors
LDC : leftmost dimension of C
m : Coefficients matrix is MxN, ( array is (LDC,N) )
@ -1413,6 +1432,7 @@ Subroutines / functions
.. c:function:: ortho_lowdin
.. code:: text
@ -1422,11 +1442,17 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Compute C_new=C_old.S^-1/2 orthogonalization.
overlap : overlap matrix
LDA : leftmost dimension of overlap array
N : Overlap matrix is NxN (array is (LDA,N) )
C : Coefficients of the vectors to orthogonalize. On exit, orthogonal vectors
LDC : leftmost dimension of C
M : Coefficients matrix is MxN, ( array is (LDC,N) )
@ -1434,6 +1460,7 @@ Subroutines / functions
.. c:function:: ortho_qr
.. code:: text
@ -1443,9 +1470,13 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Orthogonalization using Q.R factorization
A : matrix to orthogonalize
LDA : leftmost dimension of A
n : Number of rows of A
m : Number of columns of A
@ -1453,6 +1484,7 @@ Subroutines / functions
.. c:function:: ortho_qr_unblocked
.. code:: text
@ -1462,9 +1494,13 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Orthogonalization using Q.R factorization
A : matrix to orthogonalize
LDA : leftmost dimension of A
n : Number of rows of A
m : Number of columns of A
@ -1472,6 +1508,7 @@ Subroutines / functions
.. c:function:: overlap_gaussian_x
.. code:: text
@ -1481,6 +1518,7 @@ Subroutines / functions
File: :file:`one_e_integration.irp.f`
.. math::
\sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx
@ -1488,6 +1526,7 @@ Subroutines / functions
.. c:function:: overlap_x_abs
.. code:: text
@ -1497,6 +1536,7 @@ Subroutines / functions
File: :file:`one_e_integration.irp.f`
.. math ::
\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
@ -1504,6 +1544,7 @@ Subroutines / functions
.. c:function:: print_memory_usage
.. code:: text
@ -1625,6 +1666,7 @@ Subroutines / functions
File: :file:`integration.irp.f`
.. math::
\int_0^1 dx \exp(-p x^2) x^n
@ -1632,6 +1674,7 @@ Subroutines / functions
.. c:function:: rint1
.. code:: text
@ -1837,7 +1880,9 @@ Subroutines / functions
File: :file:`linear_algebra.irp.f`
Compute A = U.D.Vt
LDx : leftmost dimension of x
Dimsneion of A is m x n
@ -1845,6 +1890,7 @@ Subroutines / functions
.. c:function:: total_memory
.. code:: text

View File

@ -10,6 +10,7 @@ Index of Modules
:glob:
/modules/*
/programmers_guide/plugins
.. Auto-generated file

View File

@ -112,6 +112,7 @@ Index of Providers
* :c:data:`aos_vx_alpha_pbe_w`
* :c:data:`aos_vx_beta_lda_w`
* :c:data:`aos_vx_beta_pbe_w`
* :c:data:`apply_exc_to_psi`
* :c:data:`barycentric_electronic_energy`
* :c:data:`bi_elec_ref_bitmask_energy`
* :c:data:`big_array_coulomb_integrals`
@ -133,8 +134,12 @@ Index of Providers
* :c:data:`cart_to_sphe_9`
* :c:data:`cas_bitmask`
* :c:data:`center_of_mass`
* :c:data:`ci_dressed_pt2_new_eigenvectors`
* :c:data:`ci_dressed_pt2_new_eigenvectors_s2`
* :c:data:`ci_dressed_pt2_new_energy`
* :c:data:`ci_eigenvectors`
* :c:data:`ci_eigenvectors_s2`
* :c:data:`ci_electronic_dressed_pt2_new_energy`
* :c:data:`ci_electronic_energy`
* :c:data:`ci_energy`
* :c:data:`closed_shell_ref_bitmask`
@ -146,6 +151,7 @@ Index of Providers
* :c:data:`core_fock_operator_erf`
* :c:data:`core_inact_act_bitmask_4`
* :c:data:`core_inact_virt_bitmask`
* :c:data:`corr_e_from_1h1p`
* :c:data:`correlation_energy_ratio_max`
* :c:data:`correlation_functional`
* :c:data:`damping_for_rs_dft`
@ -158,6 +164,7 @@ Index of Providers
* :c:data:`degree_max_generators`
* :c:data:`degree_max_integration_lebedev`
* :c:data:`delta_e_per_selector`
* :c:data:`delta_ij_mrpt`
* :c:data:`density_for_dft`
* :c:data:`det_alpha_norm`
* :c:data:`det_beta_norm`
@ -177,6 +184,7 @@ Index of Providers
* :c:data:`do_direct_integrals`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`do_third_order_1h1p`
* :c:data:`double_exc_bitmask`
* :c:data:`double_index_selectors`
* :c:data:`dr_radial_integral`
@ -203,6 +211,8 @@ Index of Providers
* :c:data:`energy_c`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_pbe`
* :c:data:`energy_cas_dyall`
* :c:data:`energy_cas_dyall_no_exchange`
* :c:data:`energy_iterations`
* :c:data:`energy_sr_c_lda`
* :c:data:`energy_sr_c_pbe`
@ -224,6 +234,12 @@ Index of Providers
* :c:data:`final_grid_points`
* :c:data:`final_weight_at_r`
* :c:data:`final_weight_at_r_vector`
* :c:data:`final_weight_functions_at_final_grid_points`
* :c:data:`final_weight_functions_at_grid_points`
* :c:data:`fock_core_inactive`
* :c:data:`fock_core_inactive_from_act`
* :c:data:`fock_core_inactive_total`
* :c:data:`fock_core_inactive_total_spin_trace`
* :c:data:`fock_matrix_alpha_no_xc_ao`
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_ao_alpha`
@ -234,7 +250,12 @@ Index of Providers
* :c:data:`fock_matrix_mo`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`fock_operator_active_from_core_inact`
* :c:data:`fock_operator_closed_shell_ref_bitmask`
* :c:data:`fock_virt_from_act`
* :c:data:`fock_virt_from_core_inact`
* :c:data:`fock_virt_total`
* :c:data:`fock_virt_total_spin_trace`
* :c:data:`fock_wee_closed_shell`
* :c:data:`fps_spf_matrix_ao`
* :c:data:`fps_spf_matrix_mo`
@ -242,12 +263,17 @@ Index of Providers
* :c:data:`full_ijkl_bitmask_4`
* :c:data:`gauleg_t2`
* :c:data:`gauleg_w`
* :c:data:`gen_det_ref_idx`
* :c:data:`gen_det_ref_shortcut`
* :c:data:`gen_det_ref_sorted`
* :c:data:`gen_det_ref_version`
* :c:data:`general_primitive_integral`
* :c:data:`general_primitive_integral_erf`
* :c:data:`generators_bitmask`
* :c:data:`generators_bitmask_restart`
* :c:data:`gga_sr_type_functionals`
* :c:data:`gga_type_functionals`
* :c:data:`give_holes_and_particles_in_active_space`
* :c:data:`grad_aos_dsr_vc_alpha_pbe_w`
* :c:data:`grad_aos_dsr_vc_beta_pbe_w`
* :c:data:`grad_aos_dsr_vx_alpha_pbe_w`
@ -264,11 +290,15 @@ Index of Providers
* :c:data:`h_apply_buffer_lock`
* :c:data:`h_matrix_all_dets`
* :c:data:`h_matrix_cas`
* :c:data:`h_matrix_ref`
* :c:data:`hf_bitmask`
* :c:data:`hf_energy`
* :c:data:`hf_exchange`
* :c:data:`hf_one_electron_energy`
* :c:data:`hf_two_electron_energy`
* :c:data:`hmatrix_dressed_pt2_new`
* :c:data:`hmatrix_dressed_pt2_new_symmetrized`
* :c:data:`holes_operators`
* :c:data:`i2radix_sort`
* :c:data:`i8radix_sort`
* :c:data:`i8radix_sort_big`
@ -284,6 +314,10 @@ Index of Providers
* :c:data:`i_x2_pol_mult_mono_elec`
* :c:data:`idx_cas`
* :c:data:`idx_non_cas`
* :c:data:`idx_non_ref`
* :c:data:`idx_non_ref_from_sorted`
* :c:data:`idx_non_ref_rev`
* :c:data:`idx_ref`
* :c:data:`inact_bitmask`
* :c:data:`inact_virt_bitmask`
* :c:data:`index_final_points`
@ -298,7 +332,10 @@ Index of Providers
* :c:data:`insert_into_mo_integrals_map`
* :c:data:`int_erf_3_index`
* :c:data:`int_erf_3_index_exc`
* :c:data:`integral_density_alpha_knowles_becke_per_atom`
* :c:data:`integral_density_beta_knowles_becke_per_atom`
* :c:data:`inv_int`
* :c:data:`inv_norm_psi_ref`
* :c:data:`inv_selectors_coef_hf`
* :c:data:`inv_selectors_coef_hf_squared`
* :c:data:`iradix_sort`
@ -403,7 +440,9 @@ Index of Providers
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_non_cas`
* :c:data:`n_det_non_ref`
* :c:data:`n_det_print_wf`
* :c:data:`n_det_ref`
* :c:data:`n_det_selectors`
* :c:data:`n_double_exc_bitmasks`
* :c:data:`n_double_selectors`
@ -431,6 +470,7 @@ Index of Providers
* :c:data:`no_oa_or_av_opt`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`norm_psi_ref`
* :c:data:`nproc`
* :c:data:`nthreads_davidson`
* :c:data:`nucl_aos`
@ -452,19 +492,31 @@ Index of Providers
* :c:data:`nucl_num`
* :c:data:`nucl_num_shell_aos`
* :c:data:`nuclear_repulsion`
* :c:data:`one_anhil`
* :c:data:`one_anhil_inact`
* :c:data:`one_anhil_one_creat`
* :c:data:`one_anhil_one_creat_inact_virt`
* :c:data:`one_anhil_one_creat_inact_virt_bis`
* :c:data:`one_anhil_one_creat_inact_virt_norm`
* :c:data:`one_body_dm_alpha_and_grad_at_r`
* :c:data:`one_body_dm_alpha_ao_for_dft`
* :c:data:`one_body_dm_alpha_at_r`
* :c:data:`one_body_dm_ao_alpha`
* :c:data:`one_body_dm_ao_beta`
* :c:data:`one_body_dm_average_mo_for_dft`
* :c:data:`one_body_dm_beta_and_grad_at_r`
* :c:data:`one_body_dm_beta_ao_for_dft`
* :c:data:`one_body_dm_beta_at_r`
* :c:data:`one_body_dm_dagger_mo_spin_index`
* :c:data:`one_body_dm_mo`
* :c:data:`one_body_dm_mo_alpha`
* :c:data:`one_body_dm_mo_alpha_and_grad_at_grid_points`
* :c:data:`one_body_dm_mo_alpha_at_grid_points`
* :c:data:`one_body_dm_mo_alpha_average`
* :c:data:`one_body_dm_mo_alpha_for_dft`
* :c:data:`one_body_dm_mo_beta`
* :c:data:`one_body_dm_mo_beta_and_grad_at_grid_points`
* :c:data:`one_body_dm_mo_beta_at_grid_points`
* :c:data:`one_body_dm_mo_beta_average`
* :c:data:`one_body_dm_mo_beta_for_dft`
* :c:data:`one_body_dm_mo_diff`
@ -476,6 +528,8 @@ Index of Providers
* :c:data:`one_body_single_double_dm_mo_beta`
* :c:data:`one_body_spin_density_ao`
* :c:data:`one_body_spin_density_mo`
* :c:data:`one_creat`
* :c:data:`one_creat_virt`
* :c:data:`one_dm_alpha_in_r`
* :c:data:`one_dm_and_grad_alpha_in_r`
* :c:data:`one_dm_and_grad_beta_in_r`
@ -485,6 +539,7 @@ Index of Providers
* :c:data:`output_cpu_time_0`
* :c:data:`output_wall_time_0`
* :c:data:`overlap_gaussian_xyz`
* :c:data:`particles_operators`
* :c:data:`phi_angular_integration_lebedev`
* :c:data:`potential_c_alpha_ao`
* :c:data:`potential_c_alpha_ao_lda`
@ -527,6 +582,7 @@ Index of Providers
* :c:data:`pseudo_v_k_transp`
* :c:data:`pseudo_v_kl`
* :c:data:`pseudo_v_kl_transp`
* :c:data:`psi_active`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_average_norm_contrib_sorted`
* :c:data:`psi_bilinear_matrix`
@ -580,8 +636,30 @@ Index of Providers
* :c:data:`psi_non_cas_coef`
* :c:data:`psi_non_cas_coef_sorted_bit`
* :c:data:`psi_non_cas_sorted_bit`
* :c:data:`psi_non_ref`
* :c:data:`psi_non_ref_coef`
* :c:data:`psi_non_ref_coef_interm_norm`
* :c:data:`psi_non_ref_coef_restart`
* :c:data:`psi_non_ref_coef_sorted_bit`
* :c:data:`psi_non_ref_coef_transp`
* :c:data:`psi_non_ref_restart`
* :c:data:`psi_non_ref_sorted_bit`
* :c:data:`psi_occ_pattern`
* :c:data:`psi_occ_pattern_hii`
* :c:data:`psi_ref`
* :c:data:`psi_ref_bis_lock`
* :c:data:`psi_ref_coef`
* :c:data:`psi_ref_coef_diagonalized`
* :c:data:`psi_ref_coef_interm_norm`
* :c:data:`psi_ref_coef_inv`
* :c:data:`psi_ref_coef_normalized`
* :c:data:`psi_ref_coef_restart`
* :c:data:`psi_ref_coef_sorted_bit`
* :c:data:`psi_ref_coef_transp`
* :c:data:`psi_ref_energy`
* :c:data:`psi_ref_energy_diagonalized`
* :c:data:`psi_ref_restart`
* :c:data:`psi_ref_sorted_bit`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_coef`
* :c:data:`psi_selectors_coef_transp`
@ -622,6 +700,7 @@ Index of Providers
* :c:data:`ref_bitmask`
* :c:data:`ref_bitmask_energy`
* :c:data:`ref_closed_shell_bitmask`
* :c:data:`ref_hamiltonian_matrix`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
@ -640,6 +719,15 @@ Index of Providers
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
* :c:data:`scf_energy`
* :c:data:`second_order_pt_new`
* :c:data:`second_order_pt_new_1h`
* :c:data:`second_order_pt_new_1h1p`
* :c:data:`second_order_pt_new_1h2p`
* :c:data:`second_order_pt_new_1p`
* :c:data:`second_order_pt_new_2h`
* :c:data:`second_order_pt_new_2h1p`
* :c:data:`second_order_pt_new_2h2p`
* :c:data:`second_order_pt_new_2p`
* :c:data:`select_max`
* :c:data:`selection_criterion`
* :c:data:`selection_criterion_factor`
@ -663,6 +751,8 @@ Index of Providers
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`theta_angular_integration_lebedev`
* :c:data:`three_anhil`
* :c:data:`three_creat`
* :c:data:`thresh_scf`
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
@ -674,6 +764,10 @@ Index of Providers
* :c:data:`trace_v_hxc`
* :c:data:`trace_v_xc`
* :c:data:`transpose`
* :c:data:`two_anhil`
* :c:data:`two_anhil_one_creat`
* :c:data:`two_creat`
* :c:data:`two_creat_one_anhil`
* :c:data:`two_electron_energy`
* :c:data:`unpaired_alpha_electrons`
* :c:data:`used_weight`
@ -681,6 +775,7 @@ Index of Providers
* :c:data:`virt_bitmask`
* :c:data:`virt_bitmask_4`
* :c:data:`weight_at_r`
* :c:data:`weight_functions_at_grid_points`
* :c:data:`weight_occ_pattern`
* :c:data:`weights_angular_integration_lebedev`
* :c:data:`weights_angular_points`
@ -774,8 +869,11 @@ Index of Subroutines/Functions
* :c:func:`connect_to_taskserver`
* :c:func:`connected_to_ref`
* :c:func:`connected_to_ref_by_mono`
* :c:func:`contrib_1h2p_dm_based`
* :c:func:`contrib_2h1p_dm_based`
* :c:func:`copy_h_apply_buffer_to_wf`
* :c:func:`copy_psi_bilinear_to_psi`
* :c:func:`coulomb_value_no_check`
* :c:func:`create_guess`
* :c:func:`create_microlist`
* :c:func:`create_minilist`
@ -814,6 +912,8 @@ Index of Subroutines/Functions
* :c:func:`diag_h_mat_elem_au0_h_au0`
* :c:func:`diag_h_mat_elem_fock`
* :c:func:`diag_h_mat_elem_monoelec`
* :c:func:`diag_h_mat_elem_no_elec_check`
* :c:func:`diag_h_mat_elem_no_elec_check_no_exchange`
* :c:func:`diag_s_mat_elem`
* :c:func:`diag_wee_mat_elem`
* :c:func:`diagonalize_ci`
@ -856,6 +956,7 @@ Index of Subroutines/Functions
* :c:func:`example_bitmask`
* :c:func:`example_determinants`
* :c:func:`example_determinants_psi_det`
* :c:func:`extract_ref`
* :c:func:`extrapolate_data`
* :c:func:`f_function_becke`
* :c:func:`f_integral`
@ -867,6 +968,7 @@ Index of Subroutines/Functions
* :c:func:`filter_connected`
* :c:func:`filter_connected_i_h_psi0`
* :c:func:`filter_not_connected`
* :c:func:`find_connections_previous`
* :c:func:`find_rotation`
* :c:func:`four_idx_transform`
* :c:func:`g0d`
@ -908,6 +1010,8 @@ Index of Subroutines/Functions
* :c:func:`get_d0`
* :c:func:`get_d1`
* :c:func:`get_d2`
* :c:func:`get_delta_e_dyall`
* :c:func:`get_delta_e_dyall_general_mp`
* :c:func:`get_double_excitation`
* :c:func:`get_double_excitation_spin`
* :c:func:`get_excitation`
@ -922,6 +1026,7 @@ Index of Subroutines/Functions
* :c:func:`get_index_in_psi_det_alpha_unique`
* :c:func:`get_index_in_psi_det_beta_unique`
* :c:func:`get_index_in_psi_det_sorted_bit`
* :c:func:`get_index_in_psi_ref_sorted_bit`
* :c:func:`get_inverse`
* :c:func:`get_m0`
* :c:func:`get_m1`
@ -954,6 +1059,19 @@ Index of Subroutines/Functions
* :c:func:`get_uj_s2_ui`
* :c:func:`getmobiles`
* :c:func:`getunitandopen`
* :c:func:`give_1h1p_contrib`
* :c:func:`give_1h1p_only_doubles_spin_cross`
* :c:func:`give_1h1p_sec_order_singles_contrib`
* :c:func:`give_1h2p_contrib`
* :c:func:`give_1h2p_contrib_sec_order`
* :c:func:`give_1h2p_new`
* :c:func:`give_1p_sec_order_singles_contrib`
* :c:func:`give_2h1p_contrib`
* :c:func:`give_2h1p_contrib_sec_order`
* :c:func:`give_2h1p_new`
* :c:func:`give_2h2p`
* :c:func:`give_2p_new`
* :c:func:`give_active_part_determinant`
* :c:func:`give_all_aos_and_grad_and_lapl_at_r`
* :c:func:`give_all_aos_and_grad_at_r`
* :c:func:`give_all_aos_at_r`
@ -962,13 +1080,18 @@ Index of Subroutines/Functions
* :c:func:`give_all_mos_and_grad_and_lapl_at_r`
* :c:func:`give_all_mos_and_grad_at_r`
* :c:func:`give_all_mos_at_r`
* :c:func:`give_core_inactive_part_determinant`
* :c:func:`give_explicit_poly_and_gaussian`
* :c:func:`give_explicit_poly_and_gaussian_double`
* :c:func:`give_explicit_poly_and_gaussian_x`
* :c:func:`give_holes_in_inactive_space`
* :c:func:`give_particles_in_virt_space`
* :c:func:`give_polynom_mult_center_mono_elec`
* :c:func:`give_polynom_mult_center_mono_elec_erf`
* :c:func:`give_polynom_mult_center_mono_elec_erf_opt`
* :c:func:`give_polynom_mult_center_x`
* :c:func:`give_singles_and_partial_doubles_1h1p_contrib`
* :c:func:`give_virt_part_determinant`
* :c:func:`gpw`
* :c:func:`grad_rho_ab_to_grad_rho_oc`
* :c:func:`gser`
@ -982,6 +1105,51 @@ Index of Subroutines/Functions
* :c:func:`h_apply_cisd_diexcorg`
* :c:func:`h_apply_cisd_diexcp`
* :c:func:`h_apply_cisd_monoexc`
* :c:func:`h_apply_mrpt`
* :c:func:`h_apply_mrpt_1h`
* :c:func:`h_apply_mrpt_1h1p`
* :c:func:`h_apply_mrpt_1h1p_diexc`
* :c:func:`h_apply_mrpt_1h1p_diexcorg`
* :c:func:`h_apply_mrpt_1h1p_diexcp`
* :c:func:`h_apply_mrpt_1h1p_monoexc`
* :c:func:`h_apply_mrpt_1h2p`
* :c:func:`h_apply_mrpt_1h2p_diexc`
* :c:func:`h_apply_mrpt_1h2p_diexcorg`
* :c:func:`h_apply_mrpt_1h2p_diexcp`
* :c:func:`h_apply_mrpt_1h2p_monoexc`
* :c:func:`h_apply_mrpt_1h_diexc`
* :c:func:`h_apply_mrpt_1h_diexcorg`
* :c:func:`h_apply_mrpt_1h_diexcp`
* :c:func:`h_apply_mrpt_1h_monoexc`
* :c:func:`h_apply_mrpt_1p`
* :c:func:`h_apply_mrpt_1p_diexc`
* :c:func:`h_apply_mrpt_1p_diexcorg`
* :c:func:`h_apply_mrpt_1p_diexcp`
* :c:func:`h_apply_mrpt_1p_monoexc`
* :c:func:`h_apply_mrpt_2h`
* :c:func:`h_apply_mrpt_2h1p`
* :c:func:`h_apply_mrpt_2h1p_diexc`
* :c:func:`h_apply_mrpt_2h1p_diexcorg`
* :c:func:`h_apply_mrpt_2h1p_diexcp`
* :c:func:`h_apply_mrpt_2h1p_monoexc`
* :c:func:`h_apply_mrpt_2h2p`
* :c:func:`h_apply_mrpt_2h2p_diexc`
* :c:func:`h_apply_mrpt_2h2p_diexcorg`
* :c:func:`h_apply_mrpt_2h2p_diexcp`
* :c:func:`h_apply_mrpt_2h2p_monoexc`
* :c:func:`h_apply_mrpt_2h_diexc`
* :c:func:`h_apply_mrpt_2h_diexcorg`
* :c:func:`h_apply_mrpt_2h_diexcp`
* :c:func:`h_apply_mrpt_2h_monoexc`
* :c:func:`h_apply_mrpt_2p`
* :c:func:`h_apply_mrpt_2p_diexc`
* :c:func:`h_apply_mrpt_2p_diexcorg`
* :c:func:`h_apply_mrpt_2p_diexcp`
* :c:func:`h_apply_mrpt_2p_monoexc`
* :c:func:`h_apply_mrpt_diexc`
* :c:func:`h_apply_mrpt_diexcorg`
* :c:func:`h_apply_mrpt_diexcp`
* :c:func:`h_apply_mrpt_monoexc`
* :c:func:`h_s2_u_0_bielec_nstates_openmp`
* :c:func:`h_s2_u_0_bielec_nstates_openmp_work`
* :c:func:`h_s2_u_0_bielec_nstates_openmp_work_1`
@ -1020,6 +1188,8 @@ Index of Subroutines/Functions
* :c:func:`i_h_j_bielec`
* :c:func:`i_h_j_double_alpha_beta`
* :c:func:`i_h_j_double_spin`
* :c:func:`i_h_j_dyall`
* :c:func:`i_h_j_dyall_no_exchange`
* :c:func:`i_h_j_mono_spin`
* :c:func:`i_h_j_mono_spin_monoelec`
* :c:func:`i_h_j_monoelec`
@ -1027,6 +1197,7 @@ Index of Subroutines/Functions
* :c:func:`i_h_j_verbose`
* :c:func:`i_h_psi`
* :c:func:`i_h_psi_minilist`
* :c:func:`i_h_psi_pert_new_minilist`
* :c:func:`i_s2_psi_minilist`
* :c:func:`i_wee_j_mono`
* :c:func:`i_x1_pol_mult`
@ -1059,6 +1230,7 @@ Index of Subroutines/Functions
* :c:func:`is_connected_to_by_mono`
* :c:func:`is_generable_cassd`
* :c:func:`is_i_in_virtual`
* :c:func:`is_in_psi_ref`
* :c:func:`is_in_wavefunction`
* :c:func:`is_spin_flip_possible`
* :c:func:`is_the_hole_in_det`
@ -1098,6 +1270,7 @@ Index of Subroutines/Functions
* :c:func:`molden`
* :c:func:`mono_excitation_wee`
* :c:func:`mpi_print`
* :c:func:`mrpt_dress`
* :c:func:`multiply_poly`
* :c:func:`n_pt_sup`
* :c:func:`nai_pol_mult`
@ -1157,7 +1330,6 @@ Index of Subroutines/Functions
* :c:func:`print_generators_bitmasks_particles`
* :c:func:`print_generators_bitmasks_particles_for_one_generator`
* :c:func:`print_memory_usage`
* :c:func:`print_r2`
* :c:func:`print_spindet`
* :c:func:`print_summary`
* :c:func:`print_wf`
@ -1213,6 +1385,7 @@ Index of Subroutines/Functions
* :c:func:`roothaan_hall_scf`
* :c:func:`routine`
* :c:func:`routine_example_psi_det`
* :c:func:`rs_ks_scf`
* :c:func:`run`
* :c:func:`run_pt2_slave`
* :c:func:`run_selection_slave`
@ -1245,6 +1418,7 @@ Index of Subroutines/Functions
* :c:func:`set_bit_to_integer`
* :c:func:`set_bitmask_hole_as_input`
* :c:func:`set_bitmask_particl_as_input`
* :c:func:`set_generators_bitmasks_as_holes_and_particles`
* :c:func:`set_natural_mos`
* :c:func:`set_order`
* :c:func:`set_order_big`
@ -1272,6 +1446,8 @@ Index of Subroutines/Functions
* :c:func:`tasks_done_to_taskserver`
* :c:func:`testteethbuilding`
* :c:func:`total_memory`
* :c:func:`u0_h_dyall_u0`
* :c:func:`u0_h_dyall_u0_no_exchange`
* :c:func:`u_0_h_u_0`
* :c:func:`u_0_h_u_0_bielec`
* :c:func:`u_0_s2_u_0`

View File

@ -1,47 +0,0 @@
The DFT module uses Lebedev-Laikov grids, using the code distributed through CCL (http://www.ccl.net/).
.. code-block:: text
This subroutine is part of a set of subroutines that generate
Lebedev grids [1-6] for integration on a sphere. The original
C-code [1] was kindly provided by Dr. Dmitri N. Laikov and
translated into fortran by Dr. Christoph van Wuellen.
This subroutine was translated using a C to fortran77 conversion
tool written by Dr. Christoph van Wuellen.
Users of this code are asked to include reference [1] in their
publications, and in the user- and programmers-manuals
describing their codes.
This code was distributed through CCL (http://www.ccl.net/).
[1] V.I. Lebedev, and D.N. Laikov
"A quadrature formula for the sphere of the 131st
algebraic order of accuracy"
Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481.
[2] V.I. Lebedev
"A quadrature formula for the sphere of 59th algebraic
order of accuracy"
Russian Acad. Sci. Dokl. Math., Vol. 50, 1995, pp. 283-286.
[3] V.I. Lebedev, and A.L. Skorokhodov
"Quadrature formulas of orders 41, 47, and 53 for the sphere"
Russian Acad. Sci. Dokl. Math., Vol. 45, 1992, pp. 587-592.
[4] V.I. Lebedev
"Spherical quadrature formulas exact to orders 25-29"
Siberian Mathematical Journal, Vol. 18, 1977, pp. 99-107.
[5] V.I. Lebedev
"Quadratures on a sphere"
Computational Mathematics and Mathematical Physics, Vol. 16,
1976, pp. 10-24.
[6] V.I. Lebedev
"Values of the nodes and weights of ninth to seventeenth
order Gauss-Markov quadrature formulae invariant under the
octahedron group with inversion"
Computational Mathematics and Mathematical Physics, Vol. 15,
1975, pp. 44-51.

View File

@ -105,7 +105,7 @@ END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_coef_normalized_ordered_transp, (ao_prim_num_max,ao_num) ]
implicit none
BEGIN_DOC
! Transposed :c:var:`ao_coef_normalized_ordered`
! Transposed :c:data:`ao_coef_normalized_ordered`
END_DOC
integer :: i,j
do j=1, ao_num
@ -119,7 +119,7 @@ END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_expo_ordered_transp, (ao_prim_num_max,ao_num) ]
implicit none
BEGIN_DOC
! Transposed :c:var:`ao_expo_ordered`
! Transposed :c:data:`ao_expo_ordered`
END_DOC
integer :: i,j
do j=1, ao_num

View File

@ -72,7 +72,7 @@ END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_cart_to_sphe_inv, (ao_cart_to_sphe_num,ao_num) ]
implicit none
BEGIN_DOC
! Inverse of :c:var:`ao_cart_to_sphe_coef`
! Inverse of :c:data:`ao_cart_to_sphe_coef`
END_DOC
call get_pseudo_inverse(ao_cart_to_sphe_coef,size(ao_cart_to_sphe_coef,1),&

View File

@ -5,7 +5,7 @@
BEGIN_DOC
! Second derivative matrix elements in the |AO| basis.
!
! :math:`{\tt ao_deriv2_x} =
! :math:`{\tt ao\_deriv2\_x} =
! \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
!
END_DOC

View File

@ -1,7 +1,7 @@
subroutine give_all_erf_kl_ao(integrals_ao,mu_in,C_center)
implicit none
BEGIN_DOC
! subroutine that returs all integrals over r of type erf(mu_in * |r-C_center|)/|r-C_center|
! subroutine that returs all integrals over r of type erf(mu_in * | r-C_center |)/| r-C_center |
END_DOC
double precision, intent(in) :: mu_in,C_center(3)
double precision, intent(out) :: integrals_ao(ao_num,ao_num)
@ -19,7 +19,7 @@ double precision function NAI_pol_mult_erf_ao(i_ao,j_ao,mu_in,C_center)
implicit none
BEGIN_DOC
! computes the following integral :
! int[-infty;+infty] dr AO_i_ao (r) AO_j_ao(r) erf(mu_in * |r-C_center|)/|r-C_center|
! int[-infty;+infty] dr AO_i_ao (r) AO_j_ao(r) erf(mu_in * | r-C_center |)/| r-C_center |
END_DOC
integer, intent(in) :: i_ao,j_ao
double precision, intent(in) :: mu_in, C_center(3)

View File

@ -3,11 +3,19 @@ aux_quantities
==============
This module contains some global variables (such as densities and energies) which are stored in the EZFIO folder in a different place than determinants. This is used in practice to store density matrices which can be obtained from any methods, as long as they are stored in the same MO basis which is used for the calculations. In |RS-DFT| calculations, this can be done to perform damping on the density in order to speed up convergence.
This module contains some global variables (such as densities and energies)
which are stored in the EZFIO folder in a different place than determinants.
This is used in practice to store density matrices which can be obtained from
any methods, as long as they are stored in the same MO basis which is used for
the calculations. In |RSDFT| calculations, this can be done to perform damping
on the density in order to speed up convergence.
The main providers of that module are:
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the one-body alpha and beta densities which are necessary read from the EZFIO folder.
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the
one-body alpha and beta densities which are necessary read from the EZFIO
folder.
Thanks to these providers you can use any density matrix that does not necessary corresponds to that of the current wave function.
Thanks to these providers you can use any density matrix that does not
necessary corresponds to that of the current wave function.

View File

@ -5,7 +5,7 @@ davidson
Abstract module for Davidson's diagonalization.
It contains everything required for the Davidson algorithm, dressed or not. If
a dressing is used, the dressing column should be defined and the
:ref:`davidsondressed` module should be used. If no dressing is required,
:ref:`davidson_dressed` module should be used. If no dressing is required,
the :ref:`davidson` module should be used, and it has a default zero dressing vector.
The important providers for that module are:

View File

@ -6,7 +6,7 @@ This module contains the main keywords related to a DFT calculation or RS-DFT ca
* :option:`dft_keywords exchange_functional`
* :option:`dft_keywords correlation_functional`
* :option:`dft_keywords HF_exchange` : only relevent for the :ref:`ks_scf` program
* :option:`dft_keywords HF_exchange` : only relevent for the :c:func:`rs_ks_scf` program
The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.

View File

@ -27,7 +27,7 @@ By default, the program will stop when more than one million determinants have
been selected, or when the |PT2| energy is below :math:`10^{-4}`.
The variational and |PT2| energies of the iterations are stored in the
|EZFIO| database, in the :ref:`IterativeSave` module.
|EZFIO| database, in the :ref:`iterations` module.

View File

@ -1,4 +1,4 @@
program srs_ks_cf
program rs_ks_scf
BEGIN_DOC
! Produce `Range_separated_Kohn_Sham` MO orbital
! output: mo_basis.mo_tot_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ

View File

@ -3,13 +3,14 @@
implicit none
BEGIN_DOC
! Fock matrix on the MO basis.
! For open shells, the ROHF Fock Matrix is
! For open shells, the ROHF Fock Matrix is ::
!
! | F-K | F + K/2 | F |
! |---------------------------------|
! | F + K/2 | F | F - K/2 |
! |---------------------------------|
! | F | F - K/2 | F + K |
!
! | F-K | F + K/2 | F |
! |---------------------------------|
! | F + K/2 | F | F - K/2 |
! |---------------------------------|
! | F | F - K/2 | F + K |
!
! F = 1/2 (Fa + Fb)
!

View File

@ -4,9 +4,8 @@ use bitmasks
&BEGIN_PROVIDER [integer, n_double_selectors]
implicit none
BEGIN_DOC
! degree of excitation respect to Hartree Fock for the wave function
!
! for the all the selectors determinants
! Degree of excitation respect to Hartree Fock for the wave function
! for the all the selectors determinants.
!
! double_index_selectors = list of the index of the double excitations
!
@ -34,11 +33,10 @@ END_PROVIDER
&BEGIN_PROVIDER[double precision, E_corr_second_order ]
implicit none
BEGIN_DOC
! energy of correlation per determinant respect to the Hartree Fock determinant
! Correlation energy per determinant with respect to the Hartree-Fock determinant
! for the all the double excitations in the selectors determinants.
!
! for the all the double excitations in the selectors determinants
!
! E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
! E_corr_per_selectors(i) = :math:`\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)` if :math:`| D_i \rangle` is a double excitation.
!
! E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
!