!((output_data.shape_values.n_rows() > 0)
&&
(output_data.shape_values.n_cols() == n_q_points)))
- data->shape_values.resize (this->dofs_per_cell,
- std::vector<double> (n_q_points));
+ data->shape_values.reinit (this->dofs_per_cell, n_q_points);
if (update_flags & update_gradients)
- data->shape_gradients.resize (this->dofs_per_cell,
- std::vector<Tensor<1,dim> > (n_q_points));
+ data->shape_gradients.reinit (this->dofs_per_cell, n_q_points);
if (update_flags & update_hessians)
- data->shape_hessians.resize (this->dofs_per_cell,
- std::vector<Tensor<2,dim> > (n_q_points));
+ data->shape_hessians.reinit (this->dofs_per_cell, n_q_points);
if (update_flags & update_3rd_derivatives)
- data->shape_3rd_derivatives.resize (this->dofs_per_cell,
- std::vector<Tensor<3,dim> > (n_q_points));
+ data->shape_3rd_derivatives.reinit (this->dofs_per_cell, n_q_points);
// next already fill those fields of which we have information by
// now. note that the shape gradients are only those on the unit
* under transformation to the real cell, we only need to copy them over
* when visiting a concrete cell.
*/
- std::vector<std::vector<double> > shape_values;
+ Table<2,double> shape_values;
/**
* Array with shape function gradients in quadrature points. There is one
* then only have to apply the transformation (which is a matrix-vector
* multiplication) when visiting an actual cell.
*/
- std::vector<std::vector<Tensor<1,dim> > > shape_gradients;
+ Table<2,Tensor<1,dim> > shape_gradients;
/**
* Array with shape function hessians in quadrature points. There is one
* We store the hessians in the quadrature points on the unit cell. We
* then only have to apply the transformation when visiting an actual cell.
*/
- std::vector<std::vector<Tensor<2,dim> > > shape_hessians;
+ Table<2,Tensor<2,dim> > shape_hessians;
/**
* Array with shape function third derivatives in quadrature points. There
* cell. We then only have to apply the transformation when visiting an
* actual cell.
*/
- std::vector<std::vector<Tensor<3,dim> > > shape_3rd_derivatives;
+ Table<2,Tensor<3,dim> > shape_3rd_derivatives;
};
/**
// we were in get_data()
if (flags & update_gradients && cell_similarity != CellSimilarity::translation)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_gradients[k]),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (flags & update_hessians && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_hessians[k]),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (flags & update_3rd_derivatives && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_3rd_derivatives[k]),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
if (flags & update_gradients)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<1,dim> >(&fe_data.shape_gradients[k][offset], quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k, offset, quadrature.size()),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (flags & update_hessians)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<2,dim> >(&fe_data.shape_hessians[k][offset],
- quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k, offset, quadrature.size()),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (flags & update_3rd_derivatives)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<3,dim> >(&fe_data.shape_3rd_derivatives[k][offset],
- quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k, offset, quadrature.size()),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
if (flags & update_gradients)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<1,dim> >(&fe_data.shape_gradients[k][offset],
- quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k, offset, quadrature.size()),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (flags & update_hessians)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<2,dim> >(&fe_data.shape_hessians[k][offset],
- quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k, offset, quadrature.size()),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (flags & update_3rd_derivatives)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (ArrayView<const Tensor<3,dim> >(&fe_data.shape_3rd_derivatives[k][offset],
- quadrature.size()),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k, offset, quadrature.size()),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
// we were in get_data()
if (fe_data.update_each & update_gradients && cell_similarity != CellSimilarity::translation)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_gradients[k]),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (fe_data.update_each & update_hessians && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_hessians[k]),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (fe_data.update_each & update_3rd_derivatives && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_3rd_derivatives[k]),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
// we were in get_data()
if (fe_data.update_each & update_gradients && cell_similarity != CellSimilarity::translation)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_gradients[k]),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (fe_data.update_each & update_hessians && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_hessians[k]),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (fe_data.update_each & update_3rd_derivatives && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_3rd_derivatives[k]),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
// we were in get_data()
if (fe_data.update_each & update_gradients && cell_similarity != CellSimilarity::translation)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_gradients[k]),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (fe_data.update_each & update_hessians && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_hessians[k]),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (fe_data.update_each & update_3rd_derivatives && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_3rd_derivatives[k]),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));
// we were in get_data()
if (fe_data.update_each & update_gradients && cell_similarity != CellSimilarity::translation)
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_gradients[k]),
+ mapping.transform (make_array_view(fe_data.shape_gradients, k),
mapping_covariant,
mapping_internal,
make_array_view(output_data.shape_gradients, k));
if (fe_data.update_each & update_hessians && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_hessians[k]),
+ mapping.transform (make_array_view(fe_data.shape_hessians, k),
mapping_covariant_gradient,
mapping_internal,
make_array_view(output_data.shape_hessians, k));
if (fe_data.update_each & update_3rd_derivatives && cell_similarity != CellSimilarity::translation)
{
for (unsigned int k=0; k<this->dofs_per_cell; ++k)
- mapping.transform (make_array_view(fe_data.shape_3rd_derivatives[k]),
+ mapping.transform (make_array_view(fe_data.shape_3rd_derivatives, k),
mapping_covariant_hessian,
mapping_internal,
make_array_view(output_data.shape_3rd_derivatives, k));