32 #ifndef HEX_ECS_NOPRECONDITIONER_H 33 #define HEX_ECS_NOPRECONDITIONER_H 74 Bspline const & bspline_panel_x,
85 virtual void setup ();
86 virtual void update (Real E);
87 virtual std::pair<int,int>
bstates (Real E,
int l1,
int l2)
const;
89 virtual void rhs (BlockArray<Complex> & chi,
int ienergy,
int instate)
const;
90 virtual void multiply (BlockArray<Complex>
const & p, BlockArray<Complex> & q, MatrixSelection::Selection tri = MatrixSelection::Both)
const;
91 virtual void precondition (BlockArray<Complex>
const & r, BlockArray<Complex> & z)
const;
94 BlockSymBandMatrix<Complex>
calc_A_block (
int ill,
int illp,
bool twoel =
true)
const;
169 std::array<cArrays,2>
Eb_;
172 mutable std::array<std::vector<HlData>,2>
Hl_;
180 #endif // HEX_ECS_NOPRECONDITIONER_H RadialIntegrals const & rad_inner() const
Definition: NoPreconditioner.h:97
Class that calculates and manages the radial integrals for given B-spline bases.
Definition: radial.h:89
CommandLine const * cmd_
Definition: NoPreconditioner.h:107
RadialIntegrals * rad_inner_
Definition: NoPreconditioner.h:158
std::shared_ptr< LUft > luS_
Definition: NoPreconditioner.h:175
BlockSymBandMatrix< Complex > calc_A_block(int ill, int illp, bool twoel=true) const
Definition: NoPreconditioner.cpp:421
virtual void precondition(BlockArray< Complex > const &r, BlockArray< Complex > &z) const
Precondition the equation.
Definition: NoPreconditioner.cpp:1510
std::array< Array< cArrays >, 2 > Xp_
Definition: NoPreconditioner.h:166
std::vector< BlockSymBandMatrix< Complex > > E_blocks_
Definition: NoPreconditioner.h:147
std::vector< CooMatrix< LU_int_t, Complex > > Cu_blocks_
Definition: NoPreconditioner.h:145
int max_n_
Definition: NoPreconditioner.h:152
Solution driver without actual preconditioner.
Definition: NoPreconditioner.h:55
B-spline environment.
Definition: bspline.h:57
Angular basis.
Definition: ang.h:44
virtual void update(Real E)
Update the preconditioner for the next energy.
Definition: NoPreconditioner.cpp:498
RadialIntegrals * rad_panel_
Definition: NoPreconditioner.h:158
~NoPreconditioner()
Definition: NoPreconditioner.cpp:89
Command line parameters.
Definition: io.h:57
preconditionerRunTimeSelectionDefinitions(NoPreconditioner, "none") NoPreconditioner()
RadialIntegrals * rad_full_
Definition: NoPreconditioner.h:158
RadialIntegrals const & rad_panel() const
Definition: NoPreconditioner.h:99
virtual void finish()
Clean up memory etc.
Definition: NoPreconditioner.cpp:1515
virtual void rhs(BlockArray< Complex > &chi, int ienergy, int instate) const
Calculate the right-hand side.
Definition: NoPreconditioner.cpp:821
virtual std::string description() const
Description of the preconditioner.
Definition: NoPreconditioner.cpp:96
std::vector< BlockSymBandMatrix< Complex > > A_blocks_
Definition: NoPreconditioner.h:142
std::vector< std::pair< int, int > > Nchan_
Definition: NoPreconditioner.h:155
MPI info.
Definition: parallel.h:50
AngularBasis const * ang_
Definition: NoPreconditioner.h:116
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
std::vector< std::vector< SymBandMatrix< Complex > > > B1_blocks_
Definition: NoPreconditioner.h:143
RadialIntegrals const & rad_full() const
Definition: NoPreconditioner.h:98
std::array< Array< cArrays >, 2 > Sp_
Definition: NoPreconditioner.h:166
Parallel const * par_
Definition: NoPreconditioner.h:110
virtual std::pair< int, int > bstates(Real E, int l1, int l2) const
Get the number of allowed bound states.
Definition: NoPreconditioner.cpp:392
std::vector< CooMatrix< LU_int_t, Complex > > Fl_blocks_
Definition: NoPreconditioner.h:149
std::vector< std::vector< SymBandMatrix< Complex > > > B2_blocks_
Definition: NoPreconditioner.h:144
std::array< cArrays, 2 > Eb_
Definition: NoPreconditioner.h:169
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
Preconditioner template.
Definition: preconditioners.h:62
std::array< std::vector< HlData >, 2 > Hl_
Definition: NoPreconditioner.h:172
virtual void setup()
Initialize the preconditioner.
Definition: NoPreconditioner.cpp:101
std::vector< CooMatrix< LU_int_t, Complex > > Cl_blocks_
Definition: NoPreconditioner.h:146
Real E_
Definition: NoPreconditioner.h:104
std::vector< CooMatrix< LU_int_t, Complex > > Fu_blocks_
Definition: NoPreconditioner.h:148
InputFile const * inp_
Definition: NoPreconditioner.h:113