19 #ifndef FINITE_ELEMENT_HH_ 20 #define FINITE_ELEMENT_HH_ 25 #include <boost/assign/list_of.hpp> 30 template<
unsigned int dim,
unsigned int spacedim>
class FEValuesData;
139 template<
unsigned int dim,
unsigned int spacedim>
157 const unsigned int n_dofs()
const;
167 const unsigned int n_object_dofs(
unsigned int object_dim,
177 virtual double basis_value(
const unsigned int i,
178 const arma::vec::fixed<dim> &p)
const = 0;
189 virtual arma::vec::fixed<dim> basis_vector(
const unsigned int i,
190 const arma::vec::fixed<dim> &p)
const = 0;
202 virtual arma::vec::fixed<dim> basis_grad(
const unsigned int i,
203 const arma::vec::fixed<dim> &p)
const = 0;
215 virtual arma::mat::fixed<dim,dim> basis_grad_vector(
const unsigned int i,
216 const arma::vec::fixed<dim> &p)
const = 0;
225 virtual void compute_node_matrix();
295 unsigned int number_of_single_dofs[dim + 1];
301 unsigned int number_of_pairs[dim + 1];
306 unsigned int number_of_triples[dim + 1];
311 unsigned int number_of_sextuples[dim + 1];
UpdateFlags
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell...
std::vector< arma::mat > basis_grads
Precomputed gradients of basis functions at the quadrature points.
std::vector< std::vector< arma::vec > > basis_vectors
Precomputed values of basis functions at the quadrature points.
bool is_scalar_fe
Indicator of scalar versus vectorial finite element.
const std::vector< DofMultiplicity > dof_multiplicities
unsigned int number_of_dofs
Total number of degrees of freedom at one finite element.
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell...
Base class for quadrature rules on simplices in arbitrary dimensions.
std::vector< arma::vec::fixed< dim > > generalized_support_points
Support points for non-Lagrangean finite elements.
const bool is_scalar() const
Indicates whether the finite element function space is scalar or vectorial.
std::vector< std::vector< arma::mat > > basis_grad_vectors
Precomputed gradients of basis functions at the quadrature points.
unsigned int order
Polynomial order - to be possibly used in hp methods.
Class FEValuesData holds the arrays of data computed by Mapping and FiniteElement.
std::vector< arma::vec > basis_values
Precomputed values of basis functions at the quadrature points.
DofMultiplicity
Multiplicity of finite element dofs.
Structure for storing the precomputed finite element data.
std::vector< arma::vec::fixed< dim > > unit_support_points
Support points for Lagrangean finite elements.
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
arma::mat node_matrix
Matrix that determines the coefficients of the raw basis functions from the values at the support poi...
virtual const unsigned int polynomial_order() const
Returns the maximum degree of space of polynomials contained in the finite element space...