32 #ifndef HEX_KPAPRECONDITIONER_H 33 #define HEX_KPAPRECONDITIONER_H 44 #include "hex-arrays.h" 45 #include "hex-matrix.h" 85 Bspline const & bspline_panel_x,
106 omp_destroy_lock(&lck_);
122 virtual void setup ();
126 virtual void CG_init (
int iblock)
const;
127 virtual void CG_prec (
int iblock,
const cArrayView r, cArrayView z)
const;
128 virtual void CG_exit (
int iblock)
const;
141 mutable omp_lock_t lck_;
virtual std::string description() const
Description of the preconditioner.
Definition: KPAPreconditioner.cpp:52
B-spline environment.
Definition: bspline.h:57
virtual void CG_mmul(int iblock, const cArrayView p, cArrayView q) const
Definition: CGPreconditioner.cpp:242
void unlock_kpa_access() const
Definition: KPAPreconditioner.cpp:215
virtual void precondition(BlockArray< Complex > const &r, BlockArray< Complex > &z) const
Precondition the equation.
Definition: CGPreconditioner.cpp:142
virtual void CG_prec(int iblock, const cArrayView r, cArrayView z) const
Definition: KPAPreconditioner.cpp:119
Angular basis.
Definition: ang.h:44
iArray refcount_proj_
Definition: KPAPreconditioner.h:137
virtual void update(Real E)
Update the preconditioner for the next energy.
Definition: NoPreconditioner.cpp:498
virtual void CG_constrain(cArrayView r) const
Definition: CGPreconditioner.cpp:438
void lock_kpa_access() const
Definition: KPAPreconditioner.cpp:208
Command line parameters.
Definition: io.h:57
iArray refcount_atom_
Definition: KPAPreconditioner.h:137
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
virtual void CG_exit(int iblock) const
Definition: KPAPreconditioner.cpp:176
virtual void rhs(BlockArray< Complex > &chi, int ienergy, int instate) const
Calculate the right-hand side.
Definition: NoPreconditioner.cpp:821
cArrays workspace_
Definition: KPAPreconditioner.h:145
virtual void setup()
Initialize the preconditioner.
Definition: KPAPreconditioner.cpp:57
CG iteration-based preconditioner.
Definition: CGPreconditioner.h:48
virtual ~KPACGPreconditioner()
Definition: KPAPreconditioner.h:103
MPI info.
Definition: parallel.h:50
KPA-preconditioned CG-preconditioner.
Definition: KPAPreconditioner.h:66
virtual void CG_init(int iblock) const
Definition: KPAPreconditioner.cpp:81
preconditionerRunTimeSelectionDefinitions(KPACGPreconditioner, "KPA") KPACGPreconditioner()
Definition: KPAPreconditioner.h:71
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: KPAPreconditioner.cpp:203
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