#include <plask/common/fem/iterative_matrix.hpp>
|
template<typename SolverT > |
| SparseMatrix (SolverT *solver, size_t rank, size_t size, size_t isiz) |
|
template<typename SolverT > |
| SparseMatrix (SolverT *solver, size_t rank, size_t size) |
|
| ~SparseMatrix () |
|
void | solverhs (DataVector< double > &B, DataVector< double > &X) override |
| Solve for the right-hand-side of a system of linear equations.
|
|
void | mult (const DataVector< const double > &vector, DataVector< double > &result) override |
| Multiply matrix by vector.
|
|
| FemMatrix (const Solver *solver, size_t rank, size_t size) |
|
| FemMatrix (const FemMatrix &)=delete |
|
virtual | ~FemMatrix () |
|
virtual double & | operator() (size_t r, size_t c)=0 |
| Return reference to array element.
|
|
virtual void | clear () |
| Clear the matrix.
|
|
virtual void | factorize () |
| Factorize the matrix in advance to speed up the solution.
|
|
void | solve (DataVector< double > &B, DataVector< double > &X) |
| Solve the set of linear equations.
|
|
void | solve (DataVector< double > &B) |
| Solve the set of linear equations.
|
|
virtual void | addmult (const DataVector< const double > &vector, DataVector< double > &result)=0 |
| Multiply matrix by vector adding the result.
|
|
virtual void | setBC (DataVector< double > &B, size_t r, double val)=0 |
| Set Dirichlet boundary condition.
|
|
template<typename BoundaryConditonsT > |
void | applyBC (const BoundaryConditonsT &bconds, DataVector< double > &B) |
| Apply Dirichlet boundary conditions.
|
|
virtual std::string | describe () const |
|
Definition at line 96 of file iterative_matrix.hpp.
◆ NspcgFunc
◆ SparseMatrix() [1/2]
plask::SparseMatrix::SparseMatrix |
( |
SolverT * |
solver, |
|
|
size_t |
rank, |
|
|
size_t |
size, |
|
|
size_t |
isiz |
|
) |
| |
|
inline |
◆ SparseMatrix() [2/2]
plask::SparseMatrix::SparseMatrix |
( |
SolverT * |
solver, |
|
|
size_t |
rank, |
|
|
size_t |
size |
|
) |
| |
|
inline |
◆ ~SparseMatrix()
plask::SparseMatrix::~SparseMatrix |
( |
| ) |
|
|
inline |
◆ get_maxnz()
virtual int plask::SparseMatrix::get_maxnz |
( |
| ) |
const |
|
inlineprotectedvirtual |
◆ get_preconditioner()
◆ mult()
◆ solverhs()
Solve for the right-hand-side of a system of linear equations.
- Parameters
-
| solver | solver to use |
[in,out] | B | right hand side of the equation, on output may be interchanged with X |
[in,out] | X | initial estimate of the solution, on output contains the solution (may be interchanged with B) |
- Returns
- number of iterations
Implements plask::FemMatrix.
Definition at line 141 of file iterative_matrix.hpp.
◆ icords
int* plask::SparseMatrix::icords |
|
protected |
Vector of non-zero band numbers (shift from diagonal) or non-zero elements.
Definition at line 100 of file iterative_matrix.hpp.
◆ ifact
int plask::SparseMatrix::ifact = 1 |
|
protected |
◆ inw
int plask::SparseMatrix::inw = 0 |
|
protected |
◆ iwksp
◆ kblsz
int plask::SparseMatrix::kblsz = -1 |
|
protected |
◆ mdim
◆ nbl2d
int plask::SparseMatrix::nbl2d = -1 |
|
protected |
◆ ndim
◆ nstore
◆ nw
int plask::SparseMatrix::nw = 0 |
|
protected |
◆ params
◆ wksp
The documentation for this struct was generated from the following file: