jacobi.template
|
#include <getmatrix.h>
Public Member Functions | |
BisectIntDirichlet () | |
BisectIntDirichlet (std::vector< int > const &fathers, std::vector< int > const &idxc_dir) | |
BisectIntDirichlet (BisectIntDirichlet const &)=default | |
~BisectIntDirichlet () override | |
Public Member Functions inherited from BisectInterpolation | |
BisectInterpolation (std::vector< int > const &fathers) | |
BisectInterpolation () | |
BisectInterpolation (BisectInterpolation const &)=default | |
~BisectInterpolation () override | |
void | GetDiag (std::vector< double > &d) const override |
void | Mult (std::vector< double > &wf, std::vector< double > const &uc) const override |
** More... | |
void | MultT (std::vector< double > const &wf, std::vector< double > &uc) const |
void | Defect (std::vector< double > &w, std::vector< double > const &f, std::vector< double > const &u) const override |
void | Debug () const override |
int | fetch (int row, int col) const override |
Public Member Functions inherited from Matrix | |
Matrix (int nrows, int ncols) | |
Matrix (Matrix const &)=default | |
virtual | ~Matrix () |
bool | isSquare () const |
int | Nrows () const |
int | Ncols () const |
const std::vector< double > & | GetDiag () const |
Additional Inherited Members | |
Protected Attributes inherited from BisectInterpolation | |
std::vector< int > | _iv |
fathers[nnode][2] of fine grid nodes, double entries denote injection points More... | |
std::vector< double > | _vv |
weights[nnode][2] of fathers for grid nodes More... | |
Protected Attributes inherited from Matrix | |
int | _nrows |
number of rows in matrix More... | |
int | _ncols |
number of columns in matrix More... | |
std::vector< double > | _dd |
diagonal matrix elements More... | |
Interpolation matrix for prolongation from coarse mesh (C)) to a fine mesh (F) generated by bisecting edges.
We take into account that values at Dirichlet nodes have to be preserved, i.e., \( w_F = P \cdot I_D \cdot w_C \) and \( d_C = I_D \cdot P^T \cdot d_F\) with \( I_D \) as \( n_C \times n_C \) diagonal matrix and entries \( I_{D(j,j)} := \left\{{\begin{array}{l@{\qquad}l} 0 & x_{j}\;\; \textrm{is Dirichlet node} \\ 1 & \textrm{else} \end{array}}\right. \)
Interpolation weights are eighter 0.5 or 0.0 in case of coarse Dirichlet nodes (injection points contribute twice), Sets weight to zero iff (at least) one father nodes is a Dirichlet node.
Definition at line 482 of file getmatrix.h.
|
inline |
Default constructor.
Definition at line 488 of file getmatrix.h.
BisectIntDirichlet::BisectIntDirichlet | ( | std::vector< int > const & | fathers, |
std::vector< int > const & | idxc_dir | ||
) |
Constructs interpolation from father-row
and column col
.
[in] | fathers | two father nodes from each fine node [nnode_f*2]. |
[in] | idxc_dir | vector containing the indices of coarse mesh Dirichlet nodes. |
Definition at line 660 of file getmatrix.cpp.
|
default |
|
override |
Destructor.
Definition at line 677 of file getmatrix.cpp.