![]() |
(git:0a7030e)
|
computes preconditioners, and implements methods to apply them currently used in qs_ot More...
Functions/Subroutines | |
| subroutine, public | make_complex_full_all (preconditioner_env, matrix_c0, matrix_h, matrix_s, c0_evals, energy_gap) |
| Build the state-selective FULL_ALL operator for a complex k-point channel. The occupied/reference subspace is retained in its current gauge, while the orthogonal complement carries the spectrum of H(k). | |
| subroutine, public | make_complex_full_single (preconditioner_env, matrix_h, matrix_s, energy_homo, energy_gap) |
| Build the complex spectral FULL_SINGLE preconditioner. | |
| subroutine, public | make_complex_fermi_low_rank (preconditioner_env, matrix_c0, matrix_h, matrix_s, energy_gap, max_rank, spectral_window, degeneracy_tolerance) |
| Build the bounded low-rank spectral inverse for a complex k-point channel. | |
| subroutine, public | make_complex_full_all_covariant (preconditioner_env, matrix_c0, matrix_h, matrix_s, energy_gap, occupation_signature) |
| Build the gauge-covariant FULL_ALL inverse for a complex k-point channel. | |
| subroutine, public | make_preconditioner_matrix (preconditioner_env, matrix_h, matrix_s, matrix_t, mo_coeff, energy_homo, eigenvalues_ot, energy_gap, my_solver_type) |
| ... | |
| subroutine, public | make_complex_full_single_inverse (preconditioner_env, matrix_c0, matrix_h, matrix_s, energy_gap) |
| Build a gauge-covariant FULL_SINGLE_INVERSE operator for a complex k-point channel. | |
| subroutine, public | make_complex_full_s_inverse (preconditioner_env, matrix_s) |
| Build the inverse complex overlap preconditioner. | |
| subroutine, public | make_complex_full_kinetic (preconditioner_env, matrix_t, matrix_s, energy_gap) |
| Build the inverse complex kinetic-plus-overlap preconditioner. | |
computes preconditioners, and implements methods to apply them currently used in qs_ot
| subroutine, public preconditioner_makes::make_complex_full_all | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_c0, | ||
| type(cp_cfm_type), intent(in) | matrix_h, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), dimension(:), intent(in) | c0_evals, | ||
| real(kind=dp), intent(in) | energy_gap ) |
Build the state-selective FULL_ALL operator for a complex k-point channel. The occupied/reference subspace is retained in its current gauge, while the orthogonal complement carries the spectrum of H(k).
| preconditioner_env | preconditioner storage |
| matrix_c0 | complex reference orbitals, C^H S C = I |
| matrix_h | complex Hermitian k-point Hamiltonian |
| matrix_s | complex Hermitian k-point overlap |
| c0_evals | reference-orbital energies in the current OT gauge |
| energy_gap | denominator floor |
Definition at line 102 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_full_single | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_h, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), intent(in) | energy_homo, | ||
| real(kind=dp), intent(in) | energy_gap ) |
Build the complex spectral FULL_SINGLE preconditioner.
| preconditioner_env | preconditioner storage |
| matrix_h | complex Hermitian k-point Hamiltonian |
| matrix_s | complex Hermitian k-point overlap |
| energy_homo | occupied spectral edge |
| energy_gap | denominator floor |
Definition at line 234 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_fermi_low_rank | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_c0, | ||
| type(cp_cfm_type), intent(in) | matrix_h, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | max_rank, | ||
| real(kind=dp), intent(in) | spectral_window, | ||
| real(kind=dp), intent(in) | degeneracy_tolerance ) |
Build the bounded low-rank spectral inverse for a complex k-point channel.
| preconditioner_env | preconditioner storage |
| matrix_c0 | complex active OT reference orbitals |
| matrix_h | complex Hermitian k-point Hamiltonian |
| matrix_s | complex Hermitian k-point overlap |
| energy_gap | denominator floor |
| max_rank | maximum retained complementary rank, or -1 for the full complement |
| spectral_window | overlap-inverse reference window |
| degeneracy_tolerance | relative tolerance for a rank-boundary cluster |
Definition at line 317 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_full_all_covariant | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_c0, | ||
| type(cp_cfm_type), intent(in) | matrix_h, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| real(kind=dp), dimension(:, :), intent(in), optional | occupation_signature ) |
Build the gauge-covariant FULL_ALL inverse for a complex k-point channel.
The occupied Rayleigh matrix C^H H C is diagonalized in a private complex gauge. Both gradients and results are transformed through that gauge during application. If occupation signatures are supplied, only orbitals with equal signatures are mixed.
| preconditioner_env | preconditioner storage |
| matrix_c0 | complex active OT reference orbitals |
| matrix_h | complex Hermitian k-point Hamiltonian |
| matrix_s | complex Hermitian k-point overlap |
| energy_gap | denominator floor |
| occupation_signature | occupations that define the admissible private gauge |
Definition at line 383 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_preconditioner_matrix | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_h, | ||
| type(dbcsr_type), optional, pointer | matrix_s, | ||
| type(dbcsr_type), optional, pointer | matrix_t, | ||
| type(cp_fm_type), intent(in) | mo_coeff, | ||
| real(kind=dp) | energy_homo, | ||
| real(kind=dp), dimension(:) | eigenvalues_ot, | ||
| real(kind=dp) | energy_gap, | ||
| integer | my_solver_type ) |
...
| preconditioner_env | ... |
| matrix_h | ... |
| matrix_s | ... |
| matrix_t | ... |
| mo_coeff | ... |
| energy_homo | ... |
| eigenvalues_ot | ... |
| energy_gap | ... |
| my_solver_type | ... |
Definition at line 520 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_full_single_inverse | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_c0, | ||
| type(cp_cfm_type), intent(in) | matrix_h, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), intent(in) | energy_gap ) |
Build a gauge-covariant FULL_SINGLE_INVERSE operator for a complex k-point channel.
| preconditioner_env | preconditioner storage |
| matrix_c0 | complex reference orbitals, C^H S C = I |
| matrix_h | complex Hermitian k-point Hamiltonian |
| matrix_s | complex Hermitian k-point overlap |
| energy_gap | lower spectral bound of the positive operator |
Definition at line 1316 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_full_s_inverse | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_s ) |
Build the inverse complex overlap preconditioner.
| preconditioner_env | preconditioner storage |
| matrix_s | complex Hermitian k-point overlap |
Definition at line 1424 of file preconditioner_makes.F.
| subroutine, public preconditioner_makes::make_complex_full_kinetic | ( | type(preconditioner_type) | preconditioner_env, |
| type(cp_cfm_type), intent(in) | matrix_t, | ||
| type(cp_cfm_type), intent(in) | matrix_s, | ||
| real(kind=dp), intent(in) | energy_gap ) |
Build the inverse complex kinetic-plus-overlap preconditioner.
| preconditioner_env | preconditioner storage |
| matrix_t | complex Hermitian k-point kinetic operator |
| matrix_s | complex Hermitian k-point overlap |
| energy_gap | non-negative overlap shift |
Definition at line 1440 of file preconditioner_makes.F.