(git:5e7fe52)
Loading...
Searching...
No Matches
low_rank_preconditioner_model Module Reference

Small algebraic helpers for the rotationally covariant low-rank OT preconditioner. More...

Functions/Subroutines

pure elemental real(kind=dp) function, public low_rank_inverse_weight (eigenvalue, reference, energy_gap)
 Spectral inverse weight relative to a common occupied reference level.
pure integer function, public low_rank_select_rank (eigenvalues, nocc, max_rank, degeneracy_tolerance)
 Select a bounded spectral rank without cutting a degenerate boundary manifold.
pure subroutine, public apply_low_rank_dense (overlap_inverse, vectors, eigenvalues, reference, energy_gap, spectral_window, matrix_in, matrix_out)
 Dense reference application used to verify right covariance under orbital rotations.

Detailed Description

Small algebraic helpers for the rotationally covariant low-rank OT preconditioner.

Function/Subroutine Documentation

◆ low_rank_inverse_weight()

pure elemental real(kind=dp) function, public low_rank_preconditioner_model::low_rank_inverse_weight ( real(kind=dp), intent(in) eigenvalue,
real(kind=dp), intent(in) reference,
real(kind=dp), intent(in) energy_gap )

Spectral inverse weight relative to a common occupied reference level.

Parameters
eigenvaluecomplementary-state eigenvalue
referencecommon occupied reference level
energy_gaplower bound for the denominator
Returns
inverse spectral weight

Definition at line 28 of file low_rank_preconditioner_model.F.

Here is the caller graph for this function:

◆ low_rank_select_rank()

pure integer function, public low_rank_preconditioner_model::low_rank_select_rank ( real(kind=dp), dimension(:), intent(in) eigenvalues,
integer, intent(in) nocc,
integer, intent(in) max_rank,
real(kind=dp), intent(in) degeneracy_tolerance )

Select a bounded spectral rank without cutting a degenerate boundary manifold.

Parameters
eigenvaluesordered full-space eigenvalues
noccnumber of occupied states at the start of eigenvalues
max_rankhard upper bound
degeneracy_tolerancerelative degeneracy threshold
Returns
selected rank

Definition at line 48 of file low_rank_preconditioner_model.F.

Here is the caller graph for this function:

◆ apply_low_rank_dense()

pure subroutine, public low_rank_preconditioner_model::apply_low_rank_dense ( real(kind=dp), dimension(:, :), intent(in) overlap_inverse,
real(kind=dp), dimension(:, :), intent(in) vectors,
real(kind=dp), dimension(:), intent(in) eigenvalues,
real(kind=dp), intent(in) reference,
real(kind=dp), intent(in) energy_gap,
real(kind=dp), intent(in) spectral_window,
real(kind=dp), dimension(:, :), intent(in) matrix_in,
real(kind=dp), dimension(:, :), intent(out) matrix_out )

Dense reference application used to verify right covariance under orbital rotations.

Parameters
overlap_inverseinverse overlap matrix
vectorsretained complementary-state vectors
eigenvaluesretained complementary-state eigenvalues
referencecommon occupied reference level
energy_gaplower bound for spectral denominators
spectral_windowoverlap-inverse replacement window
matrix_ininput orbital-gradient matrix
matrix_outpreconditioned matrix

Definition at line 86 of file low_rank_preconditioner_model.F.

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