|
HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
|
Virtual Hcurl space: local operators, L2 product and global interpolator. More...
#include <vcurl.hpp>


Classes | |
| struct | LocalOperators |
| A structure to store the local operators (projections of curl and function, dof of curl in Vdiv) More... | |
Public Types | |
| typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> | FunctionType |
Public Member Functions | |
| VCurl (const VEMCore &vem_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 FunctionType &curl_v, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-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 LocalOperators & | faceOperators (size_t iF) const |
| Return face operators for the face of index iF. | |
| const LocalOperators & | faceOperators (const Face &F) const |
| Return face operators for face F. | |
| const VEMCore::CellBases & | cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const VEMCore::CellBases & | cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const VEMCore::FaceBases & | faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const VEMCore::FaceBases & | faceBases (const Face &F) const |
| Return cell bases for face F. | |
| const VEMCore::EdgeBases & | edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const VEMCore::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_Pk3_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. | |
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_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 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 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 | 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 Mesh & | m_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 |
Virtual Hcurl space: local operators, L2 product and global interpolator.
The order of the DOFs in each element are, in this order:
| Mesh entity | Type | Space | Description |
|---|---|---|---|
| E | function | \(P^{k}(E)\) | tangential components of \(\mathbf{v}\) |
| F | function | \(R^{c,k+1}(F)\) | projection of tangential component of \(\mathbf{v}\) |
| F | rot | \(P^{k}_0(F)\) | projection of \(\mathrm{rot}_F(\mathbf{v}_{t,F})\) |
| T | function | \(R^{c,k}(T)\) | projection of \(\mathbf{v}\) |
| T | curl | \(G^{c,k+1}(T)\) | projection of \(\mathrm{curl}\mathbf{v}\) |
No serendipity here (hence the Rck+1 on the faces)