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


Classes | |
| struct | LocalOperators |
| A structure to store local operators (divergence and potential) More... | |
Public Types | |
| typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> | FunctionType |
Public Member Functions | |
| XDiv (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 int doe_cell=-1, const int doe_face=-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 DDRCore::CellBases & | cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const DDRCore::CellBases & | cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | faceBases (const Face &F) const |
| Return cell bases for face F. | |
| 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. | |
| Eigen::MatrixXd | computeL2ProductCurl (const size_t iT, const XCurl &x_curl, const std::string &side, 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 as 'computeL2Product', with application of the discrete curl on the left/right/both sides (depending on argument "side"). | |
| Eigen::MatrixXd | computeL2Product_with_Ops (const size_t iT, const std::vector< Eigen::MatrixXd > &leftOp, const std::vector< Eigen::MatrixXd > &rightOp, const double &penalty_factor, const Eigen::MatrixXd &w_mass_Pk3_T, const IntegralWeight &weight) const |
| Compute the matrix of the L2 product, applying leftOp and rightOp to the variables. Probably not directly called, mostly invoked through the wrappers computeL2Product and computeL2ProductCurl. | |
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. | |
Protected Member Functions | |
| LocalOperators | _compute_cell_divergence_potential (size_t iT) |
Protected Attributes | |
| const DDRCore & | m_ddr_core |
| bool | m_use_threads |
| std::ostream & | m_output |
| std::vector< std::unique_ptr< LocalOperators > > | m_cell_operators |
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 |
Discrete Hdiv space: local operators, L2 product and global interpolator.
On each face, the DOFs correspond to the polynomial bases on the face provided by m_ddr_core. On each element, the DOFs are first those of the \(\mathcal{G}^{k-1}\) component and then of the \(\mathcal{G}^{c,k}\) component, each one of them following the bases of these spaces provided by m_ddr_core.