dft_utils_in_r
This module contains most of the fundamental quantities (AOs, MOs or density derivatives) evaluated in real-space representation that are needed for the various DFT modules.
As these quantities might be used and re-used, the values at each point of the grid are stored (see becke_numerical_grid for more information on the grid).
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_e_dm_and_grad_alpha_in_r: values of the density and its gradienst on the grid points.
Providers
- alpha_dens_kin_in_r
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: alpha_dens_kin_in_r (n_points_final_grid) double precision, allocatable :: beta_dens_kin_in_r (n_points_final_grid)
Needs:
elec_alpha_numelec_beta_num
mos_grad_in_r_array_tranp
n_points_final_grid
- ao_abs_int_grid
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_abs_int_grid (ao_num)
ao_abs_int_grid(i) = int dr |phi_i(r) |
Needs:
ao_numaos_in_r_array
final_grid_points
n_points_final_grid
- ao_overlap_abs_grid
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_overlap_abs_grid (ao_num,ao_num)
ao_overlap_abs_grid(j,i) = int dr |phi_i(r) phi_j(r)|
Needs:
ao_numaos_in_r_array
final_grid_points
n_points_final_grid
Needed by:
ao_prod_center
ao_prod_sigma
- ao_prod_abs_r
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_prod_abs_r (ao_num,ao_num)
ao_prod_abs_r(i,j) = int |phi_i(r) phi_j(r)| dsqrt((x - <|i|x|j|>)^2 + (y - <|i|y|j|>)^2 +(z - <|i|z|j|>)^2) / int |phi_i(r) phi_j(r)|
Needs:
ao_numao_prod_center
aos_in_r_arrayfinal_grid_points
n_points_final_grid
Needed by:
ao_prod_sigma
- ao_prod_center
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_prod_center (3,ao_num,ao_num)
ao_prod_center(1:3,j,i) = int dr |phi_i(r) phi_j(r)| x/y/z / int |phi_i(r) phi_j(r)|
if int |phi_i(r) phi_j(r)| < 1.d-10 then ao_prod_center = 10000.
Needs:
ao_numao_overlap_abs_grid
aos_in_r_arrayfinal_grid_points
n_points_final_grid
Needed by:
ao_prod_abs_r
ao_prod_dist_grid
- ao_prod_dist_grid
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_prod_dist_grid (ao_num,ao_num,n_points_final_grid)
ao_prod_dist_grid(j,i,ipoint) = distance between the center of |phi_i(r) phi_j(r)| and the grid point r(ipoint)
Needs:
ao_numao_prod_center
final_grid_points
n_points_final_grid
- ao_prod_sigma
File :
dft_utils_in_r/ao_prod_mlti_pl.irp.fdouble precision, allocatable :: ao_prod_sigma (ao_num,ao_num)
Gaussian exponent reproducing the product |chi_i(r) chi_j(r)|
Therefore |chi_i(r) chi_j(r)| approx e^{-ao_prod_sigma(j,i) (r - ao_prod_center(1:3,j,i))**2}
Needs:
ao_num
ao_overlap_abs_grid
ao_prod_abs_r
- aos_grad_in_r_array
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_grad_in_r_array (ao_num,n_points_final_grid,3)
aos_grad_in_r_array(i,j,k) = value of the kth component of the gradient of ith ao on the jth grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
ao_coef_normalized_ordered_transp_per_nuclao_expo_ordered_transp_per_nuclao_numao_power_ordered_transp_per_nucl
ao_prim_numfinal_grid_pointsn_points_final_gridnucl_aos_transposed
nucl_coordnucl_n_aosnucl_num
Needed by:
aos_grad_in_r_array_transpaos_grad_in_r_array_transp_3
aos_grad_in_r_array_transp_bis
mos_grad_in_r_array
- aos_grad_in_r_array_extra
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_grad_in_r_array_extra (ao_num,n_points_extra_final_grid,3)
Needs:
ao_coef_normalized_ordered_transp_per_nuclao_expo_ordered_transp_per_nuclao_numao_power_ordered_transp_per_nucl
ao_prim_numfinal_grid_points_extran_points_extra_final_gridnucl_aos_transposed
nucl_coordnucl_n_aosnucl_num
- aos_grad_in_r_array_transp
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_grad_in_r_array_transp (3,ao_num,n_points_final_grid)
aos_grad_in_r_array_transp(k,i,j) = value of the kth component of the gradient of jth ao on the ith grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
ao_num
aos_grad_in_r_array
n_points_final_grid
Needed by:
aos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_w
aos_vxc_alpha_pbe_w
aos_vxc_alpha_sr_pbe_w
- aos_grad_in_r_array_transp_3
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_grad_in_r_array_transp_3 (3,n_points_final_grid,ao_num)
Transposed gradients
Needs:
ao_num
aos_grad_in_r_array
n_points_final_grid
- aos_grad_in_r_array_transp_bis
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_grad_in_r_array_transp_bis (n_points_final_grid,ao_num,3)
Transposed gradients
Needs:
ao_num
aos_grad_in_r_array
n_points_final_grid
- aos_in_r_array
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_in_r_array (ao_num,n_points_final_grid)
aos_in_r_array(i,j) = value of the ith ao on the jth grid point
Needs:
ao_coef_normalized_ordered_transp_per_nuclao_expo_ordered_transp_per_nuclao_numao_power_ordered_transp_per_nucl
ao_prim_numfinal_grid_pointsn_points_final_gridnucl_aos_transposed
nucl_coordnucl_n_aosnucl_num
Needed by:
ao_abs_int_gridao_overlap_abs_gridao_prod_abs_rao_prod_centeraos_in_r_array_transpaos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_w
aos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_waos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_wf_hf_cholesky_sparse_bispot_scal_x_alpha_ao_pbepot_scal_x_alpha_ao_sr_pbe
pot_scal_xc_alpha_ao_pbepot_scal_xc_alpha_ao_sr_pbepotential_c_alpha_ao_ldapotential_c_alpha_ao_sr_ldapotential_x_alpha_ao_ldapotential_x_alpha_ao_sr_ldapotential_xc_alpha_ao_ldapotential_xc_alpha_ao_sr_lda
- aos_in_r_array_extra
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_in_r_array_extra (ao_num,n_points_extra_final_grid)
aos_in_r_array_extra(i,j) = value of the ith ao on the jth grid point
Needs:
ao_coef_normalized_ordered_transp_per_nuclao_expo_ordered_transp_per_nuclao_numao_power_ordered_transp_per_nucl
ao_prim_numfinal_grid_points_extran_points_extra_final_gridnucl_aos_transposed
nucl_coordnucl_n_aosnucl_num
Needed by:
aos_in_r_array_extra_transp
- aos_in_r_array_extra_transp
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_in_r_array_extra_transp (n_points_extra_final_grid,ao_num)
aos_in_r_array_extra_transp(i,j) = value of the jth ao on the ith grid point
Needs:
ao_num
aos_in_r_array_extra
n_points_extra_final_grid
- aos_in_r_array_transp
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_in_r_array_transp (n_points_final_grid,ao_num)
aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point
Needs:
ao_num
aos_in_r_array
n_points_final_grid
Needed by:
pot_grad_x_alpha_ao_pbepot_grad_x_alpha_ao_sr_pbe
pot_grad_xc_alpha_ao_pbe
pot_grad_xc_alpha_ao_sr_pbe
- aos_lapl_in_r_array
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_lapl_in_r_array (3,ao_num,n_points_final_grid)
aos_lapl_in_r_array(i,j,k) = value of the kth component of the laplacian of jth ao on the ith grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
ao_coef_normalized_ordered_transp_per_nuclao_expo_ordered_transp_per_nuclao_numao_power_ordered_transp_per_nucl
ao_prim_numfinal_grid_pointsn_points_final_gridnucl_aos_transposed
nucl_coordnucl_n_aosnucl_num
Needed by:
aos_lapl_in_r_array_transp
- aos_lapl_in_r_array_transp
File :
dft_utils_in_r/ao_in_r.irp.fdouble precision, allocatable :: aos_lapl_in_r_array_transp (ao_num,n_points_final_grid,3)
Needs:
ao_num
aos_lapl_in_r_array
n_points_final_grid
Needed by:
mos_lapl_in_r_array
- beta_dens_kin_in_r
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: alpha_dens_kin_in_r (n_points_final_grid) double precision, allocatable :: beta_dens_kin_in_r (n_points_final_grid)
Needs:
elec_alpha_numelec_beta_num
mos_grad_in_r_array_tranp
n_points_final_grid
- elec_alpha_num_grid_becke
File :
dft_utils_in_r/dm_in_r.irp.fdouble precision, allocatable :: elec_beta_num_grid_becke (N_states) double precision, allocatable :: elec_alpha_num_grid_becke (N_states) double precision, allocatable :: elec_num_grid_becke (N_states)
number of electrons when the one-e alpha/beta densities are numerically integrated on the DFT grid
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
final_grid_pointsn_points_final_grid
n_states
one_e_dm_and_grad_alpha_in_r
Needed by:
mu_average_prov
- elec_beta_num_grid_becke
File :
dft_utils_in_r/dm_in_r.irp.fdouble precision, allocatable :: elec_beta_num_grid_becke (N_states) double precision, allocatable :: elec_alpha_num_grid_becke (N_states) double precision, allocatable :: elec_num_grid_becke (N_states)
number of electrons when the one-e alpha/beta densities are numerically integrated on the DFT grid
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
final_grid_pointsn_points_final_grid
n_states
one_e_dm_and_grad_alpha_in_r
Needed by:
mu_average_prov
- elec_num_grid_becke
File :
dft_utils_in_r/dm_in_r.irp.fdouble precision, allocatable :: elec_beta_num_grid_becke (N_states) double precision, allocatable :: elec_alpha_num_grid_becke (N_states) double precision, allocatable :: elec_num_grid_becke (N_states)
number of electrons when the one-e alpha/beta densities are numerically integrated on the DFT grid
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
final_grid_pointsn_points_final_grid
n_states
one_e_dm_and_grad_alpha_in_r
Needed by:
mu_average_prov
- kinetic_density_generalized
File :
dft_utils_in_r/kin_dens.irp.fdouble precision, allocatable :: kinetic_density_generalized (n_points_final_grid)
Needs:
mo_nummos_grad_in_r_array_tranp
n_points_final_grid
one_e_dm_mo_for_dft
- mo_grad_ints
File :
dft_utils_in_r/ints_grad.irp.fdouble precision, allocatable :: mo_grad_ints (mo_num,mo_num,3)
mo_grad_ints(i,j,m) = <phi_i^MO | d/dx | phi_j^MO>
Needs:
final_grid_pointsmo_num
mos_grad_in_r_arraymos_in_r_array
n_points_final_grid
Needed by:
mo_grad_ints_transp
- mo_grad_ints_transp
File :
dft_utils_in_r/ints_grad.irp.fdouble precision, allocatable :: mo_grad_ints_transp (3,mo_num,mo_num)
mo_grad_ints(i,j,m) = <phi_i^MO | d/dx | phi_j^MO>
Needs:
mo_grad_ints
mo_num
- mos_grad_in_r_array
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_grad_in_r_array (mo_num,n_points_final_grid,3)
mos_grad_in_r_array(i,j,k) = value of the kth component of the gradient of ith mo on the jth grid point
mos_grad_in_r_array_transp(i,j,k) = value of the kth component of the gradient of jth mo on the ith grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
ao_numaos_grad_in_r_array
mo_coef_transpmo_num
n_points_final_grid
Needed by:
core_inact_act_mos_grad_in_r_arraymo_grad_ints
mos_grad_in_r_array_tranpmos_grad_in_r_array_transp_3
mos_grad_in_r_array_transp_bis
- mos_grad_in_r_array_tranp
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_grad_in_r_array_tranp (3,mo_num,n_points_final_grid)
mos_grad_in_r_array_transp(i,j,k) = value of the kth component of the gradient of jth mo on the ith grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
mo_num
mos_grad_in_r_array
n_points_final_grid
Needed by:
alpha_dens_kin_in_r
kinetic_density_generalized
- mos_grad_in_r_array_transp_3
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_grad_in_r_array_transp_3 (3,n_points_final_grid,mo_num)
Transposed gradients
Needs:
mo_num
mos_grad_in_r_array
n_points_final_grid
- mos_grad_in_r_array_transp_bis
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_grad_in_r_array_transp_bis (n_points_final_grid,mo_num,3)
Transposed gradients
Needs:
mo_num
mos_grad_in_r_array
n_points_final_grid
- mos_in_r_array
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_in_r_array (mo_num,n_points_final_grid)
mos_in_r_array(i,j) = value of the ith mo on the jth grid point
Needs:
ao_numfinal_grid_points
mo_coef_transpmo_num
n_points_final_grid
Needed by:
basis_mos_in_r_array
mo_grad_ints
- mos_in_r_array_omp
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_in_r_array_omp (mo_num,n_points_final_grid)
mos_in_r_array(i,j) = value of the ith mo on the jth grid point
Needs:
ao_numfinal_grid_points
mo_coef_transpmo_num
n_points_final_grid
Needed by:
f_hf_cholesky_sparsef_hf_cholesky_sparse_bis
mos_in_r_array_transpmos_times_cholesky_r1
mos_times_cholesky_r2on_top_hf_grid
- mos_in_r_array_transp
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_in_r_array_transp (n_points_final_grid,mo_num)
mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point
Needs:
mo_num
mos_in_r_array_omp
n_points_final_grid
Needed by:
act_mos_in_r_arraycore_inact_act_mos_in_r_array
core_mos_in_r_arrayinact_mos_in_r_array
virt_mos_in_r_array
- mos_lapl_in_r_array
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_lapl_in_r_array (mo_num,n_points_final_grid,3)
mos_lapl_in_r_array(i,j,k) = value of the kth component of the laplacian of ith mo on the jth grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
ao_numaos_lapl_in_r_array_transp
mo_coef_transpmo_num
n_points_final_grid
Needed by:
mos_lapl_in_r_array_tranp
- mos_lapl_in_r_array_tranp
File :
dft_utils_in_r/mo_in_r.irp.fdouble precision, allocatable :: mos_lapl_in_r_array_tranp (3,mo_num,n_points_final_grid)
mos_lapl_in_r_array_transp(i,j,k) = value of the kth component of the laplient of jth mo on the ith grid point
k = 1 : x, k= 2, y, k 3, z
Needs:
mo_num
mos_lapl_in_r_array
n_points_final_grid
- one_e_dm_and_grad_alpha_in_r
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
- one_e_dm_and_grad_beta_in_r
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
- one_e_grad_2_dm_alpha_at_r
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
- one_e_grad_2_dm_beta_at_r
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
- one_e_stuff_for_pbe
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
- scal_prod_grad_one_e_dm_ab
File :
dft_utils_in_r/dm_in_r.irp.fdouble 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) double precision, allocatable :: scal_prod_grad_one_e_dm_ab (n_points_final_grid,N_states) double precision, allocatable :: one_e_stuff_for_pbe (3,n_points_final_grid,N_states)
one_e_dm_and_grad_alpha_in_r(1,i,i_state) = ddx n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(2,i,i_state) = ddy n_alpha(r_i,istate)
one_e_dm_and_grad_alpha_in_r(3,i,i_state) = ddz 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) = (ddx n_alpha(r_i,istate))^2 + (ddy n_alpha(r_i,istate))^2 + (ddz n_alpha(r_i,istate))^2
scal_prod_grad_one_e_dm_ab(i,istate) = grad n_alpha(r_i) . grad n_beta(r_i)
where r_i is the ith point of the grid and istate is the state number
!!!!! WARNING !!!! if no_core_density = .True. then all core electrons are removed
Needs:
ao_numfinal_grid_points
n_points_final_gridn_states
one_e_dm_alpha_ao_for_dft
Needed by:
aos_sr_vc_alpha_lda_waos_sr_vxc_alpha_lda_waos_vc_alpha_lda_waos_vc_alpha_pbe_waos_vc_alpha_sr_pbe_waos_vxc_alpha_lda_w
aos_vxc_alpha_pbe_waos_vxc_alpha_sr_pbe_weffective_alpha_dmeffective_spin_dmelec_beta_num_grid_beckeenergy_c_lda
energy_c_sr_ldaenergy_x_ldaenergy_x_pbeenergy_x_sr_ldaenergy_x_sr_pbemu_average_prov
Subroutines / functions
- dens_grad_a_b_no_core_and_aos_grad_aos_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine dens_grad_a_b_no_core_and_aos_grad_aos_at_r(r,dm_a,dm_b, grad_dm_a, grad_dm_b, aos_array, grad_aos_array)
input:
r(1) ==> r(1) = x, r(2) = y, r(3) = z
output:
dm_a = alpha density evaluated at r without the core orbitals
dm_b = beta density evaluated at r without the core orbitals
aos_array(i) = ao(i) evaluated at r without the core orbitals
grad_dm_a(1) = X gradient of the alpha density evaluated in r without the core orbitals
grad_dm_a(1) = X gradient of the beta density evaluated in r without the core orbitals
grad_aos_array(1) = X gradient of the aos(i) evaluated at r
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft_no_core
Calls:
dsymv()
give_all_aos_and_grad_at_r()
- density_and_grad_alpha_beta:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine density_and_grad_alpha_beta(r,dm_a,dm_b, grad_dm_a, grad_dm_b)
input:
r(1) ==> r(1) = x, r(2) = y, r(3) = z
output:
dm_a = alpha density evaluated at r
dm_b = beta density evaluated at r
grad_dm_a(1) = X gradient of the alpha density evaluated in r
grad_dm_a(1) = X gradient of the beta density evaluated in r
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft
Called by:
mu_grad_rho_func()
Calls:
dsymv()
give_all_aos_and_grad_at_r()
- density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, grad_dm_a, grad_dm_b, aos_array, grad_aos_array)
input:
r(1) ==> r(1) = x, r(2) = y, r(3) = z
output:
dm_a = alpha density evaluated at r
dm_b = beta density evaluated at r
aos_array(i) = ao(i) evaluated at r
grad_dm_a(1) = X gradient of the alpha density evaluated in r
grad_dm_a(1) = X gradient of the beta density evaluated in r
grad_aos_array(1) = X gradient of the aos(i) evaluated at r
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft
Called by:
ec_md_on_top_pbe_mu_corrected()ecmd_pbe_ueg_at_r()
give_all_stuffs_in_r_for_lyp_88()
one_e_dm_and_grad_alpha_in_r
Calls:
dsymv()
give_all_aos_and_grad_at_r()
- density_and_grad_lapl_alpha_beta_and_all_aos_and_grad_aos_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine density_and_grad_lapl_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, grad_dm_a, grad_dm_b, lapl_dm_a, lapl_dm_b, aos_array, grad_aos_array, lapl_aos_array)
input:
r(1) ==> r(1) = x, r(2) = y, r(3) = z
output:
dm_a = alpha density evaluated at r
dm_b = beta density evaluated at r
aos_array(i) = ao(i) evaluated at r
grad_dm_a(1) = X gradient of the alpha density evaluated in r
grad_dm_a(1) = X gradient of the beta density evaluated in r
grad_aos_array(1) = X gradient of the aos(i) evaluated at r
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft
Calls:
dsymv()
give_all_aos_and_grad_and_lapl_at_r()
- dm_dft_alpha_beta_and_all_aos_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine dm_dft_alpha_beta_and_all_aos_at_r(r,dm_a,dm_b,aos_array)
input: r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r output : dm_b = beta density evaluated at r output : aos_array(i) = ao(i) evaluated at r
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft
Calls:
dsymv()
give_all_aos_at_r()
- dm_dft_alpha_beta_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine dm_dft_alpha_beta_at_r(r,dm_a,dm_b)
input: r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r(3) output : dm_b = beta density evaluated at r(3)
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft
Called by:
correction_to_on_top_from_ueg()mu_of_r_dft_average
mu_rsc_of_r
print_mos()
Calls:
dgemv()
give_all_aos_at_r()
- dm_dft_alpha_beta_no_core_at_r:
File :
dft_utils_in_r/dm_in_r_routines.irp.fsubroutine dm_dft_alpha_beta_no_core_at_r(r,dm_a,dm_b)
input: r(1) ==> r(1) = x, r(2) = y, r(3) = z output : dm_a = alpha density evaluated at r(3) without the core orbitals output : dm_b = beta density evaluated at r(3) without the core orbitals
Needs:
ao_num
n_states
one_e_dm_alpha_ao_for_dft_no_core
Calls:
dgemv()
give_all_aos_at_r()