MFEM
v4.3.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. More... | |
L2ZienkiewiczZhuEstimator (BilinearFormIntegrator &integ, ParGridFunction &sol, ParFiniteElementSpace &flux_fes, ParFiniteElementSpace &smooth_flux_fes) | |
Construct a new L2ZienkiewiczZhuEstimator object. More... | |
void | SetLocalErrorNormP (int p) |
Set the exponent, p, of the Lp norm used for computing the local element errors. Default value is 1. More... | |
virtual double | GetTotalError () const override |
Return the total error from the last error estimate. More... | |
virtual const Vector & | GetLocalErrors () override |
Get a Vector with all element errors. More... | |
virtual void | Reset () override |
Reset the error estimator. More... | |
virtual | ~L2ZienkiewiczZhuEstimator () |
Destroy a L2ZienkiewiczZhuEstimator 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 | |
void | Init (BilinearFormIntegrator &integ, ParGridFunction &sol, ParFiniteElementSpace *flux_fes, ParFiniteElementSpace *smooth_flux_fes) |
Initialize with the integrator, solution, and flux finite element spaces. More... | |
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 |
int | local_norm_p |
Local L_p norm to use, default is 1. More... | |
Vector | error_estimates |
double | total_error |
BilinearFormIntegrator * | integ |
Not owned. More... | |
ParGridFunction * | solution |
Not owned. More... | |
ParFiniteElementSpace * | flux_space |
Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed. More... | |
ParFiniteElementSpace * | smooth_flux_space |
Ownership based on the flag own_flux_fes. Its Update() method is called automatically by this class when needed. More... | |
bool | own_flux_fes |
Ownership flag for flux_space and smooth_flux_space. More... | |
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 217 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 274 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 291 of file estimators.hpp.
|
inlinevirtual |
Destroy a L2ZienkiewiczZhuEstimator object. Destroys, if owned, the FiniteElementSpace, flux_space.
Definition at line 316 of file estimators.hpp.
|
protected |
Compute the element error estimates.
Definition at line 36 of file estimators.cpp.
|
inlineoverridevirtual |
Get a Vector with all element errors.
Implements mfem::ErrorEstimator.
Definition at line 305 of file estimators.hpp.
|
inlineoverridevirtual |
Return the total error from the last error estimate.
Reimplemented from mfem::ErrorEstimator.
Definition at line 302 of file estimators.hpp.
|
inlineprotected |
Initialize with the integrator, solution, and flux finite element spaces.
Definition at line 237 of file estimators.hpp.
|
inlineprotected |
Check if the mesh of the solution was modified.
Definition at line 252 of file estimators.hpp.
|
inlineoverridevirtual |
Reset the error estimator.
Implements mfem::ErrorEstimator.
Definition at line 312 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 299 of file estimators.hpp.
|
protected |
Definition at line 220 of file estimators.hpp.
|
protected |
Definition at line 222 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 228 of file estimators.hpp.
|
protected |
Not owned.
Definition at line 225 of file estimators.hpp.
|
protected |
Local L_p norm to use, default is 1.
Definition at line 221 of file estimators.hpp.
|
protected |
Ownership flag for flux_space and smooth_flux_space.
Definition at line 234 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 231 of file estimators.hpp.
|
protected |
Not owned.
Definition at line 226 of file estimators.hpp.
|
protected |
Definition at line 223 of file estimators.hpp.