IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::Quadrature< T, NumNodes1D, ElementType > Class Template Referenceabstract

This is the base class for all quadrature rules. More...

#include <Quadrature.h>

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

Public Member Functions

 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, numElementNodesgetWeightsForRefElement () const
 Get the quadrature weights for the reference element.
Vector< Vector< T, dim >, numElementNodesgetIntegrationNodesForRefElement () 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]).
virtual void computeNodesAndWeights ()=0
 Pure virtual function that computes the local quadrature nodes and weights. (Needs to be implemented in derived classes).

Static Public Attributes

static constexpr unsigned numNodes1D = NumNodes1D
static constexpr unsigned dim = ElementType::dim
static constexpr unsigned numElementNodes

Protected Attributes

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

Detailed Description

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

This is the base class for all quadrature rules.

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

Definition at line 35 of file Quadrature.h.

Constructor & Destructor Documentation

◆ Quadrature()

template<typename T, unsigned NumNodes1D, typename ElementType>
ippl::Quadrature< T, NumNodes1D, ElementType >::Quadrature ( const ElementType & ref_element)

Construct a new Quadrature object.

Parameters
ref_elementreference element to compute the quadrature nodes on

Definition at line 4 of file Quadrature.hpp.

References ref_element_m.

Referenced by ippl::GaussJacobiQuadrature< T, NumNodes1D, ElementType >::GaussJacobiQuadrature(), and ippl::MidpointQuadrature< T, NumNodes1D, ElementType >::MidpointQuadrature().

Here is the caller graph for this function:

Member Function Documentation

◆ computeNodesAndWeights()

template<typename T, unsigned NumNodes1D, typename ElementType>
virtual void ippl::Quadrature< T, NumNodes1D, ElementType >::computeNodesAndWeights ( )
pure virtual

◆ getDegree()

template<typename T, unsigned NumNodes1D, typename ElementType>
size_t ippl::Quadrature< T, NumNodes1D, ElementType >::getDegree ( ) const

Returns the degree of exactness of the quadrature rule.

Returns
unsigned - degree

Definition at line 13 of file Quadrature.hpp.

References degree_m.

◆ getIntegrationNodes1D()

template<typename T, unsigned NumNodes1D, typename ElementType>
Vector< T, NumNodes1D > ippl::Quadrature< T, NumNodes1D, ElementType >::getIntegrationNodes1D ( const T & a,
const T & b ) const

Get the quadrature nodes for one dimension. (With respect to the given domain [a, b]).

Parameters
alocal domain start
blocal domain end
Returns
Vector<T, NumNodes1D>

Definition at line 72 of file Quadrature.hpp.

Referenced by getIntegrationNodesForRefElement().

Here is the caller graph for this function:

◆ getIntegrationNodesForRefElement()

template<typename T, unsigned NumNodes1D, typename ElementType>
Vector< Vector< T, Quadrature< T, NumNodes1D, ElementType >::dim >, Quadrature< T, NumNodes1D, ElementType >::numElementNodes > ippl::Quadrature< T, NumNodes1D, ElementType >::getIntegrationNodesForRefElement ( ) const

Get the integration (quadrature) nodes for the reference element.

Returns
Vector<Vector<T, Dim>, numElementNodes>

Definition at line 47 of file Quadrature.hpp.

References getIntegrationNodes1D(), and numElementNodes.

Here is the call graph for this function:

◆ getOrder()

template<typename T, unsigned NumNodes1D, typename ElementType>
size_t ippl::Quadrature< T, NumNodes1D, ElementType >::getOrder ( ) const

Returns the order of the quadrature rule. (order = degree + 1).

Returns
unsigned - order

Definition at line 8 of file Quadrature.hpp.

References degree_m.

◆ getWeights1D()

template<typename T, unsigned NumNodes1D, typename ElementType>
Vector< T, NumNodes1D > ippl::Quadrature< T, NumNodes1D, ElementType >::getWeights1D ( const T & a,
const T & b ) const

Get the quadrature weights for one dimension. (With respect to the given domain [a, b]).

Parameters
alocal domain start
blocal domain end
Returns
Vector<T, NumNodes1D>

Definition at line 81 of file Quadrature.hpp.

References a_m, b_m, and weights_m.

Referenced by getWeightsForRefElement().

Here is the caller graph for this function:

◆ getWeightsForRefElement()

template<typename T, unsigned NumNodes1D, typename ElementType>
Vector< T, Quadrature< T, NumNodes1D, ElementType >::numElementNodes > ippl::Quadrature< T, NumNodes1D, ElementType >::getWeightsForRefElement ( ) const

Get the quadrature weights for the reference element.

Returns
Vector<T, numElementNodes>

Definition at line 19 of file Quadrature.hpp.

References getWeights1D(), and numElementNodes.

Here is the call graph for this function:

Member Data Documentation

◆ a_m

◆ b_m

◆ degree_m

template<typename T, unsigned NumNodes1D, typename ElementType>
unsigned ippl::Quadrature< T, NumNodes1D, ElementType >::degree_m
protected

◆ dim

template<typename T, unsigned NumNodes1D, typename ElementType>
unsigned ippl::Quadrature< T, NumNodes1D, ElementType >::dim = ElementType::dim
staticconstexpr

Definition at line 41 of file Quadrature.h.

◆ integration_nodes_m

template<typename T, unsigned NumNodes1D, typename ElementType>
Vector<T, NumNodes1D> ippl::Quadrature< T, NumNodes1D, ElementType >::integration_nodes_m
protected

◆ numElementNodes

template<typename T, unsigned NumNodes1D, typename ElementType>
unsigned ippl::Quadrature< T, NumNodes1D, ElementType >::numElementNodes
staticconstexpr
Initial value:

Definition at line 44 of file Quadrature.h.

Referenced by getIntegrationNodesForRefElement(), and getWeightsForRefElement().

◆ numNodes1D

template<typename T, unsigned NumNodes1D, typename ElementType>
unsigned ippl::Quadrature< T, NumNodes1D, ElementType >::numNodes1D = NumNodes1D
staticconstexpr

Definition at line 38 of file Quadrature.h.

◆ ref_element_m

template<typename T, unsigned NumNodes1D, typename ElementType>
const ElementType& ippl::Quadrature< T, NumNodes1D, ElementType >::ref_element_m
protected

Definition at line 112 of file Quadrature.h.

Referenced by Quadrature().

◆ weights_m


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