PLaSK library

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
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 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.
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.
double * | data
| Pointer to data.
const Solver * | solver
| 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
| inline override virtual

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
| ) |  |
| inline override virtual

Set Dirichlet boundary condition.

Parameters

  B | right hand side of the equation
  r | index of the row
  val | value 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:

- plask/common/fem/matrix.hpp