(git:15c1bfc)
Loading...
Searching...
No Matches
qs_core_matrices Module Reference

Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions. More...

Functions/Subroutines

subroutine, public core_matrices (qs_env, matrix_h, matrix_p, calculate_forces, nder, ec_env, dcdr_env, ec_env_matrices, basis_type, debug_forces, debug_stress, atcore)
 ...
 
subroutine, public kinetic_energy_matrix (qs_env, matrixkp_t, matrix_t, matrix_p, matrix_name, calculate_forces, nderivative, sab_orb, eps_filter, basis_type, debug_forces, debug_stress)
 Calculate kinetic energy matrix and possible relativistic correction.
 

Detailed Description

Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions.

Nuclear potential energy:

a) Allelectron calculation:

                erfc(r)

<a|V|b> = -Z*<a|------—|b> r

1 - erf(r) = -Z*<a|---------—|b> r

1 erf(r) = -Z*(<a|—|b> - <a|-----—|b>) r r

1 = -Z*(<a|—|b> - N*<ab||c>) r

-Z = <a|—|b> + Z*N*<ab||c> r _______/ _____/ | | nuclear coulomb

b) Pseudopotential calculation (Goedecker, Teter and Hutter; GTH):

<a|V|b> = <a|(V(local) + V(non-local))|b>

    = <a|(V(local)|b> + <a|V(non-local))|b>

<a|V(local)|b> = <a|-Z(eff)*erf(SQRT(2)*alpha*r)/r + (C1 + C2*(alpha*r)**2 + C3*(alpha*r)**4 + C4*(alpha*r)**6)*exp(-(alpha*r)**2/2))|b>

<a|V(non-local)|b> = <a|p(l,i)>h(i,j)<p(l,j)|b>

Literature
S. Goedecker, M. Teter and J. Hutter, Phys. Rev. B 54, 1703 (1996) C. Hartwigsen, S. Goedecker and J. Hutter, Phys. Rev. B 58, 3641 (1998) M. Krack and M. Parrinello, Phys. Chem. Chem. Phys. 2, 2105 (2000) S. Obara and A. Saika, J. Chem. Phys. 84, 3963 (1986)
History
  • Joost VandeVondele (April 2003) : added LSD forces
  • Non-redundant calculation of the non-local part of the GTH PP (22.05.2003,MK)
  • New parallelization scheme (27.06.2003,MK)
  • OpenMP version (07.12.2003,JGH)
  • Binary search loop for VPPNL operators (09.01.2004,JGH,MK)
  • Refactoring of pseudopotential and nuclear attraction integrals (25.02.2009,JGH)
  • General refactoring (01.10.2010,JGH)
  • Refactoring related to the new kinetic energy and overlap routines (07.2014,JGH)
  • k-point functionality (07.2015,JGH)
  • Refactor for PP functionality (08.2025,JGH)
Author
Matthias Krack (14.09.2000,21.03.02)

Function/Subroutine Documentation

◆ core_matrices()

subroutine, public qs_core_matrices::core_matrices ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), pointer  matrix_h,
type(dbcsr_p_type), dimension(:, :), pointer  matrix_p,
logical, intent(in)  calculate_forces,
integer, intent(in)  nder,
type(energy_correction_type), optional, pointer  ec_env,
type(dcdr_env_type), optional  dcdr_env,
logical, intent(in), optional  ec_env_matrices,
character(len=*), optional  basis_type,
logical, intent(in), optional  debug_forces,
logical, intent(in), optional  debug_stress,
real(kind=dp), dimension(:), optional  atcore 
)

...

Parameters
qs_env...
matrix_h...
matrix_p...
calculate_forces...
nder...
ec_env...
dcdr_env...
ec_env_matrices...
basis_type...
debug_forces...
debug_stress...
atcore...

Definition at line 140 of file qs_core_matrices.F.

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

◆ kinetic_energy_matrix()

subroutine, public qs_core_matrices::kinetic_energy_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), optional, pointer  matrixkp_t,
type(dbcsr_p_type), dimension(:), optional, pointer  matrix_t,
type(dbcsr_p_type), dimension(:, :), optional, pointer  matrix_p,
character(len=*), intent(in), optional  matrix_name,
logical, intent(in)  calculate_forces,
integer, intent(in), optional  nderivative,
type(neighbor_list_set_p_type), dimension(:), optional, pointer  sab_orb,
real(kind=dp), intent(in), optional  eps_filter,
character(len=*), optional  basis_type,
logical, intent(in), optional  debug_forces,
logical, intent(in), optional  debug_stress 
)

Calculate kinetic energy matrix and possible relativistic correction.

Parameters
qs_env...
matrixkp_t...
matrix_t...
matrix_p...
matrix_name...
calculate_forces...
nderivative...
sab_orb...
eps_filter...
basis_type...
debug_forces...
debug_stress...
Author
Creation (21.08.2025,JGH)

Definition at line 387 of file qs_core_matrices.F.

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