MFEM
v4.2.0
Finite element discretization library
|
The ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure. More...
#include <estimators.hpp>
Public Member Functions | |
ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, GridFunction &sol, FiniteElementSpace *flux_fes) | |
Construct a new ZienkiewiczZhuEstimator object. More... | |
ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, GridFunction &sol, FiniteElementSpace &flux_fes) | |
Construct a new ZienkiewiczZhuEstimator object. More... | |
void | SetWithCoeff (bool w_coeff=true) |
Consider the coefficient in BilinearFormIntegrator to calculate the fluxes for the error estimator. More... | |
void | SetAnisotropic (bool aniso=true) |
Enable/disable anisotropic estimates. To enable this option, the BilinearFormIntegrator must support the 'd_energy' parameter in its ComputeFluxEnergy() method. More... | |
void | SetFluxAveraging (int fa) |
Set the way the flux is averaged (smoothed) across elements. More... | |
double | GetTotalError () const |
Return the total error from the last error estimate. More... | |
virtual const Vector & | GetLocalErrors () |
Get a Vector with all element errors. More... | |
virtual const Array< int > & | GetAnisotropicFlags () |
Get an Array<int> with anisotropic flags for all mesh elements. Return an empty array when anisotropic estimates are not available or enabled. More... | |
virtual void | Reset () |
Reset the error estimator. More... | |
virtual | ~ZienkiewiczZhuEstimator () |
Destroy a ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space. More... | |
Public Member Functions inherited from mfem::ErrorEstimator | |
virtual | ~ErrorEstimator () |
Destruct the error estimator. More... | |
Public Member Functions inherited from mfem::AbstractErrorEstimator | |
virtual | ~AbstractErrorEstimator () |
Protected Member Functions | |
bool | MeshIsModified () |
Check if the mesh of the solution was modified. More... | |
void | ComputeEstimates () |
Compute the element error estimates. More... | |
Protected Attributes | |
long | current_sequence |
Vector | error_estimates |
double | total_error |
bool | anisotropic |
Array< int > | aniso_flags |
int | flux_averaging |
BilinearFormIntegrator * | integ |
Not owned. More... | |
GridFunction * | solution |
Not owned. More... | |
FiniteElementSpace * | flux_space |
Ownership based on own_flux_fes. Its Update() method is called automatically by this class when needed. More... | |
bool | with_coeff |
bool | own_flux_fes |
Ownership flag for flux_space. More... | |
The ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure.
Zienkiewicz, O.C. and Zhu, J.Z., The superconvergent patch recovery and a posteriori error estimates. Part 1: The recovery technique. Int. J. Num. Meth. Engng. 33, 1331-1364 (1992).
Zienkiewicz, O.C. and Zhu, J.Z., The superconvergent patch recovery and a posteriori error estimates. Part 2: Error estimates and adaptivity. Int. J. Num. Meth. Engng. 33, 1365-1382 (1992).
The required BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy().
Definition at line 81 of file estimators.hpp.
|
inline |
Construct a new ZienkiewiczZhuEstimator object.
integ | This BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy(). |
sol | The solution field whose error is to be estimated. |
flux_fes | The ZienkiewiczZhuEstimator assumes ownership of this FiniteElementSpace and will call its Update() method when needed. |
Definition at line 118 of file estimators.hpp.
|
inline |
Construct a new ZienkiewiczZhuEstimator object.
integ | This BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy(). |
sol | The solution field whose error is to be estimated. |
flux_fes | The ZienkiewiczZhuEstimator does NOT assume ownership of this FiniteElementSpace; will call its Update() method when needed. |
Definition at line 138 of file estimators.hpp.
|
inlinevirtual |
Destroy a ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space.
Definition at line 192 of file estimators.hpp.
|
protected |
Compute the element error estimates.
Definition at line 17 of file estimators.cpp.
|
inlinevirtual |
Get an Array<int> with anisotropic flags for all mesh elements. Return an empty array when anisotropic estimates are not available or enabled.
Implements mfem::AnisotropicErrorEstimator.
Definition at line 181 of file estimators.hpp.
|
inlinevirtual |
Get a Vector with all element errors.
Implements mfem::ErrorEstimator.
Definition at line 172 of file estimators.hpp.
|
inline |
Return the total error from the last error estimate.
Definition at line 169 of file estimators.hpp.
|
inlineprotected |
Check if the mesh of the solution was modified.
Definition at line 100 of file estimators.hpp.
|
inlinevirtual |
Reset the error estimator.
Implements mfem::ErrorEstimator.
Definition at line 188 of file estimators.hpp.
|
inline |
Enable/disable anisotropic estimates. To enable this option, the BilinearFormIntegrator must support the 'd_energy' parameter in its ComputeFluxEnergy() method.
Definition at line 158 of file estimators.hpp.
|
inline |
Set the way the flux is averaged (smoothed) across elements.
When fa is zero (default), averaging is performed globally. When fa is non-zero, the flux averaging is performed locally for each mesh attribute, i.e. the flux is not averaged across interfaces between different mesh attributes.
Definition at line 166 of file estimators.hpp.
|
inline |
Consider the coefficient in BilinearFormIntegrator to calculate the fluxes for the error estimator.
Definition at line 153 of file estimators.hpp.
|
protected |
Definition at line 88 of file estimators.hpp.
|
protected |
Definition at line 87 of file estimators.hpp.
|
protected |
Definition at line 84 of file estimators.hpp.
|
protected |
Definition at line 85 of file estimators.hpp.
|
protected |
Definition at line 89 of file estimators.hpp.
|
protected |
Ownership based on own_flux_fes. Its Update() method is called automatically by this class when needed.
Definition at line 94 of file estimators.hpp.
|
protected |
Not owned.
Definition at line 91 of file estimators.hpp.
|
protected |
Ownership flag for flux_space.
Definition at line 97 of file estimators.hpp.
|
protected |
Not owned.
Definition at line 92 of file estimators.hpp.
|
protected |
Definition at line 86 of file estimators.hpp.
|
protected |
Definition at line 96 of file estimators.hpp.