HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
#include <hybridcore.hpp>
Public Member Functions | |
UVector (const Eigen::VectorXd &values, const Mesh &mesh, const int cell_deg, const size_t edge_deg) | |
Eigen::VectorXd & | asVectorXd () const |
Return the values as an Eigen vector. | |
const int | get_cell_deg () const |
Return the cell degree. | |
const size_t | get_edge_deg () const |
Return the edge degree. | |
const size_t | n_cell_dofs () const |
Number of dofs in each cell. | |
const size_t | n_edge_dofs () const |
Number of dofs on each edge. | |
const size_t | n_total_cell_dofs () const |
Total number of cell dofs (in the vector, this is where the edge dofs start) | |
Eigen::VectorXd | restr (size_t iT) const |
Extract the restriction of the unknowns corresponding to cell iT and its edges. | |
UVector | operator+ (const UVector &b) |
Overloads the addition: adds the coefficients. | |
UVector | operator- (const UVector &b) |
Overloads the subtraction: subtracts the coefficients. | |
void | operator+= (const UVector &b) |
Overloads the increment: adds the coefficients. | |
void | operator/= (const double &r) |
Overloads the increment: adds the coefficients. | |
double | operator() (size_t index) const |
Overloads the (): returns the corresponding coefficient. | |
The UVector class describes a vector of unknowns for discrete functions defined by polynomials in the cells and polynomials on the edges (polynomials on the edges are not taken into account yet, but this can easily be changed). The class describes the respective degrees of cell and edges polynomials considered. In the values stored in an element of this class, the coefficients on the cell basis functions come first (in the order of the cells), and then all the edge basis functions (in the order of the edges)