20#ifndef LIBMESH_PATCH_RECOVERY_ERROR_ESTIMATOR_H
21#define LIBMESH_PATCH_RECOVERY_ERROR_ESTIMATOR_H
24#include "libmesh/error_estimator.h"
25#include "libmesh/patch.h"
26#include "libmesh/point.h"
27#include "libmesh/elem_range.h"
77 bool estimate_parent_error =
false)
override;
112 static std::vector<Real>
specpoly(
const unsigned int dim,
115 const unsigned int matsize);
void ErrorVector unsigned int
This class holds functions that will estimate the error in a finite element solution on a given mesh.
The ErrorVector is a specialization of the StatisticsVector for error data computed on a finite eleme...
Provides a uniform interface to vector storage schemes for different linear algebra libraries.
Class to compute the error contribution for a range of elements.
const PatchRecoveryErrorEstimator & error_estimator
ErrorVector & error_per_cell
void operator()(const ConstElemRange &range) const
EstimateError(const System &sys, const PatchRecoveryErrorEstimator &ee, ErrorVector &epc)
This class implements the Patch Recovery error indicator.
virtual void estimate_error(const System &system, ErrorVector &error_per_cell, const NumericVector< Number > *solution_vector=nullptr, bool estimate_parent_error=false) override
This function uses the Patch Recovery error estimate to estimate the error on each cell.
unsigned int target_patch_size
The PatchErrorEstimator will build patches of at least this many elements to perform estimates.
static std::vector< Real > specpoly(const unsigned int dim, const Order order, const Point p, const unsigned int matsize)
void set_patch_reuse(bool)
void extra_quadrature_order(const int extraorder)
Increases or decreases the order of the quadrature rule used for numerical integration.
Patch::PMF patch_growth_strategy
The PatchErrorEstimator will use this pointer to a Patch member function when growing patches.
PatchRecoveryErrorEstimator(const PatchRecoveryErrorEstimator &)=default
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this c...
PatchRecoveryErrorEstimator()
Constructor.
int _extra_order
Extra order to use for quadrature rule.
PatchRecoveryErrorEstimator & operator=(const PatchRecoveryErrorEstimator &)=default
virtual ~PatchRecoveryErrorEstimator()=default
virtual ErrorEstimatorType type() const override
PatchRecoveryErrorEstimator(PatchRecoveryErrorEstimator &&)=default
void(Patch::* PMF)()
Pointer to Member Function typedef.
A Point defines a location in LIBMESH_DIM dimensional Real space.
The StoredRange class defines a contiguous, divisible set of objects.
Manages consistently variables, degrees of freedom, and coefficient vectors.
The libMesh namespace provides an interface to certain functionality in the library.
ErrorEstimatorType
Defines an enum for the different types of error estimators which are available.