hp1D::RefineOrRaise< F > Class Template Reference

Refines element or raises its polynomial degree. More...

#include <hpExtension.hh>

Inheritance diagram for hp1D::RefineOrRaise< F >:
concepts::CellPostprocess< F > concepts::OutputOperator

Public Member Functions

virtual void operator() (const concepts::Cell &cell) throw (concepts::MissingFeature)
 Application operator. More...
 
virtual void operator() (const concepts::Element< F > &elm) throw (concepts::MissingFeature)
 Application operator. More...
 
 RefineOrRaise (const concepts::Vector< F > &solution, const Real theta, concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 1 > > &spc)
 Constructor. More...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Private Attributes

concepts::Array< F > coeff_
 Elementwise coefficients of the shape functions. More...
 
concepts::Array< F > legendre_
 Legendre coefficients. More...
 
const concepts::Vector< F > & solution_
 Vector of the variable to plot. More...
 
concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 1 > > & spc_
 Space. More...
 
const Real theta_
 Decision parameter. More...
 

Detailed Description

template<typename F>
class hp1D::RefineOrRaise< F >

Refines element or raises its polynomial degree.

The decision is based on a log linear regression to find out if the Legendre coefficients of the solution decrease exponentially.

The parameter theta is used to control this decision. If $e^m$ is less than theta, the element's polynomial degree is raised, otherwise it is refined. m is the slope of the fitted line in the regression.

Author
Philipp Frauenfelder, 2002

Definition at line 40 of file hpExtension.hh.

Constructor & Destructor Documentation

◆ RefineOrRaise()

template<typename F >
hp1D::RefineOrRaise< F >::RefineOrRaise ( const concepts::Vector< F > &  solution,
const Real  theta,
concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 1 > > &  spc 
)

Constructor.

Parameters
solutionSolution vector
thetaDecision parameter
spcSpace (is used for the refinements)

Member Function Documentation

◆ info()

◆ operator()() [1/2]

template<typename F >
virtual void hp1D::RefineOrRaise< F >::operator() ( const concepts::Cell cell)
throw (concepts::MissingFeature
)
inlinevirtual

Application operator.

This application operator has to be overloaded to post process a mesh.

Parameters
cellCurrent cell

Implements concepts::CellPostprocess< F >.

Definition at line 53 of file hpExtension.hh.

◆ operator()() [2/2]

template<typename F >
virtual void hp1D::RefineOrRaise< F >::operator() ( const concepts::Element< F > &  elm)
throw (concepts::MissingFeature
)
virtual

Application operator.

This application operator has to be overloaded to post process a space.

Parameters
elmCurrent element

Implements concepts::CellPostprocess< F >.

Member Data Documentation

◆ coeff_

template<typename F >
concepts::Array<F> hp1D::RefineOrRaise< F >::coeff_
private

Elementwise coefficients of the shape functions.

Definition at line 57 of file hpExtension.hh.

◆ legendre_

template<typename F >
concepts::Array<F> hp1D::RefineOrRaise< F >::legendre_
private

Legendre coefficients.

Definition at line 59 of file hpExtension.hh.

◆ solution_

template<typename F >
const concepts::Vector<F>& hp1D::RefineOrRaise< F >::solution_
private

Vector of the variable to plot.

Definition at line 61 of file hpExtension.hh.

◆ spc_

template<typename F >
concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<1> >& hp1D::RefineOrRaise< F >::spc_
private

Space.

Definition at line 63 of file hpExtension.hh.

◆ theta_

template<typename F >
const Real hp1D::RefineOrRaise< F >::theta_
private

Decision parameter.

Definition at line 65 of file hpExtension.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich