![]() |
Hex
2.2
Hydrogen-electron collision solver
|
Preconditioner template. More...
#include <preconditioners.h>

Public Member Functions | |
| baseClassRunTimeSelectionDefinitions (PreconditionerBase,(CommandLine const &cmd, InputFile const &inp, Parallel const &par, AngularBasis const &ang, Bspline const &bspline_inner, Bspline const &bspline_full, Bspline const &bspline_panel_x, Bspline const &bspline_panel_y)) PreconditionerBase() | |
| Dummy default constructor needed by the run-time selection. More... | |
| virtual | ~PreconditionerBase () |
| Virtual destructor. More... | |
| virtual std::string | description () const |
| Description of the preconditioner. More... | |
| virtual void | setup () |
| Initialize the preconditioner. More... | |
| virtual void | update (Real E) |
| Update the preconditioner for the next energy. More... | |
| virtual std::pair< int, int > | bstates (Real E, int l1, int l2) const |
| Get the number of allowed bound states. More... | |
| virtual void | finish () |
| Clean up memory etc. More... | |
| virtual void | rhs (BlockArray< Complex > &chi, int ie, int instate) const |
| Calculate the right-hand side. More... | |
| virtual void | multiply (BlockArray< Complex > const &p, BlockArray< Complex > &q, MatrixSelection::Selection tri=MatrixSelection::BlockBoth|MatrixSelection::Both) const |
| Multiply by the matrix equation. More... | |
| virtual void | precondition (BlockArray< Complex > const &r, BlockArray< Complex > &z) const |
| Precondition the equation. More... | |
| virtual void | verbose (bool b) |
| Set verbosity level. More... | |
Protected Attributes | |
| bool | verbose_ |
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} \).
|
inlinevirtual |
To be overridden in derived classes.
|
inline |
|
inlinevirtual |
Returns the number of energetically allowed bound states of the first and second particle with specific angular momenta. This is necessary because it determines the size of the solution vector.
This function can be called only after a call to the setup function, where it is assumed that the initialization of these numbers takes place.
The energy is in Ry.
Reimplemented in NoPreconditioner.
|
inlinevirtual |
Simple documentation of the preconditioner.
Reimplemented in GPUCGPreconditioner, KPACGPreconditioner, HybCGPreconditioner, DOMPreconditioner, ILUCGPreconditioner, NoPreconditioner, CGPreconditioner, GMGPreconditioner, and CoupledPreconditioner.
|
inlinevirtual |
This function is called when the preconditioner will no longer be used to release resources. To re-enable the same preconditioner then would require a new call to setup.
Reimplemented in GPUCGPreconditioner, KPACGPreconditioner, HybCGPreconditioner, DOMPreconditioner, ILUCGPreconditioner, CGPreconditioner, NoPreconditioner, and CoupledPreconditioner.
|
inlinevirtual |
This function implements matrix multiplication by the matrix of the set of equations that is to be solved.
Reimplemented in GPUCGPreconditioner, and NoPreconditioner.
|
inlinevirtual |
This function preconditions the equation, solving the preconditioner equation
\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]
It may use the MPI environment.
Reimplemented in GPUCGPreconditioner, DOMPreconditioner, NoPreconditioner, CGPreconditioner, GMGPreconditioner, and CoupledPreconditioner.
|
inlinevirtual |
Reimplemented in NoPreconditioner.
|
inlinevirtual |
This function contains all computation intensive preparations for the preconditioner, e.g. computation of radial integrals. It may use only SMP environment.
Reimplemented in GPUCGPreconditioner, KPACGPreconditioner, HybCGPreconditioner, DOMPreconditioner, ILUCGPreconditioner, GMGPreconditioner, and NoPreconditioner.
|
inlinevirtual |
This function updates the preconditioner for another right hand side. It may use the MPI environment. The energy is in Ry.
Reimplemented in HybCGPreconditioner, DOMPreconditioner, ILUCGPreconditioner, GMGPreconditioner, NoPreconditioner, and CoupledPreconditioner.
|
inlinevirtual |
Determine whether the preconditioner will produce a text output.
|
protected |
1.8.13