if (fe->is_primitive(shape_func))
{
- const double *shape_value_ptr = &this->shape_values(shape_func, 0);
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
+
+ const double *shape_value_ptr = &this->shape_values(row, 0);
const unsigned int comp = fe->system_to_component_index(shape_func).first;
for (unsigned int point=0; point<n_quadrature_points; ++point)
values[point](comp) += value * *shape_value_ptr++;
if (fe->is_primitive(shape_func))
{
- const double *shape_value_ptr = &this->shape_values(shape_func, 0);
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
+
+ const double *shape_value_ptr = &this->shape_values(row, 0);
const unsigned int comp = fe->system_to_component_index(shape_func).first
+ mc * n_components;
for (unsigned int point=0; point<n_quadrature_points; ++point)
if (fe->is_primitive(shape_func))
{
- const double *shape_value_ptr = &this->shape_values(shape_func, 0);
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
+
+ const double *shape_value_ptr = &this->shape_values(row, 0);
const unsigned int comp = fe->system_to_component_index(shape_func).first
+ mc * n_components;
if (quadrature_points_fastest)
if (fe->is_primitive(shape_func))
{
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
const Tensor<1,spacedim> *shape_gradient_ptr
- = &this->shape_gradients[shape_func][0];
+ = &this->shape_gradients[row][0];
const unsigned int comp = fe->system_to_component_index(shape_func).first;
for (unsigned int point=0; point<n_quadrature_points; ++point)
gradients[point][comp] += value * *shape_gradient_ptr++;
if (fe->is_primitive(shape_func))
{
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
const Tensor<1,spacedim> *shape_gradient_ptr
- = &this->shape_gradients[shape_func][0];
+ = &this->shape_gradients[row][0];
const unsigned int comp = fe->system_to_component_index(shape_func).first
+ mc * n_components;
if (fe->is_primitive(shape_func))
{
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
+
const Tensor<2,spacedim> *shape_hessian_ptr
- = &this->shape_hessians[shape_func][0];
+ = &this->shape_hessians[row][0];
const unsigned int comp = fe->system_to_component_index(shape_func).first;
if (quadrature_points_fastest)
if (fe->is_primitive(shape_func))
{
+ const unsigned int
+ row = fe->is_primitive() ?
+ shape_func : this->shape_function_to_row_table[shape_func];
+
const Tensor<2,spacedim> *shape_hessian_ptr
- = &this->shape_hessians[shape_func][0];
+ = &this->shape_hessians[row][0];
const unsigned int comp = fe->system_to_component_index(shape_func).first
+ mc * n_components;