
Public Member Functions | |
| QGaussLobatto (const unsigned int n) | |
| template<> | |
| QGaussLobatto (const unsigned int n) | |
| template<> | |
| std::vector< long double > | compute_quadrature_points (const unsigned int, const int, const int) const |
| template<> | |
| std::vector< long double > | compute_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 double > | compute_quadrature_points (const unsigned int q, const int alpha, const int beta) const |
| std::vector< long double > | compute_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 |
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.
Karniadakis, G.E. and Sherwin, S.J.: Spectral/hp element methods for computational fluid dynamics. Oxford: Oxford University Press, 2005
| QGaussLobatto< dim >::QGaussLobatto | ( | const unsigned int | n | ) |
Generate a formula with n quadrature points (in each space direction).
| QGaussLobatto< 1 >::QGaussLobatto | ( | const unsigned int | n | ) | [inline] |
| 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
. They are equal to the roots of the corresponding Jacobi polynomial (specified by alpha, beta). q is number of points.
| 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.
| 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
specified by the parameters alpha, beta, n. Note: The Jacobi polynomials are not orthonormal and defined on the interval
. x is the point of evaluation.
| unsigned int QGaussLobatto< dim >::gamma | ( | const unsigned int | n | ) | const [protected] |
Evaluate the Gamma function
.
| n | point of evaluation (integer). |
| std::vector< long double > QGaussLobatto< 1 >::compute_quadrature_points | ( | const unsigned | int, | |
| const | int, | |||
| const | int | |||
| ) | const [inline] |
| std::vector< long double > QGaussLobatto< 1 >::compute_quadrature_weights | ( | const std::vector< long double > & | , | |
| const | int, | |||
| const | int | |||
| ) | const [inline] |
| long double QGaussLobatto< 1 >::JacobiP | ( | const long | double, | |
| const | int, | |||
| const | int, | |||
| const unsigned | int | |||
| ) | const [inline] |
| unsigned int QGaussLobatto< 1 >::gamma | ( | const unsigned int | n | ) | const [inline] |
documentation generated on Fri Nov 21 07:13:25 2008 by
doxygen
1.5.6