|
IPPL API Reference
Independent Parallel Particle Layer C++ API
|
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 |
| T | a_m |
| T | b_m |
This is class represents the Gauss-Jacobi quadrature rule on a reference element.
| T | floating point number type of the quadrature nodes and weights |
| NumNodes1D | number of quadrature nodes for one dimension |
| ElementType | element type for which the quadrature rule is defined |
| 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.
| ref_element | reference element to compute the quadrature nodes on |
| alpha | first Jacobi parameter alpha |
| beta | second Jacobi parameter beta |
| max_newton_itersations | maximum number of Newton iterations (default 10) |
| min_newton_iterations | minimum number of Newton iterations (default 1) |
|
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 >.
| 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.
| i | index of the Chebyshev node |