dyson.solvers.static.davidson#

Davidson algorithm [1] [2].

Classes

Davidson(*args, **kwargs)

Davidson algorithm for diagonalisation of the supermatrix form of the self-energy.

class dyson.solvers.static.davidson.Davidson(*args: Any, **kwargs: Any)[source]#

Bases: StaticSolver

Davidson algorithm for diagonalisation of the supermatrix form of the self-energy.

Parameters:
  • matvec – The matrix-vector operation for the self-energy supermatrix.

  • diagonal – The diagonal of the self-energy supermatrix.

  • bra – The bra excitation vector mapping the supermatrix to the physical space.

  • ket – The ket excitation vector mapping the supermatrix to the physical space.

hermitian: bool = True#
nroots: int = 1#
max_cycle: int = 100#
max_space: int = 16#
conv_tol: float = 1e-08#
conv_tol_residual: float = 1e-05#
converged: Array | None = None#
classmethod from_self_energy(static: Array, self_energy: Lehmann, overlap: Array | None = None, **kwargs: Any) Davidson[source]#

Create a solver from a self-energy.

Parameters:
  • static – Static part of the self-energy.

  • self_energy – Self-energy.

  • overlap – Overlap matrix for the physical space.

  • kwargs – Additional keyword arguments for the solver.

Returns:

Solver instance.

classmethod from_expression(expression: BaseExpression, **kwargs: Any) Davidson[source]#

Create a solver from an expression.

Parameters:
  • expression – Expression to be solved.

  • kwargs – Additional keyword arguments for the solver.

Returns:

Solver instance.

get_guesses() list[Array][source]#

Get the initial guesses for the eigenvectors.

Returns:

Initial guesses for the eigenvectors.

kernel(*args: Any, **kwargs: Any) Any#

Run the solver.

property matvec: Callable[[Array], Array]#

Get the matrix-vector operation for the self-energy supermatrix.

property diagonal: Array#

Get the diagonal of the self-energy supermatrix.

property bra: Array#

Get the bra excitation vector mapping the supermatrix to the physical space.

property ket: Array#

Get the ket excitation vector mapping the supermatrix to the physical space.

property nphys: int#

Get the number of physical degrees of freedom.