|
HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
|
Classes providing tools to the de Rham VEM sequence. More...
Classes | |
| class | HArDCore3D::VCurl |
| Virtual Hcurl space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::VCurl::LocalOperators |
| A structure to store the local operators (projections of curl and function, dof of curl in Vdiv) More... | |
| class | HArDCore3D::VDiv |
| Virtual Hdiv space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::VDiv::LocalOperators |
| A structure to store the local operators (projections of div and function) More... | |
| class | HArDCore3D::VEMCore |
| Construct all polynomial spaces for the VEM sequence. More... | |
| struct | HArDCore3D::VEMCore::CellBases |
| Structure to store element bases. More... | |
| struct | HArDCore3D::VEMCore::FaceBases |
| Structure to store face bases. More... | |
| struct | HArDCore3D::VEMCore::EdgeBases |
| Structure to store edge bases. More... | |
| class | HArDCore3D::VGrad |
| Virtual H1 space: local operators, L2 product and global interpolator. More... | |
| struct | HArDCore3D::VGrad::LocalOperators |
| A structure to store local operators (projection of gradient and function, dof of gradient in Vcurl) More... | |
Functions | |
| HArDCore3D::VCurl::LocalOperators::LocalOperators (const Eigen::MatrixXd &_proj_curl, const Eigen::MatrixXd &_dofs_curl, const Eigen::MatrixXd &_proj_function) | |
| HArDCore3D::VCurl::VCurl (const VEMCore &vem_core, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. More... | |
| const Mesh & | HArDCore3D::VCurl::mesh () const |
| Return the mesh. More... | |
| const size_t & | HArDCore3D::VCurl::degree () const |
| Return the polynomial degree. More... | |
| Eigen::VectorXd | HArDCore3D::VCurl::interpolate (const FunctionType &v, const FunctionType &curl_v, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous function. More... | |
| const LocalOperators & | HArDCore3D::VCurl::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. More... | |
| const LocalOperators & | HArDCore3D::VCurl::cellOperators (const Cell &T) const |
| Return cell operators for cell T. More... | |
| const LocalOperators & | HArDCore3D::VCurl::faceOperators (size_t iF) const |
| Return face operators for the face of index iF. More... | |
| const LocalOperators & | HArDCore3D::VCurl::faceOperators (const Face &F) const |
| Return face operators for face F. More... | |
| const VEMCore::CellBases & | HArDCore3D::VCurl::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. More... | |
| const VEMCore::CellBases & | HArDCore3D::VCurl::cellBases (const Cell &T) const |
| Return cell bases for cell T. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VCurl::faceBases (size_t iF) const |
| Return face bases for the face of index iF. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VCurl::faceBases (const Face &F) const |
| Return cell bases for face F. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VCurl::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VCurl::edgeBases (const Edge &E) const |
| Return edge bases for edge E. More... | |
| Eigen::MatrixXd | HArDCore3D::VCurl::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. More... | |
| HArDCore3D::VDiv::LocalOperators::LocalOperators (const Eigen::MatrixXd &_proj_divergence, const Eigen::MatrixXd &_proj_function) | |
| HArDCore3D::VDiv::VDiv (const VEMCore &vem_core, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. More... | |
| const Mesh & | HArDCore3D::VDiv::mesh () const |
| Return the mesh. More... | |
| const size_t & | HArDCore3D::VDiv::degree () const |
| Return the polynomial degree. More... | |
| Eigen::VectorXd | HArDCore3D::VDiv::interpolate (const FunctionType &v, const DivergenceType &div_v, const int doe_cell=-1, const int doe_face=-1) const |
| Interpolator of a continuous function. More... | |
| const LocalOperators & | HArDCore3D::VDiv::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. More... | |
| const LocalOperators & | HArDCore3D::VDiv::cellOperators (const Cell &T) const |
| Return cell operators for cell T. More... | |
| const LocalOperators & | HArDCore3D::VDiv::faceOperators (size_t iF) const |
| Return face operators for the face of index iF. More... | |
| const LocalOperators & | HArDCore3D::VDiv::faceOperators (const Face &F) const |
| Return face operators for face F. More... | |
| const VEMCore::CellBases & | HArDCore3D::VDiv::cellBases (size_t iT) const |
| Return cell bases for the face of index iT. More... | |
| const VEMCore::CellBases & | HArDCore3D::VDiv::cellBases (const Cell &T) const |
| Return cell bases for cell T. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VDiv::faceBases (size_t iF) const |
| Return face bases for the face of index iF. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VDiv::faceBases (const Face &F) const |
| Return cell bases for face F. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VDiv::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VDiv::edgeBases (const Edge &E) const |
| Return edge bases for edge E. More... | |
| Eigen::MatrixXd | HArDCore3D::VDiv::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. The stabilisation here is based on cell and face potentials. More... | |
| HArDCore3D::VEMCore::VEMCore (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. More... | |
| const Mesh & | HArDCore3D::VEMCore::mesh () const |
| Return a const reference to the mesh. More... | |
| const size_t & | HArDCore3D::VEMCore::degree () const |
| Return the polynomial degree. More... | |
| const CellBases & | HArDCore3D::VEMCore::cellBases (size_t iT) const |
| Return cell bases for element iT. More... | |
| const FaceBases & | HArDCore3D::VEMCore::faceBases (size_t iF) const |
| Return face bases for face iF. More... | |
| const EdgeBases & | HArDCore3D::VEMCore::edgeBases (size_t iE) const |
| Return edge bases for edge iE. More... | |
| HArDCore3D::VGrad::LocalOperators::LocalOperators (const Eigen::MatrixXd &_proj_gradient, const Eigen::MatrixXd &_dofs_gradient, const Eigen::MatrixXd &_proj_function) | |
| HArDCore3D::VGrad::VGrad (const VEMCore &vem_core, bool use_threads=true, std::ostream &output=std::cout) | |
| Constructor. More... | |
| const Mesh & | HArDCore3D::VGrad::mesh () const |
| Return the mesh. More... | |
| const size_t & | HArDCore3D::VGrad::degree () const |
| Return the polynomial degree. More... | |
| Eigen::VectorXd | HArDCore3D::VGrad::interpolate (const FunctionType &q, const GradientType &grad_q, const int doe_cell=-1, const int doe_face=-1, const int doe_edge=-1) const |
| Interpolator of a continuous function. More... | |
| const LocalOperators & | HArDCore3D::VGrad::edgeOperators (size_t iE) const |
| Return edge operators for the edge of index iE. More... | |
| const LocalOperators & | HArDCore3D::VGrad::edgeOperators (const Edge &E) const |
| Return edge operators for edge E. More... | |
| const LocalOperators & | HArDCore3D::VGrad::faceOperators (size_t iF) const |
| Return face operators for the face of index iF. More... | |
| const LocalOperators & | HArDCore3D::VGrad::faceOperators (const Face &F) const |
| Return face operators for face F. More... | |
| const LocalOperators & | HArDCore3D::VGrad::cellOperators (size_t iT) const |
| Return cell operators for the cell of index iT. More... | |
| const LocalOperators & | HArDCore3D::VGrad::cellOperators (const Cell &T) const |
| Return cell operators for cell T. More... | |
| const VEMCore::CellBases & | HArDCore3D::VGrad::cellBases (size_t iT) const |
| Return cell bases for the cell of index iT. More... | |
| const VEMCore::CellBases & | HArDCore3D::VGrad::cellBases (const Cell &T) const |
| Return cell bases for cell T. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VGrad::faceBases (size_t iF) const |
| Return face bases for the face of index iF. More... | |
| const VEMCore::FaceBases & | HArDCore3D::VGrad::faceBases (const Face &F) const |
| Return cell bases for face F. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VGrad::edgeBases (size_t iE) const |
| Return edge bases for the edge of index iE. More... | |
| const VEMCore::EdgeBases & | HArDCore3D::VGrad::edgeBases (const Edge &E) const |
| Return edge bases for edge E. More... | |
| Eigen::MatrixXd | HArDCore3D::VGrad::computeL2Product (const size_t iT, const double &penalty_factor=1., const Eigen::MatrixXd &mass_Pkmo_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. NOT COMPLETE: only computes the consistent component of this L2 product. More... | |
Classes providing tools to the de Rham VEM sequence.
| typedef std::function<double(const Eigen::Vector3d &)> HArDCore3D::VDiv::DivergenceType |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::VCurl::FunctionType |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::VDiv::FunctionType |
| typedef std::function<double(const Eigen::Vector3d &)> HArDCore3D::VGrad::FunctionType |
| typedef Cell HArDCore3D::VEMCore::CellBases::GeometricSupport |
Geometric support.
| typedef Face HArDCore3D::VEMCore::FaceBases::GeometricSupport |
Geometric support.
| typedef Edge HArDCore3D::VEMCore::EdgeBases::GeometricSupport |
Geometric support.
| typedef Family<GradientBasis<ShiftedBasis<MonomialScalarBasisCell> > > HArDCore3D::VEMCore::GolyBasisCellType |
| typedef std::function<Eigen::Vector3d(const Eigen::Vector3d &)> HArDCore3D::VGrad::GradientType |
| typedef Family<CurlBasis<ShiftedBasis<MonomialScalarBasisFace> > > HArDCore3D::VEMCore::RolyBasisFaceType |
|
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 element iT.
|
inline |
Return cell bases for 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.
| Eigen::MatrixXd VCurl::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 VDiv::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. The stabilisation here is based on cell and face potentials.
| 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 VGrad::computeL2Product | ( | const size_t | iT, |
| const double & | penalty_factor = 1., |
||
| const Eigen::MatrixXd & | mass_Pkmo_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. NOT COMPLETE: only computes the consistent component of this L2 product.
| iT | index of the cell |
| penalty_factor | pre-factor for stabilisation term |
| mass_Pkmo_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 |
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
inline |
Return the polynomial degree.
|
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 edge iE.
|
inline |
Return edge bases for the edge of index iE.
|
inline |
Return edge operators for edge E.
|
inline |
Return edge operators for the edge of index iE.
|
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 face iF.
|
inline |
Return face bases for the face of index iF.
|
inline |
Return face operators for face F.
|
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.
|
inline |
Return face operators for the face of index iF.
| Eigen::VectorXd VGrad::interpolate | ( | const FunctionType & | q, |
| const GradientType & | grad_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 |
| grad_q | Its gradient |
| 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 VDiv::interpolate | ( | const FunctionType & | v, |
| const DivergenceType & | div_v, | ||
| const int | doe_cell = -1, |
||
| const int | doe_face = -1 |
||
| ) | const |
Interpolator of a continuous function.
| v | The function to interpolate |
| div_v | Its div |
| 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 VCurl::interpolate | ( | const FunctionType & | v, |
| const FunctionType & | curl_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 |
| curl_v | Its curl |
| 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. |
|
inline |
| _proj_curl | Projecton in \(P^k\) of curl (or rot for faces) of the function |
| _dofs_curl | DOFs of curl/rot on Vdiv |
| _proj_function | Projection in \(P^{k+1}\) (for faces) or \(P^k\) (for elements) of the function |
|
inline |
| _proj_divergence | Projecton in \(P^k\) of div (or rot for faces) of the function |
| _proj_function | Projection in \(P^{k}\) (for faces) or \(P^k\) (for elements) of the function |
|
inline |
| _proj_gradient | Projection of gradient on \(P^k\) |
| _dofs_gradient | DOFs of gradient in Vcurl |
| _proj_function | Projection of function (on \(P^{k+1}\) for edge, \(P^k\) for faces, \(P^{k-1}\) for cells) |
|
inline |
Return the mesh.
|
inline |
Return the mesh.
|
inline |
Return a const reference to the mesh.
|
inline |
Return the mesh.
| VCurl::VCurl | ( | const VEMCore & | vem_core, |
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| VDiv::VDiv | ( | const VEMCore & | vem_core, |
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| VEMCore::VEMCore | ( | const Mesh & | mesh, |
| size_t | K, | ||
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| VGrad::VGrad | ( | const VEMCore & | vem_core, |
| bool | use_threads = true, |
||
| std::ostream & | output = std::cout |
||
| ) |
Constructor.
| Eigen::MatrixXd HArDCore3D::VCurl::LocalOperators::dofs_curl |
| Eigen::MatrixXd HArDCore3D::VGrad::LocalOperators::dofs_gradient |
| std::unique_ptr<GolyComplBasisCellType> HArDCore3D::VEMCore::CellBases::GolyComplk |
| std::unique_ptr<GolyComplBasisCellType> HArDCore3D::VEMCore::CellBases::GolyComplkpo |
| std::unique_ptr<GolyBasisCellType> HArDCore3D::VEMCore::CellBases::Golykmo |
| std::unique_ptr<PolyBasisCellType> HArDCore3D::VEMCore::CellBases::Polyk |
| std::unique_ptr<PolyBasisFaceType> HArDCore3D::VEMCore::FaceBases::Polyk |
| std::unique_ptr<PolyBasisEdgeType> HArDCore3D::VEMCore::EdgeBases::Polyk |
| std::unique_ptr<ShiftedBasis<PolyBasisCellType> > HArDCore3D::VEMCore::CellBases::Polyk0 |
| std::unique_ptr<ShiftedBasis<PolyBasisFaceType> > HArDCore3D::VEMCore::FaceBases::Polyk0 |
| std::unique_ptr<Poly2BasisFaceType> HArDCore3D::VEMCore::FaceBases::Polyk2 |
| std::unique_ptr<Poly3BasisCellType> HArDCore3D::VEMCore::CellBases::Polyk3 |
| std::unique_ptr<PolyBasisCellType> HArDCore3D::VEMCore::CellBases::Polykmo |
| std::unique_ptr<PolyBasisFaceType> HArDCore3D::VEMCore::FaceBases::Polykmo |
| std::unique_ptr<PolyBasisEdgeType> HArDCore3D::VEMCore::EdgeBases::Polykmo |
| std::unique_ptr<PolyBasisFaceType> HArDCore3D::VEMCore::FaceBases::Polykp2 |
| std::unique_ptr<PolyBasisCellType> HArDCore3D::VEMCore::CellBases::Polykpo |
| std::unique_ptr<PolyBasisFaceType> HArDCore3D::VEMCore::FaceBases::Polykpo |
| std::unique_ptr<PolyBasisEdgeType> HArDCore3D::VEMCore::EdgeBases::Polykpo |
| std::unique_ptr<ShiftedBasis<PolyBasisCellType> > HArDCore3D::VEMCore::CellBases::Polykpo0 |
| std::unique_ptr<TangentFamily<PolyBasisFaceType> > HArDCore3D::VEMCore::FaceBases::Polykpo2 |
| Eigen::MatrixXd HArDCore3D::VCurl::LocalOperators::proj_curl |
| Eigen::MatrixXd HArDCore3D::VDiv::LocalOperators::proj_divergence |
| Eigen::MatrixXd HArDCore3D::VCurl::LocalOperators::proj_function |
| Eigen::MatrixXd HArDCore3D::VDiv::LocalOperators::proj_function |
| Eigen::MatrixXd HArDCore3D::VGrad::LocalOperators::proj_function |
| Eigen::MatrixXd HArDCore3D::VGrad::LocalOperators::proj_gradient |
| std::unique_ptr<RolyComplBasisCellType> HArDCore3D::VEMCore::CellBases::RolyComplk |
| std::unique_ptr<RolyComplBasisFaceType> HArDCore3D::VEMCore::FaceBases::RolyComplk |
| std::unique_ptr<RolyComplBasisFaceType> HArDCore3D::VEMCore::FaceBases::RolyComplkmo |
| std::unique_ptr<RolyComplBasisCellType> HArDCore3D::VEMCore::CellBases::RolyComplkp2 |
| std::unique_ptr<RolyComplBasisFaceType> HArDCore3D::VEMCore::FaceBases::RolyComplkpo |
| std::unique_ptr<RolyBasisCellType> HArDCore3D::VEMCore::CellBases::Rolykmo |
| std::unique_ptr<RolyBasisFaceType> HArDCore3D::VEMCore::FaceBases::Rolykmo |