9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-04 02:48:24 +01:00

Merge branch 'dev-lct' of https://github.com/QuantumPackage/qp2 into dev-lct

This commit is contained in:
Emmanuel Giner LCT 2019-06-17 11:37:28 +02:00
commit 5d4a51d287
69 changed files with 1758 additions and 189 deletions

View File

@ -46,7 +46,7 @@ Requirements
- `GMP <https://gmplib.org/>`_ : Gnu Multiple Precision Arithmetic Library
- |OCaml| compiler with |OPAM| package manager
- `Bubblewrap <https://github.com/projectatomic/bubblewrap>`_ : Sandboxing tool required by Opam
- `libcap https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git`_ : POSIX capabilities required by Bubblewrap
- `libcap <https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git>`_ : POSIX capabilities required by Bubblewrap
- |Ninja| : a parallel build system

View File

@ -1,13 +1,28 @@
# Quantum Package 2.0
<img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250">
[*Quantum package 2.0: an open-source determinant-driven suite of programs*](https://pubs.acs.org/doi/10.1021/acs.jctc.9b00176)\
Y. Garniron, K. Gasperich, T. Applencourt, A. Benali, A. Ferté, J. Paquier, B. Pradines, R. Assaraf, P. Reinhardt, J. Toulouse, P. Barbaresco, N. Renon, G. David, J. P. Malrieu, M. Véril, M. Caffarel, P. F. Loos, E. Giner and A. Scemama\
J. Chem. Theory Comput. (2019)\
J. Chem. Theory Comput., 15:6, 3591--3609, (2019)\
https://arxiv.org/abs/1902.08154
<img src="https://raw.githubusercontent.com/QuantumPackage/qp2/master/data/qp2.png" width="250">
```
@article{doi:10.1021/acs.jctc.9b00176,
author = {Garniron, Yann and Applencourt, Thomas and Gasperich, Kevin and Benali, Anouar and Ferté, Anthony and Paquier, Julien and Pradines, Barthélémy and Assaraf, Roland and Reinhardt, Peter and Toulouse, Julien and Barbaresco, Pierrette and Renon, Nicolas and David, Grégoire and Malrieu, Jean-Paul and Véril, Mickaël and Caffarel, Michel and Loos, Pierre-François and Giner, Emmanuel and Scemama, Anthony},
title = {Quantum Package 2.0: An Open-Source Determinant-Driven Suite of Programs},
journal = {Journal of Chemical Theory and Computation},
volume = {15},
number = {6},
pages = {3591-3609},
year = {2019},
doi = {10.1021/acs.jctc.9b00176},
note ={PMID: 31082265},
URL = { https://doi.org/10.1021/acs.jctc.9b00176 },
eprint = { https://doi.org/10.1021/acs.jctc.9b00176 }
}
```
# Getting started

View File

@ -1,71 +0,0 @@
#!/usr/bin/env python2
"""
Creates an ssh tunnel for using slaves on another network.
Launch a server on the front-end node of the cluster on which the master
process runs. Then start a client ont the front-end node of the distant
cluster.
Usage:
qp_tunnel server EZFIO_DIR
qp_tunnel client <address> EZFIO_DIR
Options:
-h --help
"""
import os
import sys
import zmq
try:
import qp_path
except ImportError:
print "source .quantum_package.rc"
raise
from docopt import docopt
from ezfio import ezfio
def get_address(filename):
with open(os.path.join(filename,'work','qp_run_address'),'r') as f:
a = f.readlines()[0].strip()
return a
def set_address(filename,address):
with open(os.path.join(filename,'work','qp_run_address'),'r') as f:
backup = f.readlines()
with open(os.path.join(filename,'work','qp_run_address'),'w') as f:
f.write('\n'.join([address]+backup))
def main_server(arguments,filename):
destination = get_address(filename)
print destination
def main_client(arguments,filename):
destination = arguments["<address>"]
print destination
def main(arguments):
"""Main function"""
print arguments
filename = arguments["EZFIO_DIR"]
if arguments["server"]:
return main_server(arguments, filename)
if arguments["client"]:
return main_client(arguments, filename)
if __name__ == '__main__':
ARGUMENTS = docopt(__doc__)
main(ARGUMENTS)

View File

@ -176,6 +176,7 @@ Providers
* :c:data:`ao_num`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`mu_erf`
* :c:data:`n_pt_max_integrals`
* :c:data:`nucl_coord`
@ -214,6 +215,7 @@ Providers
* :c:data:`ao_prim_num`
* :c:data:`ezfio_filename`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`mu_erf`
* :c:data:`n_pt_max_integrals`
* :c:data:`nproc`
* :c:data:`nucl_coord`
@ -290,6 +292,7 @@ Subroutines / functions
* :c:data:`ao_power`
* :c:data:`ao_expo_ordered_transp`
* :c:data:`ao_prim_num`
* :c:data:`mu_erf`
* :c:data:`ao_nucl`
* :c:data:`nucl_coord`

View File

@ -1016,6 +1016,70 @@ Subroutines / functions
* :c:func:`two_e_integrals_index`
.. c:function:: get_ao_two_e_integrals_non_zero_jl:
File : :file:`ao_two_e_ints/map_integrals.irp.f`
.. code:: fortran
subroutine get_ao_two_e_integrals_non_zero_jl(j,l,thresh,sze_max,sze,out_val,out_val_index,non_zero_int)
Gets multiple AO bi-electronic integral from the AO map .
All non-zero i are retrieved for j,k,l fixed.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_map`
* :c:data:`ao_overlap_abs`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
Calls:
.. hlist::
:columns: 3
* :c:func:`map_get`
* :c:func:`two_e_integrals_index`
.. c:function:: get_ao_two_e_integrals_non_zero_jl_from_list:
File : :file:`ao_two_e_ints/map_integrals.irp.f`
.. code:: fortran
subroutine get_ao_two_e_integrals_non_zero_jl_from_list(j,l,thresh,list,n_list,sze_max,out_val,out_val_index,non_zero_int)
Gets multiple AO two-electron integrals from the AO map .
All non-zero i are retrieved for j,k,l fixed.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_map`
* :c:data:`ao_overlap_abs`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
Calls:
.. hlist::
:columns: 3
* :c:func:`map_get`
* :c:func:`two_e_integrals_index`
.. c:function:: give_polynom_mult_center_x:
@ -1243,6 +1307,8 @@ Subroutines / functions
* :c:func:`get_ao_two_e_integral_erf`
* :c:func:`get_ao_two_e_integrals_erf_non_zero`
* :c:func:`get_ao_two_e_integrals_non_zero`
* :c:func:`get_ao_two_e_integrals_non_zero_jl`
* :c:func:`get_ao_two_e_integrals_non_zero_jl_from_list`
* :c:func:`get_mo_two_e_integral_erf`
* :c:func:`get_mo_two_e_integrals_coulomb_ii`
* :c:func:`get_mo_two_e_integrals_erf`

View File

@ -93,6 +93,12 @@ EZFIO parameters
Total number of grid points
.. option:: thresh_grid
threshold on the weight of a given grid point
Default: 1.e-20
Providers
---------
@ -210,6 +216,7 @@ Providers
* :c:data:`n_points_final_grid`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
@ -244,6 +251,40 @@ Providers
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: final_grid_points_per_atom
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
double precision, allocatable :: final_grid_points_per_atom (3,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: final_weight_at_r_vector_per_atom (n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom (3,n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom_reverse (n_points_integration_angular,n_points_radial_grid,nucl_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
.. c:var:: final_weight_at_r
@ -263,10 +304,10 @@ Providers
* :c:data:`alpha_knowles`
* :c:data:`angular_quadrature_points`
* :c:data:`grid_atomic_number`
* :c:data:`grid_points_radial`
* :c:data:`m_knowles`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_charge`
* :c:data:`nucl_num`
* :c:data:`weight_at_r`
@ -276,6 +317,9 @@ Providers
:columns: 3
* :c:data:`final_grid_points`
* :c:data:`final_grid_points_per_atom`
* :c:data:`n_points_final_grid`
* :c:data:`n_pts_per_atom`
.. c:var:: final_weight_at_r_vector
@ -309,6 +353,7 @@ Providers
* :c:data:`n_points_final_grid`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
@ -343,6 +388,69 @@ Providers
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: final_weight_at_r_vector_per_atom
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
double precision, allocatable :: final_grid_points_per_atom (3,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: final_weight_at_r_vector_per_atom (n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom (3,n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom_reverse (n_points_integration_angular,n_points_radial_grid,nucl_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
.. c:var:: grid_atomic_number
File : :file:`becke_numerical_grid/atomic_number.irp.f`
.. code:: fortran
integer, allocatable :: grid_atomic_number (nucl_num)
Atomic number used to adjust the grid
Needs:
.. hlist::
:columns: 3
* :c:data:`nucl_charge`
* :c:data:`nucl_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
.. c:var:: grid_points_per_atom
@ -362,10 +470,10 @@ Providers
* :c:data:`alpha_knowles`
* :c:data:`angular_quadrature_points`
* :c:data:`grid_atomic_number`
* :c:data:`grid_points_radial`
* :c:data:`m_knowles`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_num`
@ -375,6 +483,7 @@ Providers
:columns: 3
* :c:data:`final_grid_points`
* :c:data:`final_grid_points_per_atom`
* :c:data:`one_e_dm_alpha_in_r`
* :c:data:`weight_at_r`
@ -439,6 +548,7 @@ Providers
* :c:data:`n_points_final_grid`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
@ -473,6 +583,74 @@ Providers
* :c:data:`one_e_dm_no_core_and_grad_alpha_in_r`
.. c:var:: index_final_points_per_atom
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
double precision, allocatable :: final_grid_points_per_atom (3,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: final_weight_at_r_vector_per_atom (n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom (3,n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom_reverse (n_points_integration_angular,n_points_radial_grid,nucl_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
.. c:var:: index_final_points_per_atom_reverse
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
double precision, allocatable :: final_grid_points_per_atom (3,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: final_weight_at_r_vector_per_atom (n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom (3,n_pts_max_per_atom,nucl_num)
integer, allocatable :: index_final_points_per_atom_reverse (n_points_integration_angular,n_points_radial_grid,nucl_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
.. c:var:: index_final_points_reverse
@ -504,6 +682,7 @@ Providers
* :c:data:`n_points_final_grid`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
@ -576,8 +755,10 @@ Providers
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
@ -681,11 +862,13 @@ Providers
* :c:data:`angular_quadrature_points`
* :c:data:`final_grid_points`
* :c:data:`final_grid_points_per_atom`
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`grid_points_radial`
* :c:data:`n_points_final_grid`
* :c:data:`n_points_grid_per_atom`
* :c:data:`n_pts_per_atom`
* :c:data:`one_e_dm_alpha_in_r`
* :c:data:`weight_at_r`
@ -721,15 +904,81 @@ Providers
* :c:data:`angular_quadrature_points`
* :c:data:`final_grid_points`
* :c:data:`final_grid_points_per_atom`
* :c:data:`final_weight_at_r`
* :c:data:`grid_points_per_atom`
* :c:data:`grid_points_radial`
* :c:data:`n_points_final_grid`
* :c:data:`n_points_grid_per_atom`
* :c:data:`n_pts_per_atom`
* :c:data:`one_e_dm_alpha_in_r`
* :c:data:`weight_at_r`
.. c:var:: n_pts_max_per_atom
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
integer, allocatable :: n_pts_per_atom (nucl_num)
integer :: n_pts_max_per_atom
Number of points which are non zero
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
* :c:data:`final_grid_points_per_atom`
.. c:var:: n_pts_per_atom
File : :file:`becke_numerical_grid/grid_becke_per_atom.irp.f`
.. code:: fortran
integer, allocatable :: n_pts_per_atom (nucl_num)
integer :: n_pts_max_per_atom
Number of points which are non zero
Needs:
.. hlist::
:columns: 3
* :c:data:`final_weight_at_r`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_num`
* :c:data:`thresh_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_in_r_array_per_atom`
* :c:data:`final_grid_points_per_atom`
.. c:var:: weight_at_r
@ -754,7 +1003,6 @@ Providers
* :c:data:`grid_points_per_atom`
* :c:data:`n_points_radial_grid`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord_transp`
* :c:data:`nucl_dist_inv`
* :c:data:`nucl_num`
@ -824,7 +1072,6 @@ Subroutines / functions
* :c:data:`nucl_dist_inv`
* :c:data:`slater_bragg_type_inter_distance_ua`
* :c:data:`nucl_coord_transp`
* :c:data:`nucl_charge`
* :c:data:`nucl_num`

View File

@ -727,9 +727,40 @@ Providers
* :c:data:`c0_weight`
* :c:data:`n_states`
* :c:data:`pt2_match_weight`
* :c:data:`state_average_weight`
* :c:data:`variance_match_weight`
* :c:data:`weight_selection`
.. c:var:: variance_match_weight
File : :file:`cipsi/selection.irp.f`
.. code:: fortran
double precision, allocatable :: variance_match_weight (N_states)
Weights adjusted along the selection to make the variances
of each state coincide.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_states`
Needed by:
.. hlist::
:columns: 3
* :c:data:`selection_weight`
Subroutines / functions
-----------------------
@ -879,6 +910,7 @@ Subroutines / functions
* :c:data:`selection_weight`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`weight_selection`
* :c:data:`n_int`
* :c:data:`psi_det_hii`
* :c:data:`do_only_1h1p`
@ -1181,6 +1213,7 @@ Subroutines / functions
:columns: 3
* :c:data:`generators_bitmask`
* :c:data:`selection_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`psi_selectors`
* :c:data:`psi_det`
@ -1203,6 +1236,7 @@ Subroutines / functions
* :c:data:`n_det_generators`
* :c:data:`psi_det_generators`
* :c:data:`n_int`
* :c:data:`pseudo_sym`
* :c:data:`psi_det_generators`
Called by:
@ -1551,12 +1585,14 @@ Subroutines / functions
* :c:data:`correlation_energy_ratio_max`
* :c:data:`n_iter`
* :c:data:`psi_energy_with_nucl_rep`
* :c:data:`selection_factor`
* :c:data:`psi_occ_pattern`
* :c:data:`n_det_max`
* :c:data:`n_states`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`n_det`
* :c:data:`s2_eig`
* :c:data:`variance_max`
* :c:data:`do_pt2`
* :c:data:`psi_energy`
* :c:data:`pt2_relative_error`
@ -1619,6 +1655,7 @@ Subroutines / functions
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
* :c:data:`variance_match_weight`
.. c:function:: run_pt2_slave:
@ -1776,16 +1813,18 @@ Subroutines / functions
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`mo_num`
* :c:data:`psi_det_sorted`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
* :c:data:`n_states`
* :c:data:`pt2_f`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`elec_alpha_num`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`weight_selection`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`n_int`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_sorted`
* :c:data:`psi_det_sorted`
* :c:data:`pseudo_sym`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_selectors_coef_transp`
@ -1859,6 +1898,7 @@ Subroutines / functions
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_stoch_istate`
* :c:data:`read_wf`
* :c:data:`selection_weight`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
@ -1879,6 +1919,7 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`selection_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`psi_det`
* :c:data:`zmq_state`
@ -1935,6 +1976,7 @@ Subroutines / functions
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_stoch_istate`
* :c:data:`selection_weight`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
@ -1959,6 +2001,7 @@ Subroutines / functions
* :c:data:`correlation_energy_ratio_max`
* :c:data:`n_iter`
* :c:data:`psi_energy_with_nucl_rep`
* :c:data:`selection_factor`
* :c:data:`psi_occ_pattern`
* :c:data:`pt2_max`
* :c:data:`n_det_max`
@ -2028,6 +2071,7 @@ Subroutines / functions
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
* :c:data:`variance_match_weight`
.. c:function:: select_connected:
@ -2351,6 +2395,43 @@ Subroutines / functions
* :c:func:`check_mem`
.. c:function:: update_pt2_and_variance_weights:
File : :file:`cipsi/selection.irp.f`
.. code:: fortran
subroutine update_pt2_and_variance_weights(pt2, variance, norm, N_st)
Updates the rPT2- and Variance- matching weights.
Needs:
.. hlist::
:columns: 3
* :c:data:`pt2_match_weight`
* :c:data:`variance_match_weight`
Called by:
.. hlist::
:columns: 3
* :c:func:`zmq_pt2`
* :c:func:`zmq_selection`
Touches:
.. hlist::
:columns: 3
* :c:data:`pt2_match_weight`
* :c:data:`variance_match_weight`
.. c:function:: zmq_pt2:
@ -2368,6 +2449,7 @@ Subroutines / functions
:columns: 3
* :c:data:`psi_det_sorted`
* :c:data:`selection_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`psi_selectors`
* :c:data:`psi_bilinear_matrix_values`
@ -2378,7 +2460,7 @@ Subroutines / functions
* :c:data:`state_average_weight`
* :c:data:`n_det`
* :c:data:`s2_eig`
* :c:data:`pt2_match_weight`
* :c:data:`psi_det_sorted`
* :c:data:`pt2_j`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`psi_bilinear_matrix_transp_values`
@ -2396,7 +2478,7 @@ Subroutines / functions
* :c:data:`threshold_generators`
* :c:data:`psi_det_beta_unique`
* :c:data:`det_to_occ_pattern`
* :c:data:`psi_det_sorted`
* :c:data:`global_selection_buffer`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
* :c:data:`n_states`
* :c:data:`pt2_f`
@ -2405,7 +2487,7 @@ Subroutines / functions
* :c:data:`n_int`
* :c:data:`psi_det_hii`
* :c:data:`pt2_j`
* :c:data:`global_selection_buffer`
* :c:data:`pseudo_sym`
* :c:data:`pt2_w`
* :c:data:`pt2_u`
@ -2434,6 +2516,7 @@ Subroutines / functions
* :c:func:`pt2_slave_inproc`
* :c:func:`remove_duplicates_in_selection_buffer`
* :c:func:`resident_memory`
* :c:func:`update_pt2_and_variance_weights`
* :c:func:`write_double`
* :c:func:`write_int`
* :c:func:`zmq_selection`
@ -2453,6 +2536,7 @@ Subroutines / functions
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`state_average_weight`
* :c:data:`variance_match_weight`
.. c:function:: zmq_selection:
@ -2472,12 +2556,12 @@ Subroutines / functions
:columns: 3
* :c:data:`psi_det_sorted`
* :c:data:`selection_weight`
* :c:data:`psi_selectors`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`n_det_selectors`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_average_weight`
@ -2493,8 +2577,9 @@ Subroutines / functions
* :c:data:`n_states`
* :c:data:`pt2_f`
* :c:data:`n_det_generators`
* :c:data:`pt2_match_weight`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`n_int`
* :c:data:`pseudo_sym`
Called by:
@ -2519,6 +2604,7 @@ Subroutines / functions
* :c:func:`save_wavefunction`
* :c:func:`selection_collector`
* :c:func:`selection_slave_inproc`
* :c:func:`update_pt2_and_variance_weights`
* :c:func:`write_double`
Touches:
@ -2534,4 +2620,5 @@ Subroutines / functions
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`pt2_match_weight`
* :c:data:`variance_match_weight`

View File

@ -1756,6 +1756,40 @@ Subroutines / functions
* :c:func:`i_wee_j_single`
.. c:function:: print_energy_components:
File : :file:`davidson/print_e_components.irp.f`
.. code:: fortran
subroutine print_energy_components()
Prints the different components of the energy.
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_integrals_n_e`
* :c:data:`n_states`
* :c:data:`mo_pseudo_integrals`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`nuclear_repulsion`
* :c:data:`psi_energy`
* :c:data:`one_e_dm_mo_alpha`
Called by:
.. hlist::
:columns: 3
* :c:func:`print_summary`
.. c:function:: u_0_h_u_0:

View File

@ -61,12 +61,18 @@ EZFIO parameters
Default: True
.. option:: used_weight
.. option:: weight_one_e_dm
Weight used in the calculation of the one-electron density matrix. 0: 1./(c_0^2), 1: 1/N_states, 2: input state-average weight, 3: 1/(Norm_L3(Psi))
Default: 1
.. option:: weight_selection
Weight used in the selection. 0: input state-average weight, 1: 1./(c_0^2), 2: rPT2 matching, 3: variance matching, 4: variance and rPT2 matching, 5: variance minimization and matching
Default: 2
.. option:: threshold_generators
Thresholds on generators (fraction of the square of the norm)
@ -119,6 +125,12 @@ EZFIO parameters
Weight of the states in state-average calculations.
.. option:: selection_factor
f such that the number of determinants to add is f * N_det * sqrt(N_states)
Default: 1.
.. option:: thresh_sym
Thresholds to check if a determinant is connected with HF
@ -3638,7 +3650,7 @@ Providers
* :c:data:`c0_weight`
* :c:data:`n_states`
* :c:data:`used_weight`
* :c:data:`weight_one_e_dm`
Needed by:
@ -3648,6 +3660,7 @@ Providers
* :c:data:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha_average`
* :c:data:`psi_average_norm_contrib`
* :c:data:`selection_weight`
.. c:var:: weight_occ_pattern

View File

@ -199,6 +199,70 @@ Providers
* :c:data:`potential_xc_alpha_ao_sr_lda`
.. c:var:: aos_in_r_array_per_atom
File : :file:`dft_utils_in_r/ao_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: aos_in_r_array_per_atom (ao_num,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: aos_in_r_array_per_atom_transp (n_pts_max_per_atom,ao_num,nucl_num)
aos_in_r_array_per_atom(i,j,k) = value of the ith ao on the jth grid point attached on the kth atom
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
* :c:data:`ao_expo_ordered_transp_per_nucl`
* :c:data:`ao_num`
* :c:data:`ao_power_ordered_transp_per_nucl`
* :c:data:`ao_prim_num`
* :c:data:`final_grid_points_per_atom`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_aos_transposed`
* :c:data:`nucl_coord`
* :c:data:`nucl_n_aos`
* :c:data:`nucl_num`
.. c:var:: aos_in_r_array_per_atom_transp
File : :file:`dft_utils_in_r/ao_in_r.irp.f`
.. code:: fortran
double precision, allocatable :: aos_in_r_array_per_atom (ao_num,n_pts_max_per_atom,nucl_num)
double precision, allocatable :: aos_in_r_array_per_atom_transp (n_pts_max_per_atom,ao_num,nucl_num)
aos_in_r_array_per_atom(i,j,k) = value of the ith ao on the jth grid point attached on the kth atom
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
* :c:data:`ao_expo_ordered_transp_per_nucl`
* :c:data:`ao_num`
* :c:data:`ao_power_ordered_transp_per_nucl`
* :c:data:`ao_prim_num`
* :c:data:`final_grid_points_per_atom`
* :c:data:`n_pts_per_atom`
* :c:data:`nucl_aos_transposed`
* :c:data:`nucl_coord`
* :c:data:`nucl_n_aos`
* :c:data:`nucl_num`
.. c:var:: aos_in_r_array_transp

View File

@ -146,6 +146,7 @@ Providers
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
@ -153,8 +154,9 @@ Providers
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`used_weight`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
.. c:var:: ezfio_work_dir
@ -296,6 +298,7 @@ Providers
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
@ -303,8 +306,9 @@ Providers
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`used_weight`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
.. c:var:: output_wall_time_0
@ -411,6 +415,7 @@ Providers
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
@ -418,8 +423,9 @@ Providers
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`used_weight`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
.. c:var:: qp_kill_filename
@ -764,6 +770,7 @@ Subroutines / functions
* :c:func:`roothaan_hall_scf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
@ -771,8 +778,9 @@ Subroutines / functions
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`used_weight`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
Calls:

View File

@ -160,6 +160,13 @@ Subroutines / functions
* :c:func:`run_cipsi`
* :c:func:`run_stochastic_cipsi`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_energy_components`
.. c:function:: save_iterations:

View File

@ -174,6 +174,7 @@ Providers
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
@ -181,8 +182,9 @@ Providers
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`used_weight`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
.. c:var:: mpi_rank

View File

@ -103,6 +103,8 @@ Index of Providers
* :c:data:`aos_grad_in_r_array_transp`
* :c:data:`aos_grad_in_r_array_transp_xyz`
* :c:data:`aos_in_r_array`
* :c:data:`aos_in_r_array_per_atom`
* :c:data:`aos_in_r_array_per_atom_transp`
* :c:data:`aos_in_r_array_transp`
* :c:data:`aos_lapl_in_r_array`
* :c:data:`aos_lapl_in_r_array_transp`
@ -251,8 +253,10 @@ Index of Providers
* :c:data:`fact_inv`
* :c:data:`file_lock`
* :c:data:`final_grid_points`
* :c:data:`final_grid_points_per_atom`
* :c:data:`final_weight_at_r`
* :c:data:`final_weight_at_r_vector`
* :c:data:`final_weight_at_r_vector_per_atom`
* :c:data:`fock_matrix_alpha_no_xc_ao`
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_ao_alpha`
@ -282,6 +286,7 @@ Index of Providers
* :c:data:`give_polynomial_mult_center_one_e_erf_opt`
* :c:data:`global_selection_buffer`
* :c:data:`global_selection_buffer_lock`
* :c:data:`grid_atomic_number`
* :c:data:`grid_points_per_atom`
* :c:data:`grid_points_radial`
* :c:data:`grid_type_sgn`
@ -313,6 +318,8 @@ Index of Providers
* :c:data:`inact_bitmask`
* :c:data:`inact_virt_bitmask`
* :c:data:`index_final_points`
* :c:data:`index_final_points_per_atom`
* :c:data:`index_final_points_per_atom_reverse`
* :c:data:`index_final_points_reverse`
* :c:data:`index_holes_bitmask`
* :c:data:`index_particl_bitmask`
@ -460,6 +467,8 @@ Index of Providers
* :c:data:`n_points_radial_grid`
* :c:data:`n_pt_max_i_x`
* :c:data:`n_pt_max_integrals`
* :c:data:`n_pts_max_per_atom`
* :c:data:`n_pts_per_atom`
* :c:data:`n_single_exc_bitmasks`
* :c:data:`n_states`
* :c:data:`n_states_diag`
@ -754,6 +763,7 @@ Index of Providers
* :c:data:`selection_criterion`
* :c:data:`selection_criterion_factor`
* :c:data:`selection_criterion_min`
* :c:data:`selection_factor`
* :c:data:`selection_weight`
* :c:data:`short_range_hartree`
* :c:data:`short_range_hartree_operator`
@ -775,6 +785,7 @@ Index of Providers
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`theta_angular_integration_lebedev`
* :c:data:`thresh_grid`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson`
@ -792,11 +803,14 @@ Index of Providers
* :c:data:`unpaired_alpha_electrons`
* :c:data:`used_weight`
* :c:data:`var_pt2_ratio`
* :c:data:`variance_match_weight`
* :c:data:`variance_max`
* :c:data:`virt_bitmask`
* :c:data:`virt_bitmask_4`
* :c:data:`weight_at_r`
* :c:data:`weight_occ_pattern`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`weights_angular_integration_lebedev`
* :c:data:`weights_angular_points`
* :c:data:`write_ao_integrals_e_n`
@ -1033,6 +1047,8 @@ Index of Subroutines/Functions
* :c:func:`get_ao_two_e_integrals_erf`
* :c:func:`get_ao_two_e_integrals_erf_non_zero`
* :c:func:`get_ao_two_e_integrals_non_zero`
* :c:func:`get_ao_two_e_integrals_non_zero_jl`
* :c:func:`get_ao_two_e_integrals_non_zero_jl_from_list`
* :c:func:`get_d0`
* :c:func:`get_d1`
* :c:func:`get_d2`
@ -1280,6 +1296,7 @@ Index of Subroutines/Functions
* :c:func:`print_ci_vectors`
* :c:func:`print_det`
* :c:func:`print_e_conv`
* :c:func:`print_energy_components`
* :c:func:`print_extrapolated_energy`
* :c:func:`print_generators_bitmasks_holes`
* :c:func:`print_generators_bitmasks_holes_for_one_generator`
@ -1418,6 +1435,7 @@ Index of Subroutines/Functions
* :c:func:`u_0_s2_u_0`
* :c:func:`u_dot_u`
* :c:func:`u_dot_v`
* :c:func:`update_pt2_and_variance_weights`
* :c:func:`v_e_n`
* :c:func:`v_grad_rho_oc_to_v_grad_rho_ab`
* :c:func:`v_phi`

View File

@ -89,5 +89,7 @@ fci
* :c:data:`pt2_match_weight`
* :c:data:`pt2_stoch_istate`
* :c:data:`read_wf`
* :c:data:`selection_weight`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`
* :c:data:`variance_match_weight`

View File

@ -55,5 +55,6 @@ pt2
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_stoch_istate`
* :c:data:`read_wf`
* :c:data:`selection_weight`
* :c:data:`state_average_weight`
* :c:data:`threshold_generators`

View File

@ -0,0 +1,37 @@
.. _rotate_mos:
.. program:: rotate_mos
==========
rotate_mos
==========
Rotates molecular orbitals i and j by combining them as
$1/\sqrt{2} ( \phi_i + \phi_j )$ and
$1/\sqrt{2} ( \phi_i - \phi_j )$.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_num`
* :c:data:`mo_coef`
Calls:
.. hlist::
:columns: 3
* :c:func:`save_mos`
Touches:
.. hlist::
:columns: 3
* :c:data:`mo_coef`

View File

@ -0,0 +1,39 @@
.. _sort_by_fock_energies:
.. program:: sort_by_fock_energies
=====================
sort_by_fock_energies
=====================
Program that saves the current |MOs| ordered by diagonal element of the Fock operator.
Warning : the Fock operator, and therefore its matrix elements, depends on the occupancy.
Needs:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_mo`
* :c:data:`ao_num`
* :c:data:`mo_num`
* :c:data:`mo_coef`
Calls:
.. hlist::
:columns: 3
* :c:func:`dsort`
* :c:func:`save_mos`
Touches:
.. hlist::
:columns: 3
* :c:data:`mo_coef`

View File

@ -0,0 +1,27 @@
.. _swap_mos:
.. program:: swap_mos
========
swap_mos
========
Swaps the indices of two molecular orbitals
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
Calls:
.. hlist::
:columns: 3
* :c:func:`save_mos`

View File

@ -0,0 +1,19 @@
.. _test:
.. program:: test
====
test
====
Calls:
.. hlist::
:columns: 3
* :c:func:`two_e_integrals_index`
* :c:func:`two_e_integrals_index_reverse`

View File