![]() |
MFEM v4.8.0
Finite element discretization library
|
The L2ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure where the flux averaging is replaced by a global L2 projection (requiring a mass matrix solve). More...
#include <estimators.hpp>
Public Member Functions | |
| L2ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, ParGridFunction &sol, ParFiniteElementSpace *flux_fes, ParFiniteElementSpace *smooth_flux_fes) | |
| Construct a new L2ZienkiewiczZhuEstimator object. | |
| L2ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, ParGridFunction &sol, ParFiniteElementSpace &flux_fes, ParFiniteElementSpace &smooth_flux_fes) | |
| Construct a new L2ZienkiewiczZhuEstimator object. | |
| void | SetLocalErrorNormP (int p) |
| Set the exponent, p, of the Lp norm used for computing the local element errors. Default value is 1. | |
| 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. | |
| void | Reset () override |
| Reset the error estimator. | |
| virtual | ~L2ZienkiewiczZhuEstimator () |
| Destroy a L2ZienkiewiczZhuEstimator 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 |
| int | local_norm_p |
| Local L_p norm to use, default is 1. | |
| Vector | error_estimates |
| real_t | total_error |
| BilinearFormIntegrator & | integ |
| ParGridFunction & | solution |
| ParFiniteElementSpace * | flux_space |
| Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed. | |
| ParFiniteElementSpace * | smooth_flux_space |
| Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed. | |
| bool | own_flux_fes |
| Ownership flag for flux_space and smooth_flux_space. | |
The L2ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure where the flux averaging is replaced by a global L2 projection (requiring a mass matrix solve).
The required BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy().
Implemented for the parallel case only.
Definition at line 328 of file estimators.hpp.
|
inline |
Construct a new L2ZienkiewiczZhuEstimator object.
| integ | This BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy(). |
| sol | The solution field whose error is to be estimated. |
| flux_fes | The L2ZienkiewiczZhuEstimator assumes ownership of this FiniteElementSpace and will call its Update() method when needed. |
| smooth_flux_fes | The L2ZienkiewiczZhuEstimator assumes ownership of this FiniteElementSpace and will call its Update() method when needed. |
Definition at line 370 of file estimators.hpp.
|
inline |
Construct a new L2ZienkiewiczZhuEstimator object.
| integ | This BilinearFormIntegrator must implement the methods ComputeElementFlux() and ComputeFluxEnergy(). |
| sol | The solution field whose error is to be estimated. |
| flux_fes | The L2ZienkiewiczZhuEstimator does NOT assume ownership of this FiniteElementSpace; will call its Update() method when needed. |
| smooth_flux_fes | The L2ZienkiewiczZhuEstimator does NOT assume ownership of this FiniteElementSpace; will call its Update() method when needed. |
Definition at line 395 of file estimators.hpp.
|
inlinevirtual |
Destroy a L2ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space.
Definition at line 428 of file estimators.hpp.
|
protected |
Compute the element error estimates.
Definition at line 47 of file estimators.cpp.
|
inlineoverridevirtual |
Get a Vector with all element errors.
Implements mfem::ErrorEstimator.
Definition at line 417 of file estimators.hpp.
|
inlineoverridevirtual |
Return the total error from the last error estimate.
Reimplemented from mfem::ErrorEstimator.
Definition at line 414 of file estimators.hpp.
|
inlineprotected |
Check if the mesh of the solution was modified.
Definition at line 348 of file estimators.hpp.
|
inlineoverridevirtual |
Reset the error estimator.
Implements mfem::ErrorEstimator.
Definition at line 424 of file estimators.hpp.
|
inline |
Set the exponent, p, of the Lp norm used for computing the local element errors. Default value is 1.
Definition at line 411 of file estimators.hpp.
|
protected |
Definition at line 331 of file estimators.hpp.
|
protected |
Definition at line 333 of file estimators.hpp.
|
protected |
Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed.
Definition at line 339 of file estimators.hpp.
|
protected |
Definition at line 336 of file estimators.hpp.
|
protected |
Local L_p norm to use, default is 1.
Definition at line 332 of file estimators.hpp.
|
protected |
Ownership flag for flux_space and smooth_flux_space.
Definition at line 345 of file estimators.hpp.
|
protected |
Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed.
Definition at line 342 of file estimators.hpp.
|
protected |
Definition at line 337 of file estimators.hpp.
|
protected |
Definition at line 334 of file estimators.hpp.