#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: