![]() |
(git:936074a)
|
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 393 of file qs_core_matrices.F.