HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
HArDCore3D::VHHOSpace Class Reference

Class definition: polynomial bases and operators. More...

#include <vhhospace.hpp>

Inheritance diagram for HArDCore3D::VHHOSpace:
Inheritance graph
[legend]
Collaboration diagram for HArDCore3D::VHHOSpace:
Collaboration graph
[legend]

Classes

struct  CellBases
 Structure to store element bases. More...
 
struct  FaceBases
 Structure to store face bases. More...
 
struct  LocalOperators
 A structure to store local operators (gradient, potential, stabilisation) More...
 

Public Types

typedef Family< MonomialScalarBasisCellPolyBasisCellType
 
typedef TensorizedVectorFamily< PolyBasisCellType, dimspacePolydBasisCellType
 
typedef MatrixFamily< PolyBasisCellType, dimspacePolydxdBasisCellType
 
typedef Family< MonomialScalarBasisFacePolyBasisFaceType
 
typedef Family< TensorizedVectorFamily< PolyBasisFaceType, dimspace > > PolydBasisFaceType
 
typedef std::function< VectorRd(const VectorRd &)> FunctionType
 

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 Meshmesh () const
 Return a const reference to the mesh.
 
const size_tdegree () const
 Return the polynomial degree (common face and elements)
 
const CellSelectionboundaryStab () 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.
 
const CellBasescellBases (size_t iT) const
 Return cell bases for element iT.
 
const CellBasescellBases (const Cell &T) const
 Return cell bases for cell T.
 
const FaceBasesfaceBases (size_t iF) const
 Return face bases for face iF.
 
const FaceBasesfaceBases (const Face &F) const
 Return cell bases for face F.
 
const LocalOperatorsoperators (size_t iT) const
 Return operators for the cell of index iT.
 
const LocalOperatorsoperators (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< VectorRd > computeVertexValues (const Eigen::VectorXd &u) const
 Computes the values of the potential reconstruction at the mesh vertices.
 
- Public Member Functions inherited from HArDCore3D::GlobalDOFSpace
 GlobalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_face_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 Face &F) const
 Return the global offset for the unknowns on the face F.
 
size_t globalOffset (const Cell &T) const
 Return the global offset for the unknowns on the cell T.
 
size_t globalOffset (size_t d, size_t i) const
 Return the global offset for the unknows on the i-th element of dimension d.
 
Eigen::VectorXd restrictEdge (size_t iE, const Eigen::VectorXd &vh) const
 Restrict to the edge (including its vertices) of index iE.
 
Eigen::VectorXd restrictFace (size_t iF, const Eigen::VectorXd &vh) const
 Restrict to the face (including vertices and edges) of index iF.
 
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 Face &F, const Eigen::VectorXd vh) const
 Restrict to a face.
 
Eigen::VectorXd restrict (const Cell &T, const Eigen::VectorXd vh) const
 Restrict to a cell.
 
Eigen::MatrixXd extendOperator (const Cell &T, const Face &F, const Eigen::MatrixXd &opF) const
 
Eigen::MatrixXd extendOperator (const Cell &T, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a cell.
 
Eigen::MatrixXd extendOperator (const Face &F, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a face.
 
Eigen::MatrixXd extendOperator (size_t d1, size_t i1, size_t d2, size_t i2, const Eigen::MatrixXd &op) const
 Generic extension operator from the i2-th d2-cell to the i1-th d1-cell.
 
void addInnerProductContribution (const Cell &T, const Face &F, Eigen::MatrixXd &prodT, const Eigen::MatrixXd &prodF) const
 Takes an inner product prodF on a face F, and adds its contributions to the inner product prodT on the element T (distributes the contributions according to the DOFs as seen from T)
 
std::vector< size_tglobalDOFIndices (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_tglobalDOFIndices (const Face &F) const
 Returns a vector listing the global DOFs attached to the face F: vertex DOFs, edge DOFs, face DOFs.
 
- Public Member Functions inherited from HArDCore3D::LocalDOFSpace
 LocalDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_face_dofs, size_t n_local_cell_dofs)
 Constructor.
 
const Meshmesh () 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 numLocalDofsFace () const
 Returns the number of local face DOFs.
 
size_t numLocalDofsCell () const
 Returns the number of local cell DOFs.
 
size_t numLocalDofs (size_t d) const
 Returns the number of local d-cell 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 dimensionFace (const Face &F) const
 Returns the dimension of the local space on the face F (including edges and vertices)
 
size_t dimensionFace (size_t iF) const
 Returns the dimension of the local space on the face of index iF (including edges and 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 dimension (size_t d, size_t i) const
 Returns the dimension of the local space on the d-cell of index i (including its boundary)
 
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 Face &F, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the face F.
 
size_t localOffset (const Face &F, const Edge &E) const
 Returns the local offset of the edge E with respect to the face F.
 
size_t localOffset (const Face &F) const
 Returns the local offset of the unknowns attached to the face F.
 
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 Face &F) const
 Returns the local offset of the face F 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

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

Detailed Description

Class definition: polynomial bases and operators.


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