141 const Eigen::MatrixXd& dual,
142 bool condition_check =
false);
154 const Eigen::ArrayXXd& coeffs,
157 const Eigen::ArrayXXd&
points,
190 std::vector<Eigen::ArrayXXd>
tabulate(
int nd,
const Eigen::ArrayXXd& x)
const;
228 const std::vector<std::vector<int>>&
entity_dofs()
const;
313 const Eigen::ArrayXXd&
points()
const;
327 std::string _family_name;
333 std::vector<int> _value_shape;
336 std::string _mapping_name;
342 Eigen::MatrixXd _coeffs;
349 std::vector<std::vector<int>> _entity_dofs;
352 std::vector<Eigen::MatrixXd> _base_permutations;
359 Eigen::ArrayXXd _points;
362 Eigen::MatrixXd _interpolation_matrix;
Definition: finite-element.h:148
FiniteElement & operator=(const FiniteElement &element)=default
Assignment operator.
cell::type cell_type() const
Definition: finite-element.cpp:102
FiniteElement & operator=(FiniteElement &&element)=default
Move assignment operator.
const Eigen::ArrayXXd & points() const
Definition: finite-element.cpp:168
int value_size() const
Definition: finite-element.cpp:106
FiniteElement(FiniteElement &&element)=default
Move constructor.
FiniteElement(std::string family_name, cell::type cell_type, int degree, const std::vector< int > &value_shape, const Eigen::ArrayXXd &coeffs, const std::vector< std::vector< int >> &entity_dofs, const std::vector< Eigen::MatrixXd > &base_permutations, const Eigen::ArrayXXd &points, const Eigen::MatrixXd interpolation_matrix={}, const std::string mapping_name="affine")
A finite element.
Definition: finite-element.cpp:78
int degree() const
Definition: finite-element.cpp:104
const std::vector< int > & value_shape() const
Definition: finite-element.cpp:114
~FiniteElement()=default
Destructor.
const std::vector< std::vector< int > > & entity_dofs() const
Definition: finite-element.cpp:130
int dim() const
Definition: finite-element.cpp:119
const std::string & family_name() const
Definition: finite-element.cpp:121
const Eigen::MatrixXd & interpolation_matrix() const
Definition: finite-element.cpp:125
FiniteElement(const FiniteElement &element)=default
Copy constructor.
std::vector< Eigen::ArrayXXd > tabulate(int nd, const Eigen::ArrayXXd &x) const
Definition: finite-element.cpp:136
const std::string & mapping_name() const
Definition: finite-element.cpp:123
std::vector< Eigen::MatrixXd > base_permutations() const
Definition: finite-element.cpp:163
type
Cell type.
Definition: cell.h:21
basix
Definition: basix.h:7
Eigen::MatrixXd compute_expansion_coefficients(const Eigen::MatrixXd &span_coeffs, const Eigen::MatrixXd &dual, bool condition_check=false)
Definition: finite-element.cpp:46
FiniteElement create_element(std::string family, std::string cell, int degree)
Create an element by name.
Definition: finite-element.cpp:22
const std::string & version()
Definition: finite-element.cpp:170
int degree(int handle)
Degree.
Definition: basix.cpp:50