dune-fem 2.12-git
Loading...
Searching...
No Matches
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, const int minLevel=0, int maxLevel=-1, const double minVolume=-1., double maxVolume=-1.0, const bool markNeighbors=false, const bool statistics=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,
const int  minLevel = 0,
int  maxLevel = -1,
const double  minVolume = -1.,
double  maxVolume = -1.0,
const bool  markNeighbors = false,
const bool  statistics = false 
)
inlinestatic