|
| | preconditionerRunTimeSelectionDefinitions (KPACGPreconditioner, "KPA") KPACGPreconditioner() |
| |
| | KPACGPreconditioner (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 | ~KPACGPreconditioner () |
| |
| virtual std::string | description () const |
| | Description of the preconditioner. More...
|
| |
| virtual void | setup () |
| | Initialize the preconditioner. More...
|
| |
| virtual void | finish () |
| | Clean up memory etc. More...
|
| |
| virtual void | CG_init (int iblock) const |
| |
| virtual void | CG_prec (int iblock, const cArrayView r, cArrayView z) const |
| |
| virtual void | CG_exit (int iblock) const |
| |
| | 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 void | precondition (BlockArray< Complex > const &r, BlockArray< Complex > &z) const |
| | Precondition the equation. More...
|
| |
| int | solve_block (int ill, const cArrayView r, cArrayView z) const |
| |
| virtual void | CG_mmul (int iblock, const cArrayView p, cArrayView q) 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 | 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 nested preconditioner simplifies the Hamiltonian matrix by omitting electron-electron interaction. The block of the matrix can then be written as a sum of simple Kronecker products
\[ \mathsf{A} = E\mathsf{S}\otimes\mathsf{S} - \mathsf{H}_1\otimes\mathsf{S} - \mathsf{S}\otimes\mathsf{H}_2 \,, \]
which can be easily diagonalized (only diagonalization of the small matrices are needed) and so also inverted, which we need for solution of the equations.