(git:0a7030e)
Loading...
Searching...
No Matches
preconditioner_makes Module Reference

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.

Detailed Description

computes preconditioners, and implements methods to apply them currently used in qs_ot

History
  • [UB] 2009-05-13 Adding stable approximate inverse (full and sparse)
Author
Joost VandeVondele (09.2002)

Function/Subroutine Documentation

◆ make_complex_full_all()

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).

Parameters
preconditioner_envpreconditioner storage
matrix_c0complex reference orbitals, C^H S C = I
matrix_hcomplex Hermitian k-point Hamiltonian
matrix_scomplex Hermitian k-point overlap
c0_evalsreference-orbital energies in the current OT gauge
energy_gapdenominator floor

Definition at line 102 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_complex_full_single()

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.

Parameters
preconditioner_envpreconditioner storage
matrix_hcomplex Hermitian k-point Hamiltonian
matrix_scomplex Hermitian k-point overlap
energy_homooccupied spectral edge
energy_gapdenominator floor

Definition at line 234 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_complex_fermi_low_rank()

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.

Parameters
preconditioner_envpreconditioner storage
matrix_c0complex active OT reference orbitals
matrix_hcomplex Hermitian k-point Hamiltonian
matrix_scomplex Hermitian k-point overlap
energy_gapdenominator floor
max_rankmaximum retained complementary rank, or -1 for the full complement
spectral_windowoverlap-inverse reference window
degeneracy_tolerancerelative tolerance for a rank-boundary cluster

Definition at line 317 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_complex_full_all_covariant()

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.
Parameters
preconditioner_envpreconditioner storage
matrix_c0complex active OT reference orbitals
matrix_hcomplex Hermitian k-point Hamiltonian
matrix_scomplex Hermitian k-point overlap
energy_gapdenominator floor
occupation_signatureoccupations that define the admissible private gauge

Definition at line 383 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_preconditioner_matrix()

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 )

...

Parameters
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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_complex_full_single_inverse()

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.

Parameters
preconditioner_envpreconditioner storage
matrix_c0complex reference orbitals, C^H S C = I
matrix_hcomplex Hermitian k-point Hamiltonian
matrix_scomplex Hermitian k-point overlap
energy_gaplower spectral bound of the positive operator

Definition at line 1316 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_complex_full_s_inverse()

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.

Parameters
preconditioner_envpreconditioner storage
matrix_scomplex Hermitian k-point overlap

Definition at line 1424 of file preconditioner_makes.F.

Here is the caller graph for this function:

◆ make_complex_full_kinetic()

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.

Parameters
preconditioner_envpreconditioner storage
matrix_tcomplex Hermitian k-point kinetic operator
matrix_scomplex Hermitian k-point overlap
energy_gapnon-negative overlap shift

Definition at line 1440 of file preconditioner_makes.F.

Here is the call graph for this function:
Here is the caller graph for this function: