Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.3.3
\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}} \newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=} \newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]} \newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Functions
FunctionTools Namespace Reference

Functions

template<int dim>
void taylor_estimate_function_bounds (const Function< dim > &function, const BoundingBox< dim > &box, std::pair< double, double > &value_bounds, std::array< std::pair< double, double >, dim > &gradient_bounds, const unsigned int component=0)
 

Function Documentation

◆ taylor_estimate_function_bounds()

template<int dim>
void FunctionTools::taylor_estimate_function_bounds ( const Function< dim > &  function,
const BoundingBox< dim > &  box,
std::pair< double, double > &  value_bounds,
std::array< std::pair< double, double >, dim > &  gradient_bounds,
const unsigned int  component = 0 
)

Estimate bounds on the value and bounds on each gradient component of a Function, f, over a BoundingBox, by approximating it by a 2nd order Taylor polynomial starting from the box center.

Each lower and upper bound is returned as a std::pair<double, double>, such that the first entry is the lower bound, L, and the second is the upper bound, U, i.e. f(x) \in [L, U].

The function value, gradient, and Hessian are computed at the box center. The bounds on the value of the function are then estimated as

f(x) \in [f(x_c) - F, f(x_c) + F], where F = \sum_i |\partial_i f(x_c)| h_i + 1/2 \sum_i \sum_j |\partial_i \partial_j f(x_c)| h_i h_j.

Here, h_i is half the side length of the box in the ith coordinate direction, which is the distance we extrapolate. The bounds on the gradient components are estimated similarly as

\partial_i f \in [\partial_i f(x_c) - G_i, \partial_i f(x_c) + G_i], where G_i = \sum_j |\partial_i \partial_j f(x_c)| h_j.

If the function has more than 1 component the component parameter can be used to specify which function component the bounds should be computed for.

Definition at line 26 of file function_tools.cc.