HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Discrete Hcurl space: local operators, L2 product and global interpolator. More...
#include <xcurl.hpp>
Classes | |
struct | LocalOperators |
A structure to store the local operators (curl and potential) More... | |
Public Types | |
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> | FunctionType |
Public Member Functions | |
XCurl (const DDRCore &ddr_core, 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 &v, const int deg_quad=-1) const |
Interpolator of a continuous function. | |
const LocalOperators & | cellOperators (size_t iT) const |
Return cell operators for the cell of index iT. | |
const LocalOperators & | cellOperators (const Cell &T) const |
Return cell operators for cell T. | |
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. | |
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. | |
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"). | |
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. | |
![]() | |
GlobalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_cell_dofs) | |
Constructor. | |
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 and edges) 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 |
void | setLabelDOF (const size_t i, const int label) |
Set a label to the DOF number i (default label is -1) | |
int | getLabelDOF (const size_t i) |
Get label of DOF number i. | |
![]() | |
LocalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_cell_dofs) | |
Constructor. | |
const Mesh & | mesh () const |
Returns the mesh. | |
size_t | numLocalDofsVertex () const |
Returns the number of local vertex DOFs. | |
size_t | numLocalDofsEdge () const |
Returns the number of local edge DOFs. | |
size_t | numLocalDofsCell () const |
Returns the number of local cell DOFs. | |
size_t | dimension () const |
Returns the dimension of the global space (all DOFs for all geometric entities) | |
size_t | numTotalDofsVertices () const |
Returns the total number of vertex DOFs. | |
size_t | numTotalDofsEdges () const |
Returns the total number of vertex DOFs. | |
size_t | numTotalDofsCells () const |
Returns the total number of vertex DOFs. | |
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 | dimensionCellBoundary (const Cell &T) const |
Returns the dimension of the local space on the boundary of T. | |
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 | dimensionCellBoundary (size_t iT) const |
Returns the dimension of the local space on the boundary of T. | |
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. | |
Additional Inherited Members | |
![]() | |
const Mesh & | m_mesh |
size_t | m_n_local_vertex_dofs |
size_t | m_n_local_edge_dofs |
size_t | m_n_local_cell_dofs |
Discrete Hcurl space: local operators, L2 product and global interpolator.