dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Functions
Dune::Fem::GridAdaptation Namespace Reference

Classes

struct  Marker
 

Functions

template<class Grid , class Indicator >
static std::pair< int, int > mark (Grid &grid, Indicator &indicator, const double refineTolerance, const double coarsenTolerance, int minLevel=0, int maxLevel=-1, const bool markNeighbors=false)
 
template<class Grid , class Indicator >
static std::pair< int, int > doerflerMarking (Grid &grid, const Indicator &indicator, const double theta, int maxLevel=-1)
 doerflerMarking
 
template<class Grid , class Indicator >
static std::pair< int, int > layeredDoerflerMarking (Grid &grid, const Indicator &indicator, const double tolerance, int maxLevel=-1, double nu=0.05)
 

Function Documentation

◆ doerflerMarking()

template<class Grid , class Indicator >
static std::pair< int, int > Dune::Fem::GridAdaptation::doerflerMarking ( Grid &  grid,
const Indicator &  indicator,
const double  theta,
int  maxLevel = -1 
)
inlinestatic

doerflerMarking

Mark a minimal set $\mathcal{A} \subset \mathcal{G}$ of elements in a grid $\mathcal{G}$ such that $[ \sum_{T \in \mathcal{A}} \eta_t \ge \theta\,\sum_{T \in \mathcal{G}} \eta_T. $]

See also: W. Dörfler, A Convergent Adaptive Algorithm for Poisson's Equation, SIAM J. Numer. Anal. 33 (3), 1106-1124, 1996

For the sake of simplicity, this algorithm assumes disjoint local errors $\eta_T$. Otherwise, too more elements may be marked.

Parameters
[in]localErrorfunction modelling $\eta_T$
[in]thetafactor of total error to mark
[in,out]gridgrid $\mathcal{G}$ to mark

◆ layeredDoerflerMarking()

template<class Grid , class Indicator >
static std::pair< int, int > Dune::Fem::GridAdaptation::layeredDoerflerMarking ( Grid &  grid,
const Indicator &  indicator,
const double  tolerance,
int  maxLevel = -1,
double  nu = 0.05 
)
inlinestatic

◆ mark()

template<class Grid , class Indicator >
static std::pair< int, int > Dune::Fem::GridAdaptation::mark ( Grid &  grid,
Indicator &  indicator,
const double  refineTolerance,
const double  coarsenTolerance,
int  minLevel = 0,
int  maxLevel = -1,
const bool  markNeighbors = false 
)
inlinestatic