PLaSK library
Loading...
Searching...
No Matches
plask::BandMatrix Struct Reference

#include <plask/common/fem/matrix.hpp>

Inheritance diagram for plask::BandMatrix:
[legend]
Collaboration diagram for plask::BandMatrix:
[legend]

Public Member Functions

 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 doubleoperator() (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.
 
virtual void solverhs (DataVector< double > &B, DataVector< double > &X)=0
 Solve for the right-hand-side of a system of linear equations.
 
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 mult (const DataVector< const double > &vector, DataVector< double > &result)=0
 Multiply matrix by vector.
 
virtual void addmult (const DataVector< const double > &vector, DataVector< double > &result)=0
 Multiply matrix by vector adding the result.
 
template<typename BoundaryConditonsT >
void applyBC (const BoundaryConditonsT &bconds, DataVector< double > &B)
 Apply Dirichlet boundary conditions.
 

Public Attributes

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.
 
doubledata
 Pointer to data.
 
const Solversolver
 Solver owning the matrix.
 

Detailed Description

Definition at line 125 of file matrix.hpp.

Constructor & Destructor Documentation

◆ BandMatrix()

plask::BandMatrix::BandMatrix ( const Solver solver,
size_t  rank,
size_t  kd,
size_t  ld 
)
inline

Definition at line 129 of file matrix.hpp.

Member Function Documentation

◆ describe()

std::string plask::BandMatrix::describe ( ) const
inlineoverridevirtual

Reimplemented from plask::FemMatrix.

Definition at line 147 of file matrix.hpp.

◆ setBC()

void plask::BandMatrix::setBC ( DataVector< double > &  B,
size_t  r,
double  val 
)
inlineoverridevirtual

Set Dirichlet boundary condition.

Parameters
Bright hand side of the equation
rindex of the row
valvalue of the boundary condition

Implements plask::FemMatrix.

Definition at line 132 of file matrix.hpp.

Member Data Documentation

◆ kd

const size_t plask::BandMatrix::kd

Size of the band reduced by one.

Definition at line 127 of file matrix.hpp.

◆ ld

const size_t plask::BandMatrix::ld

leading dimension of the matrix

Definition at line 126 of file matrix.hpp.


The documentation for this struct was generated from the following file: