mirror of
https://github.com/LCPQ/quantum_package
synced 2024-10-19 22:41:48 +02:00
renaming massive on one e density
This commit is contained in:
parent
e327757118
commit
c53b3ebade
36
REPLACE
36
REPLACE
@ -144,3 +144,39 @@ qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta
|
||||
qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha
|
||||
qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp
|
||||
qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp
|
||||
qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo
|
||||
qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo
|
||||
qp_name one_body_dm_alpha_ao_for_dft -r one_e_dm_alpha_ao_for_dft
|
||||
qp_name one_body_dm_alpha_at_r -r one_e_dm_alpha_at_r
|
||||
qp_name one_body_dm_ao_alpha -r one_e_dm_ao_alpha
|
||||
qp_name one_body_dm_ao_beta -r one_e_dm_ao_beta
|
||||
qp_name one_body_dm_average_mo_for_dft -r one_e_dm_average_mo_for_dft
|
||||
qp_name one_body_dm_beta_ao_for_dft -r one_e_dm_beta_ao_for_dft
|
||||
qp_name one_body_dm_beta_at_r -r one_e_dm_beta_at_r
|
||||
qp_name one_body_dm_dagger_mo_spin_index -r one_e_dm_dagger_mo_spin_index
|
||||
qp_name one_body_dm_mo -r one_e_dm_mo
|
||||
qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha
|
||||
qp_name one_body_dm_mo_alpha_average -r one_e_dm_mo_alpha_average
|
||||
qp_name one_body_dm_mo_alpha_for_dft -r one_e_dm_mo_alpha_for_dft
|
||||
qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta
|
||||
qp_name one_body_dm_mo_beta_average -r one_e_dm_mo_beta_average
|
||||
qp_name one_body_dm_mo_beta_for_dft -r one_e_dm_mo_beta_for_dft
|
||||
qp_name one_body_dm_mo_diff -r one_e_dm_mo_diff
|
||||
qp_name one_body_dm_mo_for_dft -r one_e_dm_mo_for_dft
|
||||
qp_name one_body_dm_mo_spin_index -r one_e_dm_mo_spin_index
|
||||
qp_name one_body_grad_2_dm_alpha_at_r -r one_e_grad_2_dm_alpha_at_r
|
||||
qp_name one_body_grad_2_dm_beta_at_r -r one_e_grad_2_dm_beta_at_r
|
||||
qp_name one_body_spin_density_ao -r one_e_spin_density_ao
|
||||
qp_name one_body_spin_density_mo -r one_e_spin_density_mo
|
||||
qp_name one_electron_energy -r one_e_energy
|
||||
qp_name one_dm_alpha_in_r -r one_e_dm_alpha_in_r
|
||||
qp_name one_dm_and_grad_alpha_in_r -r one_e_dm_and_grad_alpha_in_r
|
||||
qp_name one_dm_and_grad_beta_in_r -r one_e_dm_and_grad_beta_in_r
|
||||
qp_name one_dm_beta_in_r -r one_e_dm_beta_in_r
|
||||
qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo
|
||||
qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo
|
||||
qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo
|
||||
qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo
|
||||
qp_name save_one_body_dm -r save_one_e_dm
|
||||
qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo
|
||||
qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo
|
||||
|
@ -18,7 +18,7 @@ on the density in order to speed up convergence.
|
||||
|
||||
The main providers of that module are:
|
||||
|
||||
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the
|
||||
* `data_one_e_dm_alpha_mo` and `data_one_e_dm_beta_mo` which are the
|
||||
one-body alpha and beta densities which are necessary read from the EZFIO
|
||||
folder.
|
||||
|
||||
@ -41,12 +41,12 @@ EZFIO parameters
|
||||
Projected energy computed with the wave function
|
||||
|
||||
|
||||
.. option:: data_one_body_alpha_dm_mo
|
||||
.. option:: data_one_e_dm_alpha_mo
|
||||
|
||||
Alpha one body density matrix on the MO basis computed with the wave function
|
||||
Alpha one body density matrix on the |MO| basis computed with the wave function
|
||||
|
||||
|
||||
.. option:: data_one_body_beta_dm_mo
|
||||
.. option:: data_one_e_dm_beta_mo
|
||||
|
||||
Beta one body density matrix on the MO basis computed with the wave function
|
||||
Beta one body density matrix on the |MO| basis computed with the wave function
|
||||
|
||||
|
@ -755,6 +755,20 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: remove_duplicates_in_selection_buffer
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine remove_duplicates_in_selection_buffer(b)
|
||||
|
||||
File: :file:`selection_buffer.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: run_cipsi
|
||||
|
||||
.. code:: text
|
||||
|
@ -449,7 +449,7 @@ Subroutines / functions
|
||||
|
||||
subroutine H_S2_u_0_nstates_openmp_work_1(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||
|
||||
File: :file:`u0_h_u0.irp.f_template_468`
|
||||
File: :file:`u0_h_u0.irp.f_template_477`
|
||||
|
||||
Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle`
|
||||
|
||||
@ -465,7 +465,7 @@ Subroutines / functions
|
||||
|
||||
subroutine H_S2_u_0_nstates_openmp_work_2(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||
|
||||
File: :file:`u0_h_u0.irp.f_template_468`
|
||||
File: :file:`u0_h_u0.irp.f_template_477`
|
||||
|
||||
Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle`
|
||||
|
||||
@ -481,7 +481,7 @@ Subroutines / functions
|
||||
|
||||
subroutine H_S2_u_0_nstates_openmp_work_3(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||
|
||||
File: :file:`u0_h_u0.irp.f_template_468`
|
||||
File: :file:`u0_h_u0.irp.f_template_477`
|
||||
|
||||
Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle`
|
||||
|
||||
@ -497,7 +497,7 @@ Subroutines / functions
|
||||
|
||||
subroutine H_S2_u_0_nstates_openmp_work_4(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||
|
||||
File: :file:`u0_h_u0.irp.f_template_468`
|
||||
File: :file:`u0_h_u0.irp.f_template_477`
|
||||
|
||||
Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle`
|
||||
|
||||
@ -513,7 +513,7 @@ Subroutines / functions
|
||||
|
||||
subroutine H_S2_u_0_nstates_openmp_work_N_int(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||
|
||||
File: :file:`u0_h_u0.irp.f_template_468`
|
||||
File: :file:`u0_h_u0.irp.f_template_477`
|
||||
|
||||
Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle`
|
||||
|
||||
|
@ -39,25 +39,53 @@ Providers
|
||||
---------
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_alpha_ao_for_dft
|
||||
.. c:var:: one_body_dm_mo_alpha_one_det
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_mo_alpha_one_det (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_mo_beta_one_det (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
one body density matrix on the AO basis based on one_body_dm_mo_alpha_for_dft
|
||||
One body density matrix on the |MO| basis for a single determinant
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_average_mo_for_dft
|
||||
.. c:var:: one_body_dm_mo_beta_one_det
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_average_mo_for_dft (mo_num,mo_num)
|
||||
double precision, allocatable :: one_body_dm_mo_alpha_one_det (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_mo_beta_one_det (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
One body density matrix on the |MO| basis for a single determinant
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_alpha_ao_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_e_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_average_mo_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_e_dm_average_mo_for_dft (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
@ -66,25 +94,25 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_beta_ao_for_dft
|
||||
.. c:var:: one_e_dm_beta_ao_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_alpha_ao_for_dft (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_ao_for_dft (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
one body density matrix on the AO basis based on one_body_dm_mo_alpha_for_dft
|
||||
one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_alpha_for_dft
|
||||
.. c:var:: one_e_dm_mo_alpha_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_alpha_for_dft (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_alpha_for_dft (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
@ -93,11 +121,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_beta_for_dft
|
||||
.. c:var:: one_e_dm_mo_beta_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_beta_for_dft (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_beta_for_dft (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
@ -106,11 +134,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_for_dft
|
||||
.. c:var:: one_e_dm_mo_for_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_for_dft (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_for_dft (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_for_dft.irp.f`
|
||||
|
||||
|
@ -451,7 +451,7 @@ Providers
|
||||
integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size)
|
||||
integer :: n_det_alpha_unique
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_141`
|
||||
File: :file:`spindeterminants.irp.f_template_143`
|
||||
|
||||
Unique :math:`\alpha` determinants
|
||||
|
||||
@ -465,7 +465,7 @@ Providers
|
||||
integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size)
|
||||
integer :: n_det_beta_unique
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_141`
|
||||
File: :file:`spindeterminants.irp.f_template_143`
|
||||
|
||||
Unique :math:`\beta` determinants
|
||||
|
||||
@ -550,12 +550,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_ao_alpha
|
||||
.. c:var:: one_e_dm_ao_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: one_body_dm_ao_beta (ao_num,ao_num)
|
||||
double precision, allocatable :: one_e_dm_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: one_e_dm_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -564,12 +564,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_ao_beta
|
||||
.. c:var:: one_e_dm_ao_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: one_body_dm_ao_beta (ao_num,ao_num)
|
||||
double precision, allocatable :: one_e_dm_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: one_e_dm_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -578,11 +578,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_dagger_mo_spin_index
|
||||
.. c:var:: one_e_dm_dagger_mo_spin_index
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_dagger_mo_spin_index (mo_num,mo_num,N_states,2)
|
||||
double precision, allocatable :: one_e_dm_dagger_mo_spin_index (mo_num,mo_num,N_states,2)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -591,11 +591,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo
|
||||
.. c:var:: one_e_dm_mo
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_dm_mo (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -604,12 +604,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_alpha
|
||||
.. c:var:: one_e_dm_mo_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_alpha (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_mo_beta (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_alpha (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_beta (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -618,12 +618,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_alpha_average
|
||||
.. c:var:: one_e_dm_mo_alpha_average
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_alpha_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_body_dm_mo_beta_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_dm_mo_alpha_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_dm_mo_beta_average (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -632,12 +632,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_beta
|
||||
.. c:var:: one_e_dm_mo_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_alpha (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_body_dm_mo_beta (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_alpha (mo_num,mo_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_beta (mo_num,mo_num,N_states)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -646,12 +646,12 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_beta_average
|
||||
.. c:var:: one_e_dm_mo_beta_average
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_alpha_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_body_dm_mo_beta_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_dm_mo_alpha_average (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_dm_mo_beta_average (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -660,11 +660,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_diff
|
||||
.. c:var:: one_e_dm_mo_diff
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_diff (mo_num,mo_num,2:N_states)
|
||||
double precision, allocatable :: one_e_dm_mo_diff (mo_num,mo_num,2:N_states)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -673,11 +673,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_mo_spin_index
|
||||
.. c:var:: one_e_dm_mo_spin_index
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_mo_spin_index (mo_num,mo_num,N_states,2)
|
||||
double precision, allocatable :: one_e_dm_mo_spin_index (mo_num,mo_num,N_states,2)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -686,39 +686,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_single_double_dm_mo_alpha
|
||||
.. c:var:: one_e_spin_density_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_single_double_dm_mo_alpha (mo_num,mo_num)
|
||||
double precision, allocatable :: one_body_single_double_dm_mo_beta (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_single_double_dm_mo_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_single_double_dm_mo_alpha (mo_num,mo_num)
|
||||
double precision, allocatable :: one_body_single_double_dm_mo_beta (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_spin_density_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_spin_density_ao (ao_num,ao_num)
|
||||
double precision, allocatable :: one_e_spin_density_ao (ao_num,ao_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -727,11 +699,11 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_spin_density_mo
|
||||
.. c:var:: one_e_spin_density_mo
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_spin_density_mo (mo_num,mo_num)
|
||||
double precision, allocatable :: one_e_spin_density_mo (mo_num,mo_num)
|
||||
|
||||
File: :file:`density_matrix.irp.f`
|
||||
|
||||
@ -1215,7 +1187,7 @@ Providers
|
||||
integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size)
|
||||
integer :: n_det_alpha_unique
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_141`
|
||||
File: :file:`spindeterminants.irp.f_template_143`
|
||||
|
||||
Unique :math:`\alpha` determinants
|
||||
|
||||
@ -1242,7 +1214,7 @@ Providers
|
||||
integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size)
|
||||
integer :: n_det_beta_unique
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_141`
|
||||
File: :file:`spindeterminants.irp.f_template_143`
|
||||
|
||||
Unique :math:`\beta` determinants
|
||||
|
||||
@ -1335,7 +1307,7 @@ Providers
|
||||
|
||||
psi_energy_h_core = :math:`\langle \Psi | h_{core} |\Psi \rangle`
|
||||
|
||||
computed using the :c:data:`one_body_dm_mo_alpha` + :c:data:`one_body_dm_mo_beta` and :c:data:`mo_one_e_integrals`
|
||||
computed using the :c:data:`one_e_dm_mo_alpha` + :c:data:`one_e_dm_mo_beta` and :c:data:`mo_one_e_integrals`
|
||||
|
||||
|
||||
|
||||
@ -2337,7 +2309,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_doubles_2(buffer, idx, spindet, size_buffer, doubles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2355,7 +2327,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_doubles_3(buffer, idx, spindet, size_buffer, doubles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2373,7 +2345,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_doubles_4(buffer, idx, spindet, size_buffer, doubles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2391,7 +2363,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_doubles_N_int(buffer, idx, spindet, size_buffer, doubles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2445,7 +2417,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_2(buffer, idx, spindet, size_buffer, singles, n_singles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2463,7 +2435,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_3(buffer, idx, spindet, size_buffer, singles, n_singles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2481,7 +2453,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_4(buffer, idx, spindet, size_buffer, singles, n_singles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2539,7 +2511,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_and_doubles_2(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2559,7 +2531,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_and_doubles_3(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2579,7 +2551,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_and_doubles_4(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2599,7 +2571,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_and_doubles_N_int(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -2619,7 +2591,7 @@ Subroutines / functions
|
||||
|
||||
subroutine get_all_spin_singles_N_int(buffer, idx, spindet, size_buffer, singles, n_singles)
|
||||
|
||||
File: :file:`spindeterminants.irp.f_template_1218`
|
||||
File: :file:`spindeterminants.irp.f_template_1221`
|
||||
|
||||
|
||||
|
||||
@ -3273,6 +3245,20 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: pouet
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine pouet
|
||||
|
||||
File: :file:`test.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: pull_pt2
|
||||
|
||||
.. code:: text
|
||||
|
@ -16,7 +16,7 @@ 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.
|
||||
* `one_e_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points.
|
||||
|
||||
|
||||
|
||||
@ -195,72 +195,26 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_alpha_at_r
|
||||
.. c:var:: one_e_dm_alpha_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_body_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_body_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
|
||||
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_dm_beta_at_r
|
||||
.. c:var:: one_e_dm_alpha_in_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_body_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_body_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_body_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_grad_2_dm_alpha_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_body_grad_2_dm_beta_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_dm_alpha_in_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_alpha_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_dm_beta_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_alpha_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
@ -269,44 +223,58 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_dm_and_grad_alpha_in_r
|
||||
.. c:var:: one_e_dm_and_grad_alpha_in_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_dm_and_grad_beta_in_r
|
||||
.. c:var:: one_e_dm_and_grad_beta_in_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_body_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_dm_beta_in_r
|
||||
.. c:var:: one_e_dm_beta_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_dm_alpha_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_dm_beta_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate) where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_dm_beta_in_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_e_dm_alpha_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
double precision, allocatable :: one_e_dm_beta_in_r (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
@ -315,6 +283,38 @@ Providers
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_grad_2_dm_alpha_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_e_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_grad_2_dm_beta_at_r
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: one_e_dm_and_grad_alpha_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_dm_and_grad_beta_in_r (4,n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_alpha_at_r (n_points_final_grid,N_states)
|
||||
double precision, allocatable :: one_e_grad_2_dm_beta_at_r (n_points_final_grid,N_states)
|
||||
|
||||
File: :file:`dm_in_r.irp.f`
|
||||
|
||||
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate) one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate) one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 where r_i is the ith point of the grid and istate is the state number
|
||||
|
||||
|
||||
|
||||
|
||||
Subroutines / functions
|
||||
-----------------------
|
||||
|
||||
|
@ -1090,14 +1090,12 @@ Providers
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`sr_pot_ao.irp.f`
|
||||
|
||||
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
|
||||
short range correlation alpha/beta potentials with LDA functional on the |AO| basis
|
||||
|
||||
|
||||
|
||||
@ -1122,14 +1120,12 @@ Providers
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`sr_pot_ao.irp.f`
|
||||
|
||||
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
|
||||
short range correlation alpha/beta potentials with LDA functional on the |AO| basis
|
||||
|
||||
|
||||
|
||||
@ -1156,12 +1152,10 @@ Providers
|
||||
|
||||
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`sr_pot_ao.irp.f`
|
||||
|
||||
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
|
||||
short range exchange alpha/beta potentials with LDA functional on the |AO| basis
|
||||
|
||||
|
||||
|
||||
@ -1188,12 +1182,10 @@ Providers
|
||||
|
||||
double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states)
|
||||
double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states)
|
||||
|
||||
File: :file:`sr_pot_ao.irp.f`
|
||||
|
||||
short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis
|
||||
short range exchange alpha/beta potentials with LDA functional on the |AO| basis
|
||||
|
||||
|
||||
|
||||
@ -1352,7 +1344,7 @@ Providers
|
||||
|
||||
File: :file:`one_e_energy_dft.irp.f`
|
||||
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_body_dm_mo_beta_for_dft+one_body_dm_mo_alpha_for_dft
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
|
||||
|
||||
|
||||
|
||||
@ -1367,7 +1359,7 @@ Providers
|
||||
|
||||
File: :file:`one_e_energy_dft.irp.f`
|
||||
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_body_dm_mo_beta_for_dft+one_body_dm_mo_alpha_for_dft
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
|
||||
|
||||
|
||||
|
||||
@ -1382,7 +1374,7 @@ Providers
|
||||
|
||||
File: :file:`one_e_energy_dft.irp.f`
|
||||
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_body_dm_mo_beta_for_dft+one_body_dm_mo_alpha_for_dft
|
||||
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
|
||||
|
||||
|
||||
|
||||
|
@ -36,6 +36,23 @@ EZFIO parameters
|
||||
|
||||
|
||||
|
||||
Providers
|
||||
---------
|
||||
|
||||
|
||||
.. c:var:: nthreads_pt2
|
||||
|
||||
.. code:: text
|
||||
|
||||
integer :: nthreads_pt2
|
||||
|
||||
File: :file:`environment.irp.f`
|
||||
|
||||
Number of threads for Davidson
|
||||
|
||||
|
||||
|
||||
|
||||
Subroutines / functions
|
||||
-----------------------
|
||||
|
||||
@ -69,6 +86,20 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: run
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine run
|
||||
|
||||
File: :file:`pt2.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: save_energy
|
||||
|
||||
.. code:: text
|
||||
|
@ -63,6 +63,79 @@ Providers
|
||||
---------
|
||||
|
||||
|
||||
.. c:var:: ao_two_e_integral_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_hf.irp.f`
|
||||
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_two_e_integral_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_hf.irp.f`
|
||||
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: extra_e_contrib_density
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: extra_e_contrib_density
|
||||
|
||||
File: :file:`hf_energy.irp.f`
|
||||
|
||||
Extra contribution to the SCF energy coming from the density.
|
||||
|
||||
For a Hartree-Fock calculation: extra_e_contrib_density = 0
|
||||
|
||||
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_ao_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_hf.irp.f`
|
||||
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_ao_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_hf.irp.f`
|
||||
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: hf_energy
|
||||
|
||||
.. code:: text
|
||||
@ -113,6 +186,20 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: create_guess
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine create_guess
|
||||
|
||||
File: :file:`scf.irp.f`
|
||||
|
||||
Create a MO guess if no MOs are present in the EZFIO directory
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: scf
|
||||
|
||||
.. code:: text
|
||||
|
@ -91,7 +91,7 @@ Subroutines / functions
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine print_summary(e_,pt2_,error_,variance_,norm_,n_det_,n_occ_pattern_)
|
||||
subroutine print_summary(e_,pt2_,error_,variance_,norm_,n_det_,n_occ_pattern_,n_st)
|
||||
|
||||
File: :file:`print_summary.irp.f`
|
||||
|
||||
|
@ -52,236 +52,13 @@ Providers
|
||||
---------
|
||||
|
||||
|
||||
.. c:var:: ao_potential_alpha_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_potential_beta_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_two_e_integral_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Alpha Fock matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_two_e_integral_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Alpha Fock matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: e_correlation_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: e_correlation_dft
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: e_exchange_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: e_exchange_dft
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: extra_e_contrib_density
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: extra_e_contrib_density
|
||||
|
||||
File: :file:`ks_enery.irp.f`
|
||||
|
||||
Extra contribution to the SCF energy coming from the density.
|
||||
|
||||
For a Hartree-Fock calculation: extra_e_contrib_density = 0
|
||||
|
||||
For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - 1/2 trace of the V_xc potential
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_alpha_no_xc_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Mono electronic an Coulomb matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_ao_alpha
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Alpha Fock matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_ao_beta
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Alpha Fock matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_beta_no_xc_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_ks.irp.f`
|
||||
|
||||
Mono electronic an Coulomb matrix in ao basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`ks_enery.irp.f`
|
||||
|
||||
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ks_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`ks_enery.irp.f`
|
||||
|
||||
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_electron_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`ks_enery.irp.f`
|
||||
|
||||
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: trace_potential_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`ks_enery.irp.f`
|
||||
|
||||
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: two_electron_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
@ -297,48 +74,6 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: check_coherence_functional
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine check_coherence_functional
|
||||
|
||||
File: :file:`ks_scf.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: create_guess
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine create_guess
|
||||
|
||||
File: :file:`ks_scf.irp.f`
|
||||
|
||||
Create a MO guess if no MOs are present in the EZFIO directory
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: run
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine run
|
||||
|
||||
File: :file:`ks_scf.irp.f`
|
||||
|
||||
Run SCF calculation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: srs_ks_cf
|
||||
|
||||
.. code:: text
|
||||
|
@ -60,13 +60,163 @@ Providers
|
||||
---------
|
||||
|
||||
|
||||
.. c:var:: ao_potential_alpha_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: ao_potential_beta_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
|
||||
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: e_correlation_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: e_correlation_dft
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: e_exchange_dft
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: e_exchange_dft
|
||||
|
||||
File: :file:`pot_functionals.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_alpha_no_xc_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_rs_ks.irp.f`
|
||||
|
||||
Mono electronic an Coulomb matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_beta_no_xc_ao
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num)
|
||||
double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num)
|
||||
|
||||
File: :file:`fock_matrix_rs_ks.irp.f`
|
||||
|
||||
Mono electronic an Coulomb matrix in AO basis set
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: fock_matrix_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: rs_ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`rs_ks_energy.irp.f`
|
||||
|
||||
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: one_e_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: rs_ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`rs_ks_energy.irp.f`
|
||||
|
||||
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: rs_ks_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: rs_ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`rs_ks_energy.irp.f`
|
||||
|
||||
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: trace_potential_xc
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: rs_ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
File: :file:`rs_ks_energy.irp.f`
|
||||
|
||||
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:var:: two_electron_energy
|
||||
|
||||
.. code:: text
|
||||
|
||||
double precision :: rs_ks_energy
|
||||
double precision :: two_electron_energy
|
||||
double precision :: one_e_energy
|
||||
double precision :: fock_matrix_energy
|
||||
double precision :: trace_potential_xc
|
||||
|
||||
@ -82,6 +232,20 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: check_coherence_functional
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine check_coherence_functional
|
||||
|
||||
File: :file:`rs_ks_scf.irp.f`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: rs_ks_scf
|
||||
|
||||
.. code:: text
|
||||
|
@ -329,15 +329,15 @@ Subroutines / functions
|
||||
|
||||
|
||||
|
||||
.. c:function:: reorder_active_orb
|
||||
.. c:function:: reorder_core_orb
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine reorder_active_orb
|
||||
subroutine reorder_core_orb
|
||||
|
||||
File: :file:`track_orb.irp.f`
|
||||
|
||||
routines that takes the current :c:data:`mo_coef` and reorder the active orbitals (see :c:data:`list_act` and :c:data:`n_act_orb`) according to the overlap with :c:data:`mo_coef_begin_iteration`
|
||||
routines that takes the current :c:data:`mo_coef` and reorder the core orbitals (see :c:data:`list_core` and :c:data:`n_core_orb`) according to the overlap with :c:data:`mo_coef_begin_iteration`
|
||||
|
||||
|
||||
|
||||
|
@ -268,7 +268,21 @@ Subroutines / functions
|
||||
|
||||
Transform A from the MO basis to the AO basis
|
||||
|
||||
(S.C).A_mo.(S.C)t
|
||||
:math:`(S.C).A_{mo}.(S.C)^\dagger`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: mo_to_ao_no_overlap
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine mo_to_ao_no_overlap(A_mo,LDA_mo,A_ao,LDA_ao)
|
||||
|
||||
File: :file:`ao_to_mo.irp.f`
|
||||
|
||||
:math:`C.A_{mo}.C^\dagger`
|
||||
|
||||
|
||||
|
||||
|
@ -97,9 +97,9 @@ EZFIO parameters
|
||||
Calculated HF energy
|
||||
|
||||
|
||||
.. option:: no_oa_or_av_opt
|
||||
.. option:: frozen_orb_scf
|
||||
|
||||
If true, leave the active orbitals untouched in the SCF procedure
|
||||
If true, leave untouched all the orbitals defined as core and optimize all the orbitals defined as active with qp_set_mo_class
|
||||
|
||||
Default: False
|
||||
|
||||
|
@ -145,7 +145,25 @@ Subroutines / functions
|
||||
|
||||
programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
|
||||
|
||||
Then, the global variable data_one_body_alpha_dm_mo and data_one_body_beta_dm_mo will automatically read the density in a further calculation.
|
||||
Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read the density in a further calculation.
|
||||
|
||||
This can be used to perform dampin on the density in RS-DFT calculation (see the density_for_dft module).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:function:: save_one_e_dm
|
||||
|
||||
.. code:: text
|
||||
|
||||
subroutine save_one_e_dm
|
||||
|
||||
File: :file:`save_one_e_dm.irp.f`
|
||||
|
||||
programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
|
||||
|
||||
Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read the density in a further calculation.
|
||||
|
||||
This can be used to perform dampin on the density in RS-DFT calculation (see the density_for_dft module).
|
||||
|
||||
|
@ -150,8 +150,10 @@ Index of Providers
|
||||
* :c:data:`damping_for_rs_dft`
|
||||
* :c:data:`data_energy_proj`
|
||||
* :c:data:`data_energy_var`
|
||||
* :c:data:`data_one_body_alpha_dm_mo`
|
||||
* :c:data:`data_one_body_beta_dm_mo`
|
||||
* :c:data:`data_one_body_dm_alpha_mo`
|
||||
* :c:data:`data_one_body_dm_beta_mo`
|
||||
* :c:data:`data_one_e_dm_alpha_mo`
|
||||
* :c:data:`data_one_e_dm_beta_mo`
|
||||
* :c:data:`davidson_criterion`
|
||||
* :c:data:`davidson_sze_max`
|
||||
* :c:data:`degree_max_generators`
|
||||
@ -231,6 +233,7 @@ Index of Providers
|
||||
* :c:data:`fock_wee_closed_shell`
|
||||
* :c:data:`fps_spf_matrix_ao`
|
||||
* :c:data:`fps_spf_matrix_mo`
|
||||
* :c:data:`frozen_orb_scf`
|
||||
* :c:data:`full_ijkl_bitmask`
|
||||
* :c:data:`full_ijkl_bitmask_4`
|
||||
* :c:data:`gauleg_t2`
|
||||
@ -433,11 +436,11 @@ Index of Providers
|
||||
* :c:data:`n_virt_orb`
|
||||
* :c:data:`n_virt_orb_allocate`
|
||||
* :c:data:`no_ivvv_integrals`
|
||||
* :c:data:`no_oa_or_av_opt`
|
||||
* :c:data:`no_vvv_integrals`
|
||||
* :c:data:`no_vvvv_integrals`
|
||||
* :c:data:`nproc`
|
||||
* :c:data:`nthreads_davidson`
|
||||
* :c:data:`nthreads_pt2`
|
||||
* :c:data:`nucl_aos`
|
||||
* :c:data:`nucl_aos_transposed`
|
||||
* :c:data:`nucl_charge`
|
||||
@ -456,35 +459,35 @@ Index of Providers
|
||||
* :c:data:`nucl_num`
|
||||
* :c:data:`nucl_num_shell_aos`
|
||||
* :c:data:`nuclear_repulsion`
|
||||
* :c:data:`one_body_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_body_dm_alpha_at_r`
|
||||
* :c:data:`one_body_dm_ao_alpha`
|
||||
* :c:data:`one_body_dm_ao_beta`
|
||||
* :c:data:`one_body_dm_average_mo_for_dft`
|
||||
* :c:data:`one_body_dm_beta_ao_for_dft`
|
||||
* :c:data:`one_body_dm_beta_at_r`
|
||||
* :c:data:`one_body_dm_dagger_mo_spin_index`
|
||||
* :c:data:`one_body_dm_mo`
|
||||
* :c:data:`one_body_dm_mo_alpha`
|
||||
* :c:data:`one_body_dm_mo_alpha_average`
|
||||
* :c:data:`one_body_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_body_dm_mo_beta`
|
||||
* :c:data:`one_body_dm_mo_beta_average`
|
||||
* :c:data:`one_body_dm_mo_beta_for_dft`
|
||||
* :c:data:`one_body_dm_mo_diff`
|
||||
* :c:data:`one_body_dm_mo_for_dft`
|
||||
* :c:data:`one_body_dm_mo_spin_index`
|
||||
* :c:data:`one_body_grad_2_dm_alpha_at_r`
|
||||
* :c:data:`one_body_grad_2_dm_beta_at_r`
|
||||
* :c:data:`one_body_single_double_dm_mo_alpha`
|
||||
* :c:data:`one_body_single_double_dm_mo_beta`
|
||||
* :c:data:`one_body_spin_density_ao`
|
||||
* :c:data:`one_body_spin_density_mo`
|
||||
* :c:data:`one_dm_alpha_in_r`
|
||||
* :c:data:`one_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_dm_and_grad_beta_in_r`
|
||||
* :c:data:`one_dm_beta_in_r`
|
||||
* :c:data:`one_electron_energy`
|
||||
* :c:data:`one_body_dm_mo_alpha_one_det`
|
||||
* :c:data:`one_body_dm_mo_beta_one_det`
|
||||
* :c:data:`one_e_dm_alpha_ao_for_dft`
|
||||
* :c:data:`one_e_dm_alpha_at_r`
|
||||
* :c:data:`one_e_dm_alpha_in_r`
|
||||
* :c:data:`one_e_dm_and_grad_alpha_in_r`
|
||||
* :c:data:`one_e_dm_and_grad_beta_in_r`
|
||||
* :c:data:`one_e_dm_ao_alpha`
|
||||
* :c:data:`one_e_dm_ao_beta`
|
||||
* :c:data:`one_e_dm_average_mo_for_dft`
|
||||
* :c:data:`one_e_dm_beta_ao_for_dft`
|
||||
* :c:data:`one_e_dm_beta_at_r`
|
||||
* :c:data:`one_e_dm_beta_in_r`
|
||||
* :c:data:`one_e_dm_dagger_mo_spin_index`
|
||||
* :c:data:`one_e_dm_mo`
|
||||
* :c:data:`one_e_dm_mo_alpha`
|
||||
* :c:data:`one_e_dm_mo_alpha_average`
|
||||
* :c:data:`one_e_dm_mo_alpha_for_dft`
|
||||
* :c:data:`one_e_dm_mo_beta`
|
||||
* :c:data:`one_e_dm_mo_beta_average`
|
||||
* :c:data:`one_e_dm_mo_beta_for_dft`
|
||||
* :c:data:`one_e_dm_mo_diff`
|
||||
* :c:data:`one_e_dm_mo_for_dft`
|
||||
* :c:data:`one_e_dm_mo_spin_index`
|
||||
* :c:data:`one_e_energy`
|
||||
* :c:data:`one_e_grad_2_dm_alpha_at_r`
|
||||
* :c:data:`one_e_grad_2_dm_beta_at_r`
|
||||
* :c:data:`one_e_spin_density_ao`
|
||||
* :c:data:`one_e_spin_density_mo`
|
||||
* :c:data:`only_expected_s2`
|
||||
* :c:data:`output_cpu_time_0`
|
||||
* :c:data:`output_wall_time_0`
|
||||
@ -1110,6 +1113,7 @@ Index of Subroutines/Functions
|
||||
* :c:func:`mo_as_svd_vectors_of_mo_matrix`
|
||||
* :c:func:`mo_as_svd_vectors_of_mo_matrix_eig`
|
||||
* :c:func:`mo_to_ao`
|
||||
* :c:func:`mo_to_ao_no_overlap`
|
||||
* :c:func:`mo_two_e_integral`
|
||||
* :c:func:`mo_two_e_integral_erf`
|
||||
* :c:func:`mo_two_e_integrals_erf_index`
|
||||
@ -1169,6 +1173,7 @@ Index of Subroutines/Functions
|
||||
* :c:func:`perturb_buffer_moller_plesset`
|
||||
* :c:func:`perturb_buffer_moller_plesset_general`
|
||||
* :c:func:`perturb_buffer_qdpt`
|
||||
* :c:func:`pouet`
|
||||
* :c:func:`primitive_value`
|
||||
* :c:func:`print_det`
|
||||
* :c:func:`print_e_conv`
|
||||
@ -1213,8 +1218,9 @@ Index of Subroutines/Functions
|
||||
* :c:func:`read_dets`
|
||||
* :c:func:`recentered_poly2`
|
||||
* :c:func:`remove_duplicates_in_psi_det`
|
||||
* :c:func:`remove_duplicates_in_selection_buffer`
|
||||
* :c:func:`remove_small_contributions`
|
||||
* :c:func:`reorder_active_orb`
|
||||
* :c:func:`reorder_core_orb`
|
||||
* :c:func:`repeat_all_e_corr`
|
||||
* :c:func:`reset_zmq_addresses`
|
||||
* :c:func:`resident_memory`
|
||||
@ -1252,6 +1258,7 @@ Index of Subroutines/Functions
|
||||
* :c:func:`save_natorb`
|
||||
* :c:func:`save_natural_mos`
|
||||
* :c:func:`save_one_body_dm`
|
||||
* :c:func:`save_one_e_dm`
|
||||
* :c:func:`save_ortho_mos`
|
||||
* :c:func:`save_ref_determinant`
|
||||
* :c:func:`save_wavefunction`
|
||||
|
@ -90,6 +90,8 @@ def main(arguments):
|
||||
f.write(f_new)
|
||||
|
||||
print "Done"
|
||||
with open( os.path.join(QP_ROOT,"REPLACE"), 'a') as f:
|
||||
print >>f, "qp_name "+" ".join(sys.argv[1:])
|
||||
|
||||
|
||||
|
||||
|
@ -10,16 +10,16 @@ doc: Projected energy computed with the wave function
|
||||
interface: ezfio, provider
|
||||
size: (determinants.n_states)
|
||||
|
||||
[data_one_body_alpha_dm_mo]
|
||||
[data_one_e_dm_alpha_mo]
|
||||
interface: ezfio, provider
|
||||
doc: Alpha one body density matrix on the MO basis computed with the wave function
|
||||
doc: Alpha one body density matrix on the |MO| basis computed with the wave function
|
||||
type: double precision
|
||||
size: (mo_basis.mo_num,mo_basis.mo_num,determinants.n_states)
|
||||
|
||||
|
||||
[data_one_body_beta_dm_mo]
|
||||
[data_one_e_dm_beta_mo]
|
||||
interface: ezfio, provider
|
||||
doc: Beta one body density matrix on the MO basis computed with the wave function
|
||||
doc: Beta one body density matrix on the |MO| basis computed with the wave function
|
||||
type: double precision
|
||||
size: (mo_basis.mo_num,mo_basis.mo_num,determinants.n_states)
|
||||
|
||||
|
@ -12,7 +12,7 @@ on the density in order to speed up convergence.
|
||||
|
||||
The main providers of that module are:
|
||||
|
||||
* `data_one_body_alpha_dm_mo` and `data_one_body_beta_dm_mo` which are the
|
||||
* `data_one_e_dm_alpha_mo` and `data_one_e_dm_beta_mo` which are the
|
||||
one-body alpha and beta densities which are necessary read from the EZFIO
|
||||
folder.
|
||||
|
||||
|
@ -1,78 +1,78 @@
|
||||
BEGIN_PROVIDER [double precision, one_body_dm_mo_alpha_for_dft, (mo_num,mo_num, N_states)]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_mo_alpha_for_dft, (mo_num,mo_num, N_states)]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! density matrix for alpha electrons in the MO basis used for all DFT calculations based on the density
|
||||
END_DOC
|
||||
double precision :: delta_alpha(mo_num,mo_num,N_states)
|
||||
if(density_for_dft .EQ. "damping_rs_dft")then
|
||||
delta_alpha = one_body_dm_mo_alpha - data_one_body_alpha_dm_mo
|
||||
one_body_dm_mo_alpha_for_dft = data_one_body_alpha_dm_mo + damping_for_rs_dft * delta_alpha
|
||||
delta_alpha = one_e_dm_mo_alpha - data_one_e_dm_alpha_mo
|
||||
one_e_dm_mo_alpha_for_dft = data_one_e_dm_alpha_mo + damping_for_rs_dft * delta_alpha
|
||||
else if (density_for_dft .EQ. "input_density")then
|
||||
one_body_dm_mo_alpha_for_dft = data_one_body_alpha_dm_mo
|
||||
one_e_dm_mo_alpha_for_dft = data_one_e_dm_alpha_mo
|
||||
else if (density_for_dft .EQ. "WFT")then
|
||||
provide mo_coef
|
||||
one_body_dm_mo_alpha_for_dft = one_body_dm_mo_alpha
|
||||
one_e_dm_mo_alpha_for_dft = one_e_dm_mo_alpha
|
||||
else if (density_for_dft .EQ. "KS")then
|
||||
provide mo_coef
|
||||
one_body_dm_mo_alpha_for_dft = one_body_dm_mo_alpha_one_det
|
||||
one_e_dm_mo_alpha_for_dft = one_body_dm_mo_alpha_one_det
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_body_dm_mo_beta_for_dft, (mo_num,mo_num, N_states)]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_mo_beta_for_dft, (mo_num,mo_num, N_states)]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! density matrix for beta electrons in the MO basis used for all DFT calculations based on the density
|
||||
END_DOC
|
||||
double precision :: delta_beta(mo_num,mo_num,N_states)
|
||||
if(density_for_dft .EQ. "damping_rs_dft")then
|
||||
delta_beta = one_body_dm_mo_beta - data_one_body_beta_dm_mo
|
||||
one_body_dm_mo_beta_for_dft = data_one_body_beta_dm_mo + damping_for_rs_dft * delta_beta
|
||||
delta_beta = one_e_dm_mo_beta - data_one_e_dm_beta_mo
|
||||
one_e_dm_mo_beta_for_dft = data_one_e_dm_beta_mo + damping_for_rs_dft * delta_beta
|
||||
else if (density_for_dft .EQ. "input_density")then
|
||||
one_body_dm_mo_beta_for_dft = data_one_body_beta_dm_mo
|
||||
one_e_dm_mo_beta_for_dft = data_one_e_dm_beta_mo
|
||||
else if (density_for_dft .EQ. "WFT")then
|
||||
provide mo_coef
|
||||
one_body_dm_mo_beta_for_dft = one_body_dm_mo_beta
|
||||
one_e_dm_mo_beta_for_dft = one_e_dm_mo_beta
|
||||
else if (density_for_dft .EQ. "KS")then
|
||||
provide mo_coef
|
||||
one_body_dm_mo_beta_for_dft = one_body_dm_mo_beta_one_det
|
||||
one_e_dm_mo_beta_for_dft = one_body_dm_mo_beta_one_det
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_body_dm_mo_for_dft, (mo_num,mo_num, N_states)]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_mo_for_dft, (mo_num,mo_num, N_states)]
|
||||
implicit none
|
||||
one_body_dm_mo_for_dft = one_body_dm_mo_beta_for_dft + one_body_dm_mo_alpha_for_dft
|
||||
one_e_dm_mo_for_dft = one_e_dm_mo_beta_for_dft + one_e_dm_mo_alpha_for_dft
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_body_dm_average_mo_for_dft, (mo_num,mo_num)]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_average_mo_for_dft, (mo_num,mo_num)]
|
||||
implicit none
|
||||
integer :: i
|
||||
one_body_dm_average_mo_for_dft = 0.d0
|
||||
one_e_dm_average_mo_for_dft = 0.d0
|
||||
do i = 1, N_states
|
||||
one_body_dm_average_mo_for_dft(:,:) += one_body_dm_mo_for_dft(:,:,i) * state_average_weight(i)
|
||||
one_e_dm_average_mo_for_dft(:,:) += one_e_dm_mo_for_dft(:,:,i) * state_average_weight(i)
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_alpha_ao_for_dft, (ao_num,ao_num,N_states) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_body_dm_beta_ao_for_dft, (ao_num,ao_num,N_states) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_alpha_ao_for_dft, (ao_num,ao_num,N_states) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_dm_beta_ao_for_dft, (ao_num,ao_num,N_states) ]
|
||||
BEGIN_DOC
|
||||
! one body density matrix on the AO basis based on one_body_dm_mo_alpha_for_dft
|
||||
! one body density matrix on the AO basis based on one_e_dm_mo_alpha_for_dft
|
||||
END_DOC
|
||||
implicit none
|
||||
integer :: istate
|
||||
double precision :: mo_alpha,mo_beta
|
||||
|
||||
one_body_dm_alpha_ao_for_dft = 0.d0
|
||||
one_body_dm_beta_ao_for_dft = 0.d0
|
||||
one_e_dm_alpha_ao_for_dft = 0.d0
|
||||
one_e_dm_beta_ao_for_dft = 0.d0
|
||||
do istate = 1, N_states
|
||||
call mo_to_ao_no_overlap( one_body_dm_mo_alpha_for_dft(1,1,istate), &
|
||||
size(one_body_dm_mo_alpha_for_dft,1), &
|
||||
one_body_dm_alpha_ao_for_dft(1,1,istate), &
|
||||
size(one_body_dm_alpha_ao_for_dft,1) )
|
||||
call mo_to_ao_no_overlap( one_body_dm_mo_beta_for_dft(1,1,istate), &
|
||||
size(one_body_dm_mo_beta_for_dft,1), &
|
||||
one_body_dm_beta_ao_for_dft(1,1,istate), &
|
||||
size(one_body_dm_beta_ao_for_dft,1) )
|
||||
call mo_to_ao_no_overlap( one_e_dm_mo_alpha_for_dft(1,1,istate), &
|
||||
size(one_e_dm_mo_alpha_for_dft,1), &
|
||||
one_e_dm_alpha_ao_for_dft(1,1,istate), &
|
||||
size(one_e_dm_alpha_ao_for_dft,1) )
|
||||
call mo_to_ao_no_overlap( one_e_dm_mo_beta_for_dft(1,1,istate), &
|
||||
size(one_e_dm_mo_beta_for_dft,1), &
|
||||
one_e_dm_beta_ao_for_dft(1,1,istate), &
|
||||
size(one_e_dm_beta_ao_for_dft,1) )
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
@ -1,19 +1,19 @@
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_mo_alpha_average, (mo_num,mo_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_body_dm_mo_beta_average, (mo_num,mo_num) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_mo_alpha_average, (mo_num,mo_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_dm_mo_beta_average, (mo_num,mo_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! $\alpha$ and $\beta$ one-body density matrix for each state
|
||||
END_DOC
|
||||
integer :: i
|
||||
one_body_dm_mo_alpha_average = 0.d0
|
||||
one_body_dm_mo_beta_average = 0.d0
|
||||
one_e_dm_mo_alpha_average = 0.d0
|
||||
one_e_dm_mo_beta_average = 0.d0
|
||||
do i = 1,N_states
|
||||
one_body_dm_mo_alpha_average(:,:) += one_body_dm_mo_alpha(:,:,i) * state_average_weight(i)
|
||||
one_body_dm_mo_beta_average(:,:) += one_body_dm_mo_beta(:,:,i) * state_average_weight(i)
|
||||
one_e_dm_mo_alpha_average(:,:) += one_e_dm_mo_alpha(:,:,i) * state_average_weight(i)
|
||||
one_e_dm_mo_beta_average(:,:) += one_e_dm_mo_beta(:,:,i) * state_average_weight(i)
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_mo_diff, (mo_num,mo_num,2:N_states) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_mo_diff, (mo_num,mo_num,2:N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Difference of the one-body density matrix with respect to the ground state
|
||||
@ -23,9 +23,9 @@ BEGIN_PROVIDER [ double precision, one_body_dm_mo_diff, (mo_num,mo_num,2:N_state
|
||||
do istate=2,N_states
|
||||
do j=1,mo_num
|
||||
do i=1,mo_num
|
||||
one_body_dm_mo_diff(i,j,istate) = &
|
||||
one_body_dm_mo_alpha(i,j,istate) - one_body_dm_mo_alpha(i,j,1) +&
|
||||
one_body_dm_mo_beta (i,j,istate) - one_body_dm_mo_beta (i,j,1)
|
||||
one_e_dm_mo_diff(i,j,istate) = &
|
||||
one_e_dm_mo_alpha(i,j,istate) - one_e_dm_mo_alpha(i,j,1) +&
|
||||
one_e_dm_mo_beta (i,j,istate) - one_e_dm_mo_beta (i,j,1)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
@ -33,14 +33,14 @@ BEGIN_PROVIDER [ double precision, one_body_dm_mo_diff, (mo_num,mo_num,2:N_state
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_mo_spin_index, (mo_num,mo_num,N_states,2) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_mo_spin_index, (mo_num,mo_num,N_states,2) ]
|
||||
implicit none
|
||||
integer :: i,j,ispin,istate
|
||||
ispin = 1
|
||||
do istate = 1, N_states
|
||||
do j = 1, mo_num
|
||||
do i = 1, mo_num
|
||||
one_body_dm_mo_spin_index(i,j,istate,ispin) = one_body_dm_mo_alpha(i,j,istate)
|
||||
one_e_dm_mo_spin_index(i,j,istate,ispin) = one_e_dm_mo_alpha(i,j,istate)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
@ -49,7 +49,7 @@ BEGIN_PROVIDER [ double precision, one_body_dm_mo_spin_index, (mo_num,mo_num,N_s
|
||||
do istate = 1, N_states
|
||||
do j = 1, mo_num
|
||||
do i = 1, mo_num
|
||||
one_body_dm_mo_spin_index(i,j,istate,ispin) = one_body_dm_mo_beta(i,j,istate)
|
||||
one_e_dm_mo_spin_index(i,j,istate,ispin) = one_e_dm_mo_beta(i,j,istate)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
@ -57,16 +57,16 @@ BEGIN_PROVIDER [ double precision, one_body_dm_mo_spin_index, (mo_num,mo_num,N_s
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_dagger_mo_spin_index, (mo_num,mo_num,N_states,2) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_dagger_mo_spin_index, (mo_num,mo_num,N_states,2) ]
|
||||
implicit none
|
||||
integer :: i,j,ispin,istate
|
||||
ispin = 1
|
||||
do istate = 1, N_states
|
||||
do j = 1, mo_num
|
||||
one_body_dm_dagger_mo_spin_index(j,j,istate,ispin) = 1 - one_body_dm_mo_alpha(j,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(j,j,istate,ispin) = 1 - one_e_dm_mo_alpha(j,j,istate)
|
||||
do i = j+1, mo_num
|
||||
one_body_dm_dagger_mo_spin_index(i,j,istate,ispin) = -one_body_dm_mo_alpha(i,j,istate)
|
||||
one_body_dm_dagger_mo_spin_index(j,i,istate,ispin) = -one_body_dm_mo_alpha(i,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(i,j,istate,ispin) = -one_e_dm_mo_alpha(i,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(j,i,istate,ispin) = -one_e_dm_mo_alpha(i,j,istate)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
@ -74,18 +74,18 @@ BEGIN_PROVIDER [ double precision, one_body_dm_dagger_mo_spin_index, (mo_num,mo_
|
||||
ispin = 2
|
||||
do istate = 1, N_states
|
||||
do j = 1, mo_num
|
||||
one_body_dm_dagger_mo_spin_index(j,j,istate,ispin) = 1 - one_body_dm_mo_beta(j,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(j,j,istate,ispin) = 1 - one_e_dm_mo_beta(j,j,istate)
|
||||
do i = j+1, mo_num
|
||||
one_body_dm_dagger_mo_spin_index(i,j,istate,ispin) = -one_body_dm_mo_beta(i,j,istate)
|
||||
one_body_dm_dagger_mo_spin_index(j,i,istate,ispin) = -one_body_dm_mo_beta(i,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(i,j,istate,ispin) = -one_e_dm_mo_beta(i,j,istate)
|
||||
one_e_dm_dagger_mo_spin_index(j,i,istate,ispin) = -one_e_dm_mo_beta(i,j,istate)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_mo_alpha, (mo_num,mo_num,N_states) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_body_dm_mo_beta, (mo_num,mo_num,N_states) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_mo_alpha, (mo_num,mo_num,N_states) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_dm_mo_beta, (mo_num,mo_num,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! $\alpha$ and $\beta$ one-body density matrix for each state
|
||||
@ -103,13 +103,13 @@ END_PROVIDER
|
||||
|
||||
PROVIDE psi_det
|
||||
|
||||
one_body_dm_mo_alpha = 0.d0
|
||||
one_body_dm_mo_beta = 0.d0
|
||||
one_e_dm_mo_alpha = 0.d0
|
||||
one_e_dm_mo_beta = 0.d0
|
||||
!$OMP PARALLEL DEFAULT(NONE) &
|
||||
!$OMP PRIVATE(j,k,k_a,k_b,l,m,occ,ck, cl, ckl,phase,h1,h2,p1,p2,s1,s2, degree,exc,&
|
||||
!$OMP tmp_a, tmp_b, n_occ, krow, kcol, lrow, lcol, tmp_det, tmp_det2)&
|
||||
!$OMP SHARED(psi_det,psi_coef,N_int,N_states,elec_alpha_num, &
|
||||
!$OMP elec_beta_num,one_body_dm_mo_alpha,one_body_dm_mo_beta,N_det,&
|
||||
!$OMP elec_beta_num,one_e_dm_mo_alpha,one_e_dm_mo_beta,N_det,&
|
||||
!$OMP mo_num,psi_bilinear_matrix_rows,psi_bilinear_matrix_columns,&
|
||||
!$OMP psi_bilinear_matrix_transp_rows, psi_bilinear_matrix_transp_columns,&
|
||||
!$OMP psi_bilinear_matrix_order_reverse, psi_det_alpha_unique, psi_det_beta_unique,&
|
||||
@ -168,7 +168,7 @@ END_PROVIDER
|
||||
!$OMP END DO NOWAIT
|
||||
|
||||
!$OMP CRITICAL
|
||||
one_body_dm_mo_alpha(:,:,:) = one_body_dm_mo_alpha(:,:,:) + tmp_a(:,:,:)
|
||||
one_e_dm_mo_alpha(:,:,:) = one_e_dm_mo_alpha(:,:,:) + tmp_a(:,:,:)
|
||||
!$OMP END CRITICAL
|
||||
deallocate(tmp_a)
|
||||
|
||||
@ -223,7 +223,7 @@ END_PROVIDER
|
||||
enddo
|
||||
!$OMP END DO NOWAIT
|
||||
!$OMP CRITICAL
|
||||
one_body_dm_mo_beta(:,:,:) = one_body_dm_mo_beta(:,:,:) + tmp_b(:,:,:)
|
||||
one_e_dm_mo_beta(:,:,:) = one_e_dm_mo_beta(:,:,:) + tmp_b(:,:,:)
|
||||
!$OMP END CRITICAL
|
||||
|
||||
deallocate(tmp_b)
|
||||
@ -231,20 +231,20 @@ END_PROVIDER
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_mo, (mo_num,mo_num) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_mo, (mo_num,mo_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! One-body density matrix
|
||||
END_DOC
|
||||
one_body_dm_mo = one_body_dm_mo_alpha_average + one_body_dm_mo_beta_average
|
||||
one_e_dm_mo = one_e_dm_mo_alpha_average + one_e_dm_mo_beta_average
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_spin_density_mo, (mo_num,mo_num) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_spin_density_mo, (mo_num,mo_num) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! $\rho(\alpha) - \rho(\beta)$
|
||||
END_DOC
|
||||
one_body_spin_density_mo = one_body_dm_mo_alpha_average - one_body_dm_mo_beta_average
|
||||
one_e_spin_density_mo = one_e_dm_mo_alpha_average - one_e_dm_mo_beta_average
|
||||
END_PROVIDER
|
||||
|
||||
subroutine set_natural_mos
|
||||
@ -257,7 +257,7 @@ subroutine set_natural_mos
|
||||
double precision, allocatable :: tmp(:,:)
|
||||
|
||||
label = "Natural"
|
||||
call mo_as_svd_vectors_of_mo_matrix_eig(one_body_dm_mo,size(one_body_dm_mo,1),mo_num,mo_num,mo_occ,label)
|
||||
call mo_as_svd_vectors_of_mo_matrix_eig(one_e_dm_mo,size(one_e_dm_mo,1),mo_num,mo_num,mo_occ,label)
|
||||
soft_touch mo_occ
|
||||
|
||||
end
|
||||
@ -320,7 +320,7 @@ BEGIN_PROVIDER [ double precision, state_average_weight, (N_states) ]
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_spin_density_ao, (ao_num,ao_num) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_spin_density_ao, (ao_num,ao_num) ]
|
||||
BEGIN_DOC
|
||||
! One body spin density matrix on the |AO| basis : $\rho_{AO}(\alpha) - \rho_{AO}(\beta)$
|
||||
END_DOC
|
||||
@ -328,14 +328,14 @@ BEGIN_PROVIDER [ double precision, one_body_spin_density_ao, (ao_num,ao_num) ]
|
||||
integer :: i,j,k,l
|
||||
double precision :: dm_mo
|
||||
|
||||
one_body_spin_density_ao = 0.d0
|
||||
one_e_spin_density_ao = 0.d0
|
||||
do k = 1, ao_num
|
||||
do l = 1, ao_num
|
||||
do i = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
dm_mo = one_body_spin_density_mo(j,i)
|
||||
dm_mo = one_e_spin_density_mo(j,i)
|
||||
! if(dabs(dm_mo).le.1.d-10)cycle
|
||||
one_body_spin_density_ao(l,k) += mo_coef(k,i) * mo_coef(l,j) * dm_mo
|
||||
one_e_spin_density_ao(l,k) += mo_coef(k,i) * mo_coef(l,j) * dm_mo
|
||||
|
||||
enddo
|
||||
enddo
|
||||
@ -344,8 +344,8 @@ BEGIN_PROVIDER [ double precision, one_body_spin_density_ao, (ao_num,ao_num) ]
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, one_body_dm_ao_alpha, (ao_num,ao_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_body_dm_ao_beta, (ao_num,ao_num) ]
|
||||
BEGIN_PROVIDER [ double precision, one_e_dm_ao_alpha, (ao_num,ao_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_dm_ao_beta, (ao_num,ao_num) ]
|
||||
BEGIN_DOC
|
||||
! One body density matrix on the |AO| basis : $\rho_{AO}(\alpha), \rho_{AO}(\beta)$.
|
||||
END_DOC
|
||||
@ -353,17 +353,17 @@ END_PROVIDER
|
||||
integer :: i,j,k,l
|
||||
double precision :: mo_alpha,mo_beta
|
||||
|
||||
one_body_dm_ao_alpha = 0.d0
|
||||
one_body_dm_ao_beta = 0.d0
|
||||
one_e_dm_ao_alpha = 0.d0
|
||||
one_e_dm_ao_beta = 0.d0
|
||||
do k = 1, ao_num
|
||||
do l = 1, ao_num
|
||||
do i = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
mo_alpha = one_body_dm_mo_alpha_average(j,i)
|
||||
mo_beta = one_body_dm_mo_beta_average(j,i)
|
||||
mo_alpha = one_e_dm_mo_alpha_average(j,i)
|
||||
mo_beta = one_e_dm_mo_beta_average(j,i)
|
||||
! if(dabs(dm_mo).le.1.d-10)cycle
|
||||
one_body_dm_ao_alpha(l,k) += mo_coef(k,i) * mo_coef(l,j) * mo_alpha
|
||||
one_body_dm_ao_beta(l,k) += mo_coef(k,i) * mo_coef(l,j) * mo_beta
|
||||
one_e_dm_ao_alpha(l,k) += mo_coef(k,i) * mo_coef(l,j) * mo_alpha
|
||||
one_e_dm_ao_beta(l,k) += mo_coef(k,i) * mo_coef(l,j) * mo_beta
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
@ -6,14 +6,14 @@
|
||||
BEGIN_DOC
|
||||
! psi_energy_h_core = $\langle \Psi | h_{core} |\Psi \rangle$
|
||||
!
|
||||
! computed using the :c:data:`one_body_dm_mo_alpha` +
|
||||
! :c:data:`one_body_dm_mo_beta` and :c:data:`mo_one_e_integrals`
|
||||
! computed using the :c:data:`one_e_dm_mo_alpha` +
|
||||
! :c:data:`one_e_dm_mo_beta` and :c:data:`mo_one_e_integrals`
|
||||
END_DOC
|
||||
psi_energy_h_core = 0.d0
|
||||
do i = 1, N_states
|
||||
do j = 1, mo_num
|
||||
do k = 1, mo_num
|
||||
psi_energy_h_core(i) += mo_one_e_integrals(k,j) * (one_body_dm_mo_alpha(k,j,i) + one_body_dm_mo_beta(k,j,i))
|
||||
psi_energy_h_core(i) += mo_one_e_integrals(k,j) * (one_e_dm_mo_alpha(k,j,i) + one_e_dm_mo_beta(k,j,i))
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
@ -21,7 +21,7 @@
|
||||
accu = 0.d0
|
||||
do i = 1, N_states
|
||||
do j = 1, mo_num
|
||||
accu += one_body_dm_mo_alpha(j,j,i) + one_body_dm_mo_beta(j,j,i)
|
||||
accu += one_e_dm_mo_alpha(j,j,i) + one_e_dm_mo_beta(j,j,i)
|
||||
enddo
|
||||
accu = (elec_alpha_num + elec_beta_num ) / accu
|
||||
psi_energy_h_core(i) = psi_energy_h_core(i) * accu
|
||||
|
@ -10,5 +10,5 @@ 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.
|
||||
* `one_e_dm_and_grad_alpha_in_r`: values of the density and its gradienst on the grid points.
|
||||
|
||||
|
@ -13,11 +13,11 @@ subroutine dm_dft_alpha_beta_at_r(r,dm_a,dm_b)
|
||||
do istate = 1, N_states
|
||||
aos_array_bis = aos_array
|
||||
! alpha density
|
||||
call dgemv('N',ao_num,ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dgemv('N',ao_num,ao_num,1.d0,one_e_dm_alpha_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
! beta density
|
||||
aos_array_bis = aos_array
|
||||
call dgemv('N',ao_num,ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dgemv('N',ao_num,ao_num,1.d0,one_e_dm_beta_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
enddo
|
||||
end
|
||||
@ -40,11 +40,11 @@ subroutine dm_dft_alpha_beta_and_all_aos_at_r(r,dm_a,dm_b,aos_array)
|
||||
do istate = 1, N_states
|
||||
aos_array_bis = aos_array
|
||||
! alpha density
|
||||
call dsymv('U',ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),size(one_body_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dsymv('U',ao_num,1.d0,one_e_dm_alpha_ao_for_dft(1,1,istate),size(one_e_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
! beta density
|
||||
aos_array_bis = aos_array
|
||||
call dsymv('U',ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),size(one_body_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dsymv('U',ao_num,1.d0,one_e_dm_beta_ao_for_dft(1,1,istate),size(one_e_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
enddo
|
||||
end
|
||||
@ -80,7 +80,7 @@ end
|
||||
do istate = 1, N_states
|
||||
! alpha density
|
||||
! aos_array_bis = \rho_ao * aos_array
|
||||
call dsymv('U',ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),size(one_body_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dsymv('U',ao_num,1.d0,one_e_dm_alpha_ao_for_dft(1,1,istate),size(one_e_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
|
||||
! grad_dm(1) = \sum_i aos_grad_array(i,1) * aos_array_bis(i)
|
||||
@ -91,7 +91,7 @@ end
|
||||
! aos_grad_array_bis = \rho_ao * aos_grad_array
|
||||
|
||||
! beta density
|
||||
call dsymv('U',ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),size(one_body_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
call dsymv('U',ao_num,1.d0,one_e_dm_beta_ao_for_dft(1,1,istate),size(one_e_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1)
|
||||
dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num)
|
||||
|
||||
! grad_dm(1) = \sum_i aos_grad_array(i,1) * aos_array_bis(i)
|
||||
@ -103,8 +103,8 @@ end
|
||||
enddo
|
||||
end
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_dm_alpha_in_r, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_dm_beta_in_r, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_alpha_in_r, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_e_dm_beta_in_r, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ]
|
||||
implicit none
|
||||
integer :: i,j,k,l,m,istate
|
||||
double precision :: contrib
|
||||
@ -114,8 +114,8 @@ end
|
||||
do k = 1, n_points_radial_grid -1
|
||||
do l = 1, n_points_integration_angular
|
||||
do istate = 1, N_States
|
||||
one_dm_alpha_in_r(l,k,j,istate) = 0.d0
|
||||
one_dm_beta_in_r(l,k,j,istate) = 0.d0
|
||||
one_e_dm_alpha_in_r(l,k,j,istate) = 0.d0
|
||||
one_e_dm_beta_in_r(l,k,j,istate) = 0.d0
|
||||
enddo
|
||||
r(1) = grid_points_per_atom(1,l,k,j)
|
||||
r(2) = grid_points_per_atom(2,l,k,j)
|
||||
@ -124,8 +124,8 @@ end
|
||||
double precision :: dm_a(N_states),dm_b(N_states)
|
||||
call dm_dft_alpha_beta_at_r(r,dm_a,dm_b)
|
||||
do istate=1,N_states
|
||||
one_dm_alpha_in_r(l,k,j,istate) = dm_a(istate)
|
||||
one_dm_beta_in_r(l,k,j,istate) = dm_b(istate)
|
||||
one_e_dm_alpha_in_r(l,k,j,istate) = dm_a(istate)
|
||||
one_e_dm_beta_in_r(l,k,j,istate) = dm_b(istate)
|
||||
enddo
|
||||
|
||||
enddo
|
||||
@ -135,12 +135,12 @@ end
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_body_dm_alpha_at_r, (n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_body_dm_beta_at_r, (n_points_final_grid,N_states) ]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_alpha_at_r, (n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_e_dm_beta_at_r, (n_points_final_grid,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! one_body_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
|
||||
! one_body_dm_beta_at_r(i,istate) = n_beta(r_i,istate)
|
||||
! one_e_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate)
|
||||
! one_e_dm_beta_at_r(i,istate) = n_beta(r_i,istate)
|
||||
! where r_i is the ith point of the grid and istate is the state number
|
||||
END_DOC
|
||||
integer :: i,istate
|
||||
@ -153,24 +153,24 @@ END_PROVIDER
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
call dm_dft_alpha_beta_at_r(r,dm_a,dm_b)
|
||||
one_body_dm_alpha_at_r(i,istate) = dm_a(istate)
|
||||
one_body_dm_beta_at_r(i,istate) = dm_b(istate)
|
||||
one_e_dm_alpha_at_r(i,istate) = dm_a(istate)
|
||||
one_e_dm_beta_at_r(i,istate) = dm_b(istate)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [double precision, one_dm_and_grad_alpha_in_r, (4,n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_dm_and_grad_beta_in_r, (4,n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_body_grad_2_dm_alpha_at_r, (n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_body_grad_2_dm_beta_at_r, (n_points_final_grid,N_states) ]
|
||||
BEGIN_PROVIDER [double precision, one_e_dm_and_grad_alpha_in_r, (4,n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_e_dm_and_grad_beta_in_r, (4,n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_e_grad_2_dm_alpha_at_r, (n_points_final_grid,N_states) ]
|
||||
&BEGIN_PROVIDER [double precision, one_e_grad_2_dm_beta_at_r, (n_points_final_grid,N_states) ]
|
||||
BEGIN_DOC
|
||||
! one_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate)
|
||||
! one_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate)
|
||||
! one_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate)
|
||||
! one_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate)
|
||||
! one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2
|
||||
! one_e_dm_and_grad_alpha_in_r(1,i,i_state) = d\dx n_alpha(r_i,istate)
|
||||
! one_e_dm_and_grad_alpha_in_r(2,i,i_state) = d\dy n_alpha(r_i,istate)
|
||||
! one_e_dm_and_grad_alpha_in_r(3,i,i_state) = d\dz n_alpha(r_i,istate)
|
||||
! one_e_dm_and_grad_alpha_in_r(4,i,i_state) = n_alpha(r_i,istate)
|
||||
! one_e_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2
|
||||
! where r_i is the ith point of the grid and istate is the state number
|
||||
END_DOC
|
||||
implicit none
|
||||
@ -188,17 +188,17 @@ END_PROVIDER
|
||||
r(3) = final_grid_points(3,i)
|
||||
!!!! Works also with the ao basis
|
||||
call density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, dm_a_grad, dm_b_grad, aos_array, grad_aos_array)
|
||||
one_dm_and_grad_alpha_in_r(1,i,istate) = dm_a_grad(1,istate)
|
||||
one_dm_and_grad_alpha_in_r(2,i,istate) = dm_a_grad(2,istate)
|
||||
one_dm_and_grad_alpha_in_r(3,i,istate) = dm_a_grad(3,istate)
|
||||
one_dm_and_grad_alpha_in_r(4,i,istate) = dm_a(istate)
|
||||
one_body_grad_2_dm_alpha_at_r(i,istate) = dm_a_grad(1,istate) * dm_a_grad(1,istate) + dm_a_grad(2,istate) * dm_a_grad(2,istate) + dm_a_grad(3,istate) * dm_a_grad(3,istate)
|
||||
one_e_dm_and_grad_alpha_in_r(1,i,istate) = dm_a_grad(1,istate)
|
||||
one_e_dm_and_grad_alpha_in_r(2,i,istate) = dm_a_grad(2,istate)
|
||||
one_e_dm_and_grad_alpha_in_r(3,i,istate) = dm_a_grad(3,istate)
|
||||
one_e_dm_and_grad_alpha_in_r(4,i,istate) = dm_a(istate)
|
||||
one_e_grad_2_dm_alpha_at_r(i,istate) = dm_a_grad(1,istate) * dm_a_grad(1,istate) + dm_a_grad(2,istate) * dm_a_grad(2,istate) + dm_a_grad(3,istate) * dm_a_grad(3,istate)
|
||||
|
||||
one_dm_and_grad_beta_in_r(1,i,istate) = dm_b_grad(1,istate)
|
||||
one_dm_and_grad_beta_in_r(2,i,istate) = dm_b_grad(2,istate)
|
||||
one_dm_and_grad_beta_in_r(3,i,istate) = dm_b_grad(3,istate)
|
||||
one_dm_and_grad_beta_in_r(4,i,istate) = dm_b(istate)
|
||||
one_body_grad_2_dm_beta_at_r(i,istate) = dm_b_grad(1,istate) * dm_b_grad(1,istate) + dm_b_grad(2,istate) * dm_b_grad(2,istate) + dm_b_grad(3,istate) * dm_b_grad(3,istate)
|
||||
one_e_dm_and_grad_beta_in_r(1,i,istate) = dm_b_grad(1,istate)
|
||||
one_e_dm_and_grad_beta_in_r(2,i,istate) = dm_b_grad(2,istate)
|
||||
one_e_dm_and_grad_beta_in_r(3,i,istate) = dm_b_grad(3,istate)
|
||||
one_e_dm_and_grad_beta_in_r(4,i,istate) = dm_b(istate)
|
||||
one_e_grad_2_dm_beta_at_r(i,istate) = dm_b_grad(1,istate) * dm_b_grad(1,istate) + dm_b_grad(2,istate) * dm_b_grad(2,istate) + dm_b_grad(3,istate) * dm_b_grad(3,istate)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
|
@ -20,8 +20,8 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rhoa(istate) = one_body_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_body_dm_beta_at_r(i,istate)
|
||||
rhoa(istate) = one_e_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_e_dm_beta_at_r(i,istate)
|
||||
call ec_LDA(rhoa(istate),rhob(istate),e_c,vc_a,vc_b)
|
||||
call ex_LDA(rhoa(istate),rhob(istate),e_x,vx_a,vx_b)
|
||||
energy_x_LDA(istate) += weight * e_x
|
||||
@ -59,10 +59,10 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rho_a(istate) = one_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
rho_a(istate) = one_e_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_e_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_e_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_e_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
grad_rho_a_2 = 0.d0
|
||||
grad_rho_b_2 = 0.d0
|
||||
grad_rho_a_b = 0.d0
|
||||
|
@ -3,7 +3,7 @@
|
||||
&BEGIN_PROVIDER [double precision, psi_dft_energy_h_core, (N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! kinetic, electron-nuclear and total h_core energy computed with the density matrix one_body_dm_mo_beta_for_dft+one_body_dm_mo_alpha_for_dft
|
||||
! kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
|
||||
END_DOC
|
||||
integer :: i,j,istate
|
||||
double precision :: accu
|
||||
@ -12,15 +12,15 @@
|
||||
do istate = 1, N_states
|
||||
do i = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
psi_dft_energy_kinetic(istate) += ( one_body_dm_mo_alpha_for_dft(j,i,istate)+one_body_dm_mo_beta_for_dft(j,i,istate)) * mo_kinetic_integrals(j,i)
|
||||
psi_dft_energy_nuclear_elec(istate) += ( one_body_dm_mo_alpha_for_dft(j,i,istate)+one_body_dm_mo_beta_for_dft(j,i,istate)) * mo_integrals_n_e(j,i)
|
||||
psi_dft_energy_kinetic(istate) += ( one_e_dm_mo_alpha_for_dft(j,i,istate)+one_e_dm_mo_beta_for_dft(j,i,istate)) * mo_kinetic_integrals(j,i)
|
||||
psi_dft_energy_nuclear_elec(istate) += ( one_e_dm_mo_alpha_for_dft(j,i,istate)+one_e_dm_mo_beta_for_dft(j,i,istate)) * mo_integrals_n_e(j,i)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
accu = 0.d0
|
||||
do i = 1, N_states
|
||||
do j = 1, mo_num
|
||||
accu += one_body_dm_mo_alpha_for_dft(j,j,i) + one_body_dm_mo_beta_for_dft(j,j,i)
|
||||
accu += one_e_dm_mo_alpha_for_dft(j,j,i) + one_e_dm_mo_beta_for_dft(j,j,i)
|
||||
enddo
|
||||
accu = (elec_alpha_num + elec_beta_num ) / accu
|
||||
psi_dft_energy_kinetic(i) = psi_dft_energy_kinetic(i) * accu
|
||||
|
@ -20,8 +20,8 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rhoa(istate) = one_body_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_body_dm_beta_at_r(i,istate)
|
||||
rhoa(istate) = one_e_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_e_dm_beta_at_r(i,istate)
|
||||
call ec_LDA_sr(mu_local,rhoa(istate),rhob(istate),e_c,vc_a,vc_b)
|
||||
call ex_LDA_sr(mu_local,rhoa(istate),rhob(istate),e_x,vx_a,vx_b)
|
||||
do j =1, ao_num
|
||||
@ -95,10 +95,10 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rho_a(istate) = one_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
rho_a(istate) = one_e_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_e_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_e_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_e_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
grad_rho_a_2 = 0.d0
|
||||
grad_rho_b_2 = 0.d0
|
||||
grad_rho_a_b = 0.d0
|
||||
|
@ -116,9 +116,9 @@ END_PROVIDER
|
||||
Trace_v_H(istate) = 0.d0
|
||||
do i = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
Trace_v_xc(istate) += (potential_x_alpha_mo(j,i,istate) + potential_c_alpha_mo(j,i,istate)) * one_body_dm_mo_alpha_for_dft(j,i,istate)
|
||||
Trace_v_xc(istate) += (potential_x_beta_mo(j,i,istate) + potential_c_beta_mo(j,i,istate) ) * one_body_dm_mo_beta_for_dft(j,i,istate)
|
||||
dm = one_body_dm_mo_alpha_for_dft(j,i,istate) + one_body_dm_mo_beta_for_dft(j,i,istate)
|
||||
Trace_v_xc(istate) += (potential_x_alpha_mo(j,i,istate) + potential_c_alpha_mo(j,i,istate)) * one_e_dm_mo_alpha_for_dft(j,i,istate)
|
||||
Trace_v_xc(istate) += (potential_x_beta_mo(j,i,istate) + potential_c_beta_mo(j,i,istate) ) * one_e_dm_mo_beta_for_dft(j,i,istate)
|
||||
dm = one_e_dm_mo_alpha_for_dft(j,i,istate) + one_e_dm_mo_beta_for_dft(j,i,istate)
|
||||
Trace_v_H(istate) += dm * short_range_Hartree_operator(j,i,istate)
|
||||
enddo
|
||||
enddo
|
||||
|
@ -16,7 +16,7 @@
|
||||
short_range_Hartree = 0.d0
|
||||
do i = 1, mo_num
|
||||
do j = 1, mo_num
|
||||
if(dabs(one_body_dm_average_mo_for_dft(j,i)).le.1.d-12)cycle
|
||||
if(dabs(one_e_dm_average_mo_for_dft(j,i)).le.1.d-12)cycle
|
||||
call get_mo_two_e_integrals_i1j1(i,j,mo_num,integrals_array,mo_integrals_map)
|
||||
call get_mo_two_e_integrals_erf_i1j1(i,j,mo_num,integrals_erf_array,mo_integrals_erf_map)
|
||||
do istate = 1, N_states
|
||||
@ -24,9 +24,9 @@
|
||||
do l = 1, mo_num
|
||||
integral = integrals_array(l,k)
|
||||
integral_erf = integrals_erf_array(l,k)
|
||||
contrib = one_body_dm_mo_for_dft(i,j,istate) * (integral - integral_erf)
|
||||
contrib = one_e_dm_mo_for_dft(i,j,istate) * (integral - integral_erf)
|
||||
short_range_Hartree_operator(l,k,istate) += contrib
|
||||
short_range_Hartree(istate) += contrib * one_body_dm_mo_for_dft(k,l,istate)
|
||||
short_range_Hartree(istate) += contrib * one_e_dm_mo_for_dft(k,l,istate)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
@ -20,8 +20,8 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rhoa(istate) = one_body_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_body_dm_beta_at_r(i,istate)
|
||||
rhoa(istate) = one_e_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_e_dm_beta_at_r(i,istate)
|
||||
call ec_LDA_sr(mu_erf_dft,rhoa(istate),rhob(istate),e_c,vc_a,vc_b)
|
||||
call ex_LDA_sr(mu_erf_dft,rhoa(istate),rhob(istate),e_x,vx_a,vx_b)
|
||||
energy_sr_x_LDA(istate) += weight * e_x
|
||||
@ -59,10 +59,10 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rho_a(istate) = one_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
rho_a(istate) = one_e_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_e_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_e_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_e_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
grad_rho_a_2 = 0.d0
|
||||
grad_rho_b_2 = 0.d0
|
||||
grad_rho_a_b = 0.d0
|
||||
|
@ -18,8 +18,8 @@
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight=final_weight_at_r_vector(i)
|
||||
rhoa(istate) = one_body_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_body_dm_beta_at_r(i,istate)
|
||||
rhoa(istate) = one_e_dm_alpha_at_r(i,istate)
|
||||
rhob(istate) = one_e_dm_beta_at_r(i,istate)
|
||||
call ec_LDA_sr(mu_erf_dft,rhoa(istate),rhob(istate),e_c,sr_vc_a,sr_vc_b)
|
||||
call ex_LDA_sr(mu_erf_dft,rhoa(istate),rhob(istate),e_x,sr_vx_a,sr_vx_b)
|
||||
do j =1, ao_num
|
||||
@ -107,10 +107,10 @@ END_PROVIDER
|
||||
r(2) = final_grid_points(2,i)
|
||||
r(3) = final_grid_points(3,i)
|
||||
weight = final_weight_at_r_vector(i)
|
||||
rho_a(istate) = one_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
rho_a(istate) = one_e_dm_and_grad_alpha_in_r(4,i,istate)
|
||||
rho_b(istate) = one_e_dm_and_grad_beta_in_r(4,i,istate)
|
||||
grad_rho_a(1:3,istate) = one_e_dm_and_grad_alpha_in_r(1:3,i,istate)
|
||||
grad_rho_b(1:3,istate) = one_e_dm_and_grad_beta_in_r(1:3,i,istate)
|
||||
grad_rho_a_2 = 0.d0
|
||||
grad_rho_b_2 = 0.d0
|
||||
grad_rho_a_b = 0.d0
|
||||
|
@ -1,6 +1,6 @@
|
||||
BEGIN_PROVIDER [ double precision, KS_energy]
|
||||
&BEGIN_PROVIDER [ double precision, two_electron_energy]
|
||||
&BEGIN_PROVIDER [ double precision, one_electron_energy]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_energy]
|
||||
&BEGIN_PROVIDER [ double precision, Fock_matrix_energy]
|
||||
&BEGIN_PROVIDER [ double precision, trace_potential_xc ]
|
||||
implicit none
|
||||
@ -11,7 +11,7 @@
|
||||
integer :: i,j
|
||||
double precision :: accu_mono,accu_fock
|
||||
KS_energy = nuclear_repulsion
|
||||
one_electron_energy = 0.d0
|
||||
one_e_energy = 0.d0
|
||||
two_electron_energy = 0.d0
|
||||
Fock_matrix_energy = 0.d0
|
||||
trace_potential_xc = 0.d0
|
||||
@ -21,12 +21,12 @@
|
||||
Fock_matrix_ao_beta(i,j) * SCF_density_matrix_ao_beta(i,j)
|
||||
two_electron_energy += 0.5d0 * ( ao_two_e_integral_alpha(i,j) * SCF_density_matrix_ao_alpha(i,j) &
|
||||
+ao_two_e_integral_beta(i,j) * SCF_density_matrix_ao_beta(i,j) )
|
||||
one_electron_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
||||
one_e_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
||||
trace_potential_xc += ao_potential_alpha_xc(i,j) * SCF_density_matrix_ao_alpha(i,j) + ao_potential_beta_xc(i,j) * SCF_density_matrix_ao_beta (i,j)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
KS_energy += e_exchange_dft + e_correlation_dft + one_electron_energy + two_electron_energy
|
||||
KS_energy += e_exchange_dft + e_correlation_dft + one_e_energy + two_electron_energy
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, extra_e_contrib_density]
|
||||
|
@ -1,6 +1,6 @@
|
||||
BEGIN_PROVIDER [ double precision, RS_KS_energy ]
|
||||
&BEGIN_PROVIDER [ double precision, two_electron_energy]
|
||||
&BEGIN_PROVIDER [ double precision, one_electron_energy]
|
||||
&BEGIN_PROVIDER [ double precision, one_e_energy]
|
||||
&BEGIN_PROVIDER [ double precision, Fock_matrix_energy]
|
||||
&BEGIN_PROVIDER [ double precision, trace_potential_xc ]
|
||||
implicit none
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
integer :: i,j
|
||||
double precision :: accu_mono,accu_fock
|
||||
one_electron_energy = 0.d0
|
||||
one_e_energy = 0.d0
|
||||
two_electron_energy = 0.d0
|
||||
Fock_matrix_energy = 0.d0
|
||||
trace_potential_xc = 0.d0
|
||||
@ -21,11 +21,11 @@
|
||||
Fock_matrix_ao_beta(i,j) * SCF_density_matrix_ao_beta(i,j)
|
||||
two_electron_energy += 0.5d0 * ( ao_two_e_integral_alpha(i,j) * SCF_density_matrix_ao_alpha(i,j) &
|
||||
+ao_two_e_integral_beta(i,j) * SCF_density_matrix_ao_beta(i,j) )
|
||||
one_electron_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
||||
one_e_energy += ao_one_e_integrals(i,j) * (SCF_density_matrix_ao_alpha(i,j) + SCF_density_matrix_ao_beta (i,j) )
|
||||
trace_potential_xc += ao_potential_alpha_xc(i,j) * SCF_density_matrix_ao_alpha(i,j) + ao_potential_beta_xc(i,j) * SCF_density_matrix_ao_beta (i,j)
|
||||
enddo
|
||||
enddo
|
||||
RS_KS_energy += e_exchange_dft + e_correlation_dft + one_electron_energy + two_electron_energy
|
||||
RS_KS_energy += e_exchange_dft + e_correlation_dft + one_e_energy + two_electron_energy
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [double precision, extra_e_contrib_density]
|
||||
|
@ -94,7 +94,7 @@ subroutine run
|
||||
call Roothaan_Hall_SCF
|
||||
call ezfio_set_kohn_sham_rs_energy(SCF_energy)
|
||||
|
||||
write(*, '(A22,X,F16.10)') 'one_electron_energy = ',one_electron_energy
|
||||
write(*, '(A22,X,F16.10)') 'one_e_energy = ',one_e_energy
|
||||
write(*, '(A22,X,F16.10)') 'two_electron_energy = ',two_electron_energy
|
||||
write(*, '(A22,X,F16.10)') 'e_exchange_dft = ',e_exchange_dft
|
||||
write(*, '(A22,X,F16.10)') 'e_correlation_dft = ',e_correlation_dft
|
||||
|
@ -1,9 +1,9 @@
|
||||
program save_one_body_dm
|
||||
program save_one_e_dm
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities.
|
||||
!
|
||||
! Then, the global variable data_one_body_alpha_dm_mo and data_one_body_beta_dm_mo will automatically read the density in a further calculation.
|
||||
! Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read the density in a further calculation.
|
||||
!
|
||||
! This can be used to perform dampin on the density in RS-DFT calculation (see the density_for_dft module).
|
||||
END_DOC
|
||||
@ -15,6 +15,6 @@ end
|
||||
|
||||
subroutine routine
|
||||
|
||||
call ezfio_set_aux_quantities_data_one_body_alpha_dm_mo(one_body_dm_mo_alpha)
|
||||
call ezfio_set_aux_quantities_data_one_body_beta_dm_mo(one_body_dm_mo_beta)
|
||||
call ezfio_set_aux_quantities_data_one_e_dm_alpha_mo(one_e_dm_mo_alpha)
|
||||
call ezfio_set_aux_quantities_data_one_e_dm_beta_mo(one_e_dm_mo_beta)
|
||||
end
|
Loading…
Reference in New Issue
Block a user