HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Discrete HRotRot space: local operators, L2 product and global interpolator. More...
#include <xrotrot.hpp>
Classes | |
struct | LocalOperators |
A structure to store the local operators (scalar rotor and potential) More... | |
Public Types | |
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> | FunctionType |
typedef std::function< double(const Eigen::Vector2d &)> | RotType |
Public Member Functions | |
XRotRot (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 RotType &rot_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. | |
Eigen::MatrixXd | cellRotor (size_t iT) const |
Return cell rotor for cell of index iT. | |
Eigen::MatrixXd | cellRotor (const Cell &T) const |
Return cell rotor 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 (size_t iT, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
Eigen::MatrixXd | computeGradientPotentialL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=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 side. | |
Eigen::MatrixXd | computeGradientL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const |
Compute the matrix of the (weighted) gradient-gradient L2-product. | |
template<typename LeftOperatorFillerType , typename RightOperatorFillerType > | |
Eigen::MatrixXd | computeL2ProductWithOperatorFillers (size_t iT, const double &penalty_factor, const IntegralWeight &weight, LeftOperatorFillerType fillLeftOp, RightOperatorFillerType fillRightOp) const |
Compute the matrix of the L2 product given operators filling functions. | |
double | computeL2Norm (const Eigen::VectorXd &v) const |
Compute the L2-norm of a vector of the space. | |
double | computeGradientL2Norm (const Eigen::VectorXd &v, const XGrad *x_grad) const |
Compute the L2-norm of the discrete gradient of a vector in XGrad. | |
![]() | |
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 HRotRot space: local operators, L2 product and global interpolator.