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. | |
![]() | |
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