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
Public Types | Public Member Functions | List of all members
HArDCore3D::HybridCore Class Reference

#include <hybridcore.hpp>

Public Types

typedef Family< MonomialScalarBasisCellPolyCellBasisType
 type for cell basis
 
typedef Family< MonomialScalarBasisFacePolyFaceBasisType
 type for face basis
 
typedef Family< MonomialScalarBasisEdgePolyEdgeBasisType
 type for edge basis
 

Public Member Functions

 HybridCore (const Mesh *mesh_ptr, const int cell_deg, const size_t face_deg, const int edge_deg, const bool use_threads=true, std::ostream &output=std::cout, const bool ortho=true)
 Class constructor: initialises the data structure with the given mesh, and desired polynomial degrees of the basis functions.
 
const Meshget_mesh () const
 Returns a pointer to the mesh.
 
const int CellDegree () const
 Return the degree of cell polynomials.
 
const int CellDegreePos () const
 
const size_t FaceDegree () const
 Return the degree of face polynomials.
 
const PolyCellBasisTypeCellBasis (size_t iT) const
 Return cell basis for element with global index iT.
 
const PolyFaceBasisTypeFaceBasis (size_t iF) const
 Return face basis for face with global index iF.
 
const PolyEdgeBasisTypeEdgeBasis (size_t iE) const
 Return edge basis for edge with global index iE.
 
double L2norm (const UVector &Xh) const
 Compute L2 norm of a discrete function (using cell values)
 
double H1norm (const UVector &Xh) const
 Compute discrete H1 norm of a discrete function.
 
template<typename ContinuousFunction >
UVector interpolate (const ContinuousFunction &f, const int deg_cell, const size_t deg_face, size_t doe) const
 Compute the interpolant in the discrete space of a continuous function.
 
Eigen::VectorXd compute_weights (size_t iT) const
 Computes the weights to get cell values from face values when l=-1.
 
double evaluate_in_cell (const UVector Xh, size_t iT, VectorRd x) const
 Evaluates a discrete function in the cell iT at point x.
 
double evaluate_in_face (const UVector Xh, size_t iF, VectorRd x) const
 Evaluates a discrete function on the face iF at point x.
 
Eigen::VectorXd VertexValues (const UVector Xh, const std::string from_dofs)
 From a hybrid function, computes a vector of values at the vertices of the mesh.
 

Detailed Description

The HybridCore class provides an interface for generating polynomial basis functions on cell, faces and edges, interpolation of continuous functions, discrete norms of vectors of coefficients, and methods to evaluate discrete functions (given by vectors of coefficients) in the cells, on the faces, or at vertices (averaged of cell or face values)

The current implementation has the following behaviours/expectations:


The documentation for this class was generated from the following files: