![]() |
(git:b77b4be)
|
Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions. More...
Functions/Subroutines | |
subroutine, public | build_core_hamiltonian_matrix (qs_env, calculate_forces) |
Cosntruction of the QS Core Hamiltonian Matrix. | |
subroutine, public | core_matrices (qs_env, matrix_h, matrix_p, calculate_forces, nder, atcore) |
... | |
subroutine, public | dump_info_core_hamiltonian (qs_env, calculate_forces) |
Possibly prints matrices after the construction of the Core Hamiltonian Matrix. | |
subroutine, public | qs_matrix_h_allocate_imag_from_real (qs_env) |
(Re-)allocates matrix_h_im from matrix_h | |
Calculation of the core Hamiltonian integral matrix <a|H|b> over Cartesian Gaussian-type functions.
<a|H|b> = <a|T|b> + <a|V|b>
Kinetic energy:
<a|T|b> = <a|-nabla**2/2|b> _______________/ | kinetic
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_hamiltonian::build_core_hamiltonian_matrix | ( | type(qs_environment_type), pointer | qs_env, |
logical, intent(in) | calculate_forces | ||
) |
Cosntruction of the QS Core Hamiltonian Matrix.
qs_env | ... |
calculate_forces | ... |
Definition at line 156 of file qs_core_hamiltonian.F.
subroutine, public qs_core_hamiltonian::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, | ||
real(kind=dp), dimension(:), optional | atcore | ||
) |
...
qs_env | ... |
matrix_h | ... |
matrix_p | ... |
calculate_forces | ... |
nder | ... |
atcore | ... |
Definition at line 417 of file qs_core_hamiltonian.F.
subroutine, public qs_core_hamiltonian::dump_info_core_hamiltonian | ( | type(qs_environment_type), pointer | qs_env, |
logical, intent(in) | calculate_forces | ||
) |
Possibly prints matrices after the construction of the Core Hamiltonian Matrix.
qs_env | ... |
calculate_forces | ... |
Definition at line 569 of file qs_core_hamiltonian.F.
subroutine, public qs_core_hamiltonian::qs_matrix_h_allocate_imag_from_real | ( | type(qs_environment_type) | qs_env | ) |
(Re-)allocates matrix_h_im from matrix_h
qs_env | ... |
Definition at line 752 of file qs_core_hamiltonian.F.