Reference documentation for deal.II version 8.5.1
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
QGaussLobatto< dim > Class Template Reference

#include <deal.II/base/quadrature_lib.h>

Inheritance diagram for QGaussLobatto< dim >:
[legend]

Public Member Functions

 QGaussLobatto (const unsigned int n)
 
- Public Member Functions inherited from Quadrature< dim >
 Quadrature (const unsigned int n_quadrature_points=0)
 
 Quadrature (const SubQuadrature &, const Quadrature< 1 > &)
 
 Quadrature (const Quadrature< dim !=1 ? 1 :0 > &quadrature_1d)
 
 Quadrature (const Quadrature< dim > &q)
 
 Quadrature (Quadrature< dim > &&)=default
 
 Quadrature (const std::vector< Point< dim > > &points, const std::vector< double > &weights)
 
 Quadrature (const std::vector< Point< dim > > &points)
 
 Quadrature (const Point< dim > &point)
 
virtual ~Quadrature ()
 
Quadratureoperator= (const Quadrature< dim > &)
 
bool operator== (const Quadrature< dim > &p) const
 
void initialize (const std::vector< Point< dim > > &points, const std::vector< double > &weights)
 
unsigned int size () const
 
const Point< dim > & point (const unsigned int i) const
 
const std::vector< Point< dim > > & get_points () const
 
double weight (const unsigned int i) const
 
const std::vector< double > & get_weights () const
 
std::size_t memory_consumption () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

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
 

Static Protected Member Functions

static long double gamma (const unsigned int n)
 

Additional Inherited Members

- Public Types inherited from Quadrature< dim >
typedef Quadrature< dim-1 > SubQuadrature
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 
- Protected Attributes inherited from Quadrature< dim >
std::vector< Point< dim > > quadrature_points
 
std::vector< double > weights
 

Detailed Description

template<int dim>
class QGaussLobatto< dim >

The Gauss-Lobatto family of quadrature rules for numerical integration.

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 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

Definition at line 75 of file quadrature_lib.h.

Constructor & Destructor Documentation

◆ QGaussLobatto()

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

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

Definition at line 970 of file quadrature_lib.cc.

Member Function Documentation

◆ compute_quadrature_points()

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 the number of points.

Returns
Vector containing nodes.

◆ compute_quadrature_weights()

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.

◆ JacobiP()

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.

◆ gamma()

template<int dim>
static long double QGaussLobatto< dim >::gamma ( const unsigned int  n)
staticprotected

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

Parameters
npoint of evaluation (integer).

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