HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Class definition: polynomial bases and operators. More...
#include <vhhospace.hpp>
Classes | |
struct | CellBases |
Structure to store element bases. More... | |
struct | EdgeBases |
Structure to store edge bases. More... | |
struct | LocalOperators |
A structure to store local operators (gradient, potential, stabilisation) More... | |
Public Types | |
typedef Family< MonomialScalarBasisCell > | PolyBasisCellType |
typedef TensorizedVectorFamily< PolyBasisCellType, dimspace > | PolydBasisCellType |
typedef MatrixFamily< PolyBasisCellType, dimspace > | PolydxdBasisCellType |
typedef Family< PolydxdBasisCellType > | PolySymdxdBasisCellType |
typedef Family< MonomialScalarBasisEdge > | PolyBasisEdgeType |
typedef Family< TensorizedVectorFamily< PolyBasisEdgeType, dimspace > > | PolydBasisEdgeType |
typedef std::function< VectorRd(const VectorRd &)> | FunctionType |
typedef std::function< MatrixRd(const VectorRd &)> | GradientType |
Public Member Functions | |
VHHOSpace (const Mesh &mesh, size_t K, const CellSelection &BoundaryStab, bool use_threads=true, std::ostream &output=std::cout) | |
Constructor (with function to select cells in which boundary faces are used in the stabilisation) | |
VHHOSpace (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout) | |
Overloaded constructor when the selection of boundary stabilisation is not entered (all boundary faces are then used) | |
const Mesh & | mesh () const |
Return a const reference to the mesh. | |
const size_t & | degree () const |
Return the polynomial degree (common face and elements) | |
const CellSelection & | boundaryStab () const |
Return the function to select the cells with boundary stabilisation. | |
Eigen::VectorXd | interpolate (const FunctionType &q, const int doe_cell=-1, const int doe_face=-1) const |
Interpolator of a continuous function. | |
Eigen::VectorXd | local_interpolate (size_t iT, const FunctionType &q, const int doe_cell=-1, const int doe_face=-1) const |
Local Interpolator of a continuous function on the element iT. | |
Eigen::VectorXd | components (size_t iT, const FunctionType &q, const int doe=-1) const |
Discrete components of continuous function in [P^k(T)]^d TODO more general function, with as input the basis space. | |
Eigen::VectorXd | components (size_t iT, const GradientType &q, const int doe=-1) const |
Discrete components of continuous function in [P^k(T;Symm)]^dxd TODO more general function, with as input the basis space. | |
const CellBases & | cellBases (size_t iT) const |
Return cell bases for element iT. | |
const CellBases & | cellBases (const Cell &T) const |
Return cell bases for cell T. | |
const EdgeBases & | edgeBases (size_t iE) const |
Return edge bases for edge iE. | |
const EdgeBases & | edgeBases (const Edge &E) const |
Return cell bases for edge E. | |
const LocalOperators & | operators (size_t iT) const |
Return operators for the cell of index iT. | |
const LocalOperators & | operators (const Cell &T) const |
Return cell operators for cell T. | |
std::vector< std::pair< double, double > > | computeNorms (const std::vector< Eigen::VectorXd > &list_dofs) const |
Computes the discrete L2 (cell unknowns only) and H1 norms of a list of vectors. | |
std::vector< Eigen::VectorXd > | computeVertexValues (const Eigen::VectorXd &u) const |
![]() | |
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 |
Class definition: polynomial bases and operators.