![]() |
(git:9754b87)
|
groups fairly general SCF methods, so that modules other than qs_scf can use them too split off from qs_scf to reduce dependencies More...
Data Types | |
interface | combine_ks_matrices |
Functions/Subroutines | |
subroutine, public | scf_env_density_mixing (p_mix_new, mixing_store, rho_ao, para_env, iter_delta, iter_count, diis, invert) |
perform (if requested) a density mixing | |
subroutine, public | eigensolver (matrix_ks_fm, mo_set, ortho, work, cholesky_method, do_level_shift, level_shift, matrix_u_fm, use_jacobi) |
Diagonalise the Kohn-Sham matrix to get a new set of MO eigen- vectors and MO eigenvalues. ks will be modified. | |
subroutine, public | eigensolver_dbcsr (matrix_ks, matrix_ks_fm, mo_set, ortho_dbcsr, ksbuf1, ksbuf2) |
... | |
subroutine, public | eigensolver_symm (matrix_ks_fm, mo_set, ortho, work, do_level_shift, level_shift, matrix_u_fm, use_jacobi, jacobi_threshold, ortho_red, work_red, matrix_ks_fm_red, matrix_u_fm_red) |
... | |
subroutine, public | eigensolver_simple (matrix_ks, mo_set, work, do_level_shift, level_shift, use_jacobi, jacobi_threshold) |
... | |
subroutine, public | cp_sm_mix (m1, m2, p_mix, delta, para_env, m3) |
Perform a mixing of the given matrixes into the first matrix m1 = m2 + p_mix (m1-m2) | |
groups fairly general SCF methods, so that modules other than qs_scf can use them too split off from qs_scf to reduce dependencies
subroutine, public qs_scf_methods::scf_env_density_mixing | ( | type(dbcsr_p_type), dimension(:, :), pointer | p_mix_new, |
type(mixing_storage_type), pointer | mixing_store, | ||
type(dbcsr_p_type), dimension(:, :), pointer | rho_ao, | ||
type(mp_para_env_type), pointer | para_env, | ||
real(kind=dp), intent(inout) | iter_delta, | ||
integer, intent(in) | iter_count, | ||
logical, intent(in), optional | diis, | ||
logical, intent(in), optional | invert | ||
) |
perform (if requested) a density mixing
p_mix_new | New density matrices |
mixing_store | ... |
rho_ao | Density environment |
para_env | ... |
iter_delta | ... |
iter_count | ... |
diis | ... |
invert | Invert mixing |
Definition at line 92 of file qs_scf_methods.F.
subroutine, public qs_scf_methods::eigensolver | ( | type(cp_fm_type), intent(in) | matrix_ks_fm, |
type(mo_set_type), intent(in) | mo_set, | ||
type(cp_fm_type), intent(in) | ortho, | ||
type(cp_fm_type), intent(in) | work, | ||
integer, intent(inout) | cholesky_method, | ||
logical, intent(in) | do_level_shift, | ||
real(kind=dp), intent(in) | level_shift, | ||
type(cp_fm_type), intent(in), optional | matrix_u_fm, | ||
logical, intent(in) | use_jacobi | ||
) |
Diagonalise the Kohn-Sham matrix to get a new set of MO eigen- vectors and MO eigenvalues. ks will be modified.
matrix_ks_fm | ... |
mo_set | ... |
ortho | ... |
work | ... |
cholesky_method | ... |
do_level_shift | activate the level shifting technique |
level_shift | amount of shift applied (in a.u.) |
matrix_u_fm | matrix U : S (overlap matrix) = U^T * U |
use_jacobi | ... |
Definition at line 162 of file qs_scf_methods.F.
subroutine, public qs_scf_methods::eigensolver_dbcsr | ( | type(dbcsr_type), intent(in) | matrix_ks, |
type(cp_fm_type), intent(inout) | matrix_ks_fm, | ||
type(mo_set_type), intent(in) | mo_set, | ||
type(dbcsr_type), intent(in) | ortho_dbcsr, | ||
type(dbcsr_type), intent(inout) | ksbuf1, | ||
type(dbcsr_type), intent(inout) | ksbuf2 | ||
) |
...
matrix_ks | ... |
matrix_ks_fm | ... |
mo_set | ... |
ortho_dbcsr | ... |
ksbuf1 | ... |
ksbuf2 | ... |
Definition at line 264 of file qs_scf_methods.F.
subroutine, public qs_scf_methods::eigensolver_symm | ( | type(cp_fm_type), intent(in) | matrix_ks_fm, |
type(mo_set_type), intent(in) | mo_set, | ||
type(cp_fm_type), intent(in) | ortho, | ||
type(cp_fm_type), intent(in) | work, | ||
logical, intent(in) | do_level_shift, | ||
real(kind=dp), intent(in) | level_shift, | ||
type(cp_fm_type), intent(in), optional | matrix_u_fm, | ||
logical, intent(in) | use_jacobi, | ||
real(kind=dp), intent(in) | jacobi_threshold, | ||
type(cp_fm_type), intent(inout), optional | ortho_red, | ||
type(cp_fm_type), intent(inout), optional | work_red, | ||
type(cp_fm_type), intent(inout), optional | matrix_ks_fm_red, | ||
type(cp_fm_type), intent(inout), optional | matrix_u_fm_red | ||
) |
...
matrix_ks_fm | ... |
mo_set | ... |
ortho | ... |
work | ... |
do_level_shift | activate the level shifting technique |
level_shift | amount of shift applied (in a.u.) |
matrix_u_fm | matrix U : S (overlap matrix) = U^T * U |
use_jacobi | ... |
jacobi_threshold | ... |
ortho_red | ... |
work_red | ... |
matrix_ks_fm_red | ... |
matrix_u_fm_red | ... |
Definition at line 328 of file qs_scf_methods.F.
subroutine, public qs_scf_methods::eigensolver_simple | ( | type(cp_fm_type), intent(in) | matrix_ks, |
type(mo_set_type), intent(in) | mo_set, | ||
type(cp_fm_type), intent(in) | work, | ||
logical, intent(in) | do_level_shift, | ||
real(kind=dp), intent(in) | level_shift, | ||
logical, intent(in) | use_jacobi, | ||
real(kind=dp), intent(in) | jacobi_threshold | ||
) |
...
matrix_ks | ... |
mo_set | ... |
work | ... |
do_level_shift | activate the level shifting technique |
level_shift | amount of shift applied (in a.u.) |
use_jacobi | ... |
jacobi_threshold | ... |
Definition at line 425 of file qs_scf_methods.F.
subroutine, public qs_scf_methods::cp_sm_mix | ( | type(dbcsr_type), pointer | m1, |
type(dbcsr_type), pointer | m2, | ||
real(kind=dp), intent(in) | p_mix, | ||
real(kind=dp), intent(out) | delta, | ||
type(mp_para_env_type), pointer | para_env, | ||
type(dbcsr_type), optional, pointer | m3 | ||
) |
Perform a mixing of the given matrixes into the first matrix m1 = m2 + p_mix (m1-m2)
m1 | first (new) matrix, is modified |
m2 | the second (old) matrix |
p_mix | how much m1 is conserved (0: none, 1: all) |
delta | maximum norm of m1-m2 |
para_env | ... |
m3 | ... |
Definition at line 499 of file qs_scf_methods.F.