|
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 |
| ** | |
| 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 |
| std::vector< double > const & | 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 | |
| std::vector< double > | _vv |
| weights[nnode][2] of fathers for grid nodes | |
Protected Attributes inherited from Matrix | |
| int | _nrows |
| number of rows in matrix | |
| int | _ncols |
| number of columns in matrix | |
| std::vector< double > | _dd |
| diagonal matrix elements | |
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.