33 std::array<unsigned int, dim>
ix;
34 for (
unsigned int i = 0; i < tensor_polys.n(); ++i)
36 tensor_polys.compute_index(i,
ix);
38 for (
unsigned int d = 0; d < dim; ++d)
49 const std::vector<unsigned int> &renumber)
51 Assert(renumber.size() == index_map.size(),
55 for (
unsigned int i = 0; i < index_map.size(); ++i)
56 index_map_inverse[index_map[i]] = i;
59 for (
unsigned int i = 0; i < tensor_polys.n(); ++i)
76 return tensor_polys.compute_value(i, p);
104 return tensor_polys.compute_grad(i, p);
120 return tensor_polys.compute_grad_grad(i, p);
130 std::vector<double> &values,
145 tensor_polys.n() + 1,
150 tensor_polys.n() + 1,
157 if (
values.empty() ==
false)
162 if (
grads.empty() ==
false)
183 tensor_polys.evaluate(
191 grads.emplace_back();
203std::unique_ptr<ScalarPolynomialsBase<dim>>
206 return std::make_unique<TensorProductPolynomialsConst<dim>>(*this);
void output_indices(std::ostream &out) const
double compute_value(const unsigned int i, const Point< dim > &p) const override
Tensor< 1, dim > compute_grad(const unsigned int i, const Point< dim > &p) const override
virtual std::unique_ptr< ScalarPolynomialsBase< dim > > clone() const override
void set_numbering(const std::vector< unsigned int > &renumber)
Tensor< 2, dim > compute_grad_grad(const unsigned int i, const Point< dim > &p) const override
void evaluate(const Point< dim > &unit_point, std::vector< double > &values, std::vector< Tensor< 1, dim > > &grads, std::vector< Tensor< 2, dim > > &grad_grads, std::vector< Tensor< 3, dim > > &third_derivatives, std::vector< Tensor< 4, dim > > &fourth_derivatives) const override
std::conditional_t< rank_==1, std::array< Number, dim >, std::array< Tensor< rank_ - 1, dim, Number >, dim > > values
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcDimensionMismatch2(std::size_t arg1, std::size_t arg2, std::size_t arg3)
static ::ExceptionBase & ExcInternalError()
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
#define DEAL_II_NOT_IMPLEMENTED()