41 return (0.75 - 2.5 * p(0) + 1.5 * p(1) +
42 1.5 * (p(0) * p(0) - p(1) * p(1)));
46 return (-0.25 - 0.5 * p(0) + 1.5 * p(1) +
47 1.5 * (p(0) * p(0) - p(1) * p(1)));
51 return (0.75 + 1.5 * p(0) - 2.5 * p(1) -
52 1.5 * (p(0) * p(0) - p(1) * p(1)));
56 return (-0.25 + 1.5 * p(0) - 0.5 * p(1) -
57 1.5 * (p(0) * p(0) - p(1) * p(1)));
75 grad[0] = -2.5 + 3 * p(0);
76 grad[1] = 1.5 - 3 * p(1);
80 grad[0] = -0.5 + 3.0 * p(0);
81 grad[1] = 1.5 - 3.0 * p(1);
85 grad[0] = 1.5 - 3.0 * p(0);
86 grad[1] = -2.5 + 3.0 * p(1);
90 grad[0] = 1.5 - 3.0 * p(0);
91 grad[1] = -0.5 + 3.0 * p(1);
106 const unsigned int i,
116 grad_grad[1][1] = -3;
123 grad_grad[1][1] = -3;
127 grad_grad[0][0] = -3;
134 grad_grad[0][0] = -3;
148 std::vector<double> & values,
154 const unsigned int n_pols = this->
n();
159 Assert(grad_grads.size() ==
n_pols || grad_grads.size() == 0,
161 Assert(third_derivatives.size() ==
n_pols || third_derivatives.size() == 0,
163 Assert(fourth_derivatives.size() ==
n_pols || fourth_derivatives.size() == 0,
166 for (
unsigned int i = 0; i <
n_pols; ++i)
168 if (values.size() != 0)
172 if (grads.size() != 0)
176 if (grad_grads.size() != 0)
180 if (third_derivatives.size() != 0)
182 third_derivatives[i] = compute_derivative<3>(i, unit_point);
184 if (fourth_derivatives.size() != 0)
186 fourth_derivatives[i] = compute_derivative<4>(i, unit_point);
194 std::unique_ptr<ScalarPolynomialsBase<dim>>
197 return std_cxx14::make_unique<PolynomialsRannacherTurek<dim>>(*this);
202 #include "polynomials_rannacher_turek.inst"