(git:f2099e5)
Loading...
Searching...
No Matches
qs_integrate_potential_product Module Reference

Build up the plane wave density by collocating the primitive Gaussian functions (pgf). More...

Functions/Subroutines

subroutine, public integrate_v_dbasis (v_rspace, matrix_vhxc_dbasis, matrix_p, qs_env, lambda)
 Integrate a potential v_rspace over the derivatives of the basis functions < da/dR | V | b > + < a | V | db/dR > Adapted from the old version of integrate_v_rspace (ED).
subroutine, public integrate_v_rspace (v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env, calculate_forces, force_adm, compute_tau, gapw, basis_type, pw_env_external, task_list_external)
 computes matrix elements corresponding to a given potential If compute_tau hmat(\mu,\nu) = \int v_rspace(r)\nabla\mu(r)\cdot\nabla\nu(r) dr else hmat(\mu,\nu) = \int v_rspace(r)\mu(r)\nu(r) dr

Detailed Description

Build up the plane wave density by collocating the primitive Gaussian functions (pgf).

History
Joost VandeVondele (02.2002) 1) rewrote collocate_pgf for increased accuracy and speed 2) collocate_core hack for PGI compiler 3) added multiple grid feature 4) new way to go over the grid Joost VandeVondele (05.2002) 1) prelim. introduction of the real space grid type JGH [30.08.02] multigrid arrays independent from potential JGH [17.07.03] distributed real space code JGH [23.11.03] refactoring and new loop ordering JGH [04.12.03] OpneMP parallelization of main loops Joost VandeVondele (12.2003) 1) modified to compute tau Joost removed incremental build feature Joost introduced map consistent Rewrote grid integration/collocation routines, [Joost VandeVondele,03.2007] JGH [26.06.15] modification to allow for k-points
Author
Matthias Krack (03.04.2001)

Function/Subroutine Documentation

◆ integrate_v_dbasis()

subroutine, public qs_integrate_potential_product::integrate_v_dbasis ( type(pw_r3d_rs_type), intent(in) v_rspace,
type(dbcsr_p_type), dimension(:), pointer matrix_vhxc_dbasis,
type(dbcsr_type), pointer matrix_p,
type(qs_environment_type), pointer qs_env,
integer, intent(in) lambda )

Integrate a potential v_rspace over the derivatives of the basis functions < da/dR | V | b > + < a | V | db/dR > Adapted from the old version of integrate_v_rspace (ED).

Parameters
v_rspace...
matrix_vhxc_dbasis...
matrix_p...
qs_env...
lambdaThe atom index.

Definition at line 108 of file qs_integrate_potential_product.F.

Here is the call graph for this function:

◆ integrate_v_rspace()

subroutine, public qs_integrate_potential_product::integrate_v_rspace ( type(pw_r3d_rs_type), intent(in) v_rspace,
type(dbcsr_p_type), intent(inout), optional hmat,
type(dbcsr_p_type), dimension(:), optional, pointer hmat_kp,
type(dbcsr_p_type), intent(in), optional pmat,
type(dbcsr_p_type), dimension(:), optional, pointer pmat_kp,
type(qs_environment_type), pointer qs_env,
logical, intent(in) calculate_forces,
real(kind=dp), intent(in), optional force_adm,
logical, intent(in), optional compute_tau,
logical, intent(in), optional gapw,
character(len=*), intent(in), optional basis_type,
type(pw_env_type), optional, pointer pw_env_external,
type(task_list_type), optional, pointer task_list_external )

computes matrix elements corresponding to a given potential If compute_tau hmat(\mu,\nu) = \int v_rspace(r)\nabla\mu(r)\cdot\nabla\nu(r) dr else hmat(\mu,\nu) = \int v_rspace(r)\mu(r)\nu(r) dr

Parameters
v_rspacePotential in real space
hmatMatrix to write the result
hmat_kp...
pmatInput density matrix, not used in the calculation but the screening. See note below.
pmat_kp...
qs_env...
calculate_forces...
force_admoptional scaling of force
compute_tau...
gapw...
basis_type...
pw_env_external...
task_list_external...
History
IAB (29-Apr-2010): Added OpenMP parallelisation to task loop (c) The Numerical Algorithms Group (NAG) Ltd, 2010 on behalf of the HECToR project Some refactoring, get priorities for options correct (JGH, 04.2014) Added options to allow for k-points For a smooth transition we allow for old and new (vector) matrices (hmat, pmat) (JGH, 06.2015)
Note
integrates a given potential (or other object on a real space grid) = v_rspace using a multi grid technique (mgrid_*) over the basis set producing a number for every element of h (should have the same sparsity structure of S) additional screening is available using the magnitude of the elements in p (? I'm not sure this is a very good idea) this argument is optional derivatives of these matrix elements with respect to the ionic coordinates can be computed as well

Definition at line 582 of file qs_integrate_potential_product.F.

Here is the call graph for this function: