![]() |
Hex
1.0
Hydrogen-electron collision solver
|
Preconditioner template. More...
#include <preconditioners.h>
Public Member Functions | |
virtual RadialIntegrals const & | rad () const =0 |
Get radial integrals. More... | |
virtual void | setup ()=0 |
Initialize the preconditioner. More... | |
virtual void | update (double E)=0 |
Update the preconditioner for the next energy. More... | |
virtual void | rhs (cArrayView chi, int ienergy, int instate) const =0 |
Return the right-hand side. More... | |
virtual void | multiply (const cArrayView p, cArrayView q) const =0 |
Multiply by the matrix equation. More... | |
virtual void | precondition (const cArrayView r, cArrayView z) const =0 |
Precondition the equation. More... | |
This interface class declares all necessary methods that a valid preconditioner object needs to implement. The preconditioner thus needs to be able to multiply a vector by the matrix of the set of equations that is to be solved and, of course, to precondition the solution by solving the auxiliary preconditioner equation \( \mathbf{M}\mathbf{z} = \mathbf{r} \).
|
pure virtual |
This function implements matrix multiplication by the matrix of the set of equations that is to be solved.
Implemented in MultiresPreconditioner, TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, CGPreconditioner, and NoPreconditioner.
|
pure virtual |
This function preconditions the equation, solving the preconditioner equation
\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]
It may use the MPI environment.
Implemented in MultiresPreconditioner, TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, CGPreconditioner, and NoPreconditioner.
|
pure virtual |
|
pure virtual |
|
pure virtual |
This function contains all computation intensive preparations for the preconditioner, e.g. computation of radial integrals. It may use only SMP environment.
Implemented in MultiresPreconditioner, TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, CGPreconditioner, and NoPreconditioner.
|
pure virtual |
This function updates the preconditioner for another right hand side. It may use the MPI environment.
Implemented in MultiresPreconditioner, TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, CGPreconditioner, and NoPreconditioner.