|
PLaSK library
|
Symmetric band matrix structure. More...
#include <plask/common/fem/cholesky_matrix.hpp>
Public Member Functions | |
| DpbMatrix (const Solver *solver, size_t rank, size_t band) | |
| Create matrix. | |
| size_t | index (size_t r, size_t c) |
| double & | operator() (size_t r, size_t c) override |
| Return reference to array element. | |
| void | factorize () override |
| Factorize the matrix in advance to speed up the solution. | |
| 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. | |
| void | addmult (const DataVector< const double > &vector, DataVector< double > &result) override |
| Multiply matrix by vector adding the result. | |
Public Member Functions inherited from plask::BandMatrix | |
| BandMatrix (const Solver *solver, size_t rank, size_t kd, size_t ld) | |
| void | setBC (DataVector< double > &B, size_t r, double val) override |
| Set Dirichlet boundary condition. | |
| std::string | describe () const override |
Public Member Functions inherited from plask::FemMatrix | |
| FemMatrix (const Solver *solver, size_t rank, size_t size) | |
| FemMatrix (const FemMatrix &)=delete | |
| virtual | ~FemMatrix () |
| virtual void | clear () |
| Clear the matrix. | |
| 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. | |
| template<typename BoundaryConditonsT > | |
| void | applyBC (const BoundaryConditonsT &bconds, DataVector< double > &B) |
| Apply Dirichlet boundary conditions. | |
Additional Inherited Members | |
Public Attributes inherited from plask::BandMatrix | |
| const size_t | ld |
| leading dimension of the matrix | |
| const size_t | kd |
| Size of the band reduced by one. | |
Public Attributes inherited from plask::FemMatrix | |
| const size_t | rank |
| Order of the matrix, i.e. number of columns or rows. | |
| const size_t | size |
| Number of stored elements in the matrix. | |
| double * | data |
| Pointer to data. | |
| const Solver * | solver |
| Solver owning the matrix. | |
Symmetric band matrix structure.
Data is stored in LAPACK format.
Definition at line 58 of file cholesky_matrix.hpp.
Create matrix.
| rank | rank of the matrix |
| band | maximum band size |
Definition at line 64 of file cholesky_matrix.hpp.
|
inlineoverridevirtual |
Multiply matrix by vector adding the result.
| vector | vector to multiply |
| result | multiplication result |
Implements plask::FemMatrix.
Definition at line 117 of file cholesky_matrix.hpp.
|
inlineoverridevirtual |
Factorize the matrix in advance to speed up the solution.
| solver | solver to use |
Reimplemented from plask::FemMatrix.
Definition at line 90 of file cholesky_matrix.hpp.
|
inline |
Definition at line 67 of file cholesky_matrix.hpp.
|
inlineoverridevirtual |
Multiply matrix by vector.
| vector | vector to multiply |
| result | multiplication result |
Implements plask::FemMatrix.
Definition at line 113 of file cholesky_matrix.hpp.
|
inlineoverridevirtual |
Return reference to array element.
| r | index of the element row |
| c | index of the element column |
Implements plask::FemMatrix.
Definition at line 88 of file cholesky_matrix.hpp.
|
inlineoverridevirtual |
Solve for the right-hand-side of a system of linear equations.
| 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) |
Implements plask::FemMatrix.
Definition at line 103 of file cholesky_matrix.hpp.