|
HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
|
Classes | |
| class | HArDCore3D::LADDRCore |
| Construct the spaces for the LADDR sequence. More... | |
| class | HArDCore3D::LASXCurl |
| Discrete Lie algebra valued Serendipity Hcurl space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::LASXCurl::TransferOperators |
| A structure to store the serendipity, extension and reduction operators. More... | |
| class | HArDCore3D::LASXDiv |
| Discrete Serendipity Hdiv space: local operators, L2 product and global interpolator. More... | |
| class | HArDCore3D::LASXGrad |
| Discrete Serendipity Hgrad space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::LASXGrad::TransferOperators |
| A structure to store the serendipity, extension and reduction operators. More... | |
| class | HArDCore3D::LAXCurl |
| Discrete Lie algebra valued Hcurl space. More... | |
| struct | HArDCore3D::LAXCurl::LocalOperators |
| A structure to store the local operators (curl and potential) More... | |
| class | HArDCore3D::LAXDiv |
| Discrete Lie algebra valued Hdiv space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::LAXDiv::LocalOperators |
| A structure to store local operators (divergence and potential) More... | |
| class | HArDCore3D::LAXGrad |
| Discrete Lie algebra valued H1 space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::LAXGrad::LocalOperators |
| A structure to store local operators (gradient and potential) More... | |
| class | HArDCore3D::LieAlgebra |
| Lie algebra class: mass matrix, structure constants and Lie bracket. More... | |
Functions | |
| HArDCore3D::LADDRCore::LADDRCore (const LieAlgebra &lie_algebra, const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const DDRCore::Poly3BasisCellType & | HArDCore3D::LADDRCore::P2k3 (size_t iT) const |
| Return cell bases for element iT. | |
| const LieAlgebra & | HArDCore3D::LADDRCore::lieAlg () const |
| Return the Lie algebra. | |
| HArDCore3D::LASXCurl::TransferOperators::TransferOperators (const Eigen::MatrixXd &_serendipity, const Eigen::MatrixXd &_extension, const Eigen::MatrixXd &_reduction) | |
| HArDCore3D::LASXCurl::LASXCurl (const LieAlgebra &lie_algebra, const SXCurl &sx_curl, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const Mesh & | HArDCore3D::LASXCurl::mesh () const |
| Return the mesh. | |
| const size_t & | HArDCore3D::LASXCurl::degree () const |
| Return the polynomial degree. | |
| const LieAlgebra & | HArDCore3D::LASXCurl::lieAlg () const |
| Return the Lie algebra. | |
| const SerendipityProblem & | HArDCore3D::LASXCurl::serPro () const |
| Return the serendipity operators. | |
| Eigen::VectorXd | HArDCore3D::LASXCurl::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 | HArDCore3D::LASXCurl::LaxcurlI (size_t iG, Eigen::VectorXd &v) const |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::ScurlFace (size_t iF) const |
| Return the serendipity reconstruction for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::EcurlFace (size_t iF) const |
| Return the extension for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::RcurlFace (size_t iF) const |
| Return the reduction for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::ScurlFace (const Face &F) const |
| Return the serendipity reconstruction for face F. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::EcurlFace (const Face &F) const |
| Return the extension for face F. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::RcurlFace (const Face &F) const |
| Return cell reduction for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::ScurlCell (size_t iT) const |
| Return the serendipity reconstruction for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::EcurlCell (size_t iT) const |
| Return the extension for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::RcurlCell (size_t iT) const |
| Return the reduction for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::ScurlCell (const Cell &T) const |
| Return the serendipity reconstruction for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::EcurlCell (const Cell &T) const |
| Return the extension for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXCurl::RcurlCell (const Cell &T) const |
| Return the reduction for cell T. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::faceCurl (size_t iF) const |
| Return the full curl operator on the face of index iF. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::faceCurl (const Face &F) const |
| Return the full curl operator on face F. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::facePotential (size_t iF) const |
| Return the potential operator on the face of index iF. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::facePotential (const Face &F) const |
| Return the potential operator on face F. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::cellCurl (size_t iT) const |
| Return the full curl operator on the cell of index iT. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::cellCurl (const Cell &T) const |
| Return the full curl operator on cell T. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::cellPotential (size_t iT) const |
| Return the potential operator on the cell of index iT. | |
| const Eigen::MatrixXd | HArDCore3D::LASXCurl::cellPotential (const Cell &T) const |
| Return the potential operator on cell T. | |
| Eigen::MatrixXd | HArDCore3D::LASXCurl::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 | HArDCore3D::LASXCurl::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 & | HArDCore3D::LASXCurl::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const DDRCore::CellBases & | HArDCore3D::LASXCurl::cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | HArDCore3D::LASXCurl::faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | HArDCore3D::LASXCurl::faceBases (const Face &F) const |
| Return cell bases for face F. | |
| const DDRCore::EdgeBases & | HArDCore3D::LASXCurl::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const DDRCore::EdgeBases & | HArDCore3D::LASXCurl::edgeBases (const Edge &E) const |
| Return edge bases for edge E. | |
| HArDCore3D::LASXDiv::LASXDiv (const LieAlgebra &lie_algebra, const XDiv &xdiv, const SXDiv &sxdiv, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const LieAlgebra & | HArDCore3D::LASXDiv::lieAlg () const |
| Return the Lie algebra. | |
| Eigen::MatrixXd | HArDCore3D::LASXDiv::computeL2ProductCurl (const size_t iT, const SXCurl &sx_curl, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk3_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
| Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete serendipity curl on the left/right/both sides (depending on argument "side"). | |
| HArDCore3D::LASXGrad::TransferOperators::TransferOperators (const Eigen::MatrixXd &_serendipity, const Eigen::MatrixXd &_extension, const Eigen::MatrixXd &_reduction) | |
| HArDCore3D::LASXGrad::LASXGrad (const LieAlgebra &lie_algebra, const SXGrad &sxgrad, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const Mesh & | HArDCore3D::LASXGrad::mesh () const |
| Return the mesh. | |
| const size_t & | HArDCore3D::LASXGrad::degree () const |
| Return the polynomial degree. | |
| const LieAlgebra & | HArDCore3D::LASXGrad::lieAlg () const |
| Return the Lie algebra. | |
| const SerendipityProblem & | HArDCore3D::LASXGrad::serPro () const |
| Return the serendipity operators. | |
| Eigen::VectorXd | HArDCore3D::LASXGrad::interpolate (const LAFunctionType &q, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous function. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::SgradFace (size_t iF) const |
| Return the serendipity reconstruction for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::EgradFace (size_t iF) const |
| Return the extension for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::RgradFace (size_t iF) const |
| Return the reduction for the face of index iF. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::SgradFace (const Face &F) const |
| Return the serendipity reconstruction for face F. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::EgradFace (const Face &F) const |
| Return the extension for face F. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::RgradFace (const Face &F) const |
| Return cell reduction for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::SgradCell (size_t iT) const |
| Return the serendipity reconstruction for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::EgradCell (size_t iT) const |
| Return the extension for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::RgradCell (size_t iT) const |
| Return the reduction for the cell of index iT. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::SgradCell (const Cell &T) const |
| Return the serendipity reconstruction for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::EgradCell (const Cell &T) const |
| Return the extension for cell T. | |
| const Eigen::MatrixXd & | HArDCore3D::LASXGrad::RgradCell (const Cell &T) const |
| Return the reduction for cell T. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::edgeGradient (size_t iE) const |
| Return the full gradient operator on the edge of index iE. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::edgeGradient (const Edge &E) const |
| Return the full gradient operator on edge E. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::edgePotential (size_t iE) const |
| Return the potential operator on the edge of index iE. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::edgePotential (const Edge &E) const |
| Return the potential operator on edge E. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::faceGradient (size_t iF) const |
| Return the full gradient operator on the face of index iF. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::faceGradient (const Face &F) const |
| Return the full gradient operator on face F. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::facePotential (size_t iF) const |
| Return the potential operator on the face of index iF. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::facePotential (const Face &F) const |
| Return the potential operator on face F. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::cellGradient (size_t iT) const |
| Return the full gradient operator on the cell of index iT. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::cellGradient (const Cell &T) const |
| Return the full gradient operator on cell T. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::cellPotential (size_t iT) const |
| Return the potential operator on the cell of index iT. | |
| const Eigen::MatrixXd | HArDCore3D::LASXGrad::cellPotential (const Cell &T) const |
| Return the potential operator on cell T. | |
| Eigen::MatrixXd | HArDCore3D::LASXGrad::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk3_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
| Compute the matrix of the (weighted) L2-product. | |
| const DDRCore::CellBases & | HArDCore3D::LASXGrad::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const DDRCore::CellBases & | HArDCore3D::LASXGrad::cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | HArDCore3D::LASXGrad::faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | HArDCore3D::LASXGrad::faceBases (const Face &F) const |
| Return cell bases for face F. | |
| const DDRCore::EdgeBases & | HArDCore3D::LASXGrad::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const DDRCore::EdgeBases & | HArDCore3D::LASXGrad::edgeBases (const Edge &E) const |
| Return edge bases for edge E. | |
| const LieAlgebra & | HArDCore3D::LAXCurl::lieAlgebra () const |
| Returns the Lie algebra. | |
| const XCurl & | HArDCore3D::LAXCurl::xCurl () const |
| Returns the space XCurl. | |
| HArDCore3D::LAXCurl::LocalOperators::LocalOperators (const Eigen::MatrixXd &_curl, const Eigen::MatrixXd &_potential) | |
| HArDCore3D::LAXCurl::LAXCurl (const LieAlgebra &lie_algebra, const XCurl &xcurl, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const Mesh & | HArDCore3D::LAXCurl::mesh () const |
| Return the mesh. | |
| const size_t & | HArDCore3D::LAXCurl::degree () const |
| Return the polynomial degree. | |
| Eigen::VectorXd | HArDCore3D::LAXCurl::interpolate (const LAFunctionType &v, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous Lie algebra valued function decomposed on the basis of the LieAlgebra, given as a vector of functions. | |
| const LocalOperators & | HArDCore3D::LAXCurl::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. | |
| const LocalOperators & | HArDCore3D::LAXCurl::cellOperators (const Cell &T) const |
| Return cell operators for cell T. | |
| const LocalOperators & | HArDCore3D::LAXCurl::faceOperators (size_t iF) const |
| Return face operators for the face of index iF. | |
| const LocalOperators & | HArDCore3D::LAXCurl::faceOperators (const Face &F) const |
| Return face operators for face F. | |
| const DDRCore::CellBases & | HArDCore3D::LAXCurl::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const DDRCore::CellBases & | HArDCore3D::LAXCurl::cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXCurl::faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXCurl::faceBases (const Face &F) const |
| Return cell bases for face F. | |
| const DDRCore::EdgeBases & | HArDCore3D::LAXCurl::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const DDRCore::EdgeBases & | HArDCore3D::LAXCurl::edgeBases (const Edge &E) const |
| Return edge bases for edge E. | |
| Eigen::MatrixXd | HArDCore3D::LAXCurl::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 |
| Eigen::MatrixXd | HArDCore3D::LAXCurl::computeL2ProductGradient (const size_t iT, const XGrad &x_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"). | |
| HArDCore3D::LAXDiv::LocalOperators::LocalOperators (const Eigen::MatrixXd &_divergence, const Eigen::MatrixXd &_divergence_rhs, const Eigen::MatrixXd &_potential) | |
| HArDCore3D::LAXDiv::LAXDiv (const LieAlgebra &lie_algebra, const XDiv &xdiv, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const Mesh & | HArDCore3D::LAXDiv::mesh () const |
| Return the mesh. | |
| const size_t & | HArDCore3D::LAXDiv::degree () const |
| Return the polynomial degree. | |
| Eigen::VectorXd | HArDCore3D::LAXDiv::interpolate (const LAFunctionType &v, const int doe_cell=-1, const int doe_face=-1) const |
| Interpolator of a continuous function. | |
| const LocalOperators & | HArDCore3D::LAXDiv::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. | |
| const LocalOperators & | HArDCore3D::LAXDiv::cellOperators (const Cell &T) const |
| Return cell operators for cell T. | |
| const DDRCore::CellBases & | HArDCore3D::LAXDiv::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. | |
| const DDRCore::CellBases & | HArDCore3D::LAXDiv::cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXDiv::faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXDiv::faceBases (const Face &F) const |
| Return cell bases for face F. | |
| Eigen::MatrixXd | HArDCore3D::LAXDiv::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk3_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
| Compute the matrix of the (weighted) L2-product for the cell of index iT. | |
| Eigen::MatrixXd | HArDCore3D::LAXDiv::computeL2ProductCurl (const size_t iT, const XCurl &x_curl, const std::string &side, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pk3_T=Eigen::MatrixXd::Zero(1, 1), const IntegralWeight &weight=IntegralWeight(1.)) const |
| Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete curl on the left/right/both sides (depending on argument "side"). | |
| LocalOperators | HArDCore3D::LAXDiv::_compute_cell_divergence_potential (size_t iT) |
| HArDCore3D::LAXGrad::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential) | |
| HArDCore3D::LAXGrad::LAXGrad (const LieAlgebra &lie_algebra, const XGrad &xgrad, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. | |
| const Mesh & | HArDCore3D::LAXGrad::mesh () const |
| Return the mesh. | |
| const size_t & | HArDCore3D::LAXGrad::degree () const |
| Return the polynomial degree. | |
| Eigen::VectorXd | HArDCore3D::LAXGrad::interpolate (const LAFunctionType &q, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous function. | |
| const LocalOperators & | HArDCore3D::LAXGrad::edgeOperators (size_t iE) const |
| Return edge operators for the edge of index iE. | |
| const LocalOperators & | HArDCore3D::LAXGrad::edgeOperators (const Edge &E) const |
| Return edge operators for edge E. | |
| const LocalOperators & | HArDCore3D::LAXGrad::faceOperators (size_t iF) const |
| Return face operators for the face of index iF. | |
| const LocalOperators & | HArDCore3D::LAXGrad::faceOperators (const Face &F) const |
| Return face operators for face F. | |
| const LocalOperators & | HArDCore3D::LAXGrad::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. | |
| const LocalOperators & | HArDCore3D::LAXGrad::cellOperators (const Cell &T) const |
| Return cell operators for cell T. | |
| const DDRCore::CellBases & | HArDCore3D::LAXGrad::cellBases (size_t iT) const |
| Return cell bases for the cell of index iT. | |
| const DDRCore::CellBases & | HArDCore3D::LAXGrad::cellBases (const Cell &T) const |
| Return cell bases for cell T. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXGrad::faceBases (size_t iF) const |
| Return face bases for the face of index iF. | |
| const DDRCore::FaceBases & | HArDCore3D::LAXGrad::faceBases (const Face &F) const |
| Return cell bases for face F. | |
| const DDRCore::EdgeBases & | HArDCore3D::LAXGrad::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. | |
| const DDRCore::EdgeBases & | HArDCore3D::LAXGrad::edgeBases (const Edge &E) const |
| Return edge bases for edge E. | |
| Eigen::MatrixXd | HArDCore3D::LAXGrad::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. The stabilisation here is based on cell and face potentials. | |
| HArDCore3D::LieAlgebra::LieAlgebra () | |
| Constructors. | |
| HArDCore3D::LieAlgebra::LieAlgebra (std::vector< LieAlgValue > &basis, LieAlgProduct &product) | |
| const size_t | HArDCore3D::LieAlgebra::dimension () const |
| Assuming orthonormal basis. | |
| const std::vector< LieAlgValue > & | HArDCore3D::LieAlgebra::basis () const |
| Returns the basis of the Lie algebra. | |
| const Eigen::MatrixXd & | HArDCore3D::LieAlgebra::massMatrix () const |
| Returns the Gram matrix of the Lie algebra. | |
| const LieAlgValue | HArDCore3D::LieAlgebra::lieBracket (const LieAlgValue &A, const LieAlgValue &B) const |
| Computes the Lie bracket of two Lie algebra elements. | |
| const std::vector< Eigen::MatrixXd > & | HArDCore3D::LieAlgebra::structureConst () const |
| Computes the structure constants of the Lie algebra. | |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::LASXCurl::FunctionType |
| typedef std::function<double(const Eigen::Vector3d &)> HArDCore3D::LASXGrad::FunctionType |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::LAXCurl::FunctionType |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::LAXDiv::FunctionType |
| typedef std::function<double(const Eigen::Vector3d &)> HArDCore3D::LAXGrad::FunctionType |
| typedef std::vector<FunctionType> HArDCore3D::LASXCurl::LAFunctionType |
| typedef std::vector<FunctionType> HArDCore3D::LASXGrad::LAFunctionType |
| typedef std::vector<FunctionType> HArDCore3D::LAXCurl::LAFunctionType |
| typedef std::vector<FunctionType> HArDCore3D::LAXDiv::LAFunctionType |
| typedef std::vector<FunctionType> HArDCore3D::LAXGrad::LAFunctionType |
| typedef std::function<double(LieAlgValue &, LieAlgValue &)> HArDCore3D::LieAlgebra::LieAlgProduct |
| typedef Eigen::MatrixXcd HArDCore3D::LieAlgebra::LieAlgValue |
|
protected |
|
inline |
Returns the basis of the Lie algebra.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for cell T.
|
inline |
Return cell bases for the face of index iT.
|
inline |
Return cell bases for the face of index iT.
|
inline |
Return cell bases for the face of index iT.
|
inline |
Return cell bases for the face of index iT.
|
inline |
Return cell bases for the cell of index iT.
Return the full curl operator on cell T.
Return the full curl operator on the cell of index iT.
Return the full gradient operator on cell T.
Return the full gradient operator on the cell of index iT.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for cell T.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell operators for the cell of index iT.
|
inline |
Return cell operators for the cell of index iT.
Return the potential operator on cell T.
Return the potential operator on cell T.
Return the potential operator on the cell of index iT.
Return the potential operator on the cell of index iT.
|
inline |
Compute the matrix of the (weighted) L2-product.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to 1 |
|
inline |
Compute the matrix of the (weighted) L2-product.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to 1 |
| Eigen::MatrixXd LAXCurl::computeL2Product | ( | const size_t | iT, |
| const double & | penalty_factor = 1., |
||
| const Eigen::MatrixXd & | mass_Pk3_T = Eigen::MatrixXd::Zero(1,1), |
||
| const IntegralWeight & | weight = IntegralWeight(1.) |
||
| ) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT. We required the same arguments as the product functions in XCurl since they are called in the construction. From the choice of ordering of the DOFs, this matrix is the Kronecker product of the L2-product matrix of iT in XCurl with the mass matrix of the Lie algebra.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to 1 |
| Eigen::MatrixXd LAXDiv::computeL2Product | ( | const size_t | iT, |
| const double & | penalty_factor = 1., |
||
| const Eigen::MatrixXd & | mass_Pk3_T = Eigen::MatrixXd::Zero(1,1), |
||
| const IntegralWeight & | weight = IntegralWeight(1.) |
||
| ) | const |
Compute the matrix of the (weighted) L2-product for the cell of index iT.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to 1 |
| Eigen::MatrixXd LAXGrad::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. The stabilisation here is based on cell and face potentials.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pkpo_T | if 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 |
| weight | weight function in the L2 product, defaults to 1 |
| Eigen::MatrixXd LASXDiv::computeL2ProductCurl | ( | const size_t | iT, |
| const SXCurl & | sx_curl, | ||
| const std::string & | side, | ||
| const double & | penalty_factor = 1., |
||
| const Eigen::MatrixXd & | mass_Pk3_T = Eigen::MatrixXd::Zero(1,1), |
||
| const IntegralWeight & | weight = IntegralWeight(1.) |
||
| ) | const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete serendipity curl on the left/right/both sides (depending on argument "side").
| iT | index of the cell |
| sx_curl | instance of SXCurl to access the serendipity curls |
| side | which side (left, right, both) we apply the gradient to |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to constant 1. |
| Eigen::MatrixXd LAXDiv::computeL2ProductCurl | ( | const size_t | iT, |
| const XCurl & | x_curl, | ||
| const std::string & | side, | ||
| const double & | penalty_factor = 1., |
||
| const Eigen::MatrixXd & | mass_Pk3_T = Eigen::MatrixXd::Zero(1,1), |
||
| const IntegralWeight & | weight = IntegralWeight(1.) |
||
| ) | const |
Compute the matrix of the (weighted) L2-product as 'computeL2Product', with application of the discrete curl on the left/right/both sides (depending on argument "side").
| iT | index of the cell |
| x_curl | instance of XCurl to access the full curls |
| side | which side (left, right, both) we apply the gradient to |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to constant 1. |
| Eigen::MatrixXd LASXCurl::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").
| iT | index of the cell |
| sx_grad | instance of SXGrad to access the full gradients |
| side | which side (left, right, both) we apply the gradient to |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to constant 1. |
| Eigen::MatrixXd LAXCurl::computeL2ProductGradient | ( | const size_t | iT, |
| const XGrad & | x_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").
| iT | index of the cell |
| x_grad | instance of XGrad to access the full gradients |
| side | which side (left, right, both) we apply the gradient to |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pk3_T | if 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 |
| weight | weight function in the L2 product, defaults to constant 1. |
Assuming orthonormal basis.
Returns the dimension of the Lie algebra
Return the extension for cell T.
Return the extension for the cell of index iT.
Return the extension for face F.
Return the extension for the face of index iF.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for edge E.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge bases for the edge of index iE.
Return the full gradient operator on edge E.
Return the full gradient operator on the edge of index iE.
|
inline |
Return edge operators for edge E.
|
inline |
Return edge operators for the edge of index iE.
Return the potential operator on edge E.
Return the potential operator on the edge of index iE.
Return the extension for cell T.
Return the extension for the cell of index iT.
Return the extension for face F.
Return the extension for the face of index iF.
|
inline |
Return cell bases for face F.
|
inline |
Return cell bases for face F.
|
inline |
Return cell bases for face F.
|
inline |
Return cell bases for face F.
|
inline |
Return cell bases for face F.
|
inline |
Return face bases for the face of index iF.
|
inline |
Return face bases for the face of index iF.
|
inline |
Return face bases for the face of index iF.
|
inline |
Return face bases for the face of index iF.
|
inline |
Return face bases for the face of index iF.
Return the full curl operator on face F.
Return the full curl operator on the face of index iF.
Return the full gradient operator on face F.
Return the full gradient operator on the face of index iF.
|
inline |
Return face operators for face F.
|
inline |
Return face operators for face F.
|
inline |
Return face operators for the face of index iF.
|
inline |
Return face operators for the face of index iF.
Return the potential operator on face F.
Return the potential operator on face F.
Return the potential operator on the face of index iF.
Return the potential operator on the face of index iF.
| Eigen::VectorXd LASXGrad::interpolate | ( | const LAFunctionType & | q, |
| const int | doe_cell = -1, |
||
| const int | doe_face = -1, |
||
| const int | doe_edge = -1 |
||
| ) | const |
Interpolator of a continuous function.
| q | The function to interpolate |
| doe_cell | The optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_face | The optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_edge | The optional degre of edge quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| Eigen::VectorXd LAXGrad::interpolate | ( | const LAFunctionType & | q, |
| const int | doe_cell = -1, |
||
| const int | doe_face = -1, |
||
| const int | doe_edge = -1 |
||
| ) | const |
Interpolator of a continuous function.
| q | The function to interpolate |
| doe_cell | The optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_face | The optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_edge | The optional degre of edge quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| Eigen::VectorXd LAXDiv::interpolate | ( | const LAFunctionType & | v, |
| const int | doe_cell = -1, |
||
| const int | doe_face = -1 |
||
| ) | const |
Interpolator of a continuous function.
| v | The Lie algebra valued function to interpolate |
| doe_cell | The optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_face | The optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| Eigen::VectorXd LASXCurl::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.
| v | The function to interpolate |
| doe_cell | The optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_face | The optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_edge | The optional degre of edge quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| Eigen::VectorXd LAXCurl::interpolate | ( | const LAFunctionType & | v, |
| const int | doe_cell = -1, |
||
| const int | doe_face = -1, |
||
| const int | doe_edge = -1 |
||
| ) | const |
Interpolator of a continuous Lie algebra valued function decomposed on the basis of the LieAlgebra, given as a vector of functions.
| v | The function to interpolate |
| doe_cell | The optional degre of cell quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_face | The optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| doe_edge | The optional degre of edge quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used. |
| LADDRCore::LADDRCore | ( | const LieAlgebra & | lie_algebra, |
| const Mesh & | mesh, | ||
| size_t | K, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| LASXCurl::LASXCurl | ( | const LieAlgebra & | lie_algebra, |
| const SXCurl & | sx_curl, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| LASXDiv::LASXDiv | ( | const LieAlgebra & | lie_algebra, |
| const XDiv & | xdiv, | ||
| const SXDiv & | sxdiv, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| LASXGrad::LASXGrad | ( | const LieAlgebra & | lie_algebra, |
| const SXGrad & | sxgrad, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| LAXCurl::LAXCurl | ( | const LieAlgebra & | lie_algebra, |
| const XCurl & | xcurl, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
|
inline |
| LAXDiv::LAXDiv | ( | const LieAlgebra & | lie_algebra, |
| const XDiv & | xdiv, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| LAXGrad::LAXGrad | ( | const LieAlgebra & | lie_algebra, |
| const XGrad & | xgrad, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
|
inline |
Return the Lie algebra.
|
inline |
Return the Lie algebra.
|
inline |
Return the Lie algebra.
|
inline |
Return the Lie algebra.
| LieAlgebra::LieAlgebra | ( | ) |
Constructors.
|
inline |
Returns the Lie algebra.
| LieAlgebra::LieAlgebra | ( | std::vector< LieAlgValue > & | basis, |
| LieAlgProduct & | product | ||
| ) |
|
inline |
Computes the Lie bracket of two Lie algebra elements.
|
inline |
| _curl | Curl operator |
| _potential | Potential operator |
|
inline |
| _divergence | Divergence operator |
| _divergence_rhs | RHS for the divergence operator problem |
| _potential | Potential operator |
|
inline |
| _gradient | Gradient operator |
| _potential | Potential operator |
|
inline |
Returns the Gram matrix of the Lie algebra.
|
inline |
Return cell bases for element iT.
Return the reduction for cell T.
Return the reduction for the cell of index iT.
Return cell reduction for cell T.
Return the reduction for the face of index iF.
Return the reduction for cell T.
Return the reduction for the cell of index iT.
Return cell reduction for cell T.
Return the reduction for the face of index iF.
Return the serendipity reconstruction for cell T.
Return the serendipity reconstruction for the cell of index iT.
Return the serendipity reconstruction for face F.
Return the serendipity reconstruction for the face of index iF.
|
inline |
Return the serendipity operators.
|
inline |
Return the serendipity operators.
Return the serendipity reconstruction for cell T.
Return the serendipity reconstruction for the cell of index iT.
Return the serendipity reconstruction for face F.
Return the serendipity reconstruction for the face of index iF.
|
inline |
Computes the structure constants of the Lie algebra.
| Eigen::MatrixXd HArDCore3D::LAXCurl::LocalOperators::curl |
| Eigen::MatrixXd HArDCore3D::LAXDiv::LocalOperators::divergence |
| Eigen::MatrixXd HArDCore3D::LAXDiv::LocalOperators::divergence_rhs |
| Eigen::MatrixXd HArDCore3D::LASXCurl::TransferOperators::extension |
| Eigen::MatrixXd HArDCore3D::LASXGrad::TransferOperators::extension |
| Eigen::MatrixXd HArDCore3D::LAXGrad::LocalOperators::gradient |
|
protected |
|
protected |
|
protected |
|
protected |
| Eigen::MatrixXd HArDCore3D::LAXCurl::LocalOperators::potential |
| Eigen::MatrixXd HArDCore3D::LAXDiv::LocalOperators::potential |
| Eigen::MatrixXd HArDCore3D::LAXGrad::LocalOperators::potential |
| Eigen::MatrixXd HArDCore3D::LASXCurl::TransferOperators::reduction |
| Eigen::MatrixXd HArDCore3D::LASXGrad::TransferOperators::reduction |
| Eigen::MatrixXd HArDCore3D::LASXCurl::TransferOperators::serendipity |
| Eigen::MatrixXd HArDCore3D::LASXGrad::TransferOperators::serendipity |