![]() |
MFEM v4.8.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. | |
| real_t | GetTotalError () const override |
| Return the total error from the last error estimate. | |
| const Vector & | GetLocalErrors () override |
| Get a Vector with all element errors. | |
| 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. | |
| 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.