17 #include <deal.II/base/polynomials_p.h>
18 #include <deal.II/base/polynomials_piecewise.h>
19 #include <deal.II/base/polynomials_rannacher_turek.h>
20 #include <deal.II/base/qprojector.h>
21 #include <deal.II/base/tensor_product_polynomials.h>
22 #include <deal.II/base/tensor_product_polynomials_bubbles.h>
23 #include <deal.II/base/tensor_product_polynomials_const.h>
25 #include <deal.II/fe/fe_poly.h>
26 #include <deal.II/fe/fe_poly.templates.h>
27 #include <deal.II/fe/fe_values.h>
29 DEAL_II_NAMESPACE_OPEN
40 const ::internal::FEValuesImplementation::MappingRelatedData<1, 2>
48 Assert(dynamic_cast<const InternalData *>(&fe_internal) !=
nullptr,
50 const InternalData &fe_data =
51 static_cast<const InternalData &>(fe_internal);
56 if (fe_data.update_each & update_gradients &&
58 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
64 if (fe_data.update_each & update_hessians &&
67 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
73 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
74 for (
unsigned int i = 0; i < quadrature.
size(); ++i)
75 for (
unsigned int j = 0; j < 2; ++j)
77 mapping_data.jacobian_pushed_forward_grads[i][j] *
81 if (fe_data.update_each & update_3rd_derivatives &&
84 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
91 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
92 correct_third_derivatives(output_data,
109 const ::internal::FEValuesImplementation::MappingRelatedData<2, 3>
117 Assert(dynamic_cast<const InternalData *>(&fe_internal) !=
nullptr,
119 const InternalData &fe_data =
120 static_cast<const InternalData &>(fe_internal);
125 if (fe_data.update_each & update_gradients &&
127 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
133 if (fe_data.update_each & update_hessians &&
136 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
142 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
143 for (
unsigned int i = 0; i < quadrature.
size(); ++i)
144 for (
unsigned int j = 0; j < 3; ++j)
146 mapping_data.jacobian_pushed_forward_grads[i][j] *
150 if (fe_data.update_each & update_3rd_derivatives &&
153 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
160 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
161 correct_third_derivatives(output_data,
177 const ::internal::FEValuesImplementation::MappingRelatedData<1, 2>
185 Assert(dynamic_cast<const InternalData *>(&fe_internal) !=
nullptr,
187 const InternalData &fe_data =
188 static_cast<const InternalData &>(fe_internal);
193 if (fe_data.update_each & update_gradients &&
195 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
201 if (fe_data.update_each & update_hessians &&
204 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
210 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
211 for (
unsigned int i = 0; i < quadrature.
size(); ++i)
212 for (
unsigned int j = 0; j < 2; ++j)
214 mapping_data.jacobian_pushed_forward_grads[i][j] *
218 if (fe_data.update_each & update_3rd_derivatives &&
221 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
228 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
229 correct_third_derivatives(output_data,
245 const ::internal::FEValuesImplementation::MappingRelatedData<2, 3>
253 Assert(dynamic_cast<const InternalData *>(&fe_internal) !=
nullptr,
255 const InternalData &fe_data =
256 static_cast<const InternalData &>(fe_internal);
261 if (fe_data.update_each & update_gradients &&
263 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
269 if (fe_data.update_each & update_hessians &&
272 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
278 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
279 for (
unsigned int i = 0; i < quadrature.
size(); ++i)
280 for (
unsigned int j = 0; j < 3; ++j)
282 mapping_data.jacobian_pushed_forward_grads[i][j] *
286 if (fe_data.update_each & update_3rd_derivatives &&
289 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
296 for (
unsigned int k = 0; k < this->dofs_per_cell; ++k)
297 correct_third_derivatives(output_data,
305 #include "fe_poly.inst"
307 DEAL_II_NAMESPACE_CLOSE