HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
DDRCore

Classes providing tools to the Discrete De Rham sequence. More...

Classes

class  HArDCore2D::DDRCore
 Construct all polynomial spaces for the DDR sequence. More...
 
struct  HArDCore2D::DDRCore::CellBases
 Structure to store element bases. More...
 
struct  HArDCore2D::DDRCore::EdgeBases
 Structure to store edge bases. More...
 
class  HArDCore2D::EXCurl
 Extended XCurl space, with vector-valued polynomials on the edges. More...
 
struct  HArDCore2D::EXCurl::hhoLocalOperators
 A structure to store the local HHO operators. More...
 
class  HArDCore2D::SerendipityProblem
 Construct all polynomial spaces for the DDR sequence. More...
 
class  HArDCore2D::SXGrad
 Discrete Serendipity Hgrad space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::SXGrad::TransferOperators
 A structure to store the serendipity, extension and reduction operators. More...
 
class  HArDCore2D::VSXGrad
 Vector version of sXgrad, the arbitrary order space with nodal primal unknowns. More...
 
struct  HArDCore2D::VSXGrad::LocalOperators
 
struct  HArDCore2D::VSXGrad::CellBases
 
struct  HArDCore2D::VSXGrad::EdgeBases
 
class  HArDCore2D::XCurl
 Discrete Hcurl space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::XCurl::LocalOperators
 A structure to store the local operators (curl and potential) More...
 
class  HArDCore2D::XGrad
 Discrete H1 space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::XGrad::LocalOperators
 A structure to store local operators (gradient and potential) More...
 
class  HArDCore2D::XHess
 Discrete H2 space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::XHess::LocalOperators
 A structure to store local operators (gradient and potential) More...
 
struct  HArDCore2D::XHess::TransferOperators
 
class  HArDCore2D::XRot
 Discrete H1 space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::XRot::LocalOperators
 A structure to store local operators (vector rotor and potential) More...
 
class  HArDCore2D::XRotRot
 Discrete HRotRot space: local operators, L2 product and global interpolator. More...
 
struct  HArDCore2D::XRotRot::LocalOperators
 A structure to store the local operators (scalar rotor and potential) More...
 

Typedefs

typedef Family< MonomialScalarBasisCellHArDCore2D::DDRCore::PolyBasisCellType
 
typedef TensorizedVectorFamily< PolyBasisCellType, 2 > HArDCore2D::DDRCore::Poly2BasisCellType
 
typedef Family< GradientBasis< ShiftedBasis< MonomialScalarBasisCell > > > HArDCore2D::DDRCore::GolyBasisCellType
 
typedef Family< GolyComplBasisCellHArDCore2D::DDRCore::GolyComplBasisCellType
 
typedef Family< CurlBasis< ShiftedBasis< MonomialScalarBasisCell > > > HArDCore2D::DDRCore::RolyBasisCellType
 
typedef Family< RolyComplBasisCellHArDCore2D::DDRCore::RolyComplBasisCellType
 
typedef Family< MonomialScalarBasisEdgeHArDCore2D::DDRCore::PolyBasisEdgeType
 
typedef Cell HArDCore2D::DDRCore::CellBases::GeometricSupport
 Geometric support.
 
typedef Edge HArDCore2D::DDRCore::EdgeBases::GeometricSupport
 Geometric support.
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::EXCurl::FunctionType
 
typedef MatrixFamily< DDRCore::PolyBasisCellType, dimspaceHArDCore2D::EXCurl::Polyk2x2Type
 
typedef TensorizedVectorFamily< DDRCore::PolyBasisCellType, dimspaceHArDCore2D::EXCurl::Polykpo2Type
 
typedef RestrictedBasis< DDRCore::PolyBasisCellTypeHArDCore2D::SerendipityProblem::PolylBasisCellType
 
typedef RestrictedBasis< DDRCore::RolyComplBasisCellTypeHArDCore2D::SerendipityProblem::RolyCompllpoBasisCellType
 
typedef Eigen::FullPivLU< Eigen::MatrixXd > HArDCore2D::SerendipityProblem::InverseProblem
 Type for inverses of matrix for serendipity problem.
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::SXGrad::FunctionType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::VSXGrad::FunctionType
 
typedef Family< MonomialScalarBasisCellHArDCore2D::VSXGrad::PolyBasisCellType
 
typedef TensorizedVectorFamily< DDRCore::PolyBasisCellType, dimspaceHArDCore2D::VSXGrad::Poly2BasisCellType
 
typedef MatrixFamily< DDRCore::PolyBasisCellType, dimspaceHArDCore2D::VSXGrad::Poly2x2BasisCellType
 
typedef Family< MonomialScalarBasisEdgeHArDCore2D::VSXGrad::PolyBasisEdgeType
 
typedef TensorizedVectorFamily< DDRCore::PolyBasisEdgeType, dimspaceHArDCore2D::VSXGrad::Poly2BasisEdgeType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XCurl::FunctionType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::XGrad::FunctionType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::XHess::FunctionType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XHess::GradFunctionType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::XRot::FunctionType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XRotRot::FunctionType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::XRotRot::RotType
 

Functions

 HArDCore2D::DDRCore::DDRCore (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::DDRCore::mesh () const
 Return a const reference to the mesh.
 
const size_t & HArDCore2D::DDRCore::degree () const
 Return the polynomial degree.
 
const CellBasesHArDCore2D::DDRCore::cellBases (size_t iT) const
 Return cell bases for element iT.
 
const EdgeBasesHArDCore2D::DDRCore::edgeBases (size_t iE) const
 Return edge bases for edge iE.
 
 HArDCore2D::EXCurl::hhoLocalOperators::hhoLocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_symmetric_gradient, const Eigen::MatrixXd &_potential, const Eigen::MatrixXd &_stabilisation)
 
 HArDCore2D::EXCurl::EXCurl (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::EXCurl::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::EXCurl::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::EXCurl::interpolate (const FunctionType &v, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const Eigen::MatrixXd HArDCore2D::EXCurl::ddrPotential (size_t iT) const
 Return cell potential for the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::EXCurl::ddrCurl (size_t iT) const
 Return cell (scalar) curl for the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::EXCurl::ddrPotential (const Cell &T) const
 Return cell potential for cell T.
 
const Eigen::MatrixXd HArDCore2D::EXCurl::ddrCurl (const Cell &T) const
 Return cell (scalar) curl for cell T.
 
const hhoLocalOperatorsHArDCore2D::EXCurl::hhoOperators (size_t iT) const
 Return hho operators for the cell of index iT.
 
const hhoLocalOperatorsHArDCore2D::EXCurl::hhoOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasesHArDCore2D::EXCurl::cellBases (size_t iT) const
 Return ddrcore cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::EXCurl::cellBases (const Cell &T) const
 Return ddrcore cell bases for cell T.
 
const Polyk2x2TypeHArDCore2D::EXCurl::Polyk2x2 (size_t iT) const
 Return basis for Matricial P^k space.
 
const Polykpo2TypeHArDCore2D::EXCurl::Polykpo2 (size_t iT) const
 Return basis for the (P^{k+1})^2 space.
 
const DDRCore::EdgeBasesHArDCore2D::EXCurl::edgeBases (size_t iE) const
 Return ddrcore edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::EXCurl::edgeBases (const Edge &E) const
 Return ddrcore edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::EXCurl::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_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 HArDCore2D::EXCurl::computeL2ProductGradient (const size_t iT, const XGrad &x_grad, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_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").
 
Eigen::MatrixXd HArDCore2D::EXCurl::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_Pk2_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 computeL2ProductGradient.
 
 HArDCore2D::SerendipityProblem::SerendipityProblem (const DDRCore &ddrcore, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const std::vector< size_t > & HArDCore2D::SerendipityProblem::serendipityEdges (size_t iT) const
 Return the list of serendipity edges in a cell.
 
const int HArDCore2D::SerendipityProblem::n_serendipityEdges (size_t iT) const
 Return the number of serendipity edges in a cell.
 
const int HArDCore2D::SerendipityProblem::serDegreeCell (size_t iT) const
 Return the serendipity degree ell_T in a cell.
 
size_t HArDCore2D::SerendipityProblem::dimCellPolyl (size_t iT) const
 Return the dimension of P^l on cell of index iT.
 
size_t HArDCore2D::SerendipityProblem::dimCellPolyl (const Cell &T) const
 Return the dimension of P^{l+1} on cell T.
 
const PolylBasisCellTypeHArDCore2D::SerendipityProblem::cellBasisPolyl (size_t iT) const
 Return the basis of P^l on cell of index iT.
 
const PolylBasisCellTypeHArDCore2D::SerendipityProblem::cellBasisPolyl (const Cell &T) const
 Return the basis of P^l on cell T.
 
Eigen::VectorXd HArDCore2D::SerendipityProblem::nDOFs_cells_SXGrad () const
 Number of DOFs on cells for serendipity XGrad space.
 
size_t HArDCore2D::SerendipityProblem::dimCellRolyCompllpo (size_t iT) const
 Return the dimension of R^{c,l+1} on cell of index iT.
 
size_t HArDCore2D::SerendipityProblem::dimCellRolyCompllpo (const Cell &T) const
 Return the dimension of R^{c,l+1} on cell T.
 
const RolyCompllpoBasisCellTypeHArDCore2D::SerendipityProblem::cellBasisRolyCompllpo (size_t iT) const
 Return the basis of R^{c,l+1} on cell of index iT.
 
const RolyCompllpoBasisCellTypeHArDCore2D::SerendipityProblem::cellBasisRolyCompllpo (const Cell &T) const
 Return the basis of R^{c,l+1} on cell T.
 
Eigen::VectorXd HArDCore2D::SerendipityProblem::nDOFs_cells_SXCurl () const
 Number of DOFs on cells for serendipity XCurl space.
 
Eigen::VectorXd HArDCore2D::SerendipityProblem::nDOFs_cells_SXRotRot () const
 Number of DOFs on cells for serendipity XRotRot space.
 
const Eigen::MatrixXd HArDCore2D::SerendipityProblem::SerendipityOperatorCell (const size_t iT, const Eigen::MatrixXd &LT) const
 Compute the serendipity operator on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::SerendipityProblem::SerendipityOperatorCell (const Cell &T, const Eigen::MatrixXd &LT) const
 Compute the serendipity operator on the Cell T.
 
const MeshHArDCore2D::SerendipityProblem::mesh () const
 Return a const reference to the mesh.
 
const DDRCoreHArDCore2D::SerendipityProblem::ddrCore () const
 Return a const reference to the underlying DDR core.
 
 HArDCore2D::SXGrad::TransferOperators::TransferOperators (const Eigen::MatrixXd &_serendipity, const Eigen::MatrixXd &_extension, const Eigen::MatrixXd &_reduction)
 
 HArDCore2D::SXGrad::SXGrad (const DDRCore &ddr_core, const SerendipityProblem &ser_pro, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::SXGrad::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::SXGrad::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::SXGrad::interpolate (const FunctionType &q, const int deg_quad=-1) const
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::SgradCell (size_t iT) const
 Return the serendipity reconstruction for the cell of index iT.
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::EgradCell (size_t iT) const
 Return the extension for the cell of index iT.
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::RgradCell (size_t iT) const
 Return the reduction for the cell of index iT.
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::SgradCell (const Cell &T) const
 Return the serendipity reconstruction for cell T.
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::EgradCell (const Cell &T) const
 Return the extension for cell T.
 
const Eigen::MatrixXd & HArDCore2D::SXGrad::RgradCell (const Cell &T) const
 Return the reduction for cell T.
 
const TransferOperatorsHArDCore2D::SXGrad::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const TransferOperatorsHArDCore2D::SXGrad::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::edgeGradient (size_t iE) const
 Return the full gradient operator on the edge of index iE.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::edgeGradient (const Edge &E) const
 Return the full gradient operator on edge E.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::edgePotential (size_t iE) const
 Return the potential operator on the edge of index iE.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::edgePotential (const Edge &E) const
 Return the potential operator on edge E.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::cellGradient (size_t iT) const
 Return the full gradient operator on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::cellGradient (const Cell &T) const
 Return the full gradient operator on cell T.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::cellPotential (size_t iT) const
 Return the potential operator on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::SXGrad::cellPotential (const Cell &T) const
 Return the potential operator on cell T.
 
Eigen::MatrixXd HArDCore2D::SXGrad::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const
 Compute the matrix of the (weighted) L2-product.
 
double HArDCore2D::SXGrad::computeL2Norm (const Eigen::VectorXd &v) const
 Compute the L2-norm of a vector of the space.
 
Eigen::MatrixXd HArDCore2D::SXGrad::computeStabilisation (const size_t iT, const IntegralWeight &weight=IntegralWeight(1.)) const
 Computes only the stabilisation matrix of the (weighted) L2-product for the cell of index iT.
 
std::vector< double > HArDCore2D::SXGrad::computeVertexValues (const Eigen::VectorXd &u) const
 Computes the values of the potential reconstruction at the mesh vertices.
 
const DDRCore::CellBasesHArDCore2D::SXGrad::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::SXGrad::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::SXGrad::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::SXGrad::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
 HArDCore2D::VSXGrad::LocalOperators::LocalOperators (const Eigen::MatrixXd &_rot, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::VSXGrad::VSXGrad (const DDRCore &ddr_core, const SerendipityProblem &sp, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::VSXGrad::mesh () const
 Return the mesh.
 
const SXGradHArDCore2D::VSXGrad::sXgrad () const
 Return the underlying sXgrad space.
 
const size_t & HArDCore2D::VSXGrad::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::VSXGrad::interpolate (const FunctionType &q, const int doe_cell=-1) const
 Interpolator of a continuous function.
 
auto HArDCore2D::VSXGrad::PolykE (size_t iE) const -> const PolyBasisEdgeType &
 
auto HArDCore2D::VSXGrad::PolykpoE (size_t iE) const -> const PolyBasisEdgeType &
 
auto HArDCore2D::VSXGrad::PolykptwoE (size_t iE) const -> const PolyBasisEdgeType &
 
auto HArDCore2D::VSXGrad::Polykpo (size_t iT) const -> const PolyBasisCellType &
 
auto HArDCore2D::VSXGrad::Polykmo (size_t iT) const -> const PolyBasisCellType &
 
auto HArDCore2D::VSXGrad::Polyk (size_t iT) const -> const PolyBasisCellType &
 
auto HArDCore2D::VSXGrad::Polykptwo (size_t iT) const -> const PolyBasisCellType &
 
auto HArDCore2D::VSXGrad::Polyk2 (size_t iT) const -> const Poly2BasisCellType &
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::edgeGradient (size_t iE) const
 Return the gradient operator (expressed on Polyk3) on the edge of index iE.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::edgeGradient (const Edge &E) const
 Return the gradient operator (expressed on Polyk3) on edge E.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::edgePotential (size_t iE) const
 Return the potential operator (expressed on Polykpo3) on the edge of index iE.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::edgePotential (const Edge &E) const
 Return the potential operator (expressed on Polykpo3) on edge E.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellGradient (size_t iT) const
 Return the gradient operator (expressed on Polyk3x3) on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellGradient (const Cell &T) const
 Return the gradient operator (expressed on Polyk3x3) on cell T.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellSymGradient (size_t iT) const
 Return the symmetric gradient operator (expressed on Polyk3x3) on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellSymGradient (const Cell &T) const
 Return the symmetric gradient operator (expressed on Polyk3x3) on cell T.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellDivergence (size_t iT) const
 Return the divergence operator (expressed on the ancester of Polyk3x3, which should be m_sxgrad.cellBases(iT).Polyk) on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellDivergence (const Cell &T) const
 Return the divergence operator (expressed on the ancester of Polyk3x3, which should be m_sxgrad.cellBases(iT).Polyk) on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellPotential (size_t iT) const
 Return the potential operator (expressed on Polykpo3) on the cell of index iT.
 
const Eigen::MatrixXd HArDCore2D::VSXGrad::cellPotential (const Cell &T) const
 Return the potential operator on cell T.
 
Eigen::MatrixXd HArDCore2D::VSXGrad::_permute_bases (size_t iT)
 
Eigen::MatrixXd HArDCore2D::VSXGrad::computeStabilisation (const size_t iT, const IntegralWeight &weight=IntegralWeight(1.)) const
 Compute the H^1-stabilisation (based on the L^2 stabilisation implemented in SXgrad)
 
std::vector< double > HArDCore2D::VSXGrad::computeH1norms (const std::vector< Eigen::VectorXd > &list_dofs, const std::string typegrad="full") const
 Compute the H^1 discrete norm, with full or symmetric gradient.
 
std::vector< VectorRdHArDCore2D::VSXGrad::computeVertexValues (const Eigen::VectorXd &u) const
 Computes the values of the potential reconstruction at the mesh vertices.
 
const CellBasesHArDCore2D::VSXGrad::cellBases (size_t iT) const
 Return vector/matrix cell bases for the face of index iT.
 
const CellBasesHArDCore2D::VSXGrad::cellBases (const Cell &T) const
 Return vector/matrix cell bases for cell T.
 
const EdgeBasesHArDCore2D::VSXGrad::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const EdgeBasesHArDCore2D::VSXGrad::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
const LocalOperatorsHArDCore2D::VSXGrad::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::VSXGrad::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
 HArDCore2D::XCurl::LocalOperators::LocalOperators (const Eigen::MatrixXd &_curl, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::XCurl::XCurl (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::XCurl::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::XCurl::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::XCurl::interpolate (const FunctionType &v, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const LocalOperatorsHArDCore2D::XCurl::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::XCurl::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasesHArDCore2D::XCurl::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::XCurl::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::XCurl::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::XCurl::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::XCurl::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_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 HArDCore2D::XCurl::computeL2ProductGradient (const size_t iT, const XGrad &x_grad, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk2_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").
 
Eigen::MatrixXd HArDCore2D::XCurl::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_Pk2_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 computeL2ProductGradient.
 
 HArDCore2D::XGrad::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::XGrad::XGrad (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::XGrad::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::XGrad::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::XGrad::interpolate (const FunctionType &q, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const LocalOperatorsHArDCore2D::XGrad::edgeOperators (size_t iE) const
 Return edge operators for the edge of index iE.
 
const LocalOperatorsHArDCore2D::XGrad::edgeOperators (const Edge &E) const
 Return edge operators for edge E.
 
const LocalOperatorsHArDCore2D::XGrad::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::XGrad::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasesHArDCore2D::XGrad::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::XGrad::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::XGrad::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::XGrad::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::XGrad::computeStabilisation (const size_t iT, const IntegralWeight &weight=IntegralWeight(1.)) const
 Computes only the stabilisation matrix of the (weighted) L2-product for the cell of index iT. This stabilisation is based on cell and face potentials.
 
Eigen::MatrixXd HArDCore2D::XGrad::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pkpo_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.
 
double HArDCore2D::XGrad::evaluatePotential (const size_t iT, const Eigen::VectorXd &vT, const VectorRd &x) const
 Evaluate the value of the potential at a point x.
 
double HArDCore2D::XGrad::computeL2Norm (const Eigen::VectorXd &v) const
 Compute the L2-norm of a vector of the space.
 
 HArDCore2D::XHess::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::XHess::TransferOperators::TransferOperators (const Eigen::MatrixXd &_serendipity)
 
 HArDCore2D::XHess::XHess (const DDRCore &ddr_core, const SerendipityProblem &ser_pro, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::XHess::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::XHess::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::XHess::interpolate (const FunctionType &q, const GradFunctionType &Dq, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const Eigen::MatrixXd & HArDCore2D::XHess::SgradCell (size_t iT) const
 Return the serendipity reconstruction for the cell of index iT.
 
const Eigen::MatrixXd & HArDCore2D::XHess::SgradCell (const Cell &T) const
 Return the serendipity reconstruction for cell T.
 
const TransferOperatorsHArDCore2D::XHess::TcellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const TransferOperatorsHArDCore2D::XHess::TcellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const LocalOperatorsHArDCore2D::XHess::edgeOperators (size_t iE) const
 Return edge operators for the edge of index iE.
 
const LocalOperatorsHArDCore2D::XHess::edgeOperators (const Edge &E) const
 Return edge operators for edge E.
 
const LocalOperatorsHArDCore2D::XHess::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::XHess::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasesHArDCore2D::XHess::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::XHess::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::XHess::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::XHess::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::XHess::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pkpo_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.
 
double HArDCore2D::XHess::evaluatePotential (const size_t iT, const Eigen::VectorXd &vT, const VectorRd &x) const
 Evaluate the value of the potential at a point x.
 
double HArDCore2D::XHess::computeL2Norm (const Eigen::VectorXd &v) const
 Compute the L2-norm of a vector of the space.
 
 HArDCore2D::XRot::LocalOperators::LocalOperators (const Eigen::MatrixXd &_rotor, const Eigen::MatrixXd &_rotor_rhs, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::XRot::XRot (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::XRot::mesh () const
 Return the mesh.
 
const bool HArDCore2D::XRot::useThreads () const
 Return true if we use thread-based parallelism.
 
const size_t & HArDCore2D::XRot::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::XRot::interpolate (const FunctionType &q, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const Eigen::MatrixXd & HArDCore2D::XRot::edgePotential (size_t iE) const
 Return edge potential for the edge of index iE.
 
const Eigen::MatrixXd & HArDCore2D::XRot::edgePotential (const Edge &E) const
 Return edge potential for the edge E.
 
const LocalOperatorsHArDCore2D::XRot::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::XRot::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
const DDRCore::CellBasesHArDCore2D::XRot::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::XRot::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::XRot::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::XRot::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::XRot::computeRotorL2Product (const size_t iT, const double &penalty_factor_cell=1., const double &penalty_factor_edge=1.) const
 Compute rotor L2-product.
 
double HArDCore2D::XRot::computeRotorL2Norm (const Eigen::VectorXd &v) const
 Compute rotor L2-norm.
 
 HArDCore2D::XRotRot::LocalOperators::LocalOperators (const Eigen::MatrixXd &_rotor, const Eigen::MatrixXd &_potential)
 
 HArDCore2D::XRotRot::XRotRot (const DDRCore &ddr_core, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore2D::XRotRot::mesh () const
 Return the mesh.
 
const size_t & HArDCore2D::XRotRot::degree () const
 Return the polynomial degree.
 
Eigen::VectorXd HArDCore2D::XRotRot::interpolate (const FunctionType &v, const RotType &rot_v, const int deg_quad=-1) const
 Interpolator of a continuous function.
 
const LocalOperatorsHArDCore2D::XRotRot::cellOperators (size_t iT) const
 Return cell operators for the cell of index iT.
 
const LocalOperatorsHArDCore2D::XRotRot::cellOperators (const Cell &T) const
 Return cell operators for cell T.
 
Eigen::MatrixXd HArDCore2D::XRotRot::cellRotor (size_t iT) const
 Return cell rotor for cell of index iT.
 
Eigen::MatrixXd HArDCore2D::XRotRot::cellRotor (const Cell &T) const
 Return cell rotor for cell T.
 
const DDRCore::CellBasesHArDCore2D::XRotRot::cellBases (size_t iT) const
 Return cell bases for the cell of index iT.
 
const DDRCore::CellBasesHArDCore2D::XRotRot::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const DDRCore::EdgeBasesHArDCore2D::XRotRot::edgeBases (size_t iE) const
 Return edge bases for the edge of index iE.
 
const DDRCore::EdgeBasesHArDCore2D::XRotRot::edgeBases (const Edge &E) const
 Return edge bases for edge E.
 
Eigen::MatrixXd HArDCore2D::XRotRot::computeL2Product (size_t iT, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const
 Compute the matrix of the (weighted) L2-product for the cell of index iT.
 
Eigen::MatrixXd HArDCore2D::XRotRot::computeGradientPotentialL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=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 side.
 
Eigen::MatrixXd HArDCore2D::XRotRot::computeGradientL2Product (size_t iT, const XGrad *x_grad, const double &penalty_factor=1., const IntegralWeight &weight=IntegralWeight(1.)) const
 Compute the matrix of the (weighted) gradient-gradient L2-product.
 
template<typename LeftOperatorFillerType , typename RightOperatorFillerType >
Eigen::MatrixXd HArDCore2D::XRotRot::computeL2ProductWithOperatorFillers (size_t iT, const double &penalty_factor, const IntegralWeight &weight, LeftOperatorFillerType fillLeftOp, RightOperatorFillerType fillRightOp) const
 Compute the matrix of the L2 product given operators filling functions.
 
double HArDCore2D::XRotRot::computeL2Norm (const Eigen::VectorXd &v) const
 Compute the L2-norm of a vector of the space.
 
double HArDCore2D::XRotRot::computeGradientL2Norm (const Eigen::VectorXd &v, const XGrad *x_grad) const
 Compute the L2-norm of the discrete gradient of a vector in XGrad.
 

Variables

std::unique_ptr< PolyBasisCellTypeHArDCore2D::DDRCore::CellBases::Polykpo
 
std::unique_ptr< PolyBasisCellTypeHArDCore2D::DDRCore::CellBases::Polyk
 
std::unique_ptr< PolyBasisCellTypeHArDCore2D::DDRCore::CellBases::Polykmo
 
std::unique_ptr< PolyBasisCellTypeHArDCore2D::DDRCore::CellBases::Polykmtwo
 
std::unique_ptr< Poly2BasisCellTypeHArDCore2D::DDRCore::CellBases::Polyk2
 
std::unique_ptr< Poly2BasisCellTypeHArDCore2D::DDRCore::CellBases::Polykmo2
 
std::unique_ptr< RolyBasisCellTypeHArDCore2D::DDRCore::CellBases::Rolykmo
 
std::unique_ptr< RolyComplBasisCellTypeHArDCore2D::DDRCore::CellBases::RolyComplk
 
std::unique_ptr< RolyComplBasisCellTypeHArDCore2D::DDRCore::CellBases::RolyComplkmo
 
std::unique_ptr< RolyComplBasisCellTypeHArDCore2D::DDRCore::CellBases::RolyComplkp2
 
std::unique_ptr< GolyComplBasisCellTypeHArDCore2D::DDRCore::CellBases::GolyComplkp2
 
std::unique_ptr< PolyBasisEdgeTypeHArDCore2D::DDRCore::EdgeBases::Polykpo
 
std::unique_ptr< PolyBasisEdgeTypeHArDCore2D::DDRCore::EdgeBases::Polyk
 
std::unique_ptr< PolyBasisEdgeTypeHArDCore2D::DDRCore::EdgeBases::Polykmo
 
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::gradient
 
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::symmetric_gradient
 
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::potential
 
Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::stabilisation
 
Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::serendipity
 
Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::extension
 
Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::reduction
 
Eigen::MatrixXd HArDCore2D::VSXGrad::LocalOperators::rot
 
Eigen::MatrixXd HArDCore2D::VSXGrad::LocalOperators::potential
 
std::unique_ptr< Poly2BasisCellTypeHArDCore2D::VSXGrad::CellBases::Polykmo2
 
std::unique_ptr< Poly2BasisCellTypeHArDCore2D::VSXGrad::CellBases::Polykptwo2
 
std::unique_ptr< Poly2x2BasisCellTypeHArDCore2D::VSXGrad::CellBases::Polykpo2x2
 
std::unique_ptr< Poly2BasisEdgeTypeHArDCore2D::VSXGrad::EdgeBases::Polykmo2
 
std::unique_ptr< Poly2BasisEdgeTypeHArDCore2D::VSXGrad::EdgeBases::Polyk2
 
std::unique_ptr< Poly2BasisEdgeTypeHArDCore2D::VSXGrad::EdgeBases::Polykpo2
 
std::unique_ptr< Poly2BasisEdgeTypeHArDCore2D::VSXGrad::EdgeBases::Polykptwo2
 
Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::curl
 
Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::potential
 
Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::gradient
 
Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::potential
 
Eigen::MatrixXd HArDCore2D::XHess::LocalOperators::gradient
 
Eigen::MatrixXd HArDCore2D::XHess::LocalOperators::potential
 
Eigen::MatrixXd HArDCore2D::XHess::TransferOperators::serendipity
 
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor
 
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor_rhs
 
Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::potential
 
Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::rotor
 
Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::potential
 

Detailed Description

Classes providing tools to the Discrete De Rham sequence.

Typedef Documentation

◆ FunctionType [1/8]

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::EXCurl::FunctionType

◆ FunctionType [2/8]

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::SXGrad::FunctionType

◆ FunctionType [3/8]

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::VSXGrad::FunctionType

◆ FunctionType [4/8]

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XCurl::FunctionType

◆ FunctionType [5/8]

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XGrad::FunctionType

◆ FunctionType [6/8]

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XHess::FunctionType

◆ FunctionType [7/8]

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XRot::FunctionType

◆ FunctionType [8/8]

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XRotRot::FunctionType

◆ GeometricSupport [1/2]

Geometric support.

◆ GeometricSupport [2/2]

Geometric support.

◆ GolyBasisCellType

◆ GolyComplBasisCellType

◆ GradFunctionType

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::XHess::GradFunctionType

◆ InverseProblem

typedef Eigen::FullPivLU<Eigen::MatrixXd> HArDCore2D::SerendipityProblem::InverseProblem

Type for inverses of matrix for serendipity problem.

◆ Poly2BasisCellType [1/2]

◆ Poly2BasisCellType [2/2]

◆ Poly2BasisEdgeType

◆ Poly2x2BasisCellType

◆ PolyBasisCellType [1/2]

◆ PolyBasisCellType [2/2]

◆ PolyBasisEdgeType [1/2]

◆ PolyBasisEdgeType [2/2]

◆ Polyk2x2Type

◆ Polykpo2Type

◆ PolylBasisCellType

◆ RolyBasisCellType

◆ RolyComplBasisCellType

◆ RolyCompllpoBasisCellType

◆ RotType

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::XRotRot::RotType

Function Documentation

◆ _permute_bases()

Eigen::MatrixXd VSXGrad::_permute_bases ( size_t  iT)

◆ cellBases() [1/17]

const DDRCore::CellBases & HArDCore2D::EXCurl::cellBases ( const Cell &  T) const
inline

Return ddrcore cell bases for cell T.

◆ cellBases() [2/17]

const DDRCore::CellBases & HArDCore2D::SXGrad::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [3/17]

const CellBases & HArDCore2D::VSXGrad::cellBases ( const Cell &  T) const
inline

Return vector/matrix cell bases for cell T.

◆ cellBases() [4/17]

const DDRCore::CellBases & HArDCore2D::XCurl::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [5/17]

const DDRCore::CellBases & HArDCore2D::XGrad::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [6/17]

const DDRCore::CellBases & HArDCore2D::XHess::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [7/17]

const DDRCore::CellBases & HArDCore2D::XRot::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [8/17]

const DDRCore::CellBases & HArDCore2D::XRotRot::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [9/17]

const CellBases & HArDCore2D::DDRCore::cellBases ( size_t  iT) const
inline

Return cell bases for element iT.

◆ cellBases() [10/17]

const DDRCore::CellBases & HArDCore2D::EXCurl::cellBases ( size_t  iT) const
inline

Return ddrcore cell bases for the cell of index iT.

◆ cellBases() [11/17]

const DDRCore::CellBases & HArDCore2D::SXGrad::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBases() [12/17]

const CellBases & HArDCore2D::VSXGrad::cellBases ( size_t  iT) const
inline

Return vector/matrix cell bases for the face of index iT.

◆ cellBases() [13/17]

const DDRCore::CellBases & HArDCore2D::XCurl::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBases() [14/17]

const DDRCore::CellBases & HArDCore2D::XGrad::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBases() [15/17]

const DDRCore::CellBases & HArDCore2D::XHess::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBases() [16/17]

const DDRCore::CellBases & HArDCore2D::XRot::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBases() [17/17]

const DDRCore::CellBases & HArDCore2D::XRotRot::cellBases ( size_t  iT) const
inline

Return cell bases for the cell of index iT.

◆ cellBasisPolyl() [1/2]

const PolylBasisCellType & HArDCore2D::SerendipityProblem::cellBasisPolyl ( const Cell &  T) const
inline

Return the basis of P^l on cell T.

◆ cellBasisPolyl() [2/2]

const PolylBasisCellType & HArDCore2D::SerendipityProblem::cellBasisPolyl ( size_t  iT) const
inline

Return the basis of P^l on cell of index iT.

◆ cellBasisRolyCompllpo() [1/2]

const RolyCompllpoBasisCellType & HArDCore2D::SerendipityProblem::cellBasisRolyCompllpo ( const Cell &  T) const
inline

Return the basis of R^{c,l+1} on cell T.

◆ cellBasisRolyCompllpo() [2/2]

const RolyCompllpoBasisCellType & HArDCore2D::SerendipityProblem::cellBasisRolyCompllpo ( size_t  iT) const
inline

Return the basis of R^{c,l+1} on cell of index iT.

◆ cellDivergence() [1/2]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellDivergence ( const Cell &  T) const
inline

Return the divergence operator (expressed on the ancester of Polyk3x3, which should be m_sxgrad.cellBases(iT).Polyk) on the cell of index iT.

◆ cellDivergence() [2/2]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellDivergence ( size_t  iT) const
inline

Return the divergence operator (expressed on the ancester of Polyk3x3, which should be m_sxgrad.cellBases(iT).Polyk) on the cell of index iT.

◆ cellGradient() [1/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::cellGradient ( const Cell &  T) const
inline

Return the full gradient operator on cell T.

◆ cellGradient() [2/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellGradient ( const Cell &  T) const
inline

Return the gradient operator (expressed on Polyk3x3) on cell T.

◆ cellGradient() [3/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::cellGradient ( size_t  iT) const
inline

Return the full gradient operator on the cell of index iT.

◆ cellGradient() [4/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellGradient ( size_t  iT) const
inline

Return the gradient operator (expressed on Polyk3x3) on the cell of index iT.

◆ cellOperators() [1/14]

const TransferOperators & HArDCore2D::SXGrad::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [2/14]

const LocalOperators & HArDCore2D::VSXGrad::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [3/14]

const LocalOperators & HArDCore2D::XCurl::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [4/14]

const LocalOperators & HArDCore2D::XGrad::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [5/14]

const LocalOperators & HArDCore2D::XHess::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [6/14]

const LocalOperators & HArDCore2D::XRot::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [7/14]

const LocalOperators & HArDCore2D::XRotRot::cellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ cellOperators() [8/14]

const TransferOperators & HArDCore2D::SXGrad::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [9/14]

const LocalOperators & HArDCore2D::VSXGrad::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [10/14]

const LocalOperators & HArDCore2D::XCurl::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [11/14]

const LocalOperators & HArDCore2D::XGrad::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [12/14]

const LocalOperators & HArDCore2D::XHess::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [13/14]

const LocalOperators & HArDCore2D::XRot::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellOperators() [14/14]

const LocalOperators & HArDCore2D::XRotRot::cellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ cellPotential() [1/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::cellPotential ( const Cell &  T) const
inline

Return the potential operator on cell T.

◆ cellPotential() [2/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellPotential ( const Cell &  T) const
inline

Return the potential operator on cell T.

◆ cellPotential() [3/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::cellPotential ( size_t  iT) const
inline

Return the potential operator on the cell of index iT.

◆ cellPotential() [4/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellPotential ( size_t  iT) const
inline

Return the potential operator (expressed on Polykpo3) on the cell of index iT.

◆ cellRotor() [1/2]

Eigen::MatrixXd HArDCore2D::XRotRot::cellRotor ( const Cell &  T) const
inline

Return cell rotor for cell T.

◆ cellRotor() [2/2]

Eigen::MatrixXd HArDCore2D::XRotRot::cellRotor ( size_t  iT) const
inline

Return cell rotor for cell of index iT.

◆ cellSymGradient() [1/2]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellSymGradient ( const Cell &  T) const
inline

Return the symmetric gradient operator (expressed on Polyk3x3) on cell T.

◆ cellSymGradient() [2/2]

const Eigen::MatrixXd HArDCore2D::VSXGrad::cellSymGradient ( size_t  iT) const
inline

Return the symmetric gradient operator (expressed on Polyk3x3) on the cell of index iT.

◆ computeGradientL2Norm()

double XRotRot::computeGradientL2Norm ( const Eigen::VectorXd &  v,
const XGrad x_grad 
) const

Compute the L2-norm of the discrete gradient of a vector in XGrad.

◆ computeGradientL2Product()

Eigen::MatrixXd XRotRot::computeGradientL2Product ( size_t  iT,
const XGrad x_grad,
const double &  penalty_factor = 1.,
const IntegralWeight weight = IntegralWeight(1.) 
) const

Compute the matrix of the (weighted) gradient-gradient L2-product.

Parameters
iTIndex of the cell
x_gradInstance of XGrad to access the full gradients
penalty_factorPre-factor for stabilisation term
weightWeight function in the L2 product, defaults to constant 1.

◆ computeGradientPotentialL2Product()

Eigen::MatrixXd XRotRot::computeGradientPotentialL2Product ( size_t  iT,
const XGrad x_grad,
const double &  penalty_factor = 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 side.

Parameters
iTIndex of the cell
x_gradInstance of XGrad to access the full gradients
penalty_factorPre-factor for stabilisation term
weightWeight function in the L2 product, defaults to constant 1.

◆ computeH1norms()

std::vector< double > VSXGrad::computeH1norms ( const std::vector< Eigen::VectorXd > &  list_dofs,
const std::string  typegrad = "full" 
) const

Compute the H^1 discrete norm, with full or symmetric gradient.

Parameters
list_dofsThe list of vectors representing the dofs
typegradcomputes the norm using the "full" or "symmetric" gradient

◆ computeL2Norm() [1/4]

double SXGrad::computeL2Norm ( const Eigen::VectorXd &  v) const

Compute the L2-norm of a vector of the space.

◆ computeL2Norm() [2/4]

double XGrad::computeL2Norm ( const Eigen::VectorXd &  v) const

Compute the L2-norm of a vector of the space.

◆ computeL2Norm() [3/4]

double XHess::computeL2Norm ( const Eigen::VectorXd &  v) const

Compute the L2-norm of a vector of the space.

◆ computeL2Norm() [4/4]

double XRotRot::computeL2Norm ( const Eigen::VectorXd &  v) const

Compute the L2-norm of a vector of the space.

◆ computeL2Product() [1/6]

Eigen::MatrixXd EXCurl::computeL2Product ( const size_t  iT,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pk2_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.

Parameters
iTindex of the cell
penalty_factorpre-factor for stabilisation term
mass_Pk2_Tif pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to 1

◆ computeL2Product() [2/6]

Eigen::MatrixXd HArDCore2D::SXGrad::computeL2Product ( const size_t  iT,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pk2_T = Eigen::MatrixXd::Zero(1,1),
const IntegralWeight weight = IntegralWeight(1.) 
) const
inline

Compute the matrix of the (weighted) L2-product.

Parameters
iTindex of the cell
penalty_factorpre-factor for stabilisation term
mass_Pk2_Tif pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to 1

◆ computeL2Product() [3/6]

Eigen::MatrixXd XCurl::computeL2Product ( const size_t  iT,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pk2_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.

Parameters
iTindex of the cell
penalty_factorpre-factor for stabilisation term
mass_Pk2_Tif pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to 1

◆ computeL2Product() [4/6]

Eigen::MatrixXd XGrad::computeL2Product ( const size_t  iT,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pkpo_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.

Parameters
iTindex of the cell
penalty_factorpre-factor for stabilisation term
mass_Pkpo_Tif pre-computed, the mass matrix of P^{k+1}(T); if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to 1

◆ computeL2Product() [5/6]

Eigen::MatrixXd XHess::computeL2Product ( const size_t  iT,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pkpo_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.

Parameters
iTindex of the cell
penalty_factorpre-factor for stabilisation term
mass_Pkpo_Tif pre-computed, the mass matrix of P^{k+1}(T); if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to 1

◆ computeL2Product() [6/6]

Eigen::MatrixXd XRotRot::computeL2Product ( size_t  iT,
const double &  penalty_factor = 1.,
const IntegralWeight weight = IntegralWeight(1.) 
) const

Compute the matrix of the (weighted) L2-product for the cell of index iT.

Parameters
iTIndex of the cell
penalty_factorPre-factor for stabilisation term
weightWeight function in the L2 product, defaults to 1

◆ computeL2Product_with_Ops() [1/2]

Eigen::MatrixXd HArDCore2D::EXCurl::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_Pk2_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 computeL2ProductGradient.

Parameters
iTindex of the cell
leftOpedge and element operators to apply on the left
rightOpedge and element operators to apply on the right
penalty_factorpre-factor for stabilisation term
w_mass_Pk2_Tmass matrix of (P^k(T))^3 weighted by weight
weightweight function in the L2 product

◆ computeL2Product_with_Ops() [2/2]

Eigen::MatrixXd XCurl::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_Pk2_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 computeL2ProductGradient.

Parameters
iTindex of the cell
leftOpedge and element operators to apply on the left
rightOpedge and element operators to apply on the right
penalty_factorpre-factor for stabilisation term
w_mass_Pk2_Tmass matrix of (P^k(T))^3 weighted by weight
weightweight function in the L2 product

◆ computeL2ProductGradient() [1/2]

Eigen::MatrixXd EXCurl::computeL2ProductGradient ( const size_t  iT,
const XGrad x_grad,
const std::string &  side,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pk2_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").

Parameters
iTindex of the cell
x_gradinstance of XGrad to access the full gradients
sidewhich side (left, right, both) we apply the gradient to
penalty_factorpre-factor for stabilisation term
mass_Pk2_Tif pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to constant 1.

◆ computeL2ProductGradient() [2/2]

Eigen::MatrixXd XCurl::computeL2ProductGradient ( const size_t  iT,
const XGrad x_grad,
const std::string &  side,
const double &  penalty_factor = 1.,
const Eigen::MatrixXd &  mass_Pk2_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").

Parameters
iTindex of the cell
x_gradinstance of XGrad to access the full gradients
sidewhich side (left, right, both) we apply the gradient to
penalty_factorpre-factor for stabilisation term
mass_Pk2_Tif pre-computed, the mass matrix of (P^k(T))^3; if none is pre-computed, passing Eigen::MatrixXd::Zero(1,1) will force the calculation
weightweight function in the L2 product, defaults to constant 1.

◆ computeL2ProductWithOperatorFillers()

template<typename LeftOperatorFillerType , typename RightOperatorFillerType >
Eigen::MatrixXd HArDCore2D::XRotRot::computeL2ProductWithOperatorFillers ( size_t  iT,
const double &  penalty_factor,
const IntegralWeight weight,
LeftOperatorFillerType  fillLeftOp,
RightOperatorFillerType  fillRightOp 
) const

Compute the matrix of the L2 product given operators filling functions.

Parameters
iTIndex of the cell
penalty_factorPenalty factor for stabilisation term
weightWeight function in the L2 product
fillLeftOpFunction to fill the left-hand side operator
fillRightOpFunction to fill the right-hand side operator

◆ computeRotorL2Norm()

double XRot::computeRotorL2Norm ( const Eigen::VectorXd &  v) const

Compute rotor L2-norm.

◆ computeRotorL2Product()

Eigen::MatrixXd XRot::computeRotorL2Product ( const size_t  iT,
const double &  penalty_factor_cell = 1.,
const double &  penalty_factor_edge = 1. 
) const

Compute rotor L2-product.

Parameters
iTIndex of the cell
penalty_factor_cellCoefficient for the cell-based term
penalty_factor_edgeCoefficient for the edge-based term

◆ computeStabilisation() [1/3]

Eigen::MatrixXd HArDCore2D::SXGrad::computeStabilisation ( const size_t  iT,
const IntegralWeight weight = IntegralWeight(1.) 
) const
inline

Computes only the stabilisation matrix of the (weighted) L2-product for the cell of index iT.

Parameters
iTindex of the cell
weightweight function in the stabilisation, defaults to 1

◆ computeStabilisation() [2/3]

Eigen::MatrixXd HArDCore2D::VSXGrad::computeStabilisation ( const size_t  iT,
const IntegralWeight weight = IntegralWeight(1.) 
) const
inline

Compute the H^1-stabilisation (based on the L^2 stabilisation implemented in SXgrad)

Parameters
iTindex of the cell
weightweight function in the L2 product, defaults to 1

◆ computeStabilisation() [3/3]

Eigen::MatrixXd XGrad::computeStabilisation ( const size_t  iT,
const IntegralWeight weight = IntegralWeight(1.) 
) const

Computes only the stabilisation matrix of the (weighted) L2-product for the cell of index iT. This stabilisation is based on cell and face potentials.

Parameters
iTindex of the cell
weightweight function in the stabilisation, defaults to 1

◆ computeVertexValues() [1/2]

std::vector< double > HArDCore2D::SXGrad::computeVertexValues ( const Eigen::VectorXd &  u) const

Computes the values of the potential reconstruction at the mesh vertices.

Parameters
uDOFs in the discrete space

◆ computeVertexValues() [2/2]

std::vector< VectorRd > VSXGrad::computeVertexValues ( const Eigen::VectorXd &  u) const

Computes the values of the potential reconstruction at the mesh vertices.

Parameters
uDOFs in the discrete space

◆ ddrCore()

const DDRCore & HArDCore2D::SerendipityProblem::ddrCore ( ) const
inline

Return a const reference to the underlying DDR core.

◆ DDRCore()

DDRCore::DDRCore ( const Mesh mesh,
size_t  K,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ ddrCurl() [1/2]

const Eigen::MatrixXd HArDCore2D::EXCurl::ddrCurl ( const Cell &  T) const
inline

Return cell (scalar) curl for cell T.

◆ ddrCurl() [2/2]

const Eigen::MatrixXd HArDCore2D::EXCurl::ddrCurl ( size_t  iT) const
inline

Return cell (scalar) curl for the cell of index iT.

◆ ddrPotential() [1/2]

const Eigen::MatrixXd HArDCore2D::EXCurl::ddrPotential ( const Cell &  T) const
inline

Return cell potential for cell T.

◆ ddrPotential() [2/2]

const Eigen::MatrixXd HArDCore2D::EXCurl::ddrPotential ( size_t  iT) const
inline

Return cell potential for the cell of index iT.

◆ degree() [1/9]

const size_t & HArDCore2D::DDRCore::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [2/9]

const size_t & HArDCore2D::EXCurl::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [3/9]

const size_t & HArDCore2D::SXGrad::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [4/9]

const size_t & HArDCore2D::VSXGrad::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [5/9]

const size_t & HArDCore2D::XCurl::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [6/9]

const size_t & HArDCore2D::XGrad::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [7/9]

const size_t & HArDCore2D::XHess::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [8/9]

const size_t & HArDCore2D::XRot::degree ( ) const
inline

Return the polynomial degree.

◆ degree() [9/9]

const size_t & HArDCore2D::XRotRot::degree ( ) const
inline

Return the polynomial degree.

◆ dimCellPolyl() [1/2]

size_t HArDCore2D::SerendipityProblem::dimCellPolyl ( const Cell &  T) const
inline

Return the dimension of P^{l+1} on cell T.

◆ dimCellPolyl() [2/2]

size_t HArDCore2D::SerendipityProblem::dimCellPolyl ( size_t  iT) const
inline

Return the dimension of P^l on cell of index iT.

◆ dimCellRolyCompllpo() [1/2]

size_t HArDCore2D::SerendipityProblem::dimCellRolyCompllpo ( const Cell &  T) const
inline

Return the dimension of R^{c,l+1} on cell T.

◆ dimCellRolyCompllpo() [2/2]

size_t HArDCore2D::SerendipityProblem::dimCellRolyCompllpo ( size_t  iT) const
inline

Return the dimension of R^{c,l+1} on cell of index iT.

◆ edgeBases() [1/17]

const DDRCore::EdgeBases & HArDCore2D::EXCurl::edgeBases ( const Edge &  E) const
inline

Return ddrcore edge bases for edge E.

◆ edgeBases() [2/17]

const DDRCore::EdgeBases & HArDCore2D::SXGrad::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [3/17]

const EdgeBases & HArDCore2D::VSXGrad::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [4/17]

const DDRCore::EdgeBases & HArDCore2D::XCurl::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [5/17]

const DDRCore::EdgeBases & HArDCore2D::XGrad::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [6/17]

const DDRCore::EdgeBases & HArDCore2D::XHess::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [7/17]

const DDRCore::EdgeBases & HArDCore2D::XRot::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [8/17]

const DDRCore::EdgeBases & HArDCore2D::XRotRot::edgeBases ( const Edge &  E) const
inline

Return edge bases for edge E.

◆ edgeBases() [9/17]

const EdgeBases & HArDCore2D::DDRCore::edgeBases ( size_t  iE) const
inline

Return edge bases for edge iE.

◆ edgeBases() [10/17]

const DDRCore::EdgeBases & HArDCore2D::EXCurl::edgeBases ( size_t  iE) const
inline

Return ddrcore edge bases for the edge of index iE.

◆ edgeBases() [11/17]

const DDRCore::EdgeBases & HArDCore2D::SXGrad::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [12/17]

const EdgeBases & HArDCore2D::VSXGrad::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [13/17]

const DDRCore::EdgeBases & HArDCore2D::XCurl::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [14/17]

const DDRCore::EdgeBases & HArDCore2D::XGrad::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [15/17]

const DDRCore::EdgeBases & HArDCore2D::XHess::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [16/17]

const DDRCore::EdgeBases & HArDCore2D::XRot::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeBases() [17/17]

const DDRCore::EdgeBases & HArDCore2D::XRotRot::edgeBases ( size_t  iE) const
inline

Return edge bases for the edge of index iE.

◆ edgeGradient() [1/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::edgeGradient ( const Edge &  E) const
inline

Return the full gradient operator on edge E.

◆ edgeGradient() [2/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::edgeGradient ( const Edge &  E) const
inline

Return the gradient operator (expressed on Polyk3) on edge E.

◆ edgeGradient() [3/4]

const Eigen::MatrixXd HArDCore2D::SXGrad::edgeGradient ( size_t  iE) const
inline

Return the full gradient operator on the edge of index iE.

◆ edgeGradient() [4/4]

const Eigen::MatrixXd HArDCore2D::VSXGrad::edgeGradient ( size_t  iE) const
inline

Return the gradient operator (expressed on Polyk3) on the edge of index iE.

◆ edgeOperators() [1/4]

const LocalOperators & HArDCore2D::XGrad::edgeOperators ( const Edge &  E) const
inline

Return edge operators for edge E.

◆ edgeOperators() [2/4]

const LocalOperators & HArDCore2D::XHess::edgeOperators ( const Edge &  E) const
inline

Return edge operators for edge E.

◆ edgeOperators() [3/4]

const LocalOperators & HArDCore2D::XGrad::edgeOperators ( size_t  iE) const
inline

Return edge operators for the edge of index iE.

◆ edgeOperators() [4/4]

const LocalOperators & HArDCore2D::XHess::edgeOperators ( size_t  iE) const
inline

Return edge operators for the edge of index iE.

◆ edgePotential() [1/6]

const Eigen::MatrixXd HArDCore2D::SXGrad::edgePotential ( const Edge &  E) const
inline

Return the potential operator on edge E.

◆ edgePotential() [2/6]

const Eigen::MatrixXd HArDCore2D::VSXGrad::edgePotential ( const Edge &  E) const
inline

Return the potential operator (expressed on Polykpo3) on edge E.

◆ edgePotential() [3/6]

const Eigen::MatrixXd & HArDCore2D::XRot::edgePotential ( const Edge &  E) const
inline

Return edge potential for the edge E.

◆ edgePotential() [4/6]

const Eigen::MatrixXd HArDCore2D::SXGrad::edgePotential ( size_t  iE) const
inline

Return the potential operator on the edge of index iE.

◆ edgePotential() [5/6]

const Eigen::MatrixXd HArDCore2D::VSXGrad::edgePotential ( size_t  iE) const
inline

Return the potential operator (expressed on Polykpo3) on the edge of index iE.

◆ edgePotential() [6/6]

const Eigen::MatrixXd & HArDCore2D::XRot::edgePotential ( size_t  iE) const
inline

Return edge potential for the edge of index iE.

◆ EgradCell() [1/2]

const Eigen::MatrixXd & HArDCore2D::SXGrad::EgradCell ( const Cell &  T) const
inline

Return the extension for cell T.

◆ EgradCell() [2/2]

const Eigen::MatrixXd & HArDCore2D::SXGrad::EgradCell ( size_t  iT) const
inline

Return the extension for the cell of index iT.

◆ evaluatePotential() [1/2]

double XGrad::evaluatePotential ( const size_t  iT,
const Eigen::VectorXd &  vT,
const VectorRd x 
) const

Evaluate the value of the potential at a point x.

Parameters
iTindex of the cell in which to take the potential
vTvector of local DOFs
xpoint at which to evaluate the potential

◆ evaluatePotential() [2/2]

double XHess::evaluatePotential ( const size_t  iT,
const Eigen::VectorXd &  vT,
const VectorRd x 
) const

Evaluate the value of the potential at a point x.

Parameters
iTindex of the cell in which to take the potential
vTvector of local DOFs
xpoint at which to evaluate the potential

◆ EXCurl()

EXCurl::EXCurl ( const DDRCore ddr_core,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ hhoLocalOperators()

HArDCore2D::EXCurl::hhoLocalOperators::hhoLocalOperators ( const Eigen::MatrixXd &  _gradient,
const Eigen::MatrixXd &  _symmetric_gradient,
const Eigen::MatrixXd &  _potential,
const Eigen::MatrixXd &  _stabilisation 
)
inline
Parameters
_gradientgradient operator
_symmetric_gradientsymmetric gradient operator
_potentialPotential operator
_stabilisationStabilisation

◆ hhoOperators() [1/2]

const hhoLocalOperators & HArDCore2D::EXCurl::hhoOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ hhoOperators() [2/2]

const hhoLocalOperators & HArDCore2D::EXCurl::hhoOperators ( size_t  iT) const
inline

Return hho operators for the cell of index iT.

◆ interpolate() [1/8]

Eigen::VectorXd XHess::interpolate ( const FunctionType q,
const GradFunctionType Dq,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
qThe function to interpolate
DqThe gradient of the function
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [2/8]

Eigen::VectorXd SXGrad::interpolate ( const FunctionType q,
const int  deg_quad = -1 
) const
Parameters
qThe function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [3/8]

Eigen::VectorXd XGrad::interpolate ( const FunctionType q,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
qThe function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [4/8]

Eigen::VectorXd XRot::interpolate ( const FunctionType q,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
qThe function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [5/8]

Eigen::VectorXd VSXGrad::interpolate ( const FunctionType q,
const int  doe_cell = -1 
) const

Interpolator of a continuous function.

Parameters
qThe function to interpolate
doe_cellThe optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [6/8]

Eigen::VectorXd EXCurl::interpolate ( const FunctionType v,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
vThe function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [7/8]

Eigen::VectorXd XCurl::interpolate ( const FunctionType v,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
vThe function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [8/8]

Eigen::VectorXd XRotRot::interpolate ( const FunctionType v,
const RotType rot_v,
const int  deg_quad = -1 
) const

Interpolator of a continuous function.

Parameters
vThe function to interpolate
rot_vRotor of the function to interpolate
deg_quadThe optional degre of quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ LocalOperators() [1/6]

HArDCore2D::XCurl::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _curl,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_curlCurl operator
_potentialPotential operator

◆ LocalOperators() [2/6]

HArDCore2D::XGrad::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _gradient,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_gradientGradient operator
_potentialPotential operator

◆ LocalOperators() [3/6]

HArDCore2D::XHess::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _gradient,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_gradientGradient operator
_potentialPotential operator

◆ LocalOperators() [4/6]

HArDCore2D::VSXGrad::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _rot,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_rotCurl operator
_potentialPotential operator

◆ LocalOperators() [5/6]

HArDCore2D::XRotRot::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _rotor,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_rotorRot operator
_potentialPotential operator

◆ LocalOperators() [6/6]

HArDCore2D::XRot::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _rotor,
const Eigen::MatrixXd &  _rotor_rhs,
const Eigen::MatrixXd &  _potential 
)
inline
Parameters
_rotorVector rotor operator
_rotor_rhsVector rotor right-hand side
_potentialPotential operator

◆ mesh() [1/10]

const Mesh & HArDCore2D::DDRCore::mesh ( ) const
inline

Return a const reference to the mesh.

◆ mesh() [2/10]

const Mesh & HArDCore2D::EXCurl::mesh ( ) const
inline

Return the mesh.

◆ mesh() [3/10]

const Mesh & HArDCore2D::SerendipityProblem::mesh ( ) const
inline

Return a const reference to the mesh.

◆ mesh() [4/10]

const Mesh & HArDCore2D::SXGrad::mesh ( ) const
inline

Return the mesh.

◆ mesh() [5/10]

const Mesh & HArDCore2D::VSXGrad::mesh ( ) const
inline

Return the mesh.

◆ mesh() [6/10]

const Mesh & HArDCore2D::XCurl::mesh ( ) const
inline

Return the mesh.

◆ mesh() [7/10]

const Mesh & HArDCore2D::XGrad::mesh ( ) const
inline

Return the mesh.

◆ mesh() [8/10]

const Mesh & HArDCore2D::XHess::mesh ( ) const
inline

Return the mesh.

◆ mesh() [9/10]

const Mesh & HArDCore2D::XRot::mesh ( ) const
inline

Return the mesh.

◆ mesh() [10/10]

const Mesh & HArDCore2D::XRotRot::mesh ( ) const
inline

Return the mesh.

◆ n_serendipityEdges()

const int HArDCore2D::SerendipityProblem::n_serendipityEdges ( size_t  iT) const
inline

Return the number of serendipity edges in a cell.

◆ nDOFs_cells_SXCurl()

Eigen::VectorXd SerendipityProblem::nDOFs_cells_SXCurl ( ) const

Number of DOFs on cells for serendipity XCurl space.

◆ nDOFs_cells_SXGrad()

Eigen::VectorXd SerendipityProblem::nDOFs_cells_SXGrad ( ) const

Number of DOFs on cells for serendipity XGrad space.

◆ nDOFs_cells_SXRotRot()

Eigen::VectorXd SerendipityProblem::nDOFs_cells_SXRotRot ( ) const

Number of DOFs on cells for serendipity XRotRot space.

◆ Polyk()

auto HArDCore2D::VSXGrad::Polyk ( size_t  iT) const -> const PolyBasisCellType&
inline

◆ Polyk2()

auto HArDCore2D::VSXGrad::Polyk2 ( size_t  iT) const -> const Poly2BasisCellType&
inline

◆ Polyk2x2()

const Polyk2x2Type & HArDCore2D::EXCurl::Polyk2x2 ( size_t  iT) const
inline

Return basis for Matricial P^k space.

◆ PolykE()

auto HArDCore2D::VSXGrad::PolykE ( size_t  iE) const -> const PolyBasisEdgeType&
inline

◆ Polykmo()

auto HArDCore2D::VSXGrad::Polykmo ( size_t  iT) const -> const PolyBasisCellType&
inline

◆ Polykpo()

auto HArDCore2D::VSXGrad::Polykpo ( size_t  iT) const -> const PolyBasisCellType&
inline

◆ Polykpo2()

const Polykpo2Type & HArDCore2D::EXCurl::Polykpo2 ( size_t  iT) const
inline

Return basis for the (P^{k+1})^2 space.

◆ PolykpoE()

auto HArDCore2D::VSXGrad::PolykpoE ( size_t  iE) const -> const PolyBasisEdgeType&
inline

◆ Polykptwo()

auto HArDCore2D::VSXGrad::Polykptwo ( size_t  iT) const -> const PolyBasisCellType&
inline

◆ PolykptwoE()

auto HArDCore2D::VSXGrad::PolykptwoE ( size_t  iE) const -> const PolyBasisEdgeType&
inline

◆ RgradCell() [1/2]

const Eigen::MatrixXd & HArDCore2D::SXGrad::RgradCell ( const Cell &  T) const
inline

Return the reduction for cell T.

◆ RgradCell() [2/2]

const Eigen::MatrixXd & HArDCore2D::SXGrad::RgradCell ( size_t  iT) const
inline

Return the reduction for the cell of index iT.

◆ serDegreeCell()

const int HArDCore2D::SerendipityProblem::serDegreeCell ( size_t  iT) const
inline

Return the serendipity degree ell_T in a cell.

◆ serendipityEdges()

const std::vector< size_t > & HArDCore2D::SerendipityProblem::serendipityEdges ( size_t  iT) const
inline

Return the list of serendipity edges in a cell.

◆ SerendipityOperatorCell() [1/2]

const Eigen::MatrixXd HArDCore2D::SerendipityProblem::SerendipityOperatorCell ( const Cell &  T,
const Eigen::MatrixXd &  LT 
) const
inline

Compute the serendipity operator on the Cell T.

◆ SerendipityOperatorCell() [2/2]

const Eigen::MatrixXd SerendipityProblem::SerendipityOperatorCell ( const size_t  iT,
const Eigen::MatrixXd &  LT 
) const

Compute the serendipity operator on the cell of index iT.

◆ SerendipityProblem()

SerendipityProblem::SerendipityProblem ( const DDRCore ddrcore,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ SgradCell() [1/4]

const Eigen::MatrixXd & HArDCore2D::SXGrad::SgradCell ( const Cell &  T) const
inline

Return the serendipity reconstruction for cell T.

◆ SgradCell() [2/4]

const Eigen::MatrixXd & HArDCore2D::XHess::SgradCell ( const Cell &  T) const
inline

Return the serendipity reconstruction for cell T.

◆ SgradCell() [3/4]

const Eigen::MatrixXd & HArDCore2D::SXGrad::SgradCell ( size_t  iT) const
inline

Return the serendipity reconstruction for the cell of index iT.

◆ SgradCell() [4/4]

const Eigen::MatrixXd & HArDCore2D::XHess::SgradCell ( size_t  iT) const
inline

Return the serendipity reconstruction for the cell of index iT.

◆ sXgrad()

const SXGrad & HArDCore2D::VSXGrad::sXgrad ( ) const
inline

Return the underlying sXgrad space.

◆ SXGrad()

SXGrad::SXGrad ( const DDRCore ddr_core,
const SerendipityProblem ser_pro,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ TcellOperators() [1/2]

const TransferOperators & HArDCore2D::XHess::TcellOperators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ TcellOperators() [2/2]

const TransferOperators & HArDCore2D::XHess::TcellOperators ( size_t  iT) const
inline

Return cell operators for the cell of index iT.

◆ TransferOperators() [1/2]

HArDCore2D::XHess::TransferOperators::TransferOperators ( const Eigen::MatrixXd &  _serendipity)
inline
Parameters
_serendipitySerendipity reconstruction

◆ TransferOperators() [2/2]

HArDCore2D::SXGrad::TransferOperators::TransferOperators ( const Eigen::MatrixXd &  _serendipity,
const Eigen::MatrixXd &  _extension,
const Eigen::MatrixXd &  _reduction 
)
inline
Parameters
_serendipitySerendipity reconstruction
_extensionExtension SXGrad->XGrad
_reductionReduction XGrad->SXGrad

◆ useThreads()

const bool HArDCore2D::XRot::useThreads ( ) const
inline

Return true if we use thread-based parallelism.

◆ VSXGrad()

VSXGrad::VSXGrad ( const DDRCore ddr_core,
const SerendipityProblem sp,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ XCurl()

XCurl::XCurl ( const DDRCore ddr_core,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ XGrad()

XGrad::XGrad ( const DDRCore ddr_core,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ XHess()

XHess::XHess ( const DDRCore ddr_core,
const SerendipityProblem ser_pro,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ XRot()

XRot::XRot ( const DDRCore ddr_core,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

◆ XRotRot()

XRotRot::XRotRot ( const DDRCore ddr_core,
bool  use_threads = true,
std::ostream &  output = std::cout 
)

Constructor.

Variable Documentation

◆ curl

Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::curl

◆ extension

Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::extension

◆ GolyComplkp2

std::unique_ptr<GolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::GolyComplkp2

◆ gradient [1/3]

Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::gradient

◆ gradient [2/3]

Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::gradient

◆ gradient [3/3]

Eigen::MatrixXd HArDCore2D::XHess::LocalOperators::gradient

◆ Polyk [1/2]

std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polyk

◆ Polyk [2/2]

std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polyk

◆ Polyk2 [1/2]

std::unique_ptr<Poly2BasisCellType> HArDCore2D::DDRCore::CellBases::Polyk2

◆ Polyk2 [2/2]

std::unique_ptr<Poly2BasisEdgeType> HArDCore2D::VSXGrad::EdgeBases::Polyk2

◆ Polykmo [1/2]

std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykmo

◆ Polykmo [2/2]

std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polykmo

◆ Polykmo2 [1/3]

std::unique_ptr<Poly2BasisCellType> HArDCore2D::DDRCore::CellBases::Polykmo2

◆ Polykmo2 [2/3]

std::unique_ptr<Poly2BasisCellType> HArDCore2D::VSXGrad::CellBases::Polykmo2

◆ Polykmo2 [3/3]

std::unique_ptr<Poly2BasisEdgeType> HArDCore2D::VSXGrad::EdgeBases::Polykmo2

◆ Polykmtwo

std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykmtwo

◆ Polykpo [1/2]

std::unique_ptr<PolyBasisCellType> HArDCore2D::DDRCore::CellBases::Polykpo

◆ Polykpo [2/2]

std::unique_ptr<PolyBasisEdgeType> HArDCore2D::DDRCore::EdgeBases::Polykpo

◆ Polykpo2

std::unique_ptr<Poly2BasisEdgeType> HArDCore2D::VSXGrad::EdgeBases::Polykpo2

◆ Polykpo2x2

std::unique_ptr<Poly2x2BasisCellType> HArDCore2D::VSXGrad::CellBases::Polykpo2x2

◆ Polykptwo2 [1/2]

std::unique_ptr<Poly2BasisCellType> HArDCore2D::VSXGrad::CellBases::Polykptwo2

◆ Polykptwo2 [2/2]

std::unique_ptr<Poly2BasisEdgeType> HArDCore2D::VSXGrad::EdgeBases::Polykptwo2

◆ potential [1/7]

Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::potential

◆ potential [2/7]

Eigen::MatrixXd HArDCore2D::VSXGrad::LocalOperators::potential

◆ potential [3/7]

Eigen::MatrixXd HArDCore2D::XCurl::LocalOperators::potential

◆ potential [4/7]

Eigen::MatrixXd HArDCore2D::XGrad::LocalOperators::potential

◆ potential [5/7]

Eigen::MatrixXd HArDCore2D::XHess::LocalOperators::potential

◆ potential [6/7]

Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::potential

◆ potential [7/7]

Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::potential

◆ reduction

Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::reduction

◆ RolyComplk

std::unique_ptr<RolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::RolyComplk

◆ RolyComplkmo

std::unique_ptr<RolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::RolyComplkmo

◆ RolyComplkp2

std::unique_ptr<RolyComplBasisCellType> HArDCore2D::DDRCore::CellBases::RolyComplkp2

◆ Rolykmo

std::unique_ptr<RolyBasisCellType> HArDCore2D::DDRCore::CellBases::Rolykmo

◆ rot

Eigen::MatrixXd HArDCore2D::VSXGrad::LocalOperators::rot

◆ rotor [1/2]

Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor

◆ rotor [2/2]

Eigen::MatrixXd HArDCore2D::XRotRot::LocalOperators::rotor

◆ rotor_rhs

Eigen::MatrixXd HArDCore2D::XRot::LocalOperators::rotor_rhs

◆ serendipity [1/2]

Eigen::MatrixXd HArDCore2D::SXGrad::TransferOperators::serendipity

◆ serendipity [2/2]

Eigen::MatrixXd HArDCore2D::XHess::TransferOperators::serendipity

◆ stabilisation

Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::stabilisation

◆ symmetric_gradient

Eigen::MatrixXd HArDCore2D::EXCurl::hhoLocalOperators::symmetric_gradient