}
if (flags & update_hessians && cell_similarity != CellSimilarity::translation)
- if (mapping_type == mapping_nedelec)
{
- this->compute_2nd (mapping, cell,
- typename QProjector<dim>::DataSetDescriptor().cell(),
- mapping_data, fe_data, data, mapping_covariant_gradient);
+ if (mapping_type == mapping_nedelec)
+ {
+ this->compute_2nd (mapping, cell,
+ typename QProjector<dim>::DataSetDescriptor().cell(),
+ mapping_data, fe_data, data, mapping_covariant_gradient);
- for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
- {
- const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
- this->get_nonzero_components(i).first_selected_component()];
+ for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
+ {
+ const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
+ this->get_nonzero_components(i).first_selected_component()];
- for (unsigned int k = 0; k < n_q_points; ++k)
- for (unsigned int d = 0; d < dim; ++d)
- data.shape_hessians[first + d][k] *= sign_change[i];
- }
- }
+ for (unsigned int k = 0; k < n_q_points; ++k)
+ for (unsigned int d = 0; d < dim; ++d)
+ data.shape_hessians[first + d][k] *= sign_change[i];
+ }
+ }
- else
- this->compute_2nd (mapping, cell,
- typename QProjector<dim>::DataSetDescriptor().cell(),
- mapping_data, fe_data, data);
+ else
+ this->compute_2nd (mapping, cell,
+ typename QProjector<dim>::DataSetDescriptor().cell(),
+ mapping_data, fe_data, data);
+ }
}
}
if (flags & update_hessians)
- if (mapping_type == mapping_nedelec)
{
- this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data, mapping_covariant_gradient);
+ if (mapping_type == mapping_nedelec)
+ {
+ this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data, mapping_covariant_gradient);
- for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
- {
- const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
- this->get_nonzero_components(i).first_selected_component()];
+ for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
+ {
+ const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
+ this->get_nonzero_components(i).first_selected_component()];
- for (unsigned int k = 0; k < n_q_points; ++k)
- for (unsigned int d = 0; d < dim; ++d)
- data.shape_hessians[first + d][k] *= sign_change[i];
- }
- }
+ for (unsigned int k = 0; k < n_q_points; ++k)
+ for (unsigned int d = 0; d < dim; ++d)
+ data.shape_hessians[first + d][k] *= sign_change[i];
+ }
+ }
- else
- this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data);
+ else
+ this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data);
+ }
}
}
if (flags & update_hessians)
- if (mapping_type == mapping_nedelec)
{
- this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data, mapping_covariant_gradient);
+ if (mapping_type == mapping_nedelec)
+ {
+ this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data, mapping_covariant_gradient);
- for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
- {
- const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
- this->get_nonzero_components(i).first_selected_component()];
+ for (unsigned int i = 0; i < this->dofs_per_cell; ++i)
+ {
+ const unsigned int first = data.shape_function_to_row_table[i * this->n_components() +
+ this->get_nonzero_components(i).first_selected_component()];
- for (unsigned int k = 0; k < n_q_points; ++k)
- for (unsigned int d = 0; d < dim; ++d)
- data.shape_hessians[first + d][k] *= sign_change[i];
- }
- }
+ for (unsigned int k = 0; k < n_q_points; ++k)
+ for (unsigned int d = 0; d < dim; ++d)
+ data.shape_hessians[first + d][k] *= sign_change[i];
+ }
+ }
- else
- this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data);
+ else
+ this->compute_2nd (mapping, cell, offset, mapping_data, fe_data, data);
+ }
}