CP2K 2.5 (Revision 12981)
Functions | Variables

qs_dftb_matrices Namespace Reference

Calculation of Overlap and Hamiltonian matrices in DFTB. More...

Functions

subroutine, public build_dftb_matrices (qs_env, para_env, calculate_forces, error)
subroutine, public build_dftb_ks_matrix (ks_env, qs_env, ks_matrix, rho, energy, calculate_forces, just_energy, error)
subroutine setup_matrices (qs_env, calculate_forces, error)
subroutine getskz (slakotab, skpar, dx, ngrd, ngrdcut, dgrd, llm)
 Gets matrix elements on z axis, as they are stored in the tables.
subroutine interpol (slakotab, skpar, dx, ngrd, dgrd, llm, clgp)
subroutine extrapol (slakotab, skpar, dx, ngrd, dgrd, llm)
subroutine turnsk (mat, skab1, skab2, dxv, dx, lmaxa, lmaxb)
 Turn matrix element from z-axis to orientation of dxv.
subroutine polint (xa, ya, n, x, y, dy)
subroutine urep_egr (rv, r, erep, derep, n_urpoly, urep, spdim, s_cut, srep, spxr, scoeff, surr, dograd)
REAL(dp) gamma_rab_sr (r, ga, gb, sr_damp)
 Computes the short-range gamma parameter from exact Coulomb interaction of normalized exp(-a*r) charge distribution - 1/r.

Variables

INTEGER, dimension(16), parameter orbptr = (/ 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3 /)
INTEGER, parameter max_inter = 5
INTEGER, parameter max_extra = 9
REAL(dp), parameter slako_d0 = 1._dp
INTEGER, dimension(0:3, 0:3, 0:3, 0:3, 0:3) iptr
REAL(dp), parameter tol_gamma = 1.e-4_dp
REAL(dp), parameter rtiny = 1.e-10_dp
CHARACTER(len=*), parameter,
private 
moduleN = 'qs_dftb_matrices'

Detailed Description

Calculation of Overlap and Hamiltonian matrices in DFTB.

Author:
JGH

Function Documentation

subroutine,public qs_dftb_matrices::build_dftb_ks_matrix ( TYPE(qs_ks_env_type),pointer  ks_env,
TYPE(qs_environment_type),pointer  qs_env,
TYPE(cp_dbcsr_p_type),dimension(:),pointer  ks_matrix,
TYPE(qs_rho_type),pointer  rho,
TYPE(qs_energy_type),pointer  energy,
LOGICAL,intent(in)  calculate_forces,
LOGICAL,intent(in)  just_energy,
TYPE(cp_error_type),intent(inout)  error 
)
subroutine,public qs_dftb_matrices::build_dftb_matrices ( TYPE(qs_environment_type),pointer  qs_env,
TYPE(cp_para_env_type),pointer  para_env,
LOGICAL,intent(in)  calculate_forces,
TYPE(cp_error_type),intent(inout)  error 
)
subroutine qs_dftb_matrices::extrapol ( REAL(dp),dimension(:,:),intent(in)  slakotab,
REAL(dp),dimension(llm),intent(out)  skpar,
REAL(dp),intent(in)  dx,
INTEGER,intent(in)  ngrd,
REAL(dp),intent(in)  dgrd,
INTEGER,intent(in)  llm 
) [private]

Definition at line 985 of file qs_dftb_matrices.f90.

References polint(), and slako_d0.

Referenced by getskz().

Here is the call graph for this function:

Here is the caller graph for this function:

REAL(dp) qs_dftb_matrices::gamma_rab_sr ( REAL(dp),intent(in)  r,
REAL(dp),intent(in)  ga,
REAL(dp),intent(in)  gb,
LOGICAL,intent(in)  sr_damp 
) [private]

Computes the short-range gamma parameter from exact Coulomb interaction of normalized exp(-a*r) charge distribution - 1/r.

Literature
Elstner et al, PRB 58 (1998) 7260
Version:
1.1
HIstory
10.2008 Axel Kohlmeyer - adding sr_damp

Definition at line 1553 of file qs_dftb_matrices.f90.

References rtiny, and tol_gamma.

Referenced by build_dftb_matrices().

Here is the caller graph for this function:

subroutine qs_dftb_matrices::getskz ( REAL(dp),dimension(:,:),intent(in)  slakotab,
REAL(dp),dimension(llm),intent(out)  skpar,
REAL(dp),intent(in)  dx,
INTEGER,intent(in)  ngrd,
INTEGER,intent(in)  ngrdcut,
REAL(dp),intent(in)  dgrd,
INTEGER,intent(in)  llm 
) [private]

Gets matrix elements on z axis, as they are stored in the tables.

Author:
07. Feb. 2004, TH

Definition at line 918 of file qs_dftb_matrices.f90.

References extrapol(), and interpol().

Referenced by build_dftb_matrices().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine qs_dftb_matrices::interpol ( REAL(dp),dimension(:,:),intent(in)  slakotab,
REAL(dp),dimension(llm),intent(out)  skpar,
REAL(dp),intent(in)  dx,
INTEGER,intent(in)  ngrd,
REAL(dp),intent(in)  dgrd,
INTEGER,intent(in)  llm,
INTEGER,intent(in)  clgp 
) [private]

Definition at line 955 of file qs_dftb_matrices.f90.

References polint().

Referenced by getskz().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine qs_dftb_matrices::polint ( REAL(dp),dimension(n),intent(in)  xa,
REAL(dp),dimension(n),intent(in)  ya,
INTEGER,intent(in)  n,
REAL(dp),intent(in)  x,
REAL(dp),intent(out)  y,
REAL(dp),intent(out)  dy 
) [private]

Definition at line 1393 of file qs_dftb_matrices.f90.

Referenced by extrapol(), and interpol().

Here is the caller graph for this function:

subroutine qs_dftb_matrices::setup_matrices ( TYPE(qs_environment_type),pointer  qs_env,
LOGICAL  calculate_forces,
TYPE(cp_error_type),intent(inout)  error 
) [private]

Definition at line 798 of file qs_dftb_matrices.f90.

References dbcsr_util::convert_offsets_to_sizes(), CPPostcondition, particle_types::get_particle_set(), and qs_environment_types::get_qs_env().

Referenced by build_dftb_matrices().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine qs_dftb_matrices::turnsk ( REAL(dp),dimension(:,:),intent(inout)  mat,
REAL(dp),dimension(:),intent(in)  skab1,
REAL(dp),dimension(:),intent(in)  skab2,
REAL(dp),dimension(3),intent(in)  dxv,
REAL(dp),intent(in)  dx,
INTEGER,intent(in)  lmaxa,
INTEGER,intent(in)  lmaxb 
) [private]

Turn matrix element from z-axis to orientation of dxv.

Author:
TH
Date:
13. Jan 2004
Notes
These routines are taken from an old TB code (unknown to TH). They are highly optimised and taken because they are time critical. They are explicit, so not recursive, and work up to d functions.

Set variables necessary for rotation of matrix elements

r_i^2/r, replicated in rr2(4:6) for index convenience later r_i/r, direction vector, rr(4:6) are replicated from 1:3 lmax of A and B

Version:
1.0

Definition at line 1038 of file qs_dftb_matrices.f90.

References iptr, skdd(), skpd(), skpp(), sksd(), sksp(), and skss().

Referenced by build_dftb_matrices().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine qs_dftb_matrices::urep_egr ( REAL(dp),dimension(3),intent(in)  rv,
REAL(dp),intent(in)  r,
REAL(dp),intent(inout)  erep,
REAL(dp),dimension(3),intent(inout)  derep,
INTEGER,intent(in)  n_urpoly,
REAL(dp),dimension(:),intent(in)  urep,
INTEGER,intent(in)  spdim,
REAL(dp),intent(in)  s_cut,
REAL(dp),dimension(3),intent(in)  srep,
REAL(dp),dimension(:,:),pointer  spxr,
REAL(dp),dimension(:,:),pointer  scoeff,
REAL(dp),dimension(2),intent(in)  surr,
LOGICAL,intent(in)  dograd 
) [private]

Definition at line 1444 of file qs_dftb_matrices.f90.

References rtiny.

Referenced by build_dftb_matrices().

Here is the caller graph for this function:


Variable Documentation

INTEGER,dimension(0:3,0:3,0:3,0:3,0:3) qs_dftb_matrices::iptr

Definition at line 89 of file qs_dftb_matrices.f90.

Referenced by build_dftb_matrices(), and turnsk().

Definition at line 85 of file qs_dftb_matrices.f90.

Definition at line 83 of file qs_dftb_matrices.f90.

CHARACTER(len=*),parameter,private qs_dftb_matrices::moduleN = 'qs_dftb_matrices'

Definition at line 97 of file qs_dftb_matrices.f90.

INTEGER,dimension(16),parameter qs_dftb_matrices::orbptr = (/ 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3 /)

Definition at line 79 of file qs_dftb_matrices.f90.

Referenced by build_dftb_matrices().

REAL(dp),parameter qs_dftb_matrices::rtiny = 1.e-10_dp

Definition at line 93 of file qs_dftb_matrices.f90.

Referenced by gamma_rab_sr(), and urep_egr().

REAL(dp),parameter qs_dftb_matrices::slako_d0 = 1._dp

Definition at line 87 of file qs_dftb_matrices.f90.

Referenced by extrapol().

REAL(dp),parameter qs_dftb_matrices::tol_gamma = 1.e-4_dp

Definition at line 91 of file qs_dftb_matrices.f90.

Referenced by gamma_rab_sr().