Go to the documentation of this file.
20 #ifndef LIBMESH_ERROR_ESTIMATOR_H
21 #define LIBMESH_ERROR_ESTIMATOR_H
24 #include "libmesh/libmesh_common.h"
25 #include "libmesh/system_norm.h"
27 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS
33 #include "libmesh/enum_error_estimator_type.h"
47 class EquationSystems;
49 template <
typename T>
class NumericVector;
104 bool estimate_parent_error =
false) = 0;
119 const std::map<const System *, SystemNorm> & error_norms,
121 bool estimate_parent_error =
false);
144 bool estimate_parent_error =
false);
173 void reduce_error (std::vector<ErrorVectorReal> & error_per_cell,
174 const Parallel::Communicator & comm)
const;
180 #endif // LIBMESH_ERROR_ESTIMATOR_H
Manages consistently variables, degrees of freedom, and coefficient vectors.
SystemNorm error_norm
When estimating the error in a single system, the error_norm is used to control the scaling and norm ...
ErrorEstimatorType
Defines an enum for the different types of error estimators which are available.
This class holds functions that will estimate the error in a finite element solution on a given mesh.
The libMesh namespace provides an interface to certain functionality in the library.
virtual ~ErrorEstimator()=default
virtual ErrorEstimatorType type() const =0
virtual void estimate_error(const System &system, ErrorVector &error_per_cell, const NumericVector< Number > *solution_vector=nullptr, bool estimate_parent_error=false)=0
This pure virtual function must be redefined in derived classes to compute the error for each active ...
The ErrorVector is a specialization of the StatisticsVector for error data computed on a finite eleme...
ErrorEstimator()=default
Constructor.
virtual void estimate_errors(const EquationSystems &equation_systems, ErrorVector &error_per_cell, const std::map< const System *, SystemNorm > &error_norms, const std::map< const System *, const NumericVector< Number > * > *solution_vectors=nullptr, bool estimate_parent_error=false)
This virtual function can be redefined in derived classes, but by default computes the sum of the err...
This is the EquationSystems class.
std::map< std::pair< const System *, unsigned int >, ErrorVector * > ErrorMap
When calculating many error vectors at once, we need a data structure to hold them all.
void reduce_error(std::vector< ErrorVectorReal > &error_per_cell, const Parallel::Communicator &comm) const
This method takes the local error contributions in error_per_cell from each processor and combines th...
ErrorEstimator & operator=(const ErrorEstimator &)=default
This class defines a norm/seminorm to be applied to a NumericVector which contains coefficients in a ...
void ErrorVector unsigned int