![]() |
(git:26ffdda)
|
computes preconditioners, and implements methods to apply them currently used in qs_ot More...
Data Types | |
| interface | apply_preconditioner |
Functions/Subroutines | |
| subroutine, public | make_preconditioner (preconditioner_env, precon_type, solver_type, matrix_h, matrix_s, matrix_t, mo_set, energy_gap, convert_precond_to_dbcsr, chol_type) |
| ... | |
| subroutine, public | make_preconditioner_complex_full_all (preconditioner_env, matrix_c_re, matrix_c_im, matrix_h_re, matrix_h_im, matrix_s_re, matrix_s_im, mo_set, energy_gap, solver_type) |
| Construct FULL_ALL directly from one complex H(k), S(k), and C(k) channel. | |
| subroutine, public | make_preconditioner_complex_full_single (preconditioner_env, matrix_h_re, matrix_h_im, matrix_s_re, matrix_s_im, mo_set, energy_gap, solver_type) |
| Construct a complex FULL_SINGLE preconditioner from H(k) and S(k). | |
| subroutine, public | make_preconditioner_complex_fermi_low_rank (preconditioner_env, matrix_c_re, matrix_c_im, matrix_h_re, matrix_h_im, matrix_s_re, matrix_s_im, energy_gap, max_rank, solver_type) |
| Construct FERMI_LOW_RANK directly for one complex k-point channel. | |
| subroutine, public | make_preconditioner_complex_full_all_covariant (preconditioner_env, matrix_c_re, matrix_c_im, matrix_h_re, matrix_h_im, matrix_s_re, matrix_s_im, energy_gap, solver_type, occupation_signature) |
| Construct rotation-covariant FULL_ALL for one complex k-point channel. | |
| subroutine, public | make_preconditioner_complex_full_single_inverse (preconditioner_env, matrix_c_re, matrix_c_im, matrix_h_re, matrix_h_im, matrix_s_re, matrix_s_im, energy_gap, solver_type) |
| Construct a complex FULL_SINGLE_INVERSE preconditioner without discarding Im(H,S,C). | |
| subroutine, public | make_preconditioner_complex_full_s_inverse (preconditioner_env, matrix_s_re, matrix_s_im, solver_type) |
| Construct a complex FULL_S_INVERSE preconditioner. | |
| subroutine, public | make_preconditioner_complex_full_kinetic (preconditioner_env, matrix_t_re, matrix_t_im, matrix_s_re, matrix_s_im, energy_gap, solver_type) |
| Construct a complex FULL_KINETIC preconditioner. | |
| subroutine, public | dbcsr_pair_to_cfm (matrix_re, matrix_im, preconditioner_env, matrix_name, matrix) |
| Copy a real/imaginary DBCSR pair to one distributed complex full matrix. | |
| subroutine, public | restart_preconditioner (qs_env, preconditioner, prec_type, nspins) |
| Allows for a restart of the preconditioner depending on the method it purges all arrays or keeps them. | |
| subroutine, public | prepare_preconditioner (qs_env, mos, matrix_ks, matrix_s, ot_preconditioner, prec_type, solver_type, energy_gap, nspins, has_unit_metric, convert_to_dbcsr, chol_type, full_mo_set, chebyshev_degree, low_rank_base, fermi_low_rank_max_rank, lattice_fft, lattice_fft_local_cells) |
| ... | |
computes preconditioners, and implements methods to apply them currently used in qs_ot
| subroutine, public preconditioner::make_preconditioner | ( | type(preconditioner_type) | preconditioner_env, |
| integer, intent(in) | precon_type, | ||
| integer, intent(in) | solver_type, | ||
| type(dbcsr_type), pointer | matrix_h, | ||
| type(dbcsr_type), optional, pointer | matrix_s, | ||
| type(dbcsr_type), optional, pointer | matrix_t, | ||
| type(mo_set_type), intent(in) | mo_set, | ||
| real(kind=dp) | energy_gap, | ||
| logical, intent(in), optional | convert_precond_to_dbcsr, | ||
| integer, intent(in), optional | chol_type ) |
...
| preconditioner_env | ... |
| precon_type | ... |
| solver_type | ... |
| matrix_h | ... |
| matrix_s | ... |
| matrix_t | ... |
| mo_set | ... |
| energy_gap | ... |
| convert_precond_to_dbcsr | ... |
| chol_type | ... |
Definition at line 695 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_all | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_c_re, | ||
| type(dbcsr_type), pointer | matrix_c_im, | ||
| type(dbcsr_type), pointer | matrix_h_re, | ||
| type(dbcsr_type), pointer | matrix_h_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| type(mo_set_type), intent(in) | mo_set, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | solver_type ) |
Construct FULL_ALL directly from one complex H(k), S(k), and C(k) channel.
| preconditioner_env | preconditioner storage |
| matrix_c_re | real part of the active OT reference orbitals |
| matrix_c_im | imaginary part of the active OT reference orbitals |
| matrix_h_re | real part of H(k) |
| matrix_h_im | imaginary part of H(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| mo_set | ... |
| energy_gap | denominator floor |
| solver_type | inverse application selected in the OT input |
Definition at line 949 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_single | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_h_re, | ||
| type(dbcsr_type), pointer | matrix_h_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| type(mo_set_type), intent(in) | mo_set, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | solver_type ) |
Construct a complex FULL_SINGLE preconditioner from H(k) and S(k).
| preconditioner_env | preconditioner storage |
| matrix_h_re | real part of H(k) |
| matrix_h_im | imaginary part of H(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| mo_set | orbital energy labels defining the occupied edge |
| energy_gap | denominator floor |
| solver_type | requested inverse solver |
Definition at line 1014 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_fermi_low_rank | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_c_re, | ||
| type(dbcsr_type), pointer | matrix_c_im, | ||
| type(dbcsr_type), pointer | matrix_h_re, | ||
| type(dbcsr_type), pointer | matrix_h_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | max_rank, | ||
| integer, intent(in) | solver_type ) |
Construct FERMI_LOW_RANK directly for one complex k-point channel.
| preconditioner_env | preconditioner storage |
| matrix_c_re | real part of the active OT reference orbitals |
| matrix_c_im | imaginary part of the active OT reference orbitals |
| matrix_h_re | real part of H(k) |
| matrix_h_im | imaginary part of H(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| energy_gap | denominator floor |
| max_rank | maximum complementary rank, or -1 for the full complement |
| solver_type | inverse application selected in the OT input |
Definition at line 1066 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_all_covariant | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_c_re, | ||
| type(dbcsr_type), pointer | matrix_c_im, | ||
| type(dbcsr_type), pointer | matrix_h_re, | ||
| type(dbcsr_type), pointer | matrix_h_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | solver_type, | ||
| real(kind=dp), dimension(:, :), intent(in), optional | occupation_signature ) |
Construct rotation-covariant FULL_ALL for one complex k-point channel.
| preconditioner_env | preconditioner storage |
| matrix_c_re | real part of the active OT reference orbitals |
| matrix_c_im | imaginary part of the active OT reference orbitals |
| matrix_h_re | real part of H(k) |
| matrix_h_im | imaginary part of H(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| energy_gap | denominator floor |
| solver_type | inverse application selected in the OT input |
| occupation_signature | occupations that define the admissible private gauge |
Definition at line 1112 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_single_inverse | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_c_re, | ||
| type(dbcsr_type), pointer | matrix_c_im, | ||
| type(dbcsr_type), pointer | matrix_h_re, | ||
| type(dbcsr_type), pointer | matrix_h_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | solver_type ) |
Construct a complex FULL_SINGLE_INVERSE preconditioner without discarding Im(H,S,C).
| preconditioner_env | preconditioner storage |
| matrix_c_re | real part of the occupied reference orbitals |
| matrix_c_im | imaginary part of the occupied reference orbitals |
| matrix_h_re | real part of H(k) |
| matrix_h_im | imaginary part of H(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| energy_gap | lower spectral bound |
| solver_type | requested inverse solver |
Definition at line 1156 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_s_inverse | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| integer, intent(in) | solver_type ) |
Construct a complex FULL_S_INVERSE preconditioner.
| preconditioner_env | preconditioner storage |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| solver_type | requested inverse solver |
Definition at line 1239 of file preconditioner.F.
| subroutine, public preconditioner::make_preconditioner_complex_full_kinetic | ( | type(preconditioner_type) | preconditioner_env, |
| type(dbcsr_type), pointer | matrix_t_re, | ||
| type(dbcsr_type), pointer | matrix_t_im, | ||
| type(dbcsr_type), pointer | matrix_s_re, | ||
| type(dbcsr_type), pointer | matrix_s_im, | ||
| real(kind=dp), intent(in) | energy_gap, | ||
| integer, intent(in) | solver_type ) |
Construct a complex FULL_KINETIC preconditioner.
| preconditioner_env | preconditioner storage |
| matrix_t_re | real part of T(k) |
| matrix_t_im | imaginary part of T(k) |
| matrix_s_re | real part of S(k) |
| matrix_s_im | imaginary part of S(k) |
| energy_gap | non-negative overlap shift |
| solver_type | requested inverse solver |
Definition at line 1270 of file preconditioner.F.
| subroutine, public preconditioner::dbcsr_pair_to_cfm | ( | type(dbcsr_type), pointer | matrix_re, |
| type(dbcsr_type), pointer | matrix_im, | ||
| type(preconditioner_type) | preconditioner_env, | ||
| character(len=*), intent(in) | matrix_name, | ||
| type(cp_cfm_type), intent(out) | matrix ) |
Copy a real/imaginary DBCSR pair to one distributed complex full matrix.
| matrix_re | real matrix component |
| matrix_im | imaginary matrix component |
| preconditioner_env | source of the distribution context |
| matrix_name | matrix label |
| matrix | complex output matrix |
Definition at line 1306 of file preconditioner.F.
| subroutine, public preconditioner::restart_preconditioner | ( | type(qs_environment_type), pointer | qs_env, |
| type(preconditioner_p_type), dimension(:), pointer | preconditioner, | ||
| integer, intent(in) | prec_type, | ||
| integer, intent(in) | nspins ) |
Allows for a restart of the preconditioner depending on the method it purges all arrays or keeps them.
| qs_env | ... |
| preconditioner | ... |
| prec_type | ... |
| nspins | ... |
Definition at line 1344 of file preconditioner.F.
| subroutine, public preconditioner::prepare_preconditioner | ( | type(qs_environment_type), pointer | qs_env, |
| type(mo_set_type), dimension(:), intent(inout) | mos, | ||
| type(dbcsr_p_type), dimension(:), pointer | matrix_ks, | ||
| type(dbcsr_p_type), dimension(:), pointer | matrix_s, | ||
| type(preconditioner_p_type), dimension(:), pointer | ot_preconditioner, | ||
| integer, intent(in) | prec_type, | ||
| integer, intent(in) | solver_type, | ||
| real(dp), intent(in) | energy_gap, | ||
| integer, intent(in) | nspins, | ||
| logical, intent(in), optional | has_unit_metric, | ||
| logical, intent(in), optional | convert_to_dbcsr, | ||
| integer, intent(in), optional | chol_type, | ||
| logical, intent(in), optional | full_mo_set, | ||
| integer, intent(in), optional | chebyshev_degree, | ||
| integer, intent(in), optional | low_rank_base, | ||
| integer, intent(in), optional | fermi_low_rank_max_rank, | ||
| integer, intent(in), optional | lattice_fft, | ||
| integer, intent(in), optional | lattice_fft_local_cells ) |
...
| qs_env | ... |
| mos | ... |
| matrix_ks | ... |
| matrix_s | ... |
| ot_preconditioner | ... |
| prec_type | ... |
| solver_type | ... |
| energy_gap | ... |
| nspins | ... |
| has_unit_metric | ... |
| convert_to_dbcsr | ... |
| chol_type | ... |
| full_mo_set | ... |
| chebyshev_degree | ... |
| low_rank_base | ... |
| fermi_low_rank_max_rank | ... |
| lattice_fft | ... |
| lattice_fft_local_cells | ... |
Definition at line 1415 of file preconditioner.F.