17 #ifndef __deal2__polynomial_space_h 18 #define __deal2__polynomial_space_h 21 #include <deal.II/base/config.h> 23 #include <deal.II/base/tensor.h> 24 #include <deal.II/base/point.h> 25 #include <deal.II/base/polynomial.h> 26 #include <deal.II/base/smartpointer.h> 121 template <
class STREAM>
131 void set_numbering(
const std::vector<unsigned int> &renumber);
159 std::vector<double> &values,
206 unsigned int n ()
const;
218 unsigned int degree ()
const;
239 unsigned int (&index)[dim>0?dim:1])
const;
274 unsigned int (&index)[1])
const;
277 unsigned int (&index)[2])
const;
280 unsigned int (&index)[3])
const;
299 for (
unsigned int i=0; i<
n_pols; ++i)
327 template <
class STREAM>
331 unsigned int ix[dim];
332 for (
unsigned int i=0; i<
n_pols; ++i)
336 for (
unsigned int d=0; d<dim; ++d)
343 DEAL_II_NAMESPACE_CLOSE
Tensor< 2, dim > compute_grad_grad(const unsigned int i, const Point< dim > &p) const
unsigned int degree() const
void set_numbering(const std::vector< unsigned int > &renumber)
void output_indices(STREAM &out) const
static unsigned int compute_n_pols(const unsigned int n)
void compute_index(const unsigned int n, unsigned int(&index)[dim >0?dim:1]) const
static const unsigned int dimension
std::vector< unsigned int > index_map_inverse
const unsigned int n_pols
Tensor< 1, dim > compute_grad(const unsigned int i, const Point< dim > &p) const
PolynomialSpace(const std::vector< Pol > &pols)
void compute(const Point< dim > &unit_point, std::vector< double > &values, std::vector< Tensor< 1, dim > > &grads, std::vector< Tensor< 2, dim > > &grad_grads) const
std::vector< unsigned int > index_map
const std::vector< Polynomials::Polynomial< double > > polynomials
double compute_value(const unsigned int i, const Point< dim > &p) const