20#ifndef LIBMESH_JUMP_ERROR_ESTIMATOR_H
21#define LIBMESH_JUMP_ERROR_ESTIMATOR_H
24#include "libmesh/dense_vector.h"
25#include "libmesh/error_estimator.h"
26#include "libmesh/fem_context.h"
90 bool estimate_parent_error =
false)
override;
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...
This class provides all data required for a physics package (e.g.
This abstract base class implements utility functions for error estimators which are based on integra...
float coarse_n_flux_faces_increment()
A utility function to correctly increase n_flux_faces for the coarse element.
JumpErrorEstimator()
Constructor.
unsigned int var
The variable number currently being evaluated.
bool integrate_slits
A boolean flag, by default false, to be set to true if integrations should be performed on "slits" wh...
bool use_unweighted_quadrature_rules
This boolean flag allows you to use "unweighted" quadrature rules (sized to exactly integrate unweigh...
Real fine_error
The fine and coarse error values to be set by each side_integration();.
virtual bool boundary_side_integration()
The function, to be implemented by derived classes, which calculates an error term on a boundary side...
virtual void internal_side_integration()=0
The function, to be implemented by derived classes, which calculates an error term on an internal sid...
JumpErrorEstimator(const JumpErrorEstimator &)=delete
This class cannot be (default) copy constructed/assigned because it has unique_ptr members.
bool scale_by_n_flux_faces
This boolean flag allows you to scale the error indicator result for each element by the number of "f...
bool integrate_boundary_sides
A boolean flag, by default false, to be set to true if integrations with boundary_side_integration() ...
void reinit_sides()
A utility function to reinit the finite element data on elements sharing a side.
virtual ~JumpErrorEstimator()=default
virtual void init_context(FEMContext &c)
An initialization function, to give derived classes a chance to request specific data from the FE obj...
std::unique_ptr< FEMContext > coarse_context
std::unique_ptr< FEMContext > fine_context
Context objects for integrating on the fine and coarse elements sharing a face.
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 uses the derived class's jump error estimate formula to estimate the error on each cell...
JumpErrorEstimator(JumpErrorEstimator &&)=default
Defaulted move ctor, move assignment operator, and destructor.
JumpErrorEstimator & operator=(const JumpErrorEstimator &)=delete
Provides a uniform interface to vector storage schemes for different linear algebra libraries.
Manages consistently variables, degrees of freedom, and coefficient vectors.
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real