13#ifndef dealii_scalar_polynomials_vandermonde_base_h
14#define dealii_scalar_polynomials_vandermonde_base_h
49 const unsigned int n_dofs);
64 std::vector<double> &values,
156 const unsigned int j,
157 const unsigned int k,
176 const unsigned int j,
177 const unsigned int k,
196 const unsigned int j,
197 const unsigned int k,
216 const unsigned int i,
221 if constexpr (order == 1)
223 const auto grad = compute_grad(i, p);
225 for (
unsigned int i = 0; i < dim; ++i)
230 const auto grad_grad = compute_grad_grad(i, p);
232 for (
unsigned int i = 0; i < dim; ++i)
233 for (
unsigned int e = 0; e < dim; ++e)
234 der[i][e] = grad_grad[i][e];
virtual unsigned int degree() const
Tensor< 2, dim > compute_2nd_derivative(const unsigned int i, const Point< dim > &p) const override
virtual Tensor< 1, dim > evaluate_orthogonal_basis_derivative(const unsigned int i, const Point< dim > &p) const =0
virtual Tensor< 1, dim > evaluate_orthogonal_basis_derivative_by_degree(const unsigned int i, const unsigned int j, const unsigned int k, const Point< dim > &p) const =0
Tensor< 1, dim > compute_1st_derivative(const unsigned int i, const Point< dim > &p) const override
virtual Tensor< 2, dim > evaluate_orthogonal_basis_2nd_derivative_by_degree(const unsigned int i, const unsigned int j, const unsigned int k, const Point< dim > &p) const
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
virtual Tensor< 2, dim > evaluate_orthogonal_basis_2nd_derivative(const unsigned int i, const Point< dim > &p) const
virtual ~ScalarPolynomialsVandermondeBase()=default
FullMatrix< double > vandermonde_matrix_inverse
void reinit(const std::vector< Point< dim > > &support_points)
virtual double evaluate_orthogonal_basis_function(const unsigned int i, const Point< dim > &p) const =0
Tensor< 4, dim > compute_4th_derivative(const unsigned int i, const Point< dim > &p) const override
Tensor< 2, dim > compute_grad_grad(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
Tensor< order, dim > compute_derivative(const unsigned int i, const Point< dim > &p) const
Tensor< 3, dim > compute_3rd_derivative(const unsigned int i, const Point< dim > &p) const override
virtual double evaluate_orthogonal_basis_function_by_degree(const unsigned int i, const unsigned int j, const unsigned int k, const Point< dim > &p) const =0
double compute_value(const unsigned int i, const Point< dim > &p) const override
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NOT_IMPLEMENTED()