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


Classes | |
| struct | TransferOperators |
| A structure to store the serendipity, extension and reduction operators. More... | |
Public Types | |
| typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> | FunctionType |
| typedef std::vector< FunctionType > | LAFunctionType |
Public Member Functions | |
| LASXCurl (const LieAlgebra &lie_algebra, const SXCurl &sx_curl, 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 &v, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous function. | |
| const Eigen::VectorXd | LaxcurlI (size_t iG, Eigen::VectorXd &v) const |
| const Eigen::MatrixXd & | ScurlFace (size_t iF) const |
| Return the serendipity reconstruction for the face of index iF. | |
| const Eigen::MatrixXd & | EcurlFace (size_t iF) const |
| Return the extension for the face of index iF. | |
| const Eigen::MatrixXd & | RcurlFace (size_t iF) const |
| Return the reduction for the face of index iF. | |
| const Eigen::MatrixXd & | ScurlFace (const Face &F) const |
| Return the serendipity reconstruction for face F. | |
| const Eigen::MatrixXd & | EcurlFace (const Face &F) const |
| Return the extension for face F. | |
| const Eigen::MatrixXd & | RcurlFace (const Face &F) const |
| Return cell reduction for cell T. | |
| const Eigen::MatrixXd & | ScurlCell (size_t iT) const |
| Return the serendipity reconstruction for the cell of index iT. | |
| const Eigen::MatrixXd & | EcurlCell (size_t iT) const |
| Return the extension for the cell of index iT. | |
| const Eigen::MatrixXd & | RcurlCell (size_t iT) const |
| Return the reduction for the cell of index iT. | |
| const Eigen::MatrixXd & | ScurlCell (const Cell &T) const |
| Return the serendipity reconstruction for cell T. | |
| const Eigen::MatrixXd & | EcurlCell (const Cell &T) const |
| Return the extension for cell T. | |
| const Eigen::MatrixXd & | RcurlCell (const Cell &T) const |
| Return the reduction for cell T. | |
| const Eigen::MatrixXd | faceCurl (size_t iF) const |
| Return the full curl operator on the face of index iF. | |
| const Eigen::MatrixXd | faceCurl (const Face &F) const |
| Return the full curl 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 | cellCurl (size_t iT) const |
| Return the full curl operator on the cell of index iT. | |
| const Eigen::MatrixXd | cellCurl (const Cell &T) const |
| Return the full curl 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. | |
| Eigen::MatrixXd | computeL2ProductGradient (const size_t iT, const SXGrad &sx_grad, 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 gradient on the left/right/both sides (depending on argument "side"). | |
| 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 Lie algebra valued Serendipity Hcurl space: local operators, L2 product and global interpolator.
Each DOF in the XCurl space corresponds to the dimension of the Lie algebra number of DOFs in the LAXCurl space. These DOFs are stored consecutively with overall ordering given by XCurl; they represent and are locally ordered by the basis in the LieAlgebra