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
Public Member Functions | List of all members
HArDCore3D::LASXDiv Class Reference

Discrete Serendipity Hdiv space: local operators, L2 product and global interpolator. More...

#include <lasxdiv.hpp>

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

Public Member Functions

 LASXDiv (const LieAlgebra &lie_algebra, const XDiv &xdiv, const SXDiv &sxdiv, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const LieAlgebralieAlg () const
 Return the Lie algebra.
 
Eigen::MatrixXd computeL2ProductCurl (const size_t iT, const SXCurl &sx_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 serendipity curl on the left/right/both sides (depending on argument "side").
 
- Public Member Functions inherited from HArDCore3D::LAXDiv
 LAXDiv (const LieAlgebra &lie_algebra, const XDiv &xdiv, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const Meshmesh () const
 Return the mesh.
 
const size_tdegree () const
 Return the polynomial degree.
 
Eigen::VectorXd interpolate (const LAFunctionType &v, const int doe_cell=-1, const int doe_face=-1) const
 Interpolator of a continuous function.
 
const LocalOperatorscellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorscellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasescellBases (size_t iT) const
 Return cell bases for the face of index iT.
 
const DDRCore::CellBasescellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::FaceBasesfaceBases (size_t iF) const
 Return face bases for the face of index iF.
 
const DDRCore::FaceBasesfaceBases (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").
 
- 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

- Public Types inherited from HArDCore3D::LAXDiv
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> FunctionType
 
typedef std::vector< FunctionTypeLAFunctionType
 
- Protected Member Functions inherited from HArDCore3D::LAXDiv
LocalOperators _compute_cell_divergence_potential (size_t iT)
 
- Protected Attributes inherited from HArDCore3D::LAXDiv
const LieAlgebram_lie_algebra
 
const XDivm_xdiv
 
bool m_use_threads
 
std::ostream & m_output
 
std::vector< std::unique_ptr< LocalOperators > > m_cell_operators
 
- 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

Discrete Serendipity Hdiv space: local operators, L2 product and global interpolator.

This is actually just an XDiv space with additional function to compute the L2 product of discrete curl of elements in SXcurl.


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