HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Classes | Public Types | Public Member Functions | List of all members
HArDCore2D::EXCurl Class Reference

Extended XCurl space, with vector-valued polynomials on the edges. More...

#include <excurl.hpp>

Inheritance diagram for HArDCore2D::EXCurl:
Inheritance graph
[legend]
Collaboration diagram for HArDCore2D::EXCurl:
Collaboration graph
[legend]

Classes

struct  hhoLocalOperators
 A structure to store the local HHO operators. More...
 

Public Types

typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> FunctionType
 
typedef MatrixFamily< DDRCore::PolyBasisCellType, dimspacePolyk2x2Type
 
typedef TensorizedVectorFamily< DDRCore::PolyBasisCellType, dimspacePolykpo2Type
 

Public Member Functions

 EXCurl (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor. More...
 
const Meshmesh () const
 Return the mesh. More...
 
const size_t & degree () const
 Return the polynomial degree. More...
 
Eigen::VectorXd interpolate (const FunctionType &v, const int deg_quad=-1) const
 Interpolator of a continuous function. More...
 
const Eigen::MatrixXd ddrPotential (size_t iT) const
 Return cell potential for the cell of index iT. More...
 
const Eigen::MatrixXd ddrCurl (size_t iT) const
 Return cell (scalar) curl for the cell of index iT. More...
 
const Eigen::MatrixXd ddrPotential (const Cell &T) const
 Return cell potential for cell T. More...
 
const Eigen::MatrixXd ddrCurl (const Cell &T) const
 Return cell (scalar) curl for cell T. More...
 
const hhoLocalOperatorshhoOperators (size_t iT) const
 Return hho operators for the cell of index iT. More...
 
const hhoLocalOperatorshhoOperators (const Cell &T) const
 Return cell operators for cell T. More...
 
const DDRCore::CellBasescellBases (size_t iT) const
 Return ddrcore cell bases for the cell of index iT. More...
 
const DDRCore::CellBasescellBases (const Cell &T) const
 Return ddrcore cell bases for cell T. More...
 
const Polyk2x2TypePolyk2x2 (size_t iT) const
 Return basis for Matricial P^k space. More...
 
const Polykpo2TypePolykpo2 (size_t iT) const
 Return basis for the (P^{k+1})^2 space. More...
 
const DDRCore::EdgeBasesedgeBases (size_t iE) const
 Return ddrcore edge bases for the edge of index iE. More...
 
const DDRCore::EdgeBasesedgeBases (const Edge &E) const
 Return ddrcore edge bases for edge E. More...
 
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 for the cell of index iT. More...
 
Eigen::MatrixXd computeL2ProductGradient (const size_t iT, const XGrad &x_grad, const std::string &side, 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 as 'computeL2Product', with application of the discrete gradient on the left/right/both sides (depending on argument "side"). More...
 
Eigen::MatrixXd computeL2Product_with_Ops (const size_t iT, const std::vector< Eigen::MatrixXd > &leftOp, const std::vector< Eigen::MatrixXd > &rightOp, const double &penalty_factor, const Eigen::MatrixXd &w_mass_Pk2_T, const IntegralWeight &weight) const
 Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductGradient. More...
 
- Public Member Functions inherited from HArDCore2D::GlobalDOFSpace
 GlobalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_cell_dofs)
 Constructor. More...
 
size_t globalOffset (const Vertex &V) const
 Return the global offset for the unknowns on the vertex V. More...
 
size_t globalOffset (const Edge &E) const
 Return the global offset for the unknowns on the edge E. More...
 
size_t globalOffset (const Cell &T) const
 Return the global offset for the unknowns on the cell T. More...
 
Eigen::VectorXd restrictEdge (size_t iE, const Eigen::VectorXd &vh) const
 Restrict to the edge (including its vertices) of index iE. More...
 
Eigen::VectorXd restrictCell (size_t iT, const Eigen::VectorXd &vh) const
 Restrict to the cell (including vertices and edges) of index iT. More...
 
Eigen::VectorXd restrict (const Edge &E, const Eigen::VectorXd vh) const
 Restrict to an edge. More...
 
Eigen::VectorXd restrict (const Cell &T, const Eigen::VectorXd vh) const
 Restrict to a cell. More...
 
Eigen::MatrixXd extendOperator (const Cell &T, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a cell. More...
 
std::vector< size_t > globalDOFIndices (const Cell &T) const
 
void setLabelDOF (const size_t i, const int label)
 Set a label to the DOF number i (default label is -1) More...
 
int getLabelDOF (const size_t i)
 Get label of DOF number i. More...
 
- Public Member Functions inherited from HArDCore2D::LocalDOFSpace
 LocalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_cell_dofs)
 Constructor. More...
 
const Meshmesh () const
 Returns the mesh. More...
 
size_t numLocalDofsVertex () const
 Returns the number of local vertex DOFs. More...
 
size_t numLocalDofsEdge () const
 Returns the number of local edge DOFs. More...
 
size_t numLocalDofsCell () const
 Returns the number of local cell DOFs. More...
 
size_t dimension () const
 Returns the dimension of the global space (all DOFs for all geometric entities) More...
 
size_t numTotalDofsVertices () const
 Returns the total number of vertex DOFs. More...
 
size_t numTotalDofsEdges () const
 Returns the total number of vertex DOFs. More...
 
size_t numTotalDofsCells () const
 Returns the total number of vertex DOFs. More...
 
size_t dimensionVertex (const Vertex &V) const
 Returns the dimension of the local space on the vertex V. More...
 
size_t dimensionVertex (size_t iV) const
 Returns the dimension of the local space on the vertex of index iV. More...
 
size_t dimensionEdge (const Edge &E) const
 Returns the dimension of the local space on the edge E (including vertices) More...
 
size_t dimensionEdge (size_t iE) const
 Returns the dimension of the local space on the edge of index iE (including vertices) More...
 
size_t dimensionCell (const Cell &T) const
 Returns the dimension of the local space on the cell T (including faces, edges and vertices) More...
 
size_t dimensionCellBoundary (const Cell &T) const
 Returns the dimension of the local space on the boundary of T. More...
 
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) More...
 
size_t dimensionCellBoundary (size_t iT) const
 Returns the dimension of the local space on the boundary of T. More...
 
size_t localOffset (const Edge &E, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the edge E. More...
 
size_t localOffset (const Edge &E) const
 Returns the local offset of the unknowns attached to the edge E. More...
 
size_t localOffset (const Cell &T, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the cell T. More...
 
size_t localOffset (const Cell &T, const Edge &E) const
 Returns the local offset of the edge E with respect to the cell T. More...
 
size_t localOffset (const Cell &T) const
 Returns the local offset of the unknowns attached to the element T. More...
 

Additional Inherited Members

- Protected Attributes inherited from HArDCore2D::LocalDOFSpace
const Meshm_mesh
 
size_t m_n_local_vertex_dofs
 
size_t m_n_local_edge_dofs
 
size_t m_n_local_cell_dofs
 

Detailed Description

Extended XCurl space, with vector-valued polynomials on the edges.

Following GlobalDOFSpace, the DOFs are organised this way: DOFs of edges (for each edge: normal components, then tangential components - both oriented according to the intrinsic normal and tangent to the edge), DOFs of cells. The matrices m_reduction are used to locally recover DOFs for the XCurl space by removing the normal components to the edges. Extended discrete Hcurl space: local operators, L2 product and global interpolator


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