(git:6a2e663)
mp2_eri_gpw Module Reference

Routines to calculate 2c- and 3c-integrals for RI with GPW. More...

Functions/Subroutines

subroutine, public mp2_eri_3c_integrate_gpw (mo_coeff, psi_L, rho_g, atomic_kind_set, qs_kind_set, cell, dft_control, particle_set, pw_env_sub, external_vector, poisson_env, rho_r, pot_g, potential_parameter, mat_munu, qs_env, task_list_sub)
 ... More...
 
subroutine, public mp2_eri_2c_integrate_gpw (qs_env, para_env_sub, my_group_L_start, my_group_L_end, natom, potential_parameter, sab_orb_sub, L_local_col, kind_of)
 Integrates the potential of an RI function. More...
 
subroutine, public integrate_potential_forces_2c (rho_r, LLL, matrix, rho_g, atomic_kind_set, qs_kind_set, particle_set, cell, pw_env_sub, poisson_env, pot_g, potential_parameter, use_virial, rho_g_copy, dvg, kind_of, atom_of_kind, G_PQ_local, force, h_stress, para_env_sub, dft_control, psi_L, factor)
 Integrates the potential of a RI function obtaining the forces and stress tensor. More...
 
subroutine, public integrate_potential_forces_3c_1c (mat_munu, rho_r, matrix_P_munu, qs_env, pw_env_sub, task_list_sub)
 Takes the precomputed potential of an RI wave-function and determines matrix element and gradients with product of Gaussians. More...
 
subroutine, public integrate_potential_forces_3c_2c (matrix_P_munu, rho_r, rho_g, task_list_sub, pw_env_sub, potential_parameter, ks_env, poisson_env, pot_g, use_virial, rho_g_copy, dvg, h_stress, para_env_sub, kind_of, atom_of_kind, qs_kind_set, particle_set, cell, LLL, force, dft_control)
 Integrates potential of two Gaussians to a potential. More...
 
subroutine, public virial_gpw_potential (rho_g_copy, pot_g, rho_g, dvg, h_stress, potential_parameter, para_env_sub)
 Calculates stress tensor contribution from the operator. More...
 
subroutine, public prepare_gpw (qs_env, dft_control, e_cutoff_old, cutoff_old, relative_cutoff_old, para_env_sub, pw_env_sub, auxbas_pw_pool, poisson_env, task_list_sub, rho_r, rho_g, pot_g, psi_L, sab_orb_sub)
 Prepares GPW calculation for RI-MP2/RI-RPA. More...
 
subroutine, public cleanup_gpw (qs_env, e_cutoff_old, cutoff_old, relative_cutoff_old, para_env_sub, pw_env_sub, task_list_sub, auxbas_pw_pool, rho_r, rho_g, pot_g, psi_L)
 Cleanup GPW integration for RI-MP2/RI-RPA. More...
 
subroutine, public calc_potential_gpw (pot_r, rho_g, poisson_env, pot_g, potential_parameter, dvg, no_transfer)
 Calculates potential from a given density in g-space. More...
 

Detailed Description

Routines to calculate 2c- and 3c-integrals for RI with GPW.

History
07.2019 separated from mp2_integrals.F [Frederick Stein]

Function/Subroutine Documentation

◆ mp2_eri_3c_integrate_gpw()

subroutine, public mp2_eri_gpw::mp2_eri_3c_integrate_gpw ( type(cp_fm_type), intent(in)  mo_coeff,
type(pw_r3d_rs_type), intent(inout)  psi_L,
type(pw_c1d_gs_type), intent(inout)  rho_g,
type(atomic_kind_type), dimension(:), intent(in), pointer  atomic_kind_set,
type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(cell_type), intent(in), pointer  cell,
type(dft_control_type), intent(in), pointer  dft_control,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(pw_env_type), intent(in), pointer  pw_env_sub,
real(kind=dp), dimension(:), intent(in)  external_vector,
type(pw_poisson_type), intent(in), pointer  poisson_env,
type(pw_r3d_rs_type), intent(inout)  rho_r,
type(pw_c1d_gs_type), intent(inout)  pot_g,
type(libint_potential_type), intent(in)  potential_parameter,
type(dbcsr_p_type), intent(inout)  mat_munu,
type(qs_environment_type), intent(in), pointer  qs_env,
type(task_list_type), intent(in), pointer  task_list_sub 
)

...

Parameters
mo_coeff...
psi_L...
rho_g...
atomic_kind_set...
qs_kind_set...
cell...
dft_control...
particle_set...
pw_env_sub...
external_vector...
poisson_env...
rho_r...
pot_g...
potential_parameter...
mat_munu...
qs_env...
task_list_sub...

Definition at line 107 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mp2_eri_2c_integrate_gpw()

subroutine, public mp2_eri_gpw::mp2_eri_2c_integrate_gpw ( type(qs_environment_type), intent(in), pointer  qs_env,
type(mp_para_env_type), intent(in), pointer  para_env_sub,
integer, intent(in)  my_group_L_start,
integer, intent(in)  my_group_L_end,
integer, intent(in)  natom,
type(libint_potential_type), intent(in)  potential_parameter,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sab_orb_sub,
real(kind=dp), dimension(:, :), intent(out)  L_local_col,
integer, dimension(:), intent(in)  kind_of 
)

Integrates the potential of an RI function.

Parameters
qs_env...
para_env_sub...
my_group_L_start...
my_group_L_end...
natom...
potential_parameter...
sab_orb_sub...
L_local_col...
kind_of...

Definition at line 168 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ integrate_potential_forces_2c()

subroutine, public mp2_eri_gpw::integrate_potential_forces_2c ( type(pw_r3d_rs_type), intent(inout)  rho_r,
integer, intent(in)  LLL,
type(cp_fm_type), intent(in)  matrix,
type(pw_c1d_gs_type), intent(inout)  rho_g,
type(atomic_kind_type), dimension(:), intent(in), pointer  atomic_kind_set,
type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(cell_type), intent(in), pointer  cell,
type(pw_env_type), intent(in), pointer  pw_env_sub,
type(pw_poisson_type), intent(in), pointer  poisson_env,
type(pw_c1d_gs_type), intent(inout)  pot_g,
type(libint_potential_type), intent(in)  potential_parameter,
logical, intent(in)  use_virial,
type(pw_c1d_gs_type), intent(inout)  rho_g_copy,
type(pw_c1d_gs_type), dimension(3), intent(inout)  dvg,
integer, dimension(:), intent(in)  kind_of,
integer, dimension(:), intent(in)  atom_of_kind,
real(kind=dp), dimension(:), intent(in)  G_PQ_local,
type(qs_force_type), dimension(:), intent(in), pointer  force,
real(kind=dp), dimension(3, 3), intent(inout)  h_stress,
type(mp_para_env_type), intent(in)  para_env_sub,
type(dft_control_type), intent(in), pointer  dft_control,
type(pw_r3d_rs_type), intent(inout)  psi_L,
real(kind=dp), intent(in)  factor 
)

Integrates the potential of a RI function obtaining the forces and stress tensor.

Parameters
rho_r...
LLL...
matrix...
rho_g...
atomic_kind_set...
qs_kind_set...
particle_set...
cell...
pw_env_sub...
poisson_env...
pot_g...
potential_parameter...
use_virial...
rho_g_copy...
dvg...
kind_of...
atom_of_kind...
G_PQ_local...
force...
h_stress...
para_env_sub...
dft_control...
psi_L...
factor...

Definition at line 378 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ integrate_potential_forces_3c_1c()

subroutine, public mp2_eri_gpw::integrate_potential_forces_3c_1c ( type(dbcsr_p_type), intent(inout)  mat_munu,
type(pw_r3d_rs_type), intent(in)  rho_r,
type(dbcsr_p_type), intent(in)  matrix_P_munu,
type(qs_environment_type), intent(in), pointer  qs_env,
type(pw_env_type), intent(in), pointer  pw_env_sub,
type(task_list_type), intent(inout), pointer  task_list_sub 
)

Takes the precomputed potential of an RI wave-function and determines matrix element and gradients with product of Gaussians.

Parameters
mat_munu...
rho_r...
matrix_P_munu...
qs_env...
pw_env_sub...
task_list_sub...

Definition at line 470 of file mp2_eri_gpw.F.

Here is the caller graph for this function:

◆ integrate_potential_forces_3c_2c()

subroutine, public mp2_eri_gpw::integrate_potential_forces_3c_2c ( type(dbcsr_p_type), intent(in)  matrix_P_munu,
type(pw_r3d_rs_type), intent(inout)  rho_r,
type(pw_c1d_gs_type), intent(inout)  rho_g,
type(task_list_type), intent(in), pointer  task_list_sub,
type(pw_env_type), intent(in), pointer  pw_env_sub,
type(libint_potential_type), intent(in)  potential_parameter,
type(qs_ks_env_type), intent(in), pointer  ks_env,
type(pw_poisson_type), intent(in), pointer  poisson_env,
type(pw_c1d_gs_type), intent(inout)  pot_g,
logical, intent(in)  use_virial,
type(pw_c1d_gs_type), intent(inout)  rho_g_copy,
type(pw_c1d_gs_type), dimension(3), intent(in)  dvg,
real(kind=dp), dimension(3, 3), intent(inout)  h_stress,
type(mp_para_env_type), intent(in)  para_env_sub,
integer, dimension(:), intent(in)  kind_of,
integer, dimension(:), intent(in)  atom_of_kind,
type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(cell_type), intent(in), pointer  cell,
integer, intent(in)  LLL,
type(qs_force_type), dimension(:), intent(in), pointer  force,
type(dft_control_type), intent(in), pointer  dft_control 
)

Integrates potential of two Gaussians to a potential.

Parameters
matrix_P_munu...
rho_r...
rho_g...
task_list_sub...
pw_env_sub...
potential_parameter...
ks_env...
poisson_env...
pot_g...
use_virial...
rho_g_copy...
dvg...
h_stress...
para_env_sub...
kind_of...
atom_of_kind...
qs_kind_set...
particle_set...
cell...
LLL...
force...
dft_control...

Definition at line 522 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ virial_gpw_potential()

subroutine, public mp2_eri_gpw::virial_gpw_potential ( type(pw_c1d_gs_type), intent(in)  rho_g_copy,
type(pw_c1d_gs_type), intent(in)  pot_g,
type(pw_c1d_gs_type), intent(inout)  rho_g,
type(pw_c1d_gs_type), dimension(3), intent(in)  dvg,
real(kind=dp), dimension(3, 3), intent(inout)  h_stress,
type(libint_potential_type), intent(in)  potential_parameter,
type(mp_para_env_type), intent(in)  para_env_sub 
)

Calculates stress tensor contribution from the operator.

Parameters
rho_g_copy...
pot_g...
rho_g...
dvg...
h_stress...
potential_parameter...
para_env_sub...

Definition at line 720 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare_gpw()

subroutine, public mp2_eri_gpw::prepare_gpw ( type(qs_environment_type), intent(in), pointer  qs_env,
type(dft_control_type), intent(in), pointer  dft_control,
real(kind=dp), dimension(:), intent(out), allocatable  e_cutoff_old,
real(kind=dp), intent(out)  cutoff_old,
real(kind=dp), intent(out)  relative_cutoff_old,
type(mp_para_env_type), intent(in), pointer  para_env_sub,
type(pw_env_type), pointer  pw_env_sub,
type(pw_pool_type), intent(in), pointer  auxbas_pw_pool,
type(pw_poisson_type), intent(in), pointer  poisson_env,
type(task_list_type), pointer  task_list_sub,
type(pw_r3d_rs_type), intent(out)  rho_r,
type(pw_c1d_gs_type), intent(out)  rho_g,
type(pw_c1d_gs_type), intent(out)  pot_g,
type(pw_r3d_rs_type), intent(out)  psi_L,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sab_orb_sub 
)

Prepares GPW calculation for RI-MP2/RI-RPA.

Parameters
qs_env...
dft_control...
e_cutoff_old...
cutoff_old...
relative_cutoff_old...
para_env_sub...
pw_env_sub...
auxbas_pw_pool...
poisson_env...
task_list_sub...
rho_r...
rho_g...
pot_g...
psi_L...
sab_orb_sub...

Definition at line 965 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cleanup_gpw()

subroutine, public mp2_eri_gpw::cleanup_gpw ( type(qs_environment_type), intent(in), pointer  qs_env,
real(kind=dp), dimension(:), intent(in), allocatable  e_cutoff_old,
real(kind=dp), intent(in)  cutoff_old,
real(kind=dp), intent(in)  relative_cutoff_old,
type(mp_para_env_type), intent(in)  para_env_sub,
type(pw_env_type), pointer  pw_env_sub,
type(task_list_type), pointer  task_list_sub,
type(pw_pool_type), intent(in), pointer  auxbas_pw_pool,
type(pw_r3d_rs_type), intent(inout)  rho_r,
type(pw_c1d_gs_type), intent(inout)  rho_g,
type(pw_c1d_gs_type), intent(inout)  pot_g,
type(pw_r3d_rs_type), intent(inout)  psi_L 
)

Cleanup GPW integration for RI-MP2/RI-RPA.

Parameters
qs_env...
e_cutoff_old...
cutoff_old...
relative_cutoff_old...
para_env_sub...
pw_env_sub...
task_list_sub...
auxbas_pw_pool...
rho_r...
rho_g...
pot_g...
psi_L...

Definition at line 1058 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calc_potential_gpw()

subroutine, public mp2_eri_gpw::calc_potential_gpw ( type(pw_r3d_rs_type), intent(inout)  pot_r,
type(pw_c1d_gs_type), intent(in)  rho_g,
type(pw_poisson_type), intent(in), pointer  poisson_env,
type(pw_c1d_gs_type), intent(inout)  pot_g,
type(libint_potential_type), intent(in), optional  potential_parameter,
type(pw_c1d_gs_type), dimension(3), intent(inout), optional  dvg,
logical, intent(in), optional  no_transfer 
)

Calculates potential from a given density in g-space.

Parameters
pot_ron output: potential in r space
rho_gon input: rho in g space
poisson_env...
pot_gon output: potential in g space
potential_parameterPotential parameters, if not provided, assume Coulomb potential
dvgin output: first derivatives of the corresponding Coulomb potential
no_transferwhether NOT to transform potential from g-space to r-space (default: do it)

Definition at line 1109 of file mp2_eri_gpw.F.

Here is the call graph for this function:
Here is the caller graph for this function: