284 const std::vector<const InputVector *> &
solutions,
298 &dof_handler.get_triangulation()))
303 "For distributed Triangulation objects and associated "
304 "DoFHandler objects, asking for any subdomain other than the "
305 "locally owned one does not make sense."));
313 const unsigned int n_components = dof_handler.get_fe(0).n_components();
319 ExcMessage(
"You are not allowed to list the special boundary "
320 "indicator for internal boundaries in your boundary "
333 ExcInvalidComponentMask());
335 ExcInvalidComponentMask());
340 ExcInvalidCoefficient());
352 ExcInvalidCoefficient());
365 (*
errors[n]).reinit(dof_handler.get_triangulation().n_active_cells());
371 std::vector<std::vector<std::vector<Tensor<1, spacedim, number>>>>
376 std::vector<std::vector<std::vector<Tensor<1, spacedim, number>>>>
378 std::vector<Vector<typename ProductType<number, double>::type>>
388 for (
unsigned int c = 0; c < n_components; ++c)
411 for (
const auto &cell : dof_handler.active_cell_iterators())
413 (cell->subdomain_id() == subdomain_id)) &&
415 (cell->material_id() == material_id)))
418 (*
errors[n])(cell->active_cell_index()) = 0;
427 for (
unsigned int n = 0; n < 2; ++n)
430 auto neighbor = cell->neighbor(n);
432 while (neighbor->has_children())
433 neighbor = neighbor->child(n == 0 ? 1 : 0);
435 fe_face_values.
reinit(cell, n);
441 fe_values.
reinit(neighbor);
447 fe_face_values.
reinit(neighbor, n == 0 ? 1 : 0);
450 .get_normal_vectors()[0];
455 for (
unsigned int c = 0; c < n_components; ++c)
464 if (n_components == 1)
467 neumann_bc.find(n)->second->value(cell->vertex(n));
475 neumann_bc.find(n)->second->vector_value(cell->vertex(n),
494 for (
unsigned int c = 0; c < n_components; ++c)
504 for (
unsigned int component = 0; component < n_components;
506 if (component_mask[component] ==
true)
516 (*
errors[s])(cell->active_cell_index()) +=
519 double>::type>::abs_square(jump) *
525 (*
errors[s])(cell->active_cell_index()) =
static void estimate(const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &quadrature, const std::map< types::boundary_id, const Function< spacedim, typename InputVector::value_type > * > &neumann_bc, const InputVector &solution, Vector< float > &error, const ComponentMask &component_mask=ComponentMask(), const Function< spacedim > *coefficients=nullptr, const unsigned int n_threads=numbers::invalid_unsigned_int, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id, const types::material_id material_id=numbers::invalid_material_id, const Strategy strategy=cell_diameter_over_24)
void reinit(const TriaIterator< DoFCellAccessor< dim, spacedim, lda > > &cell, const unsigned int face_no, const unsigned int q_index=numbers::invalid_unsigned_int, const unsigned int mapping_index=numbers::invalid_unsigned_int, const unsigned int fe_index=numbers::invalid_unsigned_int)
void reinit(const TriaIterator< DoFCellAccessor< dim, spacedim, lda > > &cell, const unsigned int q_index=numbers::invalid_unsigned_int, const unsigned int mapping_index=numbers::invalid_unsigned_int, const unsigned int fe_index=numbers::invalid_unsigned_int)