![]() |
(git:15c1bfc)
|
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. | |
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>
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 | ||
) |
...
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.
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.
qs_env | ... |
matrixkp_t | ... |
matrix_t | ... |
matrix_p | ... |
matrix_name | ... |
calculate_forces | ... |
nderivative | ... |
sab_orb | ... |
eps_filter | ... |
basis_type | ... |
debug_forces | ... |
debug_stress | ... |
Definition at line 387 of file qs_core_matrices.F.