|
| | preconditionerRunTimeSelectionDefinitions (CGPreconditioner, "cg") CGPreconditioner() |
| |
| | CGPreconditioner (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) |
| |
| virtual std::string | description () const |
| | Description of the preconditioner. More...
|
| |
| virtual void | precondition (BlockArray< Complex > const &r, BlockArray< Complex > &z) const |
| | Precondition the equation. More...
|
| |
| virtual void | finish () |
| | Clean up memory etc. More...
|
| |
| int | solve_block (int ill, const cArrayView r, cArrayView z) const |
| |
| virtual void | CG_init (int iblock) const |
| |
| virtual void | CG_mmul (int iblock, const cArrayView p, cArrayView q) const |
| |
| virtual void | CG_prec (int iblock, const cArrayView r, cArrayView z) const |
| |
| virtual void | CG_exit (int iblock) const |
| |
| virtual Real | CG_compute_norm (const cArrayView a) const |
| |
| virtual Complex | CG_scalar_product (const cArrayView a, const cArrayView b) const |
| |
| virtual void | CG_axby_operation (Complex a, cArrayView x, Complex b, const cArrayView y) const |
| |
| virtual void | CG_constrain (cArrayView r) const |
| |
| | preconditionerRunTimeSelectionDefinitions (NoPreconditioner, "none") NoPreconditioner() |
| |
| | NoPreconditioner (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) |
| |
| | ~NoPreconditioner () |
| |
| 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 | rhs (BlockArray< Complex > &chi, int ienergy, int instate) const |
| | Calculate the right-hand side. More...
|
| |
| virtual void | multiply (BlockArray< Complex > const &p, BlockArray< Complex > &q, MatrixSelection::Selection tri=MatrixSelection::Both) const |
| | Multiply by the matrix equation. More...
|
| |
| BlockSymBandMatrix< Complex > | calc_A_block (int ill, int illp, bool twoel=true) const |
| |
| RadialIntegrals const & | rad_inner () const |
| |
| RadialIntegrals const & | rad_full () const |
| |
| RadialIntegrals const & | rad_panel () const |
| |
| | 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 void | verbose (bool b) |
| | Set verbosity level. More...
|
| |
This class adds some preconditioning capabilities to its base class NoPreconditioner. The preconditioning is done by diagonal block solution using the conjugate gradients solver (which itself is non-preconditioned).
| void CGPreconditioner::precondition |
( |
BlockArray< Complex > const & |
r, |
|
|
BlockArray< Complex > & |
z |
|
) |
| const |
|
virtual |
This function preconditions the equation, solving the preconditioner equation
\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]
It may use the MPI environment.
Reimplemented from NoPreconditioner.
Reimplemented in GPUCGPreconditioner.