![]() |
Hex
1.0
Hydrogen-electron collision solver
|
ILU-preconditioned CG-based preconditioner. More...
#include <preconditioners.h>


Public Member Functions | |
| ILUCGPreconditioner (Parallel const &par, InputFile const &inp, std::vector< std::pair< int, int >> const &ll, Bspline const &bspline, CommandLine const &cmd) | |
| virtual RadialIntegrals const & | rad () const |
| Get radial integrals. More... | |
| virtual void | multiply (const cArrayView p, cArrayView q) const |
| Multiply by the matrix equation. More... | |
| virtual void | rhs (cArrayView chi, int ienergy, int instate) const |
| Return the right-hand side. More... | |
| virtual void | precondition (const cArrayView r, cArrayView z) const |
| Precondition the equation. More... | |
| virtual void | setup () |
| Initialize the preconditioner. More... | |
| virtual void | update (double E) |
| Update the preconditioner for the next energy. More... | |
| virtual void | CG_prec (int iblock, const cArrayView r, cArrayView z) const |
Public Member Functions inherited from CGPreconditioner | |
| CGPreconditioner (Parallel const &par, InputFile const &inp, std::vector< std::pair< int, int >> const &ll, Bspline const &bspline, CommandLine const &cmd) | |
| virtual void | CG_mmul (int iblock, const cArrayView p, cArrayView q) const |
Public Member Functions inherited from NoPreconditioner | |
| NoPreconditioner (Parallel const &par, InputFile const &inp, std::vector< std::pair< int, int >> const &ll, Bspline const &bspline, CommandLine const &cmd) | |
Static Public Attributes | |
| static const std::string | name = "ILU" |
| static const std::string | description = "Block inversion using ILU-preconditioned conjugate gradients. The drop tolerance can be given as the --droptol parameter." |
Static Public Attributes inherited from CGPreconditioner | |
| static const std::string | name = "cg" |
| static const std::string | description = "Block inversion using plain conjugate gradients." |
Static Public Attributes inherited from NoPreconditioner | |
| static const std::string | name = "none" |
| static const std::string | description = "Preconditioning by the identity matrix." |
Protected Attributes | |
| double | droptol_ |
| std::vector< CsrMatrix > | csr_blocks_ |
| std::vector< CsrMatrix::LUft > | lu_ |
Protected Attributes inherited from NoPreconditioner | |
| CommandLine const & | cmd_ |
| Parallel const & | par_ |
| InputFile const & | inp_ |
| std::vector< std::pair< int, int > > const & | l1_l2_ |
| std::vector< SymDiaMatrix > | dia_blocks_ |
| Bspline | s_bspline_ |
| RadialIntegrals | s_rad_ |
| SymDiaMatrix | S_kron_S_ |
| SymDiaMatrix | S_kron_Mm1_tr_ |
| SymDiaMatrix | S_kron_Mm2_ |
| SymDiaMatrix | Mm1_tr_kron_S_ |
| SymDiaMatrix | Mm2_kron_S_ |
| SymDiaMatrix | half_D_minus_Mm1_tr_ |
| SymDiaMatrix | half_D_minus_Mm1_tr_kron_S_ |
| SymDiaMatrix | S_kron_half_D_minus_Mm1_tr_ |
Enhances CGPreconditioner conjugate gradients solver by incomplete LU factorization preconditioning. This is done by redefining virtual function CG_prec. The factorization is drop tolerance based and is computed by UMFPACK.
|
inline |
|
virtual |
Reimplemented from CGPreconditioner.
|
inlinevirtual |
This function implements matrix multiplication by the matrix of the set of equations that is to be solved.
Reimplemented from CGPreconditioner.
|
inlinevirtual |
This function preconditions the equation, solving the preconditioner equation
\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]
It may use the MPI environment.
Reimplemented from CGPreconditioner.
|
inlinevirtual |
Reimplemented from CGPreconditioner.
|
inlinevirtual |
Reimplemented from CGPreconditioner.
|
virtual |
This function contains all computation intensive preparations for the preconditioner, e.g. computation of radial integrals. It may use only SMP environment.
Reimplemented from CGPreconditioner.
|
virtual |
This function updates the preconditioner for another right hand side. It may use the MPI environment.
Reimplemented from CGPreconditioner.
|
mutableprotected |
|
static |
|
protected |
|
mutableprotected |
|
static |
1.8.5