QGaussLobatto< dim > Class Template Reference
[Quadrature formulas]

Inheritance diagram for QGaussLobatto< dim >:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 QGaussLobatto (const unsigned int n)
template<>
 QGaussLobatto (const unsigned int n)
template<>
std::vector< long doublecompute_quadrature_points (const unsigned int, const int, const int) const
template<>
std::vector< long doublecompute_quadrature_weights (const std::vector< long double > &, const int, const int) const
template<>
long double JacobiP (const long double, const int, const int, const unsigned int) const
template<>
unsigned int gamma (const unsigned int n) const

Protected Member Functions

std::vector< long doublecompute_quadrature_points (const unsigned int q, const int alpha, const int beta) const
std::vector< long doublecompute_quadrature_weights (const std::vector< long double > &x, const int alpha, const int beta) const
long double JacobiP (const long double x, const int alpha, const int beta, const unsigned int n) const
unsigned int gamma (const unsigned int n) const


Detailed Description

template<int dim>
class QGaussLobatto< dim >

The Gauss-Lobatto quadrature rule.

This modification of the Gauss quadrature uses the two interval end points as well. Being exact for polynomials of degree 2n-3, this formula is suboptimal by two degrees.

The quadrature points are interval end points plus the roots of the derivative of the Legendre polynomial Pn-1 of degree n-1. The quadrature weights are 2/(n(n-1)(Pn-1(xi)2).

Note: This implementation has not yet been optimized concerning numerical stability and efficiency. It can be easily adapted to the general case of Gauss-Lobatto-Jacobi-Bouzitat quadrature with arbitrary parameters alpha, beta, of which the Gauss-Lobatto-Legendre quadrature (alpha = beta = 0) is a special case.

See also:
http://en.wikipedia.org/wiki/Handbook_of_Mathematical_Functions

Karniadakis, G.E. and Sherwin, S.J.: Spectral/hp element methods for computational fluid dynamics. Oxford: Oxford University Press, 2005

Author:
Guido Kanschat, 2005, 2006; F. Prill, 2006

Constructor & Destructor Documentation

template<int dim>
QGaussLobatto< dim >::QGaussLobatto ( const unsigned int  n  ) 

Generate a formula with n quadrature points (in each space direction).

template<>
QGaussLobatto< 1 >::QGaussLobatto ( const unsigned int  n  )  [inline]


Member Function Documentation

template<int dim>
std::vector<long double> QGaussLobatto< dim >::compute_quadrature_points ( const unsigned int  q,
const int  alpha,
const int  beta 
) const [protected]

Compute Legendre-Gauss-Lobatto quadrature points in the interval $[-1, +1]$. They are equal to the roots of the corresponding Jacobi polynomial (specified by alpha, beta). q is number of points.

Returns:
vector containing nodes.

template<int dim>
std::vector<long double> QGaussLobatto< dim >::compute_quadrature_weights ( const std::vector< long double > &  x,
const int  alpha,
const int  beta 
) const [protected]

Compute Legendre-Gauss-Lobatto quadrature weights. The quadrature points and weights are related to Jacobi polynomial specified by alpha, beta. x denotes the quadrature points.

Returns:
vector containing weights.

template<int dim>
long double QGaussLobatto< dim >::JacobiP ( const long double  x,
const int  alpha,
const int  beta,
const unsigned int  n 
) const [protected]

Evaluate a Jacobi polynomial $ P^{\alpha, \beta}_n(x) $ specified by the parameters alpha, beta, n. Note: The Jacobi polynomials are not orthonormal and defined on the interval $[-1, +1]$. x is the point of evaluation.

template<int dim>
unsigned int QGaussLobatto< dim >::gamma ( const unsigned int  n  )  const [protected]

Evaluate the Gamma function $ \Gamma(n) = (n-1)! $.

Parameters:
n point of evaluation (integer).

template<>
std::vector< long double > QGaussLobatto< 1 >::compute_quadrature_points ( const unsigned  int,
const   int,
const   int 
) const [inline]

template<>
std::vector< long double > QGaussLobatto< 1 >::compute_quadrature_weights ( const std::vector< long double > &  ,
const   int,
const   int 
) const [inline]

template<>
long double QGaussLobatto< 1 >::JacobiP ( const long  double,
const   int,
const   int,
const unsigned  int 
) const [inline]

template<>
unsigned int QGaussLobatto< 1 >::gamma ( const unsigned int  n  )  const [inline]


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

deal.II documentation generated on Sat Aug 15 16:52:15 2009 by doxygen 1.5.9