Hex
1.0
Hydrogen-electron collision solver
|
Solution driver without actual preconditioner. More...
#include <preconditioners.h>
Public Member Functions | |
NoPreconditioner (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 | setup () |
Initialize the preconditioner. More... | |
virtual void | update (double E) |
Update the preconditioner for the next energy. More... | |
virtual void | rhs (cArrayView chi, int ienergy, int instate) const |
Return the right-hand side. More... | |
virtual void | multiply (const cArrayView p, cArrayView q) const |
Multiply by the matrix equation. More... | |
virtual void | precondition (const cArrayView r, cArrayView z) const |
Precondition the equation. More... | |
Static Public Attributes | |
static const std::string | name = "none" |
static const std::string | description = "Preconditioning by the identity matrix." |
Protected Attributes | |
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_ |
This class "preconditions" by identity matrix, but implements all other important routines, that can be used by derived classes, namely:
|
inline |
|
virtual |
This function implements matrix multiplication by the matrix of the set of equations that is to be solved.
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
virtual |
This function preconditions the equation, solving the preconditioner equation
\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]
It may use the MPI environment.
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
inlinevirtual |
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
virtual |
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
virtual |
This function contains all computation intensive preparations for the preconditioner, e.g. computation of radial integrals. It may use only SMP environment.
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
virtual |
This function updates the preconditioner for another right hand side. It may use the MPI environment.
Implements PreconditionerBase.
Reimplemented in TwoLevelPreconditioner, SPAICGPreconditioner, DICCGPreconditioner, ILUCGPreconditioner, SSORCGPreconditioner, JacobiCGPreconditioner, GPUCGPreconditioner, and CGPreconditioner.
|
protected |
|
static |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |