20#ifndef LIBMESH_ADJOINT_REFINEMENT_ESTIMATOR_H
21#define LIBMESH_ADJOINT_REFINEMENT_ESTIMATOR_H
24#include "libmesh/error_estimator.h"
25#include "libmesh/libmesh.h"
26#include "libmesh/qoi_set.h"
32#ifdef LIBMESH_ENABLE_AMR
38class DifferentiablePhysics;
100 bool estimate_parent_error =
false)
override;
This class implements a "brute force" goal-oriented error estimator which computes an estimate of err...
void set_residual_evaluation_physics(DifferentiablePhysics *set_physics)
Set the _residual_evaluation_physics member to argument.
AdjointRefinementEstimator & operator=(const AdjointRefinementEstimator &)=default
virtual ErrorEstimatorType type() const override
DifferentiablePhysics * get_residual_evaluation_physics()
unsigned char number_h_refinements
How many h refinements to perform to get the fine grid.
AdjointRefinementEstimator(AdjointRefinementEstimator &&)=default
AdjointRefinementEstimator(const AdjointRefinementEstimator &)=default
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this c...
const QoISet & qoi_set() const
Access to the QoISet (default: weight all QoIs equally) to use when computing errors.
DifferentiablePhysics * get_adjoint_evaluation_physics()
QoISet & qoi_set()
Access to the QoISet (default: weight all QoIs equally) to use when computing errors.
Number & get_global_QoI_error_estimate(unsigned int qoi_index)
This is an accessor function to access the computed global QoI error estimates.
DifferentiablePhysics * _adjoint_evaluation_physics
Pointer to object to use for adjoint assembly.
unsigned char number_p_refinements
How many p refinements to perform to get the fine grid.
QoISet _qoi_set
A QoISet to handle cases with multiple QoIs available.
void set_adjoint_evaluation_physics(DifferentiablePhysics *set_physics)
Set the _adjoint_evaluation_physics member to argument.
std::vector< Number > computed_global_QoI_errors
DifferentiablePhysics * _residual_evaluation_physics
Pointer to object to use for physics assembly evaluations.
virtual void estimate_error(const System &system, ErrorVector &error_per_cell, const NumericVector< Number > *solution_vector=nullptr, bool estimate_parent_error=false) override
This function does uniform refinements and an adjoint solve to get an adjoint solution on each cell,...
virtual ~AdjointRefinementEstimator()=default
AdjointRefinementEstimator()
Constructor.
This class provides a specific system class.
This class holds functions that will estimate the error in a finite element solution on a given mesh.
The ErrorVector is a specialization of the StatisticsVector for error data computed on a finite eleme...
Provides a uniform interface to vector storage schemes for different linear algebra libraries.
Data structure for specifying which Quantities of Interest should be calculated in an adjoint or a pa...
Manages consistently variables, degrees of freedom, and coefficient vectors.
The libMesh namespace provides an interface to certain functionality in the library.
ErrorEstimatorType
Defines an enum for the different types of error estimators which are available.