jacobi.template
Public Member Functions | List of all members
BisectIntDirichlet Class Reference

#include <getmatrix.h>

Inheritance diagram for BisectIntDirichlet:
BisectInterpolation Matrix

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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ BisectIntDirichlet() [1/3]

BisectIntDirichlet::BisectIntDirichlet ( )
inline

Default constructor.

Definition at line 488 of file getmatrix.h.

◆ BisectIntDirichlet() [2/3]

BisectIntDirichlet::BisectIntDirichlet ( std::vector< int > const &  fathers,
std::vector< int > const &  idxc_dir 
)

Constructs interpolation from father-row and column col.

Parameters
[in]fatherstwo father nodes from each fine node [nnode_f*2].
[in]idxc_dirvector containing the indices of coarse mesh Dirichlet nodes.

Definition at line 660 of file getmatrix.cpp.

◆ BisectIntDirichlet() [3/3]

BisectIntDirichlet::BisectIntDirichlet ( BisectIntDirichlet const &  )
default

◆ ~BisectIntDirichlet()

BisectIntDirichlet::~BisectIntDirichlet ( )
override

Destructor.

Definition at line 677 of file getmatrix.cpp.


The documentation for this class was generated from the following files: