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::LASXGrad Class Reference

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

#include <lasxgrad.hpp>

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

Classes

struct  TransferOperators
 A structure to store the serendipity, extension and reduction operators. More...
 

Public Types

typedef std::function< double(const Eigen::Vector3d &)> FunctionType
 
typedef std::vector< FunctionTypeLAFunctionType
 

Public Member Functions

 LASXGrad (const LieAlgebra &lie_algebra, const SXGrad &sxgrad, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const Meshmesh () const
 Return the mesh.
 
const size_tdegree () const
 Return the polynomial degree.
 
const LieAlgebralieAlg () const
 Return the Lie algebra.
 
const SerendipityProblemserPro () const
 Return the serendipity operators.
 
Eigen::VectorXd interpolate (const LAFunctionType &q, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const
 Interpolator of a continuous function.
 
const Eigen::MatrixXd & SgradFace (size_t iF) const
 Return the serendipity reconstruction for the face of index iF.
 
const Eigen::MatrixXd & EgradFace (size_t iF) const
 Return the extension for the face of index iF.
 
const Eigen::MatrixXd & RgradFace (size_t iF) const
 Return the reduction for the face of index iF.
 
const Eigen::MatrixXd & SgradFace (const Face &F) const
 Return the serendipity reconstruction for face F.
 
const Eigen::MatrixXd & EgradFace (const Face &F) const
 Return the extension for face F.
 
const Eigen::MatrixXd & RgradFace (const Face &F) const
 Return cell reduction for cell T.
 
const Eigen::MatrixXd & SgradCell (size_t iT) const
 Return the serendipity reconstruction for the cell of index iT.
 
const Eigen::MatrixXd & EgradCell (size_t iT) const
 Return the extension for the cell of index iT.
 
const Eigen::MatrixXd & RgradCell (size_t iT) const
 Return the reduction for the cell of index iT.
 
const Eigen::MatrixXd & SgradCell (const Cell &T) const
 Return the serendipity reconstruction for cell T.
 
const Eigen::MatrixXd & EgradCell (const Cell &T) const
 Return the extension for cell T.
 
const Eigen::MatrixXd & RgradCell (const Cell &T) const
 Return the reduction for cell T.
 
const Eigen::MatrixXd edgeGradient (size_t iE) const
 Return the full gradient operator on the edge of index iE.
 
const Eigen::MatrixXd edgeGradient (const Edge &E) const
 Return the full gradient operator on edge E.
 
const Eigen::MatrixXd edgePotential (size_t iE) const
 Return the potential operator on the edge of index iE.
 
const Eigen::MatrixXd edgePotential (const Edge &E) const
 Return the potential operator on edge E.
 
const Eigen::MatrixXd faceGradient (size_t iF) const
 Return the full gradient operator on the face of index iF.
 
const Eigen::MatrixXd faceGradient (const Face &F) const
 Return the full gradient operator on face F.
 
const Eigen::MatrixXd facePotential (size_t iF) const
 Return the potential operator on the face of index iF.
 
const Eigen::MatrixXd facePotential (const Face &F) const
 Return the potential operator on face F.
 
const Eigen::MatrixXd cellGradient (size_t iT) const
 Return the full gradient operator on the cell of index iT.
 
const Eigen::MatrixXd cellGradient (const Cell &T) const
 Return the full gradient operator on cell T.
 
const Eigen::MatrixXd cellPotential (size_t iT) const
 Return the potential operator on the cell of index iT.
 
const Eigen::MatrixXd cellPotential (const Cell &T) const
 Return the potential operator on cell T.
 
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.
 
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.
 
const DDRCore::EdgeBasesedgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesedgeBases (const Edge &E) const
 Return edge bases for edge E.
 
- Public Member Functions inherited from HArDCore3D::VariableDOFSpace
 VariableDOFSpace (const Mesh &mesh, const Eigen::VectorXi n_local_vertex_dofs, const Eigen::VectorXi n_local_edge_dofs, const Eigen::VectorXi n_local_face_dofs, const Eigen::VectorXi n_local_cell_dofs)
 Constructor.
 
 VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, const Eigen::VectorXi n_local_edge_dofs, const Eigen::VectorXi n_local_face_dofs, const Eigen::VectorXi n_local_cell_dofs)
 Simpler constructor if all vertices have the same number of DOFs.
 
 VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, const Eigen::VectorXi n_local_face_dofs, const Eigen::VectorXi n_local_cell_dofs)
 Simpler constructor if all vertices/edges have the same number of DOFs.
 
 VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_face_dofs, const Eigen::VectorXi n_local_cell_dofs)
 Simpler constructor if all vertices/edges/faces have the same number of DOFs.
 
 VariableDOFSpace (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)
 Simpler constructor if all vertices/edges/faces/cells have the same number of DOFs.
 
const Meshmesh () const
 Returns the mesh.
 
size_t numLocalDofsVertex (const size_t iV) const
 Returns the number of local DOFs on vertex of index iV.
 
size_t numLocalDofsVertex (const Vertex &V) const
 Returns the number of local DOFs on vertex V.
 
size_t numLocalDofsEdge (const size_t iE) const
 Returns the number of local DOFs on edge of index iE.
 
size_t numLocalDofsEdge (const Edge &E) const
 Returns the number of local DOFs on edge E.
 
size_t numLocalDofsFace (const size_t iF) const
 Returns the number of local DOFs on face of index iF.
 
size_t numLocalDofsFace (const Face &F) const
 Returns the number of local DOFs on face F.
 
size_t numLocalDofsCell (const size_t iT) const
 Returns the number of local DOFs on cell of index iT.
 
size_t numLocalDofsCell (const Cell &T) const
 Returns the number of local DOFs on cell T.
 
size_t nDOFs_vertices () const
 Total number of vertices DOFs.
 
size_t nDOFs_edges () const
 Total number of edges DOFs.
 
size_t nDOFs_faces () const
 Total number of faces DOFs.
 
size_t nDOFs_cells () const
 Total number of cells 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 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.
 
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.
 
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.
 
void extendOperator (const Cell &T, const Face &F, Eigen::Ref< Eigen::MatrixXd > opT, const Eigen::MatrixXd &opF) const
 Adds a face operator to a cell operator: distributes and adds the contributions from face F to the operator opT on element T (equivalent to opT + extendOperator(T, F, opF)).
 
void extendOperator (const Cell &T, const Edge &E, Eigen::MatrixXd &opT, const Eigen::MatrixXd &opE) const
 Adds an edge operator to a cell.
 
void extendOperator (const Face &F, const Edge &E, Eigen::MatrixXd &opF, const Eigen::MatrixXd &opE) const
 Adds an edge operator to a face.
 
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.
 

Detailed Description

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

On each edge/face/element, the DOFs (if any) correspond to the polynomial bases on the edge/face/element provided by m_ddr_core


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