|
CP2K 2.5 (Revision 12981)
|
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' |
Calculation of Overlap and Hamiltonian matrices in DFTB.
| 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 | ||
| ) |
Definition at line 652 of file qs_dftb_matrices.f90.
References qs_dftb_coulomb::build_dftb_coulomb(), CPPostcondition, error, qs_dftb_utils::get_dftb_atom_param(), qs_mo_types::get_mo_set(), qs_environment_types::get_qs_env(), input_section_types::section_vals_get_subs_vals(), and timings::timeset().
Referenced by qs_ks_methods::qs_ks_update_qs_env().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 | ||
| ) |
Definition at line 104 of file qs_dftb_matrices.f90.
References atprop_types::atprop_array_init(), dbcsr_util::convert_offsets_to_sizes(), cp_dbcsr_operations::cp_dbcsr_add_block_node(), cp_dbcsr_output::cp_dbcsr_write_sparse_matrix(), cp_output_handling::cp_p_file, CPPostcondition, gamma_rab_sr(), qs_dftb_utils::get_dftb_atom_param(), qs_neighbor_list_types::get_iterator_info(), qs_environment_types::get_qs_env(), getskz(), iptr, orbptr, setup_matrices(), timings::timeset(), turnsk(), urep_egr(), and virial_methods::virial_pair_force().
Referenced by qs_energy_utils::qs_energies_init_hamiltonians(), and qs_force::qs_forces().
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
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.
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.
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
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:| 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().
| INTEGER,parameter qs_dftb_matrices::max_extra = 9 |
Definition at line 85 of file qs_dftb_matrices.f90.
| INTEGER,parameter qs_dftb_matrices::max_inter = 5 |
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().
1.7.3