HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
HHOSpace

Classes defining the HHO method (scalar and vector-valued) More...

Classes

class  HArDCore3D::HHOSpace
 Class definition: polynomial bases and operators. More...
 
struct  HArDCore3D::HHOSpace::CellBases
 Structure to store element bases. More...
 
struct  HArDCore3D::HHOSpace::FaceBases
 Structure to store face bases. More...
 
struct  HArDCore3D::HHOSpace::LocalOperators
 A structure to store local operators (gradient, potential, stabilisation) More...
 
class  HArDCore3D::VHHOSpace
 Class definition: polynomial bases and operators. More...
 
struct  HArDCore3D::VHHOSpace::CellBases
 Structure to store element bases. More...
 
struct  HArDCore3D::VHHOSpace::FaceBases
 Structure to store face bases. More...
 
struct  HArDCore3D::VHHOSpace::LocalOperators
 A structure to store local operators (gradient, potential, stabilisation) More...
 

Typedefs

typedef Family< MonomialScalarBasisCellHArDCore3D::HHOSpace::PolyBasisCellType
 
typedef TensorizedVectorFamily< PolyBasisCellType, dimspaceHArDCore3D::HHOSpace::PolydBasisCellType
 
typedef Family< MonomialScalarBasisFaceHArDCore3D::HHOSpace::PolyBasisFaceType
 
typedef std::function< double(const VectorRd &)> HArDCore3D::HHOSpace::FunctionType
 
typedef Cell HArDCore3D::HHOSpace::CellBases::GeometricSupport
 Geometric support.
 
typedef Face HArDCore3D::HHOSpace::FaceBases::GeometricSupport
 Geometric support.
 
typedef std::function< bool(const Cell &)> HArDCore3D::CellSelection
 
typedef Family< MonomialScalarBasisCellHArDCore3D::VHHOSpace::PolyBasisCellType
 
typedef TensorizedVectorFamily< PolyBasisCellType, dimspaceHArDCore3D::VHHOSpace::PolydBasisCellType
 
typedef MatrixFamily< PolyBasisCellType, dimspaceHArDCore3D::VHHOSpace::PolydxdBasisCellType
 
typedef Family< MonomialScalarBasisFaceHArDCore3D::VHHOSpace::PolyBasisFaceType
 
typedef Family< TensorizedVectorFamily< PolyBasisFaceType, dimspace > > HArDCore3D::VHHOSpace::PolydBasisFaceType
 
typedef std::function< VectorRd(const VectorRd &)> HArDCore3D::VHHOSpace::FunctionType
 
typedef Cell HArDCore3D::VHHOSpace::CellBases::GeometricSupport
 Geometric support.
 
typedef Face HArDCore3D::VHHOSpace::FaceBases::GeometricSupport
 Geometric support.
 

Functions

 HArDCore3D::HHOSpace::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential, const Eigen::MatrixXd &_stabilisation)
 
 HArDCore3D::HHOSpace::HHOSpace (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const MeshHArDCore3D::HHOSpace::mesh () const
 Return a const reference to the mesh.
 
const size_tHArDCore3D::HHOSpace::degree () const
 Return the polynomial degree (common face and elements)
 
Eigen::VectorXd HArDCore3D::HHOSpace::interpolate (const FunctionType &q, const int doe_cell=-1, const int doe_face=-1) const
 Interpolator of a continuous function.
 
const CellBasesHArDCore3D::HHOSpace::cellBases (size_t iT) const
 Return cell bases for element iT.
 
const CellBasesHArDCore3D::HHOSpace::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const FaceBasesHArDCore3D::HHOSpace::faceBases (size_t iF) const
 Return face bases for face iF.
 
const FaceBasesHArDCore3D::HHOSpace::faceBases (const Face &F) const
 Return cell bases for face F.
 
const LocalOperatorsHArDCore3D::HHOSpace::operators (size_t iT) const
 Return operators for the cell of index iT.
 
const LocalOperatorsHArDCore3D::HHOSpace::operators (const Cell &T) const
 Return cell operators for cell T.
 
std::vector< std::pair< double, double > > HArDCore3D::HHOSpace::computeNorms (const std::vector< Eigen::VectorXd > &list_dofs) const
 Computes the discrete L2 (cell unknowns only) and H1 norms of a list of vectors.
 
std::vector< doubleHArDCore3D::HHOSpace::computeVertexValues (const Eigen::VectorXd &u) const
 Computes the values of the potential reconstruction at the mesh vertices.
 
 HArDCore3D::VHHOSpace::LocalOperators::LocalOperators (const Eigen::MatrixXd &_gradient, const Eigen::MatrixXd &_potential, const Eigen::MatrixXd &_stabilisation, const Eigen::MatrixXd &_potential_div, const Eigen::MatrixXd &_stabilisation_div)
 
 HArDCore3D::VHHOSpace::VHHOSpace (const Mesh &mesh, size_t K, const CellSelection &BoundaryStab, bool use_threads=true, std::ostream &output=std::cout)
 Constructor (with function to select cells in which boundary faces are used in the stabilisation)
 
 HArDCore3D::VHHOSpace::VHHOSpace (const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout)
 Overloaded constructor when the selection of boundary stabilisation is not entered (all boundary faces are then used)
 
const MeshHArDCore3D::VHHOSpace::mesh () const
 Return a const reference to the mesh.
 
const size_tHArDCore3D::VHHOSpace::degree () const
 Return the polynomial degree (common face and elements)
 
const CellSelectionHArDCore3D::VHHOSpace::boundaryStab () const
 Return the function to select the cells with boundary stabilisation.
 
Eigen::VectorXd HArDCore3D::VHHOSpace::interpolate (const FunctionType &q, const int doe_cell=-1, const int doe_face=-1) const
 Interpolator of a continuous function.
 
const CellBasesHArDCore3D::VHHOSpace::cellBases (size_t iT) const
 Return cell bases for element iT.
 
const CellBasesHArDCore3D::VHHOSpace::cellBases (const Cell &T) const
 Return cell bases for cell T.
 
const FaceBasesHArDCore3D::VHHOSpace::faceBases (size_t iF) const
 Return face bases for face iF.
 
const FaceBasesHArDCore3D::VHHOSpace::faceBases (const Face &F) const
 Return cell bases for face F.
 
const LocalOperatorsHArDCore3D::VHHOSpace::operators (size_t iT) const
 Return operators for the cell of index iT.
 
const LocalOperatorsHArDCore3D::VHHOSpace::operators (const Cell &T) const
 Return cell operators for cell T.
 
std::vector< std::pair< double, double > > HArDCore3D::VHHOSpace::computeNorms (const std::vector< Eigen::VectorXd > &list_dofs) const
 Computes the discrete L2 (cell unknowns only) and H1 norms of a list of vectors.
 
std::vector< VectorRd > HArDCore3D::VHHOSpace::computeVertexValues (const Eigen::VectorXd &u) const
 Computes the values of the potential reconstruction at the mesh vertices.
 

Variables

std::unique_ptr< PolyBasisCellTypeHArDCore3D::HHOSpace::CellBases::Polykpo
 
std::unique_ptr< PolyBasisCellTypeHArDCore3D::HHOSpace::CellBases::Polyk
 
std::unique_ptr< PolydBasisCellTypeHArDCore3D::HHOSpace::CellBases::Polykd
 
std::unique_ptr< PolyBasisFaceTypeHArDCore3D::HHOSpace::FaceBases::Polyk
 
Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::gradient
 
Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::potential
 
Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::stabilisation
 
static const CellSelection HArDCore3D::allcells = [](const Cell &)->bool {return true;}
 
std::unique_ptr< PolyBasisCellTypeHArDCore3D::VHHOSpace::CellBases::Polykpo
 
std::unique_ptr< PolyBasisCellTypeHArDCore3D::VHHOSpace::CellBases::Polyk
 
std::unique_ptr< PolydBasisCellTypeHArDCore3D::VHHOSpace::CellBases::Polykpod
 
std::unique_ptr< PolydBasisCellTypeHArDCore3D::VHHOSpace::CellBases::Polykd
 
std::unique_ptr< PolydxdBasisCellTypeHArDCore3D::VHHOSpace::CellBases::Polykdxd
 
std::unique_ptr< PolyBasisFaceTypeHArDCore3D::VHHOSpace::FaceBases::Polyk
 
std::unique_ptr< PolydBasisFaceTypeHArDCore3D::VHHOSpace::FaceBases::Polykd
 
Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::gradient
 
Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::potential
 
Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::stabilisation
 
Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::potential_div
 
Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::stabilisation_div
 

Detailed Description

Classes defining the HHO method (scalar and vector-valued)

Typedef Documentation

◆ CellSelection

typedef std::function<bool(const Cell &)> HArDCore3D::CellSelection

◆ FunctionType [1/2]

◆ FunctionType [2/2]

typedef std::function<VectorRd(const VectorRd &)> HArDCore3D::VHHOSpace::FunctionType

◆ GeometricSupport [1/4]

Geometric support.

◆ GeometricSupport [2/4]

Geometric support.

◆ GeometricSupport [3/4]

Geometric support.

◆ GeometricSupport [4/4]

Geometric support.

◆ PolyBasisCellType [1/2]

◆ PolyBasisCellType [2/2]

◆ PolyBasisFaceType [1/2]

◆ PolyBasisFaceType [2/2]

◆ PolydBasisCellType [1/2]

◆ PolydBasisCellType [2/2]

◆ PolydBasisFaceType

◆ PolydxdBasisCellType

Function Documentation

◆ boundaryStab()

const CellSelection & HArDCore3D::VHHOSpace::boundaryStab ( ) const
inline

Return the function to select the cells with boundary stabilisation.

◆ cellBases() [1/4]

const CellBases & HArDCore3D::HHOSpace::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [2/4]

const CellBases & HArDCore3D::VHHOSpace::cellBases ( const Cell &  T) const
inline

Return cell bases for cell T.

◆ cellBases() [3/4]

const CellBases & HArDCore3D::HHOSpace::cellBases ( size_t  iT) const
inline

Return cell bases for element iT.

◆ cellBases() [4/4]

const CellBases & HArDCore3D::VHHOSpace::cellBases ( size_t  iT) const
inline

Return cell bases for element iT.

◆ computeNorms() [1/2]

std::vector< std::pair< double, double > > HHOSpace::computeNorms ( const std::vector< Eigen::VectorXd > &  list_dofs) const

Computes the discrete L2 (cell unknowns only) and H1 norms of a list of vectors.

Parameters
list_dofsThe list of vectors representing the dofs

◆ computeNorms() [2/2]

std::vector< std::pair< double, double > > VHHOSpace::computeNorms ( const std::vector< Eigen::VectorXd > &  list_dofs) const

Computes the discrete L2 (cell unknowns only) and H1 norms of a list of vectors.

Parameters
list_dofsThe list of vectors representing the dofs

◆ computeVertexValues() [1/2]

std::vector< double > HHOSpace::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 > VHHOSpace::computeVertexValues ( const Eigen::VectorXd &  u) const

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

Parameters
uDOFs in the discrete space

◆ degree() [1/2]

const size_t & HArDCore3D::HHOSpace::degree ( ) const
inline

Return the polynomial degree (common face and elements)

◆ degree() [2/2]

const size_t & HArDCore3D::VHHOSpace::degree ( ) const
inline

Return the polynomial degree (common face and elements)

◆ faceBases() [1/4]

const FaceBases & HArDCore3D::HHOSpace::faceBases ( const Face &  F) const
inline

Return cell bases for face F.

◆ faceBases() [2/4]

const FaceBases & HArDCore3D::VHHOSpace::faceBases ( const Face &  F) const
inline

Return cell bases for face F.

◆ faceBases() [3/4]

const FaceBases & HArDCore3D::HHOSpace::faceBases ( size_t  iF) const
inline

Return face bases for face iF.

◆ faceBases() [4/4]

const FaceBases & HArDCore3D::VHHOSpace::faceBases ( size_t  iF) const
inline

Return face bases for face iF.

◆ HHOSpace()

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

Constructor.

◆ interpolate() [1/2]

Eigen::VectorXd HHOSpace::interpolate ( const FunctionType q,
const int  doe_cell = -1,
const int  doe_face = -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.
doe_faceThe optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ interpolate() [2/2]

Eigen::VectorXd VHHOSpace::interpolate ( const FunctionType q,
const int  doe_cell = -1,
const int  doe_face = -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.
doe_faceThe optional degre of face quadrature rules to compute the interpolate. If negative, then 2*degree()+3 will be used.

◆ LocalOperators() [1/2]

HArDCore3D::HHOSpace::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _gradient,
const Eigen::MatrixXd &  _potential,
const Eigen::MatrixXd &  _stabilisation 
)
inline
Parameters
_gradientGradient operator
_potentialPotential operator
_stabilisationStabilisation bilinear form

◆ LocalOperators() [2/2]

HArDCore3D::VHHOSpace::LocalOperators::LocalOperators ( const Eigen::MatrixXd &  _gradient,
const Eigen::MatrixXd &  _potential,
const Eigen::MatrixXd &  _stabilisation,
const Eigen::MatrixXd &  _potential_div,
const Eigen::MatrixXd &  _stabilisation_div 
)
inline
Parameters
_gradientGradient operator
_potentialHHO Potential operator
_stabilisationH1 Stabilisation bilinear form associated to the HHO potential
_potential_divPotential reconstructed from divergence
_stabilisation_divL2 Stabilisation associated to _potential_div

◆ mesh() [1/2]

const Mesh & HArDCore3D::HHOSpace::mesh ( ) const
inline

Return a const reference to the mesh.

◆ mesh() [2/2]

const Mesh & HArDCore3D::VHHOSpace::mesh ( ) const
inline

Return a const reference to the mesh.

◆ operators() [1/4]

const LocalOperators & HArDCore3D::HHOSpace::operators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ operators() [2/4]

const LocalOperators & HArDCore3D::VHHOSpace::operators ( const Cell &  T) const
inline

Return cell operators for cell T.

◆ operators() [3/4]

const LocalOperators & HArDCore3D::HHOSpace::operators ( size_t  iT) const
inline

Return operators for the cell of index iT.

◆ operators() [4/4]

const LocalOperators & HArDCore3D::VHHOSpace::operators ( size_t  iT) const
inline

Return operators for the cell of index iT.

◆ VHHOSpace() [1/2]

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

Overloaded constructor when the selection of boundary stabilisation is not entered (all boundary faces are then used)

◆ VHHOSpace() [2/2]

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

Constructor (with function to select cells in which boundary faces are used in the stabilisation)

Variable Documentation

◆ allcells

const CellSelection HArDCore3D::allcells = [](const Cell &)->bool {return true;}
static

◆ gradient [1/2]

Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::gradient

◆ gradient [2/2]

Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::gradient

◆ Polyk [1/4]

std::unique_ptr<PolyBasisCellType> HArDCore3D::HHOSpace::CellBases::Polyk

◆ Polyk [2/4]

std::unique_ptr<PolyBasisFaceType> HArDCore3D::HHOSpace::FaceBases::Polyk

◆ Polyk [3/4]

std::unique_ptr<PolyBasisCellType> HArDCore3D::VHHOSpace::CellBases::Polyk

◆ Polyk [4/4]

std::unique_ptr<PolyBasisFaceType> HArDCore3D::VHHOSpace::FaceBases::Polyk

◆ Polykd [1/3]

std::unique_ptr<PolydBasisCellType> HArDCore3D::HHOSpace::CellBases::Polykd

◆ Polykd [2/3]

std::unique_ptr<PolydBasisCellType> HArDCore3D::VHHOSpace::CellBases::Polykd

◆ Polykd [3/3]

std::unique_ptr<PolydBasisFaceType> HArDCore3D::VHHOSpace::FaceBases::Polykd

◆ Polykdxd

std::unique_ptr<PolydxdBasisCellType> HArDCore3D::VHHOSpace::CellBases::Polykdxd

◆ Polykpo [1/2]

std::unique_ptr<PolyBasisCellType> HArDCore3D::HHOSpace::CellBases::Polykpo

◆ Polykpo [2/2]

std::unique_ptr<PolyBasisCellType> HArDCore3D::VHHOSpace::CellBases::Polykpo

◆ Polykpod

std::unique_ptr<PolydBasisCellType> HArDCore3D::VHHOSpace::CellBases::Polykpod

◆ potential [1/2]

Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::potential

◆ potential [2/2]

Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::potential

◆ potential_div

Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::potential_div

◆ stabilisation [1/2]

Eigen::MatrixXd HArDCore3D::HHOSpace::LocalOperators::stabilisation

◆ stabilisation [2/2]

Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::stabilisation

◆ stabilisation_div

Eigen::MatrixXd HArDCore3D::VHHOSpace::LocalOperators::stabilisation_div