![]() |
(git:c28f603)
|
Localization methods such as 2x2 Jacobi rotations Steepest Decents Conjugate Gradient. More...
Functions/Subroutines | |
| subroutine, public | approx_l1_norm_sd (c, iterations, eps, converged, sweeps) |
| ... | |
| subroutine, public | initialize_weights (cell, weights) |
| ... | |
| subroutine, public | jacobi_rotations (weights, zij, vectors, para_env, max_iter, eps_localization, sweeps, out_each, target_time, start_time, restricted) |
| wrapper for the jacobi routines, should be removed if jacobi_rot_para can deal with serial para_envs. | |
| subroutine, public | jacobi_cg_edf_ls (para_env, weights, zij, vectors, max_iter, eps_localization, iter, out_each, nextra, do_cg, nmo, vectors_2, mos_guess) |
| combine jacobi rotations (serial) and conjugate gradient with golden section line search for partially occupied wannier functions | |
| subroutine, public | rotate_orbitals (rmat, vectors) |
| ... | |
| subroutine, public | crazy_rotations (weights, zij, vectors, max_iter, max_crazy_angle, crazy_scale, crazy_use_diag, eps_localization, iterations, converged) |
| yet another crazy try, computes the angles needed to rotate the orbitals first and rotates them all at the same time (hoping for the best of course) | |
| subroutine, public | direct_mini (weights, zij, vectors, max_iter, eps_localization, iterations) |
| use the exponential parametrization as described in to perform a direct mini Gerd Berghold et al. PRB 61 (15), pag. 10040 (2000) none of the input is modified for the time being, just finds the rotations that minimizes, and throws it away afterwards :-) apart from being expensive and not cleaned, this works fine useful to try different spread functionals | |
| subroutine, public | zij_matrix (vectors, op_sm_set, zij_fm_set) |
| ... | |
| subroutine, public | scdm_qrfact (vectors) |
| ... | |
| subroutine, public | cardoso_souloumiac (weights, zij, max_iter, eps_localization, sweeps, out_each, vectors) |
| Achieves minimisation of the spread functional by simultaneous diagonalisation with Jacobi rotations as presented in Cardoso & Souloumiac, SIAM J. Matrix Anal. Appl., 17(1), 161. Generalizes the Jacobi algorithm to complex matrices. | |
| subroutine, public | cardoso_souloumiac_pipek (zij, vec, sweeps, max_iter, eps, out_each) |
| Pipek-Mezey version of the Cardoso-Souloumiac PADE algorithm for complex-valued matrices. | |
Localization methods such as 2x2 Jacobi rotations Steepest Decents Conjugate Gradient.
| subroutine, public qs_localization_methods::approx_l1_norm_sd | ( | type(cp_fm_type), intent(in) | c, |
| integer, intent(in) | iterations, | ||
| real(kind=dp), intent(in) | eps, | ||
| logical, intent(inout) | converged, | ||
| integer, intent(inout) | sweeps | ||
| ) |
...
| C | ... |
| iterations | ... |
| eps | ... |
| converged | ... |
| sweeps | ... |
Definition at line 101 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::initialize_weights | ( | type(cell_type), pointer | cell, |
| real(kind=dp), dimension(:) | weights | ||
| ) |
...
| cell | ... |
| weights | ... |
Definition at line 267 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::jacobi_rotations | ( | real(kind=dp), dimension(:), intent(in) | weights, |
| type(cp_fm_type), dimension(:, :), intent(in) | zij, | ||
| type(cp_fm_type), intent(in) | vectors, | ||
| type(mp_para_env_type), pointer | para_env, | ||
| integer, intent(in) | max_iter, | ||
| real(kind=dp), intent(in) | eps_localization, | ||
| integer | sweeps, | ||
| integer, intent(in) | out_each, | ||
| real(dp) | target_time, | ||
| real(dp) | start_time, | ||
| integer | restricted | ||
| ) |
wrapper for the jacobi routines, should be removed if jacobi_rot_para can deal with serial para_envs.
| weights | ... |
| zij | ... |
| vectors | ... |
| para_env | ... |
| max_iter | ... |
| eps_localization | ... |
| sweeps | ... |
| out_each | ... |
| target_time | ... |
| start_time | ... |
| restricted | ... |
Definition at line 305 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::jacobi_cg_edf_ls | ( | type(mp_para_env_type), pointer | para_env, |
| real(kind=dp), dimension(:), intent(in) | weights, | ||
| type(cp_fm_type), dimension(:, :), intent(in) | zij, | ||
| type(cp_fm_type), intent(in) | vectors, | ||
| integer, intent(in) | max_iter, | ||
| real(kind=dp), intent(in) | eps_localization, | ||
| integer | iter, | ||
| integer, intent(in) | out_each, | ||
| integer, intent(in) | nextra, | ||
| logical, intent(in) | do_cg, | ||
| integer, intent(in), optional | nmo, | ||
| type(cp_fm_type), intent(in), optional | vectors_2, | ||
| type(cp_fm_type), intent(in), optional | mos_guess | ||
| ) |
combine jacobi rotations (serial) and conjugate gradient with golden section line search for partially occupied wannier functions
| para_env | ... |
| weights | ... |
| zij | ... |
| vectors | ... |
| max_iter | ... |
| eps_localization | ... |
| iter | ... |
| out_each | ... |
| nextra | ... |
| do_cg | ... |
| nmo | ... |
| vectors_2 | ... |
| mos_guess | ... |
Definition at line 602 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::rotate_orbitals | ( | type(cp_fm_type), intent(in) | rmat, |
| type(cp_fm_type), intent(in) | vectors | ||
| ) |
...
| rmat | ... |
| vectors | ... |
Definition at line 1407 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::crazy_rotations | ( | real(kind=dp), dimension(:), intent(in) | weights, |
| type(cp_fm_type), dimension(:, :), intent(in) | zij, | ||
| type(cp_fm_type), intent(in) | vectors, | ||
| integer, intent(in) | max_iter, | ||
| real(kind=dp), intent(in) | max_crazy_angle, | ||
| real(kind=dp) | crazy_scale, | ||
| logical | crazy_use_diag, | ||
| real(kind=dp), intent(in) | eps_localization, | ||
| integer | iterations, | ||
| logical, intent(out), optional | converged | ||
| ) |
yet another crazy try, computes the angles needed to rotate the orbitals first and rotates them all at the same time (hoping for the best of course)
| weights | ... |
| zij | ... |
| vectors | ... |
| max_iter | ... |
| max_crazy_angle | ... |
| crazy_scale | ... |
| crazy_use_diag | ... |
| eps_localization | ... |
| iterations | ... |
| converged | ... |
Definition at line 1613 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::direct_mini | ( | real(kind=dp), dimension(:), intent(in) | weights, |
| type(cp_fm_type), dimension(:, :), intent(in) | zij, | ||
| type(cp_fm_type), intent(in) | vectors, | ||
| integer, intent(in) | max_iter, | ||
| real(kind=dp), intent(in) | eps_localization, | ||
| integer | iterations | ||
| ) |
use the exponential parametrization as described in to perform a direct mini Gerd Berghold et al. PRB 61 (15), pag. 10040 (2000) none of the input is modified for the time being, just finds the rotations that minimizes, and throws it away afterwards :-) apart from being expensive and not cleaned, this works fine useful to try different spread functionals
| weights | ... |
| zij | ... |
| vectors | ... |
| max_iter | ... |
| eps_localization | ... |
| iterations | ... |
Definition at line 1812 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::zij_matrix | ( | type(cp_fm_type), intent(in) | vectors, |
| type(dbcsr_p_type), dimension(:, :), pointer | op_sm_set, | ||
| type(cp_fm_type), dimension(:, :), intent(in) | zij_fm_set | ||
| ) |
...
| vectors | ... |
| op_sm_set | ... |
| zij_fm_set | ... |
Definition at line 3021 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::scdm_qrfact | ( | type(cp_fm_type), intent(in) | vectors | ) |
...
| vectors | ... |
Definition at line 3058 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::cardoso_souloumiac | ( | real(kind=dp), dimension(:), intent(in) | weights, |
| type(cp_cfm_type), dimension(:, :), intent(inout) | zij, | ||
| integer, intent(in) | max_iter, | ||
| real(kind=dp), intent(in) | eps_localization, | ||
| integer | sweeps, | ||
| integer, intent(in) | out_each, | ||
| type(cp_cfm_type), pointer | vectors | ||
| ) |
Achieves minimisation of the spread functional by simultaneous diagonalisation with Jacobi rotations as presented in Cardoso & Souloumiac, SIAM J. Matrix Anal. Appl., 17(1), 161. Generalizes the Jacobi algorithm to complex matrices.
| weights | array of weights for calculating the total spread |
| zij | spread operator matrices |
| max_iter | maximum number iterations |
| eps_localization | numerical tolerance |
| sweeps | counts number of sweeps required |
| out_each | how often to print info |
| vectors | complex vectors to be localized |
Definition at line 3129 of file qs_localization_methods.F.
| subroutine, public qs_localization_methods::cardoso_souloumiac_pipek | ( | type(cp_cfm_type), dimension(:, :), pointer | zij, |
| type(cp_cfm_type), pointer | vec, | ||
| integer | sweeps, | ||
| integer | max_iter, | ||
| real(dp) | eps, | ||
| integer | out_each | ||
| ) |
Pipek-Mezey version of the Cardoso-Souloumiac PADE algorithm for complex-valued matrices.
| zij | spread operator matrices |
| vec | complex vectors to be localised |
| sweeps | counts number of sweeps required |
| max_iter | maximum number iterations |
| eps | numerical tolerance |
| out_each | how often to print info |
Definition at line 3240 of file qs_localization_methods.F.