mirror of
https://github.com/LCPQ/quantum_package
synced 2024-10-19 22:41:48 +02:00
added qp_e_conv_fci and print_e_conv.irp.f
This commit is contained in:
parent
a45a5a9690
commit
d924386eed
@ -12,8 +12,8 @@
|
|||||||
:caption: Introduction
|
:caption: Introduction
|
||||||
:hidden:
|
:hidden:
|
||||||
|
|
||||||
intro/selected_ci
|
|
||||||
intro/install
|
intro/install
|
||||||
|
intro/selected_ci
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
@ -11,8 +11,18 @@ The |qp|
|
|||||||
What it is
|
What it is
|
||||||
==========
|
==========
|
||||||
|
|
||||||
The |qp| is an open-source programming environment for quantum chemistry,
|
The |qp| is an open-source **programming environment** for quantum chemistry.
|
||||||
|
It has been built from the **developper** point of view in order to help
|
||||||
|
the design of new quantum chemistry methods,
|
||||||
especially for `wave function theory <https://en.wikipedia.org/wiki/Ab_initio_quantum_chemistry_methods>`_ (|WFT|).
|
especially for `wave function theory <https://en.wikipedia.org/wiki/Ab_initio_quantum_chemistry_methods>`_ (|WFT|).
|
||||||
|
|
||||||
|
From the **user** point of view, the |qp| proposes a stand-alone path
|
||||||
|
to use optimized selected configuration interaction |sCI| based on the
|
||||||
|
|CIPSI| algorithm that can efficiently reach near-full configuration interaction
|
||||||
|
|FCI| quality for relatively large systems (see for instance :cite:`Caffarel_2016,Caffarel_2016.2,Loos_2018,Scemama_2018,Dash_2018,Garniron_2017.2,Loos_2018,Garniron_2018,Giner2018Oct`).
|
||||||
|
To have a simple example of how to use the |CIPSI| program, go to the `users_guide/quickstart.
|
||||||
|
|
||||||
|
|
||||||
The main goal is the development of selected configuration interaction |sCI|
|
The main goal is the development of selected configuration interaction |sCI|
|
||||||
methods and multi-reference perturbation theory |MRPT| in the
|
methods and multi-reference perturbation theory |MRPT| in the
|
||||||
determinant-driven paradigm. It also contains the very basics of Kohn-Sham `density functional theory <https://en.wikipedia.org/wiki/Density_functional_theory>`_ |KS-DFT| and `range-separated hybrids <https://aip.scitation.org/doi/10.1063/1.1383587>`_ |RSH|.
|
determinant-driven paradigm. It also contains the very basics of Kohn-Sham `density functional theory <https://en.wikipedia.org/wiki/Density_functional_theory>`_ |KS-DFT| and `range-separated hybrids <https://aip.scitation.org/doi/10.1063/1.1383587>`_ |RSH|.
|
||||||
|
@ -786,7 +786,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
File: :file:`pot_ao_erf_ints.irp.f`
|
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 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -890,7 +890,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
File: :file:`pot_ao_erf_ints.irp.f`
|
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 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,9 +146,6 @@ Providers
|
|||||||
File: :file:`grid_becke_vector.irp.f`
|
File: :file:`grid_becke_vector.irp.f`
|
||||||
|
|
||||||
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
||||||
<<<<<<< HEAD
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
|
||||||
=======
|
|
||||||
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
||||||
|
|
||||||
@ -187,7 +184,6 @@ Providers
|
|||||||
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
||||||
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
|
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
|
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
|
||||||
@ -195,48 +191,6 @@ Providers
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:var:: final_weight_at_r
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: final_weight_at_r (n_points_integration_angular,n_points_radial_grid,nucl_num)
|
|
||||||
|
|
||||||
File: :file:`grid_becke.irp.f`
|
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Total weight on each grid point which takes into account all Lebedev, Voronoi and radial weights.
|
|
||||||
=======
|
|
||||||
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
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:var:: final_weight_at_r_vector
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: final_grid_points (3,n_points_final_grid)
|
|
||||||
double precision, allocatable :: final_weight_at_r_vector (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_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:: grid_points_per_atom
|
.. c:var:: grid_points_per_atom
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
@ -276,13 +230,9 @@ Providers
|
|||||||
File: :file:`grid_becke_vector.irp.f`
|
File: :file:`grid_becke_vector.irp.f`
|
||||||
|
|
||||||
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
||||||
<<<<<<< HEAD
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
|
||||||
=======
|
|
||||||
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
||||||
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
|
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
|
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
|
||||||
@ -302,13 +252,9 @@ Providers
|
|||||||
File: :file:`grid_becke_vector.irp.f`
|
File: :file:`grid_becke_vector.irp.f`
|
||||||
|
|
||||||
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
final_grid_points(1:3,j) = (/ x, y, z /) of the jth grid point
|
||||||
<<<<<<< HEAD
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
|
||||||
=======
|
|
||||||
|
|
||||||
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
final_weight_at_r_vector(i) = Total weight function of the ith grid point which contains the Lebedev, Voronoi and radial weights contributions
|
||||||
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
index_final_points(1:3,i) = gives the angular, radial and atomic indices associated to the ith grid point
|
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
|
index_final_points_reverse(i,j,k) = index of the grid point having i as angular, j as radial and l as atomic indices
|
||||||
@ -365,13 +311,9 @@ Providers
|
|||||||
File: :file:`grid_becke.irp.f`
|
File: :file:`grid_becke.irp.f`
|
||||||
|
|
||||||
n_points_radial_grid = number of radial grid points per atom
|
n_points_radial_grid = number of radial grid points per atom
|
||||||
<<<<<<< HEAD
|
|
||||||
n_points_integration_angular = number of angular grid points per atom
|
|
||||||
=======
|
|
||||||
|
|
||||||
n_points_integration_angular = number of angular grid points per atom
|
n_points_integration_angular = number of angular grid points per atom
|
||||||
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
These numbers are automatically set by setting the grid_type_sgn parameter
|
These numbers are automatically set by setting the grid_type_sgn parameter
|
||||||
|
|
||||||
|
|
||||||
@ -387,37 +329,15 @@ Providers
|
|||||||
File: :file:`grid_becke.irp.f`
|
File: :file:`grid_becke.irp.f`
|
||||||
|
|
||||||
n_points_radial_grid = number of radial grid points per atom
|
n_points_radial_grid = number of radial grid points per atom
|
||||||
<<<<<<< HEAD
|
|
||||||
n_points_integration_angular = number of angular grid points per atom
|
|
||||||
=======
|
|
||||||
|
|
||||||
n_points_integration_angular = number of angular grid points per atom
|
n_points_integration_angular = number of angular grid points per atom
|
||||||
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
These numbers are automatically set by setting the grid_type_sgn parameter
|
These numbers are automatically set by setting the grid_type_sgn parameter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:var:: weight_at_r
|
.. c:var:: weight_at_r
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: weight_at_r (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.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:var:: weight_functions_at_grid_points
|
|
||||||
>>>>>>> 36234f0822384b0bce01530d210522e7975b759b
|
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
|
@ -100,7 +100,9 @@ Providers
|
|||||||
File: :file:`hf_energy.irp.f`
|
File: :file:`hf_energy.irp.f`
|
||||||
|
|
||||||
Extra contribution to the SCF energy coming from the density.
|
Extra contribution to the SCF energy coming from the density.
|
||||||
|
|
||||||
For a Hartree-Fock calculation: extra_e_contrib_density = 0
|
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
|
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,23 +106,6 @@ 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
|
.. c:var:: fock_matrix_alpha_no_xc_ao
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
@ -52,7 +52,7 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: energy
|
.. option:: energy
|
||||||
|
|
||||||
SCF energy
|
Energy range separated hybrid
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,20 +203,6 @@ Subroutines / functions
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: perturb_buffer_by_mono_decontracted
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
subroutine perturb_buffer_by_mono_decontracted(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
|
||||||
|
|
||||||
File: :file:`perturbation.irp.f_shell_13`
|
|
||||||
|
|
||||||
Applly pertubration ``decontracted`` to the buffer of determinants generated in the H_apply routine.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: perturb_buffer_by_mono_dummy
|
.. c:function:: perturb_buffer_by_mono_dummy
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
@ -329,20 +315,6 @@ Subroutines / functions
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: perturb_buffer_decontracted
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
subroutine perturb_buffer_decontracted(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
|
||||||
|
|
||||||
File: :file:`perturbation.irp.f_shell_13`
|
|
||||||
|
|
||||||
Applly pertubration ``decontracted`` to the buffer of determinants generated in the H_apply routine.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: perturb_buffer_dummy
|
.. c:function:: perturb_buffer_dummy
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
@ -455,27 +427,13 @@ Subroutines / functions
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: pt2_decontracted
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
subroutine pt2_decontracted (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: pt2_dummy
|
.. c:function:: pt2_dummy
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
subroutine pt2_dummy (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_dummy (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
Dummy perturbation to add all connected determinants.
|
Dummy perturbation to add all connected determinants.
|
||||||
|
|
||||||
@ -489,7 +447,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_epstein_nesbet (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_epstein_nesbet (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
|
||||||
@ -511,7 +469,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_epstein_nesbet_2x2 (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_epstein_nesbet_2x2 (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
||||||
|
|
||||||
@ -533,7 +491,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_epstein_nesbet_2x2_no_ci_diag(electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_epstein_nesbet_2x2_no_ci_diag(electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
||||||
|
|
||||||
@ -577,7 +535,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_moller_plesset (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_moller_plesset (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the standard Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
compute the standard Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
||||||
|
|
||||||
@ -599,7 +557,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_moller_plesset_general (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_moller_plesset_general (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the general Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
compute the general Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
||||||
|
|
||||||
@ -621,7 +579,7 @@ Subroutines / functions
|
|||||||
|
|
||||||
subroutine pt2_qdpt (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
subroutine pt2_qdpt (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
File: :file:`pt2_equations.irp.f_template_412`
|
File: :file:`pt2_equations.irp.f_template_365`
|
||||||
|
|
||||||
compute the QDPT first order coefficient and second order energetic contribution
|
compute the QDPT first order coefficient and second order energetic contribution
|
||||||
|
|
||||||
|
@ -404,9 +404,6 @@ Index of Providers
|
|||||||
* :c:data:`n_det_max_full`
|
* :c:data:`n_det_max_full`
|
||||||
* :c:data:`n_det_non_cas`
|
* :c:data:`n_det_non_cas`
|
||||||
* :c:data:`n_det_print_wf`
|
* :c:data:`n_det_print_wf`
|
||||||
* :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_det_selectors`
|
||||||
* :c:data:`n_double_exc_bitmasks`
|
* :c:data:`n_double_exc_bitmasks`
|
||||||
* :c:data:`n_double_selectors`
|
* :c:data:`n_double_selectors`
|
||||||
@ -1134,7 +1131,6 @@ Index of Subroutines/Functions
|
|||||||
* :c:func:`overlap_x_abs`
|
* :c:func:`overlap_x_abs`
|
||||||
* :c:func:`past_d1`
|
* :c:func:`past_d1`
|
||||||
* :c:func:`past_d2`
|
* :c:func:`past_d2`
|
||||||
* :c:func:`perturb_buffer_by_mono_decontracted`
|
|
||||||
* :c:func:`perturb_buffer_by_mono_dummy`
|
* :c:func:`perturb_buffer_by_mono_dummy`
|
||||||
* :c:func:`perturb_buffer_by_mono_epstein_nesbet`
|
* :c:func:`perturb_buffer_by_mono_epstein_nesbet`
|
||||||
* :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2`
|
* :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2`
|
||||||
@ -1143,7 +1139,6 @@ Index of Subroutines/Functions
|
|||||||
* :c:func:`perturb_buffer_by_mono_moller_plesset`
|
* :c:func:`perturb_buffer_by_mono_moller_plesset`
|
||||||
* :c:func:`perturb_buffer_by_mono_moller_plesset_general`
|
* :c:func:`perturb_buffer_by_mono_moller_plesset_general`
|
||||||
* :c:func:`perturb_buffer_by_mono_qdpt`
|
* :c:func:`perturb_buffer_by_mono_qdpt`
|
||||||
* :c:func:`perturb_buffer_decontracted`
|
|
||||||
* :c:func:`perturb_buffer_dummy`
|
* :c:func:`perturb_buffer_dummy`
|
||||||
* :c:func:`perturb_buffer_epstein_nesbet`
|
* :c:func:`perturb_buffer_epstein_nesbet`
|
||||||
* :c:func:`perturb_buffer_epstein_nesbet_2x2`
|
* :c:func:`perturb_buffer_epstein_nesbet_2x2`
|
||||||
@ -1168,7 +1163,6 @@ Index of Subroutines/Functions
|
|||||||
* :c:func:`provide_everything`
|
* :c:func:`provide_everything`
|
||||||
* :c:func:`pt2`
|
* :c:func:`pt2`
|
||||||
* :c:func:`pt2_collector`
|
* :c:func:`pt2_collector`
|
||||||
* :c:func:`pt2_decontracted`
|
|
||||||
* :c:func:`pt2_dummy`
|
* :c:func:`pt2_dummy`
|
||||||
* :c:func:`pt2_epstein_nesbet`
|
* :c:func:`pt2_epstein_nesbet`
|
||||||
* :c:func:`pt2_epstein_nesbet_2x2`
|
* :c:func:`pt2_epstein_nesbet_2x2`
|
||||||
|
@ -2,8 +2,9 @@
|
|||||||
Quick-start guide
|
Quick-start guide
|
||||||
=================
|
=================
|
||||||
|
|
||||||
This tutorial should talk you through everything you need to get started with
|
This tutorial should teach you everything you need to get started with
|
||||||
the |qp|. As an example, we will run a |CIPSI| calculation on the HCN molecule.
|
the the basics of the |qp|.
|
||||||
|
As an example, we will run a |CIPSI| calculation on the HCN molecule in the 631-G basis set.
|
||||||
|
|
||||||
|
|
||||||
Demo video
|
Demo video
|
||||||
|
@ -1,58 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
file=$1
|
file=$1
|
||||||
out=${file}.conv
|
|
||||||
|
|
||||||
Ndet=`grep "N_det =" $file | cut -d "=" -f 2`
|
qp=$QP_ROOT
|
||||||
Evar=`grep "E =" $file | cut -d "=" -f 2`
|
source ${qp}/quantum_package.rc
|
||||||
EPT2=`grep "E+rPT2 =" $file | cut -d "=" -f 2 | cut -d "+" -f 1`
|
|
||||||
err=`grep "E+rPT2 =" $file | cut -d "=" -f 2 | cut -d "+" -f 2 | cut -d "/" -f 2 | cut -d " " -f 5`
|
|
||||||
|
|
||||||
Ndetarray=[]
|
qp_run print_e_conv $1
|
||||||
j=0
|
nstates=`cat ${1}/determinants/n_states`
|
||||||
for i in $Ndet
|
echo $nstates
|
||||||
|
|
||||||
|
|
||||||
|
for i in `seq 1 $nstates`
|
||||||
do
|
do
|
||||||
Ndetarray[$j]=$i
|
out=${1}.${i}.conv
|
||||||
let "j=j+1"
|
|
||||||
done
|
|
||||||
Nmax=${#Ndetarray[*]}
|
|
||||||
let "Nmax-=1"
|
|
||||||
|
|
||||||
|
|
||||||
Evararray=[]
|
|
||||||
j=0
|
|
||||||
for i in $Evar
|
|
||||||
do
|
|
||||||
Evararray[$j]=$i
|
|
||||||
let "j=j+1"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
EPT2array=[]
|
|
||||||
j=0
|
|
||||||
for i in $EPT2
|
|
||||||
do
|
|
||||||
EPT2array[$j]=$i
|
|
||||||
let "j=j+1"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
errarray=[]
|
|
||||||
j=0
|
|
||||||
for i in $err
|
|
||||||
do
|
|
||||||
errarray[$j]=$i
|
|
||||||
let "j=j+1"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "#Ndet E_var E+PT2 statistical error " > $out
|
|
||||||
for i in `seq 0 $Nmax`
|
|
||||||
do
|
|
||||||
echo ${Ndetarray[$i]} ${Evararray[$i]} ${EPT2array[$i]} ${errarray[$i]} >> $out
|
|
||||||
done
|
|
||||||
|
|
||||||
cat << EOF > ${out}.plt
|
cat << EOF > ${out}.plt
|
||||||
set term eps
|
set term eps
|
||||||
set output "$out.eps"
|
set output "$out.eps"
|
||||||
@ -60,8 +19,28 @@ set log x
|
|||||||
set xlabel "Number of determinants"
|
set xlabel "Number of determinants"
|
||||||
set ylabel "Total Energy (a.u.)"
|
set ylabel "Total Energy (a.u.)"
|
||||||
|
|
||||||
plot "$out" w lp title "E_{var}", "$out" u 1:3:4 w errorlines title "E_{var} + PT2"
|
plot "$out" w lp title "E_{var} state $i", "$out" u 1:3 w lp title "E_{var} + PT2 state $i"
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
gnuplot ${out}.plt
|
gnuplot ${out}.plt
|
||||||
|
rm ${out}.plt
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in `seq 2 $nstates`
|
||||||
|
do
|
||||||
|
out=${1}.${i}.delta_e.conv
|
||||||
|
cat << EOF > ${out}.plt
|
||||||
|
set term eps
|
||||||
|
set output "$out.eps"
|
||||||
|
set log x
|
||||||
|
set xlabel "Number of determinants"
|
||||||
|
set ylabel "Energy difference (a.u.)"
|
||||||
|
|
||||||
|
plot "$out" w lp title "Delta E_{var} state $i", "$out" u 1:3 w lp title "Delta E_{var} + PT2 state $i"
|
||||||
|
|
||||||
|
EOF
|
||||||
|
gnuplot ${out}.plt
|
||||||
|
rm ${out}.plt
|
||||||
|
done
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
subroutine give_all_erf_kl_ao(integrals_ao,mu_in,C_center)
|
subroutine give_all_erf_kl_ao(integrals_ao,mu_in,C_center)
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
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
|
END_DOC
|
||||||
double precision, intent(in) :: mu_in,C_center(3)
|
double precision, intent(in) :: mu_in,C_center(3)
|
||||||
double precision, intent(out) :: integrals_ao(ao_num,ao_num)
|
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
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! computes the following integral :
|
! 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
|
END_DOC
|
||||||
integer, intent(in) :: i_ao,j_ao
|
integer, intent(in) :: i_ao,j_ao
|
||||||
double precision, intent(in) :: mu_in, C_center(3)
|
double precision, intent(in) :: mu_in, C_center(3)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
|
|
71
src/tools/print_e_conv.irp.f
Normal file
71
src/tools/print_e_conv.irp.f
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
program print_e_conv
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! program that prints in a human readable format the convergence of the CIPSI algorithm
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
provide ezfio_filename
|
||||||
|
call routine
|
||||||
|
end
|
||||||
|
|
||||||
|
subroutine routine
|
||||||
|
implicit none
|
||||||
|
integer :: N_iter_tmp
|
||||||
|
integer :: i,istate
|
||||||
|
character*(128) :: output
|
||||||
|
integer :: i_unit_output,getUnitAndOpen
|
||||||
|
character*(128) :: filename
|
||||||
|
|
||||||
|
integer, allocatable :: n_det_tmp(:)
|
||||||
|
call ezfio_get_iterations_N_iter(N_iter_tmp)
|
||||||
|
print*,'N_iter_tmp = ',N_iter_tmp
|
||||||
|
double precision, allocatable :: e(:,:),pt2(:,:)
|
||||||
|
allocate(e(N_states, 100),pt2(N_states, 100),n_det_tmp(100))
|
||||||
|
call ezfio_get_iterations_energy_iterations(e)
|
||||||
|
call ezfio_get_iterations_pt2_iterations(pt2)
|
||||||
|
call ezfio_get_iterations_n_det_iterations(n_det_tmp)
|
||||||
|
|
||||||
|
|
||||||
|
do istate = 1, N_states
|
||||||
|
if (istate.lt.10)then
|
||||||
|
write (filename, "(I1)")istate
|
||||||
|
else
|
||||||
|
write (filename, "(I2)")istate
|
||||||
|
endif
|
||||||
|
print*,filename
|
||||||
|
output=trim(ezfio_filename)//'.'//trim(filename)//'.conv'
|
||||||
|
output=trim(output)
|
||||||
|
print*,'output = ',trim(output)
|
||||||
|
i_unit_output = getUnitAndOpen(output,'w')
|
||||||
|
write(i_unit_output,*)'# N_det E_var E_var + PT2'
|
||||||
|
do i = 1, N_iter_tmp
|
||||||
|
write(i_unit_output,'(I9,X,3(F16.10,X))')n_det_tmp(i),e(istate,i),e(istate,i) + pt2(istate,i)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
if(N_states.gt.1)then
|
||||||
|
double precision, allocatable :: deltae(:,:),deltae_pt2(:,:)
|
||||||
|
allocate(deltae(N_states,100),deltae_pt2(N_states,100))
|
||||||
|
do i = 1, N_iter_tmp
|
||||||
|
do istate = 1, N_states
|
||||||
|
deltae(istate,i) = e(istate,i) - e(1,i)
|
||||||
|
deltae_pt2(istate,i) = e(istate,i) + pt2(istate,i) - (e(1,i) + pt2(1,i))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
do istate = 2, N_states
|
||||||
|
if (istate.lt.10)then
|
||||||
|
write (filename, "(I1)")istate
|
||||||
|
else
|
||||||
|
write (filename, "(I2)")istate
|
||||||
|
endif
|
||||||
|
output=trim(ezfio_filename)//'.'//trim(filename)//'.delta_e.conv'
|
||||||
|
print*,'output = ',trim(output)
|
||||||
|
i_unit_output = getUnitAndOpen(output,'w')
|
||||||
|
write(i_unit_output,*)'# N_det Delta E_var Delta (E_var + PT2)'
|
||||||
|
do i = 1, N_iter_tmp
|
||||||
|
write(i_unit_output,'(I9,X,100(F16.10,X))')n_det_tmp(i),deltae(istate,i),deltae_pt2(istate,i)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
endif
|
||||||
|
|
||||||
|
end
|
@ -59,6 +59,8 @@ subroutine routine
|
|||||||
else
|
else
|
||||||
coef_2_2 = 0.5d0 * (delta_e + dsqrt(delta_e * delta_e + 4.d0 * hij * hij )) /hij
|
coef_2_2 = 0.5d0 * (delta_e + dsqrt(delta_e * delta_e + 4.d0 * hij * hij )) /hij
|
||||||
endif
|
endif
|
||||||
|
else
|
||||||
|
coef_2_2 = 0.d0
|
||||||
endif
|
endif
|
||||||
call get_excitation(psi_det(1,1,1),psi_det(1,1,i),exc,degree,phase,N_int)
|
call get_excitation(psi_det(1,1,1),psi_det(1,1,i),exc,degree,phase,N_int)
|
||||||
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
|
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
|
||||||
@ -83,7 +85,7 @@ subroutine routine
|
|||||||
print*,'hdouble = ',hdouble
|
print*,'hdouble = ',hdouble
|
||||||
print*,'hmono+hdouble = ',hmono+hdouble
|
print*,'hmono+hdouble = ',hmono+hdouble
|
||||||
print*,'hij = ',hij
|
print*,'hij = ',hij
|
||||||
else
|
else if(degree ==2)then
|
||||||
print*,'s1',s1
|
print*,'s1',s1
|
||||||
print*,'h1,p1 = ',h1,p1
|
print*,'h1,p1 = ',h1,p1
|
||||||
print*,'s2',s2
|
print*,'s2',s2
|
||||||
|
Loading…
Reference in New Issue
Block a user