| 
    HArD::Core2D
    
   Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns 
   | 
 
Discrete Serendipity Hgrad space: local operators, L2 product and global interpolator. More...
#include <sxgrad.hpp>


Classes | |
| struct | TransferOperators | 
| A structure to store the serendipity, extension and reduction operators.  More... | |
Public Types | |
| typedef std::function< double(const Eigen::Vector2d &)> | FunctionType | 
Public Member Functions | |
| SXGrad (const DDRCore &ddr_core, const SerendipityProblem &ser_pro, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor.   | |
| const Mesh & | mesh () const | 
| Return the mesh.   | |
| const size_t & | degree () const | 
| Return the polynomial degree.   | |
| Eigen::VectorXd | interpolate (const FunctionType &q, const int deg_quad=-1) const | 
| const Eigen::MatrixXd & | SgradCell (size_t iT) const | 
| Return the serendipity reconstruction for the cell of index iT.   | |
| const Eigen::MatrixXd & | EgradCell (size_t iT) const | 
| Return the extension for the cell of index iT.   | |
| const Eigen::MatrixXd & | RgradCell (size_t iT) const | 
| Return the reduction for the cell of index iT.   | |
| const Eigen::MatrixXd & | SgradCell (const Cell &T) const | 
| Return the serendipity reconstruction for cell T.   | |
| const Eigen::MatrixXd & | EgradCell (const Cell &T) const | 
| Return the extension for cell T.   | |
| const Eigen::MatrixXd & | RgradCell (const Cell &T) const | 
| Return the reduction for cell T.   | |
| const TransferOperators & | cellOperators (size_t iT) const | 
| Return cell operators for the cell of index iT.   | |
| const TransferOperators & | cellOperators (const Cell &T) const | 
| Return cell operators for cell T.   | |
| const Eigen::MatrixXd | edgeGradient (size_t iE) const | 
| Return the full gradient operator on the edge of index iE.   | |
| const Eigen::MatrixXd | edgeGradient (const Edge &E) const | 
| Return the full gradient operator on edge E.   | |
| const Eigen::MatrixXd | edgePotential (size_t iE) const | 
| Return the potential operator on the edge of index iE.   | |
| const Eigen::MatrixXd | edgePotential (const Edge &E) const | 
| Return the potential operator on edge E.   | |
| const Eigen::MatrixXd | cellGradient (size_t iT) const | 
| Return the full gradient operator on the cell of index iT.   | |
| const Eigen::MatrixXd | cellGradient (const Cell &T) const | 
| Return the full gradient operator on cell T.   | |
| const Eigen::MatrixXd | cellPotential (size_t iT) const | 
| Return the potential operator on the cell of index iT.   | |
| const Eigen::MatrixXd | cellPotential (const Cell &T) const | 
| Return the potential operator on cell T.   | |
| Eigen::MatrixXd | computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const | 
| Compute the matrix of the (weighted) L2-product.   | |
| double | computeL2Norm (const Eigen::VectorXd &v) const | 
| Compute the L2-norm of a vector of the space.   | |
| Eigen::MatrixXd | computeStabilisation (const size_t iT, const IntegralWeight &weight=IntegralWeight(1.)) const | 
| Computes only the stabilisation matrix of the (weighted) L2-product for the cell of index iT.   | |
| std::vector< double > | computeVertexValues (const Eigen::VectorXd &u) const | 
| Computes the values of the potential reconstruction at the mesh vertices.   | |
| const DDRCore::CellBases & | cellBases (size_t iT) const | 
| Return cell bases for the cell of index iT.   | |
| const DDRCore::CellBases & | cellBases (const Cell &T) const | 
| Return cell bases for cell T.   | |
| const DDRCore::EdgeBases & | edgeBases (size_t iE) const | 
| Return edge bases for the edge of index iE.   | |
| const DDRCore::EdgeBases & | edgeBases (const Edge &E) const | 
| Return edge bases for edge E.   | |
  Public Member Functions inherited from HArDCore2D::VariableDOFSpace | |
| VariableDOFSpace (const Mesh &mesh, const Eigen::VectorXd n_local_vertex_dofs, const Eigen::VectorXd n_local_edge_dofs, const Eigen::VectorXd n_local_cell_dofs) | |
| Constructor.   | |
| VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, const Eigen::VectorXd n_local_edge_dofs, const Eigen::VectorXd n_local_cell_dofs) | |
| Simpler constructor if all vertices have the same number of DOFs.   | |
| VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, const Eigen::VectorXd n_local_cell_dofs) | |
| Simpler constructor if all vertices/edges have the same number of DOFs.   | |
| VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_cell_dofs) | |
| Simpler constructor if all vertices/edges/cells have the same number of DOFs.   | |
| const Mesh & | mesh () const | 
| Returns the mesh.   | |
| size_t | numLocalDofsVertex (const size_t iV) const | 
| Returns the number of local DOFs on vertex of index iV.   | |
| size_t | numLocalDofsVertex (const Vertex &V) const | 
| Returns the number of local DOFs on vertex V.   | |
| size_t | numLocalDofsEdge (const size_t iE) const | 
| Returns the number of local DOFs on edge of index iE.   | |
| size_t | numLocalDofsEdge (const Edge &E) const | 
| Returns the number of local DOFs on edge E.   | |
| size_t | numLocalDofsCell (const size_t iT) const | 
| Returns the number of local DOFs on cell of index iT.   | |
| size_t | numLocalDofsCell (const Cell &T) const | 
| Returns the number of local DOFs on cell T.   | |
| size_t | nDOFs_vertices () const | 
| Total number of vertices DOFs.   | |
| size_t | nDOFs_edges () const | 
| Total number of edges DOFs.   | |
| size_t | nDOFs_cells () const | 
| Total number of cells DOFs.   | |
| size_t | dimension () const | 
| Returns the dimension of the global space (all DOFs for all geometric entities)   | |
| size_t | dimensionVertex (const Vertex &V) const | 
| Returns the dimension of the local space on the vertex V.   | |
| size_t | dimensionVertex (size_t iV) const | 
| Returns the dimension of the local space on the vertex of index iV.   | |
| size_t | dimensionEdge (const Edge &E) const | 
| Returns the dimension of the local space on the edge E (including vertices)   | |
| size_t | dimensionEdge (size_t iE) const | 
| Returns the dimension of the local space on the edge of index iE (including vertices)   | |
| size_t | dimensionCell (const Cell &T) const | 
| Returns the dimension of the local space on the cell T (including faces, edges and vertices)   | |
| size_t | dimensionCell (size_t iT) const | 
| Returns the dimension of the local space on the cell of index iT (including faces, edges and vertices)   | |
| size_t | localOffset (const Edge &E, const Vertex &V) const | 
| Returns the local offset of the vertex V with respect to the edge E.   | |
| size_t | localOffset (const Edge &E) const | 
| Returns the local offset of the unknowns attached to the edge E.   | |
| size_t | localOffset (const Cell &T, const Vertex &V) const | 
| Returns the local offset of the vertex V with respect to the cell T.   | |
| size_t | localOffset (const Cell &T, const Edge &E) const | 
| Returns the local offset of the edge E with respect to the cell T.   | |
| size_t | localOffset (const Cell &T) const | 
| Returns the local offset of the unknowns attached to the element T.   | |
| size_t | globalOffset (const Vertex &V) const | 
| Return the global offset for the unknowns on the vertex V.   | |
| size_t | globalOffset (const Edge &E) const | 
| Return the global offset for the unknowns on the edge E.   | |
| size_t | globalOffset (const Cell &T) const | 
| Return the global offset for the unknowns on the cell T.   | |
| Eigen::VectorXd | restrictEdge (size_t iE, const Eigen::VectorXd &vh) const | 
| Restrict to the edge (including its vertices) of index iE.   | |
| Eigen::VectorXd | restrictCell (size_t iT, const Eigen::VectorXd &vh) const | 
| Restrict to the cell (including vertices, edges and faces) of index iT.   | |
| Eigen::VectorXd | restrict (const Edge &E, const Eigen::VectorXd vh) const | 
| Restrict to an edge.   | |
| Eigen::VectorXd | restrict (const Cell &T, const Eigen::VectorXd vh) const | 
| Restrict to a cell.   | |
| Eigen::MatrixXd | extendOperator (const Cell &T, const Edge &E, const Eigen::MatrixXd &opE) const | 
| Extend an edge operator to a cell.   | |
| std::vector< size_t > | globalDOFIndices (const Cell &T) const | 
| Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs, face DOFs and element DOFs.   | |
| std::vector< size_t > | globalDOFIndices (const Edge &E) const | 
| Returns a vector listing the global DOFs attached to the edge E: vertex DOFs, edge DOFs,.   | |
Discrete Serendipity Hgrad space: local operators, L2 product and global interpolator.
On each edge/face/element, the DOFs (if any) correspond to the polynomial bases on the edge/face/element provided by m_ddr_core