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


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< FunctionType > | LAFunctionType |
Public Member Functions | |
| LASXGrad (const LieAlgebra &lie_algebra, const SXGrad &sxgrad, 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. | |
| const LieAlgebra & | lieAlg () const |
| Return the Lie algebra. | |
| const SerendipityProblem & | serPro () 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::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. | |
| const DDRCore::EdgeBases & | edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const DDRCore::EdgeBases & | edgeBases (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 Mesh & | mesh () 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_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. | |
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