32 #ifndef HEX_HYBPRECONDITIONER_H 33 #define HEX_HYBPRECONDITIONER_H 43 #include "hex-arrays.h" 44 #include "hex-matrix.h" 77 Bspline const & bspline_x_inner,
79 Bspline const & bspline_y_inner,
84 bspline_x_inner, bspline_x_full,
85 bspline_y_inner, bspline_y_full
90 bspline_x_inner, bspline_x_full,
91 bspline_y_inner, bspline_y_full
96 bspline_x_inner, bspline_x_full,
97 bspline_y_inner, bspline_y_full
112 virtual void setup ();
113 virtual void update (Real E);
117 virtual void CG_init (
int iblock)
const;
118 virtual void CG_prec (
int iblock,
const cArrayView r, cArrayView z)
const;
119 virtual void CG_mmul (
int iblock,
const cArrayView r, cArrayView z)
const;
120 virtual void CG_exit (
int iblock)
const;
bool ilu_needed(int iblock) const
Definition: HybPreconditioner.cpp:45
ILU-preconditioned CG-based preconditioner.
Definition: ILUPreconditioner.h:64
B-spline environment.
Definition: bspline.h:57
virtual void CG_prec(int iblock, const cArrayView r, cArrayView z) const
Definition: HybPreconditioner.cpp:83
virtual void precondition(BlockArray< Complex > const &r, BlockArray< Complex > &z) const
Precondition the equation.
Definition: CGPreconditioner.cpp:142
Angular basis.
Definition: ang.h:44
virtual void update(Real E)
Update the preconditioner for the next energy.
Definition: HybPreconditioner.cpp:62
Hybrid preconditioner.
Definition: HybPreconditioner.h:60
Command line parameters.
Definition: io.h:57
virtual void CG_exit(int iblock) const
Definition: HybPreconditioner.cpp:91
preconditionerRunTimeSelectionDefinitions(HybCGPreconditioner, "HYB") HybCGPreconditioner()
Definition: HybPreconditioner.h:65
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)
Definition: KPAPreconditioner.h:78
ILUCGPreconditioner(CommandLine const &cmd, InputFile const &inp, Parallel const &par, AngularBasis const &ang, Bspline const &bspline_x_inner, Bspline const &bspline_x_full, Bspline const &bspline_y_inner, Bspline const &bspline_y_full)
Definition: ILUPreconditioner.cpp:58
virtual void rhs(BlockArray< Complex > &chi, int ienergy, int instate) const
Calculate the right-hand side.
Definition: NoPreconditioner.cpp:821
MPI info.
Definition: parallel.h:50
KPA-preconditioned CG-preconditioner.
Definition: KPAPreconditioner.h:66
virtual void setup()
Initialize the preconditioner.
Definition: HybPreconditioner.cpp:56
virtual void CG_mmul(int iblock, const cArrayView r, cArrayView z) const
Definition: HybPreconditioner.cpp:75
virtual void CG_init(int iblock) const
Definition: HybPreconditioner.cpp:67
HybCGPreconditioner(CommandLine const &cmd, InputFile const &inp, Parallel const &par, AngularBasis const &ang, Bspline const &bspline_x_inner, Bspline const &bspline_x_full, Bspline const &bspline_y_inner, Bspline const &bspline_y_full)
Definition: HybPreconditioner.h:72
virtual std::string description() const
Description of the preconditioner.
Definition: HybPreconditioner.cpp:40
virtual void multiply(BlockArray< Complex > const &p, BlockArray< Complex > &q, MatrixSelection::Selection tri=MatrixSelection::Both) const
Multiply by the matrix equation.
Definition: NoPreconditioner.cpp:1233
virtual void finish()
Clean up memory etc.
Definition: HybPreconditioner.cpp:99
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)
Definition: CGPreconditioner.h:60