IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType > Class Template Reference

This is class represents the Gauss-Jacobi quadrature rule on a reference element. More...

#include <GaussJacobiQuadrature.h>

+ Inheritance diagram for ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >:
+ Collaboration diagram for ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >:

Public Types

using scalar_t = double
 

Public Member Functions

 GaussJacobiQuadrature (const ElementType &ref_element, const T &alpha, const T &beta, const size_t &max_newton_itersations=10, const size_t &min_newton_iterations=1)
 Construct a new Gauss Jacobi Quadrature rule object.
 
void computeNodesAndWeights () override
 
scalar_t getChebyshevNodes (const size_t &i) const
 Returns the i-th Chebyshev node, used as initial guess for the Newton iterations.
 
- Public Member Functions inherited from ippl::Quadrature< T, NumNodes1D, ElementType >
 Quadrature (const ElementType &ref_element)
 Construct a new Quadrature object.
 
size_t getOrder () const
 Returns the order of the quadrature rule. (order = degree + 1)
 
size_t getDegree () const
 Returns the degree of exactness of the quadrature rule.
 
Vector< T, numElementNodes > getWeightsForRefElement () const
 Get the quadrature weights for the reference element.
 
Vector< Vector< T, dim >, numElementNodes > getIntegrationNodesForRefElement () const
 Get the integration (quadrature) nodes for the reference element.
 
Vector< T, NumNodes1D > getIntegrationNodes1D (const T &a, const T &b) const
 Get the quadrature nodes for one dimension. (With respect to the given domain [a, b])
 
Vector< T, NumNodes1D > getWeights1D (const T &a, const T &b) const
 Get the quadrature weights for one dimension. (With respect to the given domain [a, b])
 

Additional Inherited Members

- Static Public Attributes inherited from ippl::Quadrature< T, NumNodes1D, ElementType >
static constexpr unsigned numNodes1D = NumNodes1D
 
static constexpr unsigned dim = ElementType::dim
 
static constexpr unsigned numElementNodes
 
- Protected Attributes inherited from ippl::Quadrature< T, NumNodes1D, ElementType >
unsigned degree_m
 
const ElementType & ref_element_m
 
Vector< T, NumNodes1D > integration_nodes_m
 
Vector< T, NumNodes1D > weights_m
 
a_m
 
b_m
 

Detailed Description

template<typename T, unsigned NumNodes1D, typename ElementType>
class ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >

This is class represents the Gauss-Jacobi quadrature rule on a reference element.

Template Parameters
Tfloating point number type of the quadrature nodes and weights
NumNodes1Dnumber of quadrature nodes for one dimension
ElementTypeelement type for which the quadrature rule is defined

Constructor & Destructor Documentation

◆ GaussJacobiQuadrature()

template<typename T , unsigned NumNodes1D, typename ElementType >
ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >::GaussJacobiQuadrature ( const ElementType &  ref_element,
const T &  alpha,
const T &  beta,
const size_t &  max_newton_itersations = 10,
const size_t &  min_newton_iterations = 1 
)

Construct a new Gauss Jacobi Quadrature rule object.

Parameters
ref_elementreference element to compute the quadrature nodes on
alphafirst Jacobi parameter alpha
betasecond Jacobi parameter beta
max_newton_itersationsmaximum number of Newton iterations (default 10)
min_newton_iterationsminimum number of Newton iterations (default 1)

Member Function Documentation

◆ computeNodesAndWeights()

template<typename T , unsigned NumNodes1D, typename ElementType >
void ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >::computeNodesAndWeights ( )
overridevirtual

Computes the quadrature nodes and weights and stores them in the quadrature nodes and weights arrays.

the following algorithm for computing the roots and weights for the Gauss-Jacobi quadrature has been taken from LehrFEM++ (MIT License) https://craffael.github.io/lehrfempp/gauss__quadrature_8cc_source.html

Implements ippl::Quadrature< T, NumNodes1D, ElementType >.

◆ getChebyshevNodes()

template<typename T , unsigned NumNodes1D, typename ElementType >
GaussJacobiQuadrature< T, NumNodes1D, ElementType >::scalar_t ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >::getChebyshevNodes ( const size_t &  i) const

Returns the i-th Chebyshev node, used as initial guess for the Newton iterations.

Parameters
iindex of the Chebyshev node
Returns
scalar_t - i-th Chebyshev node

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