# krypy.recycling - Recycling Linear Systems Solvers¶

The recycling module provides functions for the solution of sequences of linear algebraic systems. Once a linear system has been solved, the generated data is examined and a deflation space is determined automatically for the solution of the next linear system. Several selection strategys are available.

class krypy.recycling.RecyclingCg(*args, **kwargs)

Recycling preconditioned CG method.

See _RecyclingSolver for the documentation of the available parameters.

class krypy.recycling.RecyclingMinres(*args, **kwargs)

Recycling preconditioned MINRES method.

See _RecyclingSolver for the documentation of the available parameters.

class krypy.recycling.RecyclingGmres(*args, **kwargs)

Recycling preconditioned GMRES method.

See _RecyclingSolver for the documentation of the available parameters.

class krypy.recycling.linsys._RecyclingSolver(DeflatedSolver, vector_factory=None)

Base class for recycling solvers.

Initialize recycling solver base.

Parameters: DeflatedSolver – a deflated solver from deflation. vector_factory – (optional) An instance of a subclass of krypy.recycling.factories._DeflationVectorFactory that constructs deflation vectors for recycling. Defaults to None which means that no recycling is used. Also the following strings are allowed as shortcuts: 'RitzApproxKrylov': uses the approximate Krylov subspace bound evaluator krypy.recycling.evaluators.RitzApproxKrylov. 'RitzAprioriCg': uses the CG $$\kappa$$-bound (krypy.utils.BoundCG) as an a priori bound with krypy.recycling.evaluators.RitzApriori. 'RitzAprioriMinres': uses the MINRES bound (krypy.utils.BoundMinres) as an a priori bound with krypy.recycling.evaluators.RitzApriori.

After a run of the provided DeflatedSolver via solve(), the resulting instance of the DeflatedSolver is available in the attribute last_solver.

last_solver = None

DeflatedSolver instance from last run of solve().

Instance of DeflatedSolver that resulted from the last call to solve(). Initialized with None before the first run.

solve(linear_system, vector_factory=None, *args, **kwargs)

Solve the given linear system with recycling.

The provided vector_factory determines which vectors are used for deflation.

Parameters: linear_system – the LinearSystem that is about to be solved. vector_factory – (optional) see description in constructor.

All remaining arguments are passed to the DeflatedSolver.

Returns: instance of DeflatedSolver which was used to obtain the approximate solution. The approximate solution is available under the attribute xk.
timings = None

Timings from last run of solve().

Timings of the vector factory runs and the actual solution processes.