31 const unsigned int n_dofs)
43 support_points.size() == this->n(),
45 "The number of DoFs must be equal to the number of support points."));
48 const unsigned int n = support_points.size();
51 for (
unsigned i = 0; i <
n; ++i)
52 for (
unsigned j = 0; j <
n; ++j)
63 for (
unsigned int j = 0; j <
n; ++j)
72 for (
unsigned int i = 0; i <
n; ++i)
80 for (
unsigned int i = 0; i <
n; ++i)
81 for (
unsigned int j = 0; j <
n; ++j)
100 if (std::fabs(result) < 1e-14)
122 if constexpr (dim > 0)
123 for (
unsigned int d = 0; d < dim; ++d)
124 if (std::fabs(grad[d]) < 1e-14)
135 const unsigned int i,
147 if constexpr (dim > 0)
148 for (
unsigned int d = 0; d < dim; ++d)
149 for (
unsigned int e = 0; e < dim; ++e)
150 if (std::fabs(grad_grad[d][e]) < 1e-14)
151 grad_grad[d][e] = 0.0;
162 std::vector<double> &values,
169 (void)third_derivatives;
170 (void)fourth_derivatives;
172 if (values.size() == this->n())
173 for (
unsigned int i = 0; i < this->
n(); ++i)
176 if (grads.size() == this->n())
177 for (
unsigned int i = 0; i < this->n(); ++i)
186 const unsigned int i,
197 const unsigned int i,
208 const unsigned int i,
224 const unsigned int i,
241 const unsigned int j,
242 const unsigned int k,
260 const unsigned int i,
number2 least_squares(Vector< number2 > &dst, const Vector< number2 > &src) const
virtual unsigned int degree() const
ScalarPolynomialsBase(const unsigned int deg, const unsigned int n_polynomials)
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
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
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
ScalarPolynomialsVandermondeBase(const unsigned int degree, const unsigned int n_dofs)
Tensor< 1, dim > compute_grad(const unsigned int i, const Point< dim > &p) const override
Tensor< 3, dim > compute_3rd_derivative(const unsigned int i, const Point< dim > &p) const override
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()
static ::ExceptionBase & ExcNotImplemented()
#define AssertIndexRange(index, range)
#define AssertThrow(cond, exc)
::VectorizedArray< Number, width > abs(const ::VectorizedArray< Number, width > &)