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

#include <ddr_spaces.hpp>

Classes

struct  DDR_function_type
 

Public Member Functions

 DDR_Spaces (Mesh const &mesh, int r, bool use_threads=true, std::ostream &output=std::cout)
 Constructor.
 
const Meshmesh () const
 Return the mesh.
 
int degree () const
 Return the polynomial degree.
 
Eigen::VectorXd interpolate (const DDR_function_type &, size_t k) const
 Returns the interpolate of the given function as a k-form.
 
const Eigen::MatrixXd & full_diff (size_t k, size_t d, size_t i_cell) const
 Returns \star d in PL(r,d-k-1,d), the Hodge star of the full discrete exterior derivative of a discrete k-form on the mesh element of dimension d with index i_cell.
 
Eigen::MatrixXd compose_diff (size_t k, size_t d, size_t i_cell) const
 Returns \star \ul{d}^k in PLtrimmed(r,d-k-1,d) on the cell (including its boundary), the Hodge star of the discrete exterior derivative of a discrete k-form on the mesh element of dimension d with index i_cell (discrete subspace of X^{k+1})
 
const Eigen::MatrixXd & potential (size_t k, size_t d, size_t i_cell) const
 Returns \star P^k in PL(r,d-k,d), the Hodge star of the potential of a discrete k-form on the mesh element of dimension d with index i_cell.
 
GlobalDOFSpace constdofspace (size_t k) const
 Returns the dofspace associated to discrete k-forms.
 
Eigen::Matrix< double,-1, 1, 0, 3, 1 > evaluate_basis (Eigen::Vector3d const &x, size_t k, size_t d, size_t i_cell, Eigen::VectorXd const &b) const
 Evaluate at point x, the sum of the coefficients b times the basis of PL(r,k,d) in the cell with index i_cell.
 
Eigen::Matrix< double,-1, 1, 0, 3, 1 > evaluate_basis (Eigen::Vector3d const &x, size_t k, size_t d, size_t i_cell, int i_basis) const
 Evaluate at point x, the i th basis function of PL(r,k,d) in the cell with index i_cell.
 
DDR_PEC::Kronecker get_mass (size_t k, size_t d, size_t i_cell) const
 Returns the mass matrix for the k-forms on the mesh element of dimension d with index i_cell.
 
Eigen::Matrix< double,-1,-1, 0, 3, 3 > get_hodge_star (size_t k, size_t d, size_t i_cell) const
 Gets the continuous Hodge star on k forms on the mesh element of dimension d with index i.
 
Eigen::MatrixXd discrete_hodge_star (size_t k, size_t d, size_t i_cell) const
 Takes a k form on the polynomial k basis to a d-k form on the d-k basis (deals with scaling) on the mesh element of dimension d with index i_cell.
 
Eigen::MatrixXd discrete_inv_hodge_star (size_t k, size_t d, size_t i_cell) const
 e.g. discrete_inv_hodge_star(d-k, d, i_cell) * potential(k, d, i_cell) is the potential P^k in PL(r,k,d)
 
Eigen::Matrix< double,-1,-1, 0, 3, 3 > get_exterior_trace (size_t k, size_t d, size_t i_cell) const
 Trace of a k form from the global space to the mesh element of dimension d with index i_cell.
 
Eigen::MatrixXd computeL2Product (size_t k, size_t i_cell, const double penalty_factor=0.1) const
 Computes the L2 product for discrete k-forms on the highest dimensional cell with index i_cell.
 
std::vector< VectorRd > computeVertexValues (size_t k, const Eigen::VectorXd &u) const
 Computes the averaged vertex values of a discrete k-form u using the potential.
 

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