mirror of
https://github.com/LCPQ/quantum_package
synced 2024-09-27 03:51:01 +02:00
introduced the sgn grids
This commit is contained in:
parent
dc87770c1a
commit
599a91d5aa
4
TODO
4
TODO
@ -1,3 +1,4 @@
|
||||
!!!!!!!!!! ENLEVER CETTE SALOPERIE DE TRUC DANS VI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
# qp_module
|
||||
|
||||
* Mettre le fichier LIB
|
||||
@ -5,8 +6,7 @@
|
||||
# Web/doc
|
||||
|
||||
* Creer une page web pas trop degueu et la mettre ici : http://lcpq.github.io/quantum_package
|
||||
* Manu : README
|
||||
* dm_for_dft
|
||||
* Pour les README.rst des modules, mettre un deuxième saut à la ligne pour la doc en ligne.
|
||||
* prendre des bouts du src/README.rst et en mettre partout
|
||||
|
||||
|
||||
|
@ -12,9 +12,10 @@ All the one-electron integrals in the |AO| basis are here.
|
||||
|
||||
The most important providers for usual quantum-chemistry calculation are:
|
||||
|
||||
# `ao_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_ao_ints.irp.f`)
|
||||
# `ao_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_ao_ints.irp.f`)
|
||||
# `ao_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
|
||||
* `ao_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_ao_ints.irp.f`)
|
||||
* `ao_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_ao_ints.irp.f`)
|
||||
* `ao_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
|
||||
|
||||
|
||||
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
|
||||
|
||||
|
@ -13,7 +13,7 @@ This module contains some global variables (such as densities and energies) whic
|
||||
|
||||
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.
|
||||
|
@ -12,12 +12,14 @@ This module contains all quantities needed to build the Becke's grid used in gen
|
||||
|
||||
This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains a certain number of radial and angular points.
|
||||
|
||||
|
||||
The main providers of that module are:
|
||||
|
||||
# :option:`becke_numerical_grid n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 266 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details.
|
||||
# :option:`becke_numerical_grid n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary.
|
||||
# `final_grid_points` which are the (x,y,z) coordinates of the grid points.
|
||||
# `final_weight_at_r_vector` which are the weights at each grid point
|
||||
* :option:`becke_numerical_grid n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 266 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details.
|
||||
* :option:`becke_numerical_grid n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary.
|
||||
* `final_grid_points` which are the (x,y,z) coordinates of the grid points.
|
||||
* `final_weight_at_r_vector` which are the weights at each grid point
|
||||
|
||||
|
||||
For a simple example of how to use the grid, see :file:`example.irp.f`.
|
||||
|
||||
|
@ -13,8 +13,8 @@ This module defines the *provider* of the density used for the DFT related calcu
|
||||
This definition is done through the keyword :option:`density_for_dft density_for_dft`.
|
||||
The density can be:
|
||||
|
||||
# WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``)
|
||||
# damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
|
||||
* WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``)
|
||||
* damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
|
||||
|
||||
|
||||
|
||||
|
@ -12,16 +12,16 @@ Contains everything for the computation of the Hamiltonian matrix elements in th
|
||||
|
||||
The main providers for this module are:
|
||||
|
||||
# :option:`determinants n_states`: number of states to be computed
|
||||
# `psi_det`: list of determinants in the wave function used in many routines/providers of the |QP|.
|
||||
# `psi_coef`: list of coefficients, for all :option:`determinants n_states` states, and all determinants.
|
||||
* :option:`determinants n_states`: number of states to be computed
|
||||
* `psi_det`: list of determinants in the wave function used in many routines/providers of the |QP|.
|
||||
* `psi_coef`: list of coefficients, for all :option:`determinants n_states` states, and all determinants.
|
||||
|
||||
The main routines for this module are:
|
||||
|
||||
# `i_H_j`: computes the Hamiltonian matrix element between two arbitrary Slater determinants.
|
||||
# `i_H_j_s2`: computes the Hamiltonian and (:math:`S^2`) matrix element between two arbitrary Slater determinants.
|
||||
# `i_H_j_verbose`: returns the decomposition in terms of one- and two-body components of the Hamiltonian matrix elements between two arbitrary Slater determinants. Also return the fermionic phase factor.
|
||||
# `i_H_psi`: computes the Hamiltonian matrix element between an arbitrary Slater determinant and a wave function composed of a sum of arbitrary Slater determinants.
|
||||
* `i_H_j`: computes the Hamiltonian matrix element between two arbitrary Slater determinants.
|
||||
* `i_H_j_s2`: computes the Hamiltonian and (:math:`S^2`) matrix element between two arbitrary Slater determinants.
|
||||
* `i_H_j_verbose`: returns the decomposition in terms of one- and two-body components of the Hamiltonian matrix elements between two arbitrary Slater determinants. Also return the fermionic phase factor.
|
||||
* `i_H_psi`: computes the Hamiltonian matrix element between an arbitrary Slater determinant and a wave function composed of a sum of arbitrary Slater determinants.
|
||||
|
||||
|
||||
For an example of how to use these routines and providers, take a look at :file:`example.irp.f`.
|
||||
|
@ -10,11 +10,11 @@ dft_keywords
|
||||
|
||||
This module contains the main keywords related to a DFT calculation or RS-DFT calculation, such as:
|
||||
|
||||
# :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 exchange_functional`
|
||||
* :option:`dft_keywords correlation_functional`
|
||||
* :option:`dft_keywords HF_exchange` : only relevent for the :ref:`ks_scf` program
|
||||
|
||||
The keyword for the range separation parameter :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.
|
||||
The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.
|
||||
|
||||
The keyword for the type of density used in RS-DFT calculation with a multi-configurational wave function is the :option:`density_for_dft density_for_dft` keyword.
|
||||
|
||||
|
@ -12,17 +12,20 @@ This module contains all the one-body related quantities needed to perform DFT o
|
||||
Therefore, it contains most of the properties which depends on the one-body density and density matrix.
|
||||
|
||||
The most important files and variables are:
|
||||
# The general *providers* for the x/c energies in :file:`e_xc_general.irp.f`
|
||||
# The general *providers* for the x/c potentials in :file:`pot_general.irp.f`
|
||||
# The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f`
|
||||
|
||||
* The general *providers* for the x/c energies in :file:`e_xc_general.irp.f`
|
||||
* The general *providers* for the x/c potentials in :file:`pot_general.irp.f`
|
||||
* The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f`
|
||||
|
||||
These *providers* will be used in many DFT-related programs, such as :file:`ks_scf.irp.f` or :file:`rs_ks_scf.irp.f`.
|
||||
It is also needed to compute the effective one-body operator needed in multi-determinant RS-DFT (see plugins by eginer).
|
||||
|
||||
Some other interesting quantities:
|
||||
# The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f`
|
||||
# The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f`
|
||||
# The :math:`h_{core}` energy computed directly with the one-body density matrix in :file:`one_e_energy_dft.irp.f`
|
||||
# LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f`
|
||||
|
||||
* The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f`
|
||||
* The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f`
|
||||
* The :math:`h_{core}` energy computed directly with the one-body density matrix in :file:`one_e_energy_dft.irp.f`
|
||||
* LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f`
|
||||
|
||||
|
||||
|
||||
|
@ -23,8 +23,9 @@ It performs the following actions:
|
||||
The definition of the Fock matrix is in :file:`kohn_sham fock_matrix_ks.irp.f`
|
||||
For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options.
|
||||
The main are:
|
||||
# :option:`scf_utils thresh_scf`
|
||||
# :option:`scf_utils level_shift`
|
||||
|
||||
#. :option:`scf_utils thresh_scf`
|
||||
#. :option:`scf_utils level_shift`
|
||||
|
||||
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
|
||||
crashes for any unexpected reason, the calculation can be restarted by running again
|
||||
|
@ -12,9 +12,9 @@ All the one-electron integrals in |MO| basis are defined here.
|
||||
|
||||
The most important providers for usual quantum-chemistry calculation are:
|
||||
|
||||
# `mo_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`)
|
||||
# `mo_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`)
|
||||
# `mo_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`)
|
||||
* `mo_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`)
|
||||
* `mo_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`)
|
||||
* `mo_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`)
|
||||
|
||||
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`.
|
||||
|
||||
|
@ -28,9 +28,8 @@ All SCF programs perform the following actions:
|
||||
|
||||
The main keywords/options are:
|
||||
|
||||
# :option:`scf_utils thresh_scf`
|
||||
|
||||
# :option:`scf_utils level_shift`
|
||||
* :option:`scf_utils thresh_scf`
|
||||
* :option:`scf_utils level_shift`
|
||||
|
||||
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
|
||||
crashes for any unexpected reason, the calculation can be restarted by running again
|
||||
|
@ -6,8 +6,9 @@ All the one-electron integrals in the |AO| basis are here.
|
||||
|
||||
The most important providers for usual quantum-chemistry calculation are:
|
||||
|
||||
# `ao_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_ao_ints.irp.f`)
|
||||
# `ao_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_ao_ints.irp.f`)
|
||||
# `ao_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
|
||||
* `ao_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_ao_ints.irp.f`)
|
||||
* `ao_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_ao_ints.irp.f`)
|
||||
* `ao_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`ao_mono_ints.irp.f`)
|
||||
|
||||
|
||||
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_ao.irp.f`.
|
||||
|
@ -9,7 +9,9 @@ in :file:`utils/map_module.f90`.
|
||||
The main parameter of this module is :option:`ao_two_e_erf_integrals mu_erf` which is the range-separation parameter.
|
||||
|
||||
To fetch an |AO| integral, use the
|
||||
`get_ao_bielec_integral_erf(i,j,k,l,ao_integrals_erf_map)` function, and
|
||||
`get_ao_bielec_integral_erf(i,j,k,l,ao_integrals_erf_map)` function.
|
||||
|
||||
|
||||
The conventions are:
|
||||
* For |AO| integrals : (ij|kl) = (11|22) = <ik|jl> = <12|12>
|
||||
|
||||
|
@ -7,7 +7,9 @@ As they have 4 indices and many are zero, they are stored in a map, as defined
|
||||
in :file:`utils/map_module.f90`.
|
||||
|
||||
To fetch an |AO| integral, use the
|
||||
`get_ao_bielec_integral(i,j,k,l,ao_integrals_map)` function, and
|
||||
`get_ao_bielec_integral(i,j,k,l,ao_integrals_map)` function.
|
||||
|
||||
|
||||
The conventions are:
|
||||
* For |AO| integrals : (ij|kl) = (11|22) = <ik|jl> = <12|12>
|
||||
|
||||
|
@ -7,7 +7,7 @@ This module contains some global variables (such as densities and energies) whic
|
||||
|
||||
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.
|
||||
|
@ -1,16 +1,5 @@
|
||||
[n_points_integration_angular]
|
||||
[grid_type_sgn]
|
||||
type: integer
|
||||
doc: Number of angular points per atom for 3d numerical integration, needed for DFT for example [ 50 | 74 | 266 | 590 | 1202 | 2030 | 5810 ]
|
||||
doc: Type of grid used for the Becke's numerical grid. Can be, by increasing accuracy: [ 0 | 1 | 2 | 3 ]
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 590
|
||||
|
||||
|
||||
[n_points_radial_grid]
|
||||
type: integer
|
||||
doc: Number of radial points per atom for 3d numerical integration, needed for DFT for example
|
||||
interface: ezfio,provider,ocaml
|
||||
default: 60
|
||||
|
||||
|
||||
|
||||
|
||||
default: 2
|
||||
|
@ -4,14 +4,20 @@ becke_numerical_grid
|
||||
|
||||
This module contains all quantities needed to build the Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions.
|
||||
|
||||
This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains a certain number of radial and angular points.
|
||||
This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains
|
||||
a certain number of radial and angular points. No pruning is done on the angular part of the grid.
|
||||
|
||||
The main keyword for that modue is:
|
||||
|
||||
* :option:`becke_numerical_grid grid_type_sgn` which controls the precision of the grid according the standard **SG-n** grids. This keyword controls the two providers `n_points_integration_angular` `n_points_radial_grid`.
|
||||
|
||||
The main providers of that module are:
|
||||
|
||||
# :option:`becke_numerical_grid n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 266 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details.
|
||||
# :option:`becke_numerical_grid n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary.
|
||||
# `final_grid_points` which are the (x,y,z) coordinates of the grid points.
|
||||
# `final_weight_at_r_vector` which are the weights at each grid point
|
||||
* `n_points_integration_angular` which is the number of angular integration points. WARNING: it obeys to specific rules so it cannot be any integer number. Some of the possible values are [ 50 | 74 | 170 | 194 | 266 | 302 | 590 | 1202 | 2030 | 5810 ] for instance. See :file:`angular.f` for more details.
|
||||
* `n_points_radial_grid` which is the number of radial angular points. This can be any strictly positive integer. Nevertheless, a minimum of 50 is in general necessary.
|
||||
* `final_grid_points` which are the (x,y,z) coordinates of the grid points.
|
||||
* `final_weight_at_r_vector` which are the weights at each grid point
|
||||
|
||||
|
||||
For a simple example of how to use the grid, see :file:`example.irp.f`.
|
||||
|
||||
|
@ -1,3 +1,32 @@
|
||||
BEGIN_PROVIDER [integer, n_points_radial_grid]
|
||||
&BEGIN_PROVIDER [integer, n_points_integration_angular]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! 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
|
||||
END_DOC
|
||||
select case (grid_type_sgn)
|
||||
case(0)
|
||||
n_points_radial_grid = 23
|
||||
n_points_integration_angular = 170
|
||||
case(1)
|
||||
n_points_radial_grid = 50
|
||||
n_points_integration_angular = 194
|
||||
case(2)
|
||||
n_points_radial_grid = 75
|
||||
n_points_integration_angular = 302
|
||||
case(3)
|
||||
n_points_radial_grid = 99
|
||||
n_points_integration_angular = 590
|
||||
case default
|
||||
write(*,*) '!!! Quadrature grid not available !!!'
|
||||
stop
|
||||
end select
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [integer, n_points_grid_per_atom]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
@ -42,9 +71,18 @@ END_PROVIDER
|
||||
case (0590)
|
||||
call LD0590(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
case (302)
|
||||
call LD0302(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
case (266)
|
||||
call LD0266(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
case (194)
|
||||
call LD0194(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
case (170)
|
||||
call LD0170(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
case (74)
|
||||
call LD0074(X,Y,Z,W,n_points_integration_angular)
|
||||
|
||||
@ -53,7 +91,7 @@ END_PROVIDER
|
||||
|
||||
case default
|
||||
print *, irp_here//': wrong n_points_integration_angular. Expected:'
|
||||
print *, '[ 50 | 74 | 266 | 590 | 1202 | 2030 | 5810 ]'
|
||||
print *, '[ 50 | 74 | 170 | 194 | 266 | 302 | 590 | 1202 | 2030 | 5810 ]'
|
||||
stop -1
|
||||
end select
|
||||
|
||||
|
@ -7,6 +7,6 @@ This module defines the *provider* of the density used for the DFT related calcu
|
||||
This definition is done through the keyword :option:`density_for_dft density_for_dft`.
|
||||
The density can be:
|
||||
|
||||
# WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``)
|
||||
# damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
|
||||
* WFT : the density is computed with a potentially multi determinant wave function (see variables `psi_det` and `psi_det`)# input_density : the density is set to a density previously stored in the |EZFIO| folder (see ``aux_quantities``)
|
||||
* damping_rs_dft : the density is damped between the input_density and the WFT density, with a damping factor of :option:`density_for_dft damping_for_rs_dft`
|
||||
|
||||
|
@ -6,16 +6,16 @@ Contains everything for the computation of the Hamiltonian matrix elements in th
|
||||
|
||||
The main providers for this module are:
|
||||
|
||||
# :option:`determinants n_states`: number of states to be computed
|
||||
# `psi_det`: list of determinants in the wave function used in many routines/providers of the |QP|.
|
||||
# `psi_coef`: list of coefficients, for all :option:`determinants n_states` states, and all determinants.
|
||||
* :option:`determinants n_states`: number of states to be computed
|
||||
* `psi_det`: list of determinants in the wave function used in many routines/providers of the |QP|.
|
||||
* `psi_coef`: list of coefficients, for all :option:`determinants n_states` states, and all determinants.
|
||||
|
||||
The main routines for this module are:
|
||||
|
||||
# `i_H_j`: computes the Hamiltonian matrix element between two arbitrary Slater determinants.
|
||||
# `i_H_j_s2`: computes the Hamiltonian and (:math:`S^2`) matrix element between two arbitrary Slater determinants.
|
||||
# `i_H_j_verbose`: returns the decomposition in terms of one- and two-body components of the Hamiltonian matrix elements between two arbitrary Slater determinants. Also return the fermionic phase factor.
|
||||
# `i_H_psi`: computes the Hamiltonian matrix element between an arbitrary Slater determinant and a wave function composed of a sum of arbitrary Slater determinants.
|
||||
* `i_H_j`: computes the Hamiltonian matrix element between two arbitrary Slater determinants.
|
||||
* `i_H_j_s2`: computes the Hamiltonian and (:math:`S^2`) matrix element between two arbitrary Slater determinants.
|
||||
* `i_H_j_verbose`: returns the decomposition in terms of one- and two-body components of the Hamiltonian matrix elements between two arbitrary Slater determinants. Also return the fermionic phase factor.
|
||||
* `i_H_psi`: computes the Hamiltonian matrix element between an arbitrary Slater determinant and a wave function composed of a sum of arbitrary Slater determinants.
|
||||
|
||||
|
||||
For an example of how to use these routines and providers, take a look at :file:`example.irp.f`.
|
||||
|
@ -4,10 +4,10 @@ dft_keywords
|
||||
|
||||
This module contains the main keywords related to a DFT calculation or RS-DFT calculation, such as:
|
||||
|
||||
# :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 exchange_functional`
|
||||
* :option:`dft_keywords correlation_functional`
|
||||
* :option:`dft_keywords HF_exchange` : only relevent for the :ref:`ks_scf` program
|
||||
|
||||
The keyword for the range separation parameter :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.
|
||||
The keyword for the **range separation parameter** :math:`\mu` is the :option:`ao_two_e_erf_integrals mu_erf` keyword.
|
||||
|
||||
The keyword for the type of density used in RS-DFT calculation with a multi-configurational wave function is the :option:`density_for_dft density_for_dft` keyword.
|
||||
|
@ -8,7 +8,7 @@ As these quantities might be used and re-used, the values at each point of the g
|
||||
|
||||
The main providers for this module are:
|
||||
|
||||
# `aos_in_r_array`: values of the |AO| basis on the grid point.
|
||||
# `mos_in_r_array`: values of the |MO| basis on the grid point.
|
||||
# `one_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points.
|
||||
* `aos_in_r_array`: values of the |AO| basis on the grid point.
|
||||
* `mos_in_r_array`: values of the |MO| basis on the grid point.
|
||||
* `one_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points.
|
||||
|
||||
|
@ -6,16 +6,19 @@ This module contains all the one-body related quantities needed to perform DFT o
|
||||
Therefore, it contains most of the properties which depends on the one-body density and density matrix.
|
||||
|
||||
The most important files and variables are:
|
||||
# The general *providers* for the x/c energies in :file:`e_xc_general.irp.f`
|
||||
# The general *providers* for the x/c potentials in :file:`pot_general.irp.f`
|
||||
# The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f`
|
||||
|
||||
* The general *providers* for the x/c energies in :file:`e_xc_general.irp.f`
|
||||
* The general *providers* for the x/c potentials in :file:`pot_general.irp.f`
|
||||
* The short-range hartree operator and all related quantities in :file:`sr_coulomb.irp.f`
|
||||
|
||||
These *providers* will be used in many DFT-related programs, such as :file:`ks_scf.irp.f` or :file:`rs_ks_scf.irp.f`.
|
||||
It is also needed to compute the effective one-body operator needed in multi-determinant RS-DFT (see plugins by eginer).
|
||||
|
||||
Some other interesting quantities:
|
||||
# The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f`
|
||||
# The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f`
|
||||
# The :math:`h_{core}` energy computed directly with the one-body density matrix in :file:`one_e_energy_dft.irp.f`
|
||||
# LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f`
|
||||
|
||||
* The LDA and PBE *providers* for the x/c energies in :file:`e_xc.irp.f` and :file:`sr_exc.irp.f`
|
||||
* The LDA and PBE *providers* for the x/c potentials on the AO basis in :file:`pot_ao.irp.f` and :file:`sr_pot_ao.irp.f`
|
||||
* The :math:`h_{core}` energy computed directly with the one-body density matrix in :file:`one_e_energy_dft.irp.f`
|
||||
* LDA and PBE short-range functionals *subroutines* in :file:`exc_sr_lda.irp.f` and :file:`exc_sr_pbe.irp.f`
|
||||
|
||||
|
||||
|
@ -5,6 +5,10 @@ program scf
|
||||
! output: hartree_fock.energy
|
||||
! optional: mo_basis.mo_coef
|
||||
END_DOC
|
||||
disk_access_mo_one_integrals = "None"
|
||||
touch disk_access_mo_one_integrals
|
||||
disk_access_ao_one_integrals = "None"
|
||||
touch disk_access_ao_one_integrals
|
||||
call create_guess
|
||||
call orthonormalize_mos
|
||||
call run
|
||||
|
@ -5,6 +5,11 @@ program scf
|
||||
! output: hartree_fock.energy
|
||||
! optional: mo_basis.mo_coef
|
||||
END_DOC
|
||||
disk_access_mo_one_integrals = "None"
|
||||
touch disk_access_mo_one_integrals
|
||||
disk_access_ao_one_integrals = "None"
|
||||
touch disk_access_ao_one_integrals
|
||||
|
||||
call create_guess
|
||||
call orthonormalize_mos
|
||||
call run
|
||||
|
@ -17,8 +17,9 @@ It performs the following actions:
|
||||
The definition of the Fock matrix is in :file:`kohn_sham fock_matrix_ks.irp.f`
|
||||
For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options.
|
||||
The main are:
|
||||
# :option:`scf_utils thresh_scf`
|
||||
# :option:`scf_utils level_shift`
|
||||
|
||||
#. :option:`scf_utils thresh_scf`
|
||||
#. :option:`scf_utils level_shift`
|
||||
|
||||
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
|
||||
crashes for any unexpected reason, the calculation can be restarted by running again
|
||||
|
@ -5,6 +5,11 @@ program srs_ks_cf
|
||||
! output: kohn_sham.energy
|
||||
! optional: mo_basis.mo_coef
|
||||
END_DOC
|
||||
|
||||
disk_access_mo_one_integrals = "None"
|
||||
touch disk_access_mo_one_integrals
|
||||
disk_access_ao_one_integrals = "None"
|
||||
touch disk_access_ao_one_integrals
|
||||
read_wf = .False.
|
||||
density_for_dft ="WFT"
|
||||
touch density_for_dft
|
||||
|
@ -5,6 +5,12 @@ program srs_ks_cf
|
||||
! output: kohn_sham.energy
|
||||
! optional: mo_basis.mo_coef
|
||||
END_DOC
|
||||
|
||||
disk_access_mo_one_integrals = "None"
|
||||
touch disk_access_mo_one_integrals
|
||||
disk_access_ao_one_integrals = "None"
|
||||
touch disk_access_ao_one_integrals
|
||||
|
||||
read_wf = .False.
|
||||
density_for_dft ="WFT"
|
||||
touch density_for_dft
|
||||
|
@ -6,8 +6,8 @@ All the one-electron integrals in |MO| basis are defined here.
|
||||
|
||||
The most important providers for usual quantum-chemistry calculation are:
|
||||
|
||||
# `mo_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`)
|
||||
# `mo_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`)
|
||||
# `mo_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`)
|
||||
* `mo_kinetic_integral` which are the kinetic operator integrals on the |AO| basis (see :file:`kin_mo_ints.irp.f`)
|
||||
* `mo_nucl_elec_integral` which are the nuclear-elctron operator integrals on the |AO| basis (see :file:`pot_mo_ints.irp.f`)
|
||||
* `mo_mono_elec_integral` which are the the h_core operator integrals on the |AO| basis (see :file:`mo_mono_ints.irp.f`)
|
||||
|
||||
Note that you can find other interesting integrals related to the position operator in :file:`spread_dipole_mo.irp.f`.
|
||||
|
@ -22,9 +22,8 @@ All SCF programs perform the following actions:
|
||||
|
||||
The main keywords/options are:
|
||||
|
||||
# :option:`scf_utils thresh_scf`
|
||||
|
||||
# :option:`scf_utils level_shift`
|
||||
* :option:`scf_utils thresh_scf`
|
||||
* :option:`scf_utils level_shift`
|
||||
|
||||
At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation
|
||||
crashes for any unexpected reason, the calculation can be restarted by running again
|
||||
|
Loading…
Reference in New Issue
Block a user