Threads::ThreadManager thread_manager;
for (unsigned int i=0; i<n_components; ++i)
{
+ void (*fun_ptr) (const DoFHandler<dim> &,
+ const std::vector<bool> &,
+ std::vector<bool> &) = &DoFTools::template extract_dofs<dim>;
component_select[i][i] = true;
Threads::spawn (thread_manager,
- Threads::encapsulate (&DoFTools::template extract_dofs<dim>)
+ Threads::encapsulate (fun_ptr)
.collect_args (dof_handler, component_select[i],
dofs_in_component[i]));
};
multithread_info.n_default_threads);
Threads::ThreadManager thread_manager;
+ void (*fun_ptr) (const DoFHandler<dim> &,
+ const unsigned int ,
+ const InterGridMap<DoFHandler,dim> &,
+ const std::vector<Vector<double> > &,
+ const std::vector<int> &,
+ std::vector<std::map<unsigned int, float> > &,
+ const typename DoFHandler<dim>::active_cell_iterator &,
+ const typename DoFHandler<dim>::active_cell_iterator &)
+ = &DoFTools::template compute_intergrid_weights_3<dim>;
for (unsigned int i=0; i<multithread_info.n_default_threads; ++i)
Threads::spawn (thread_manager,
- Threads::encapsulate (&DoFTools::template compute_intergrid_weights_3<dim>)
+ Threads::encapsulate (fun_ptr)
.collect_args (coarse_grid, coarse_component,
coarse_to_fine_grid_map, parameter_dofs,
weight_mapping, weights,
= Threads::split_interval (0, dof_handler.get_tria().n_active_cells(),
n_threads);
Threads::ThreadManager thread_manager;
+ void (*fun_ptr) (const Mapping<dim> &,
+ const DoFHandler<dim> &,
+ const Vector<double> &,
+ const unsigned int ,
+ const IndexInterval &,
+ Vector<float> &)
+ = &DerivativeApproximation::template approximate<DerivativeDescription,dim>;
for (unsigned int i=0; i<n_threads; ++i)
Threads::spawn (thread_manager,
- Threads::encapsulate
- (&DerivativeApproximation::
- template approximate<DerivativeDescription,dim>)
+ Threads::encapsulate(fun_ptr)
.collect_args (mapping, dof_handler, solution, component,
index_intervals[i],
derivative_norm));