20 #include "libmesh/libmesh_common.h"
21 #include "libmesh/error_estimator.h"
22 #include "libmesh/error_vector.h"
23 #include "libmesh/equation_systems.h"
24 #include "libmesh/parallel.h"
25 #include "libmesh/enum_error_estimator_type.h"
26 #include "libmesh/int_range.h"
33 const Parallel::Communicator & comm)
const
42 comm.sum(error_per_cell);
49 const std::map<const System *, SystemNorm> & error_norms,
51 bool estimate_parent_error)
60 if (error_norms.find(&sys) == error_norms.end())
63 this->
error_norm = error_norms.find(&sys)->second;
66 if (solution_vectors &&
67 solution_vectors->find(&sys) != solution_vectors->end())
68 solution_vector = solution_vectors->find(&sys)->second;
71 solution_vector, estimate_parent_error);
75 libmesh_assert_equal_to (error_per_cell.size(), system_error_per_cell.size());
77 error_per_cell[i] += system_error_per_cell[i];
80 error_per_cell = system_error_per_cell;
96 bool estimate_parent_error)
107 for (
unsigned int v = 0; v !=
n_vars; ++v)
110 if (errors_per_cell.find(std::make_pair(&sys, v)) ==
111 errors_per_cell.end())
115 std::vector<Real> weights(
n_vars, 0.0);
122 if (solution_vectors &&
123 solution_vectors->find(&sys) != solution_vectors->end())
124 solution_vector = solution_vectors->find(&sys)->second;
127 (sys, *errors_per_cell[std::make_pair(&sys, v)],
128 solution_vector, estimate_parent_error);