MFEM v4.7.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. | |
ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, GridFunction &sol, FiniteElementSpace &flux_fes) | |
Construct a new ZienkiewiczZhuEstimator object. | |
void | SetWithCoeff (bool w_coeff=true) |
Consider the coefficient in BilinearFormIntegrator to calculate the fluxes for the error estimator. | |
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. | |
void | SetFluxAveraging (int fa) |
Set the way the flux is averaged (smoothed) across elements. | |
virtual real_t | GetTotalError () const override |
Return the total error from the last error estimate. | |
virtual const Vector & | GetLocalErrors () override |
Get a Vector with all element errors. | |
virtual const Array< int > & | GetAnisotropicFlags () override |
Get an Array<int> with anisotropic flags for all mesh elements. Return an empty array when anisotropic estimates are not available or enabled. | |
virtual void | Reset () override |
Reset the error estimator. | |
virtual | ~ZienkiewiczZhuEstimator () |
Destroy a ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space. | |
Public Member Functions inherited from mfem::ErrorEstimator | |
virtual | ~ErrorEstimator () |
Destruct the error estimator. | |
Public Member Functions inherited from mfem::AbstractErrorEstimator | |
virtual | ~AbstractErrorEstimator () |
Protected Member Functions | |
bool | MeshIsModified () |
Check if the mesh of the solution was modified. | |
void | ComputeEstimates () |
Compute the element error estimates. | |
Protected Attributes | |
long | current_sequence |
Vector | error_estimates |
real_t | total_error |
bool | anisotropic |
Array< int > | aniso_flags |
int | flux_averaging |
BilinearFormIntegrator & | integ |
GridFunction & | solution |
FiniteElementSpace * | flux_space |
Ownership based on own_flux_fes. Its Update() method is called automatically by this class when needed. | |
bool | with_coeff |
bool | own_flux_fes |
Ownership flag for flux_space. | |
The ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure.
[1] 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).
[2] 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 88 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 125 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 145 of file estimators.hpp.
|
inlinevirtual |
Destroy a ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space.
Definition at line 198 of file estimators.hpp.
|
protected |
Compute the element error estimates.
Definition at line 17 of file estimators.cpp.
|
inlineoverridevirtual |
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 187 of file estimators.hpp.
|
inlineoverridevirtual |
Get a Vector with all element errors.
Implements mfem::ErrorEstimator.
Definition at line 178 of file estimators.hpp.
|
inlineoverridevirtual |
Return the total error from the last error estimate.
Reimplemented from mfem::ErrorEstimator.
Definition at line 175 of file estimators.hpp.
|
inlineprotected |
Check if the mesh of the solution was modified.
Definition at line 107 of file estimators.hpp.
|
inlineoverridevirtual |
Reset the error estimator.
Implements mfem::ErrorEstimator.
Definition at line 194 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 165 of file estimators.hpp.
|
inline |
Set the way the flux is averaged (smoothed) across elements.
When fa is zero (default), averaging is performed across interfaces between different mesh attributes. When fa is non-zero, the flux is not averaged across interfaces between different mesh attributes.
Definition at line 172 of file estimators.hpp.
|
inline |
Consider the coefficient in BilinearFormIntegrator to calculate the fluxes for the error estimator.
Definition at line 160 of file estimators.hpp.
|
protected |
Definition at line 95 of file estimators.hpp.
|
protected |
Definition at line 94 of file estimators.hpp.
|
protected |
Definition at line 91 of file estimators.hpp.
|
protected |
Definition at line 92 of file estimators.hpp.
|
protected |
Definition at line 96 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 101 of file estimators.hpp.
|
protected |
Definition at line 98 of file estimators.hpp.
|
protected |
Ownership flag for flux_space.
Definition at line 104 of file estimators.hpp.
|
protected |
Definition at line 99 of file estimators.hpp.
|
protected |
Definition at line 93 of file estimators.hpp.
|
protected |
Definition at line 103 of file estimators.hpp.