Loading...
Searching...
No Matches
dolfin::ErrorControl Class Reference

(Goal-oriented) Error Control class. More...

`#include <ErrorControl.h>`

Inheritance diagram for dolfin::ErrorControl:
[legend]
Collaboration diagram for dolfin::ErrorControl:
[legend]

## Public Member Functions

| ErrorControl (std::shared_ptr< Form > a_star, std::shared_ptr< Form > L_star, std::shared_ptr< Form > residual, std::shared_ptr< Form > a_R_T, std::shared_ptr< Form > L_R_T, std::shared_ptr< Form > a_R_dT, std::shared_ptr< Form > L_R_dT, std::shared_ptr< Form > eta_T, bool is_linear)
| ~ErrorControl ()
| Destructor.
double | estimate_error (const Function &u, const std::vector< std::shared_ptr< const DirichletBC > > bcs)
void | compute_indicators (MeshFunction< double > &indicators, const Function &u)
void | residual_representation (Function &R_T, SpecialFacetFunction &R_dT, const Function &u)
void | compute_cell_residual (Function &R_T, const Function &u)
void | compute_facet_residual (SpecialFacetFunction &R_dT, const Function &u, const Function &R_T)
void | compute_dual (Function &z, const std::vector< std::shared_ptr< const DirichletBC > > bcs)
void | compute_extrapolation (const Function &z, const std::vector< std::shared_ptr< const DirichletBC > > bcs)
Public Member Functions inherited from dolfin::Hierarchical< ErrorControl >
| Hierarchical (ErrorControl &self)
| Constructor.
virtual | ~Hierarchical ()
| Destructor.
std::size_t | depth () const
bool | has_parent () const
bool | has_child () const
ErrorControl & | parent ()
std::shared_ptr< ErrorControl > | parent_shared_ptr ()
ErrorControl & | child ()
std::shared_ptr< ErrorControl > | child_shared_ptr ()
ErrorControl & | root_node ()
std::shared_ptr< ErrorControl > | root_node_shared_ptr ()
ErrorControl & | leaf_node ()
std::shared_ptr< ErrorControl > | leaf_node_shared_ptr ()
void | set_parent (std::shared_ptr< ErrorControl > parent)
| Set parent.
void | clear_child ()
| Clear child.
void | set_child (std::shared_ptr< ErrorControl > child)
| Set child.
const Hierarchical & | operator= (const Hierarchical &hierarchical)
| Assignment operator.
void | _debug () const
| Function useful for debugging the hierarchy.
Public Member Functions inherited from dolfin::Variable
| Variable ()
| Create unnamed variable.
| Variable (const std::string name, const std::string label)
| Create variable with given name and label.
| Variable (const Variable &variable)
| Copy constructor.
virtual | ~Variable ()
| Destructor.
const Variable & | operator= (const Variable &variable)
| Assignment operator.
void | rename (const std::string name, const std::string label)
| Rename variable.
std::string | name () const
| Return name.
std::string | label () const
| Return label (description).
std::size_t | id () const
virtual std::string | str (bool verbose) const
| Return informal string representation (pretty-print).

## Static Public Member Functions

static Parameters | default_parameters ()
| Default parameter values.

## Friends

std::shared_ptr< ErrorControl > | adapt (const ErrorControl &ec, std::shared_ptr< const Mesh > adapted_mesh, bool adapt_coefficients=true)

## Additional Inherited Members

Public Attributes inherited from dolfin::Variable
Parameters | parameters
| Parameters.

## Detailed Description

(Goal-oriented) Error Control class.

The notation used here follows the notation in "Automated goal-oriented error control I: stationary variational problems", ME Rognes and A Logg, 2010-2011.

## Constructor & Destructor Documentation

## ErrorControl()

ErrorControl::ErrorControl | ( | std::shared_ptr< Form > | a_star,
|  | std::shared_ptr< Form > | L_star,
|  | std::shared_ptr< Form > | residual,
|  | std::shared_ptr< Form > | a_R_T,
|  | std::shared_ptr< Form > | L_R_T,
|  | std::shared_ptr< Form > | a_R_dT,
|  | std::shared_ptr< Form > | L_R_dT,
|  | std::shared_ptr< Form > | eta_T,
|  | bool | is_linear )

Create error control object

Parameters

  a_star | (Form) the bilinear form for the dual problem
  L_star | (Form) the linear form for the dual problem
  residual | (Form) a functional for the residual (error estimate)
  a_R_T | (Form) the bilinear form for the strong cell residual problem
  L_R_T | (Form) the linear form for the strong cell residual problem
  a_R_dT | (Form) the bilinear form for the strong facet residual problem
  L_R_dT | (Form) the linear form for the strong facet residual problem
  eta_T | (Form) a linear form over DG_0 for error indicators
  is_linear | (bool) true iff primal problem is linear

## Member Function Documentation

## compute_cell_residual()

void ErrorControl::compute_cell_residual | ( | Function & | R_T,
|  | const Function & | u )

Compute representation for the strong cell residual from the weak residual

Parameters

  R_T | (Function) the strong cell residual (to be computed)
  u | (Function) the primal approximation

## compute_dual()

void ErrorControl::compute_dual | ( | Function & | z,
|  | const std::vector< std::shared_ptr< const DirichletBC > > | bcs )

Compute dual approximation defined by dual variational problem and dual boundary conditions given by homogenized primal boundary conditions.

Parameters

  z | (Function) the dual approximation (to be computed)
  bcs | (std::vector<DirichletBC>) the primal boundary conditions

## compute_extrapolation()

void ErrorControl::compute_extrapolation | ( | const Function & | z,
|  | const std::vector< std::shared_ptr< const DirichletBC > > | bcs )

Compute extrapolation with boundary conditions

Parameters

  z | (Function) the extrapolated function (to be computed)
  bcs | (std::vector<DirichletBC>) the dual boundary conditions

## compute_facet_residual()

void ErrorControl::compute_facet_residual | ( | SpecialFacetFunction & | R_dT,
|  | const Function & | u,
|  | const Function & | R_T )

Compute representation for the strong facet residual from the weak residual and the strong cell residual

Parameters

  R_dT | (SpecialFacetFunction) the strong facet residual (to be computed)
  u | (Function) the primal approximation
  R_T | (Function) the strong cell residual

## compute_indicators()

void ErrorControl::compute_indicators | ( | MeshFunction< double > & | indicators,
|  | const Function & | u )

Compute error indicators

Parameters

  indicators | (MeshFunction<double>) the error indicators (to be computed)
  u | (Function) the primal approximation

## estimate_error()

double ErrorControl::estimate_error | ( | const Function & | u,
|  | const std::vector< std::shared_ptr< const DirichletBC > > | bcs )

Estimate the error relative to the goal M of the discrete approximation 'u' relative to the variational formulation by evaluating the weak residual at an approximation to the dual solution.

Parameters

  u | (Function) the primal approximation
  bcs | (std::vector<DirichletBC>) the primal boundary conditions

Returns
  double error estimate

## residual_representation()

void ErrorControl::residual_representation | ( | Function & | R_T,
|  | SpecialFacetFunction & | R_dT,
|  | const Function & | u )

Compute strong representation (strong cell and facet residuals) of the weak residual.

Parameters

  R_T | (Function) the strong cell residual (to be computed)
  R_dT | (SpecialFacetFunction) the strong facet residual (to be computed)
  u | (Function) the primal approximation

## Friends And Related Symbol Documentation

## adapt

std::shared_ptr< ErrorControl > adapt | ( | const ErrorControl & | ec,
|  | std::shared_ptr< const Mesh > | adapted_mesh,
|  | bool | adapt_coefficients = true )

friend

Adapt error control object based on adapted mesh

Parameters

  ec | (ErrorControl) The error control object to be adapted
  adapted_mesh | (Mesh) The new mesh
  adapt_coefficients | (bool) Optional argument, default is true. If false, any form coefficients are not explicitly adapted, but pre-adapted coefficients will be transferred.

Returns
  ErrorControl The adapted error control object

The documentation for this class was generated from the following files:

- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/adaptivity/ErrorControl.h
- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/adaptivity/ErrorControl.cpp