32 #ifndef HEX_ECS_COUPLED_PRECONDITIONER_H 33 #define HEX_ECS_COUPLED_PRECONDITIONER_H 60 Bspline const & bspline_panel_x,
81 virtual void update (Real E);
82 virtual void precondition (BlockArray<Complex>
const & r, BlockArray<Complex> & z)
const;
91 std::shared_ptr<LUft>
lu_;
99 #endif // HEX_ECS_COUPLED_PRECONDITIONER_H cArray X
Definition: CoupledPreconditioner.h:94
virtual std::string description() const
Description of the preconditioner.
Definition: CoupledPreconditioner.cpp:40
cArray Y
Definition: CoupledPreconditioner.h:94
Solution driver without actual preconditioner.
Definition: NoPreconditioner.h:55
B-spline environment.
Definition: bspline.h:57
preconditionerRunTimeSelectionDefinitions(CoupledPreconditioner, "coupled") CoupledPreconditioner()
Definition: CoupledPreconditioner.h:46
virtual void finish()
Clean up memory etc.
Definition: CoupledPreconditioner.cpp:214
Angular basis.
Definition: ang.h:44
virtual void update(Real E)
Update the preconditioner for the next energy.
Definition: CoupledPreconditioner.cpp:47
Command line parameters.
Definition: io.h:57
LUftData data_
Definition: CoupledPreconditioner.h:88
std::shared_ptr< LUft > lu_
Definition: CoupledPreconditioner.h:91
virtual void rhs(BlockArray< Complex > &chi, int ienergy, int instate) const
Calculate the right-hand side.
Definition: NoPreconditioner.cpp:821
CoupledPreconditioner(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: CoupledPreconditioner.h:53
MPI info.
Definition: parallel.h:50
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)
Definition: NoPreconditioner.cpp:56
virtual void precondition(BlockArray< Complex > const &r, BlockArray< Complex > &z) const
Precondition the equation.
Definition: CoupledPreconditioner.cpp:194
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 setup()
Initialize the preconditioner.
Definition: NoPreconditioner.cpp:101
Definition: CoupledPreconditioner.h:41