*/
void update_internal_dofs(const typename Triangulation<dim,spacedim>::cell_iterator &cell) const;
- /**
- * Typedef holding the local cell_dofs.
- */
- typedef
- Threads::ThreadLocalStorage <std::vector<double> > local_dofs_t;
-
- /**
- * Typedef holding the local dof indices.
- */
- typedef
- Threads::ThreadLocalStorage <std::vector<types::global_dof_index> > local_dof_indices_t;
-
/**
* It stores the local degrees of freedom of the DH for each cell
* (i.e. euler_vector * dof_indices, see method update_internal_dofs for more
* clarifications.).
*/
- mutable local_dofs_t local_dofs;
+ mutable Threads::ThreadLocalStorage <std::vector<double> > local_dof_values;
/**
* Store the degrees of freedom of the DH for each cell (i.e.
* cell->get_dof_indices(dof_indices), see method update_internal_dofs for more
* clarifications.). Thread safe.
*/
- mutable local_dof_indices_t dof_indices;
+ mutable Threads::ThreadLocalStorage <std::vector<types::global_dof_index> > local_dof_indices;
/** Reimplemented from Mapping. See the documentation of the base class for
* detailed information.
euler_vector(&euler_vector),
fe(&euler_dof_handler.get_fe()),
euler_dof_handler(&euler_dof_handler),
- local_dofs(std::vector<double>(fe->dofs_per_cell)),
- dof_indices(std::vector<types::global_dof_index>(fe->dofs_per_cell)),
+ local_dof_values(std::vector<double>(fe->dofs_per_cell)),
+ local_dof_indices(std::vector<types::global_dof_index>(fe->dofs_per_cell)),
fe_mask(mask.size() ? mask :
ComponentMask(fe->get_nonzero_components(0).size(), true)),
fe_to_real(fe_mask.size(), numbers::invalid_unsigned_int)
euler_vector(mapping.euler_vector),
fe(mapping.fe),
euler_dof_handler(mapping.euler_dof_handler),
- local_dofs(std::vector<double>(fe->dofs_per_cell)),
- dof_indices(std::vector<types::global_dof_index>(fe->dofs_per_cell)),
+ local_dof_values(std::vector<double>(fe->dofs_per_cell)),
+ local_dof_indices(std::vector<types::global_dof_index>(fe->dofs_per_cell)),
fe_mask(mapping.fe_mask),
fe_to_real(mapping.fe_to_real)
{}
std::vector<Point<spacedim> > &normal_vectors,
CellSimilarity::Similarity &cell_similarity) const
{
- AssertDimension(fe->dofs_per_cell, local_dofs.get().size());
- Assert(local_dofs.get().size()>0, ExcMessage("Cannot do anything with zero degrees of freedom"));
+ AssertDimension(fe->dofs_per_cell, local_dof_values.get().size());
+ Assert(local_dof_values.get().size()>0, ExcMessage("Cannot do anything with zero degrees of freedom"));
// convert data object to internal data for this class. fails with an
// exception if that is not possible
for (unsigned int j=0; j<dim; ++j)
for (unsigned int l=0; l<dim; ++l)
result[fe_to_real[comp_k]][j][l] += (second[k][j][l]
- * local_dofs.get()[k]);
+ * local_dof_values.get()[k]);
}
// never touch any data for j=dim in case dim<spacedim, so it
{
unsigned int comp_i = fe->system_to_component_index(i).first;
if (fe_mask[comp_i])
- p_real[fe_to_real[comp_i]] += local_dofs.get()[i] * data.shape(0,i);
+ p_real[fe_to_real[comp_i]] += local_dof_values.get()[i] * data.shape(0,i);
}
return p_real;
unsigned int comp_k = fe->system_to_component_index(k).first;
if (fe_mask[comp_k])
for (unsigned int j=0; j<dim; ++j)
- DF[j][fe_to_real[comp_k]] += local_dofs.get()[k] * grad_k[j];
+ DF[j][fe_to_real[comp_k]] += local_dof_values.get()[k] * grad_k[j];
}
for (unsigned int j=0; j<dim; ++j)
{
{
unsigned int comp_k = fe->system_to_component_index(k).first;
if (fe_mask[comp_k])
- result[fe_to_real[comp_k]] += local_dofs.get()[k] * shape[k];
+ result[fe_to_real[comp_k]] += local_dof_values.get()[k] * shape[k];
}
quadrature_points[point] = result;
{
unsigned int comp_k = fe->system_to_component_index(k).first;
if (fe_mask[comp_k])
- result[fe_to_real[comp_k]] += local_dofs.get()[k] * data_derv[k];
+ result[fe_to_real[comp_k]] += local_dof_values.get()[k] * data_derv[k];
}
// write result into contravariant data. for
typename DH::cell_iterator dof_cell(*cell, euler_dof_handler);
Assert (dof_cell->active() == true, ExcInactiveCell());
- dof_cell->get_dof_indices(dof_indices.get());
+ dof_cell->get_dof_indices(local_dof_indices.get());
- for (unsigned int i=0; i<local_dofs.get().size(); ++i)
- local_dofs.get()[i] = (*euler_vector)(dof_indices.get()[i]);
+ for (unsigned int i=0; i<local_dof_values.get().size(); ++i)
+ local_dof_values.get()[i] = (*euler_vector)(local_dof_indices.get()[i]);
}
// explicit instantiations