Intrepid2
Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType > Class Template Reference

Utilizes cubature (integration) rules contained in the library Polylib (Spencer Sherwin, Aeronautics, Imperial College London) within Intrepid. More...

#include <Intrepid2_CubaturePolylib.hpp>

Inheritance diagram for Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >:
Intrepid2::CubatureDirect< void, double, double > Intrepid2::Cubature< void, double, double >

Public Types

typedef CubatureDirect< DeviceType, pointValueType, weightValueType >::PointViewType PointViewType
typedef CubatureDirect< DeviceType, pointValueType, weightValueType >::weightViewType weightViewType
Public Types inherited from Intrepid2::CubatureDirect< void, double, double >
typedef Cubature< void, double, double >::PointViewType PointViewType
typedef Cubature< void, double, double >::weightViewType weightViewType
Public Types inherited from Intrepid2::Cubature< void, double, double >
using ExecSpaceType
using PointViewType
using weightViewType
using PointViewTypeAllocatable
using WeightViewTypeAllocatable
using TensorPointDataType
using TensorWeightDataType

Public Member Functions

 CubaturePolylib (const ordinal_type degree, const EPolyType polytype=POLYTYPE_GAUSS, const double alpha=0.0, const double beta=0.0)
virtual const char * getName () const override
 Returns cubature name.
Public Member Functions inherited from Intrepid2::CubatureDirect< void, double, double >
virtual void getCubature (PointViewType cubPoints, weightViewType cubWeights) const override
virtual ordinal_type getNumPoints () const override
 Returns the number of cubature points.
virtual ordinal_type getDimension () const override
 Returns dimension of integration domain.
virtual ordinal_type getAccuracy () const override
 Returns max. degree of polynomials that are integrated exactly. The return vector has size 1.
CubatureDirect & operator= (const CubatureDirect &b)
Public Member Functions inherited from Intrepid2::Cubature< void, double, double >
virtual TensorPointDataType allocateCubaturePoints () const
 Returns a points container appropriate for passing to getCubature().
virtual TensorWeightDataType allocateCubatureWeights () const
 Returns a weight container appropriate for passing to getCubature().
virtual void getCubature (PointViewType, weightViewType) const
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).

Additional Inherited Members

Protected Member Functions inherited from Intrepid2::CubatureDirect< void, double, double >
void getCubatureFromData (Kokkos::DynRankView< cubPointValueType, cubPointProperties... > cubPoints, Kokkos::DynRankView< cubWeightValueType, cubWeightProperties... > cubWeights, const CubatureData cubData) const
 Returns cubature points and weights.
Protected Attributes inherited from Intrepid2::CubatureDirect< void, double, double >
ordinal_type degree_
 The degree of polynomials that are integrated exactly by this cubature rule.
ordinal_type dimension_
 Dimension of integration domain.
CubatureData cubatureData_
 Cubature data on device.

Detailed Description

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
class Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >

Utilizes cubature (integration) rules contained in the library Polylib (Spencer Sherwin, Aeronautics, Imperial College London) within Intrepid.

They are based on zeros of Jacobi polynomials, e.g. Legendre (alpha=beta=0, default), Chebyshev (alpha=beta=-0.5), etc. They are given on the interval [-1,1] and are optimal with respect to the following requirements, yielding 4 subclasses:

  • Gauss - no restrictions (all integration points are contained in the open interval (-1,1))
  • Gauss-Radau-Left - left-most integration point is fixed at -1
  • Gauss-Radau-Right - right-most integration point is fixed at +1
  • Gauss-Lobatto - left-most and right-most integration points are fixed at -1 and +1, respectively

Definition at line 43 of file Intrepid2_CubaturePolylib.hpp.

Member Typedef Documentation

◆ PointViewType

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
typedef CubatureDirect<DeviceType,pointValueType,weightValueType>::PointViewType Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >::PointViewType

Definition at line 46 of file Intrepid2_CubaturePolylib.hpp.

◆ weightViewType

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
typedef CubatureDirect<DeviceType,pointValueType,weightValueType>::weightViewType Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >::weightViewType

Definition at line 47 of file Intrepid2_CubaturePolylib.hpp.

Constructor & Destructor Documentation

◆ CubaturePolylib()

template<typename DT, typename PT, typename WT>
Intrepid2::CubaturePolylib< DT, PT, WT >::CubaturePolylib ( const ordinal_type degree,
const EPolyType polytype = POLYTYPE_GAUSS,
const double alpha = 0.0,
const double beta = 0.0 )

Definition at line 19 of file Intrepid2_CubaturePolylibDef.hpp.

Member Function Documentation

◆ getName()

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual const char * Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >::getName ( ) const
inlineoverridevirtual

Returns cubature name.

Reimplemented from Intrepid2::CubatureDirect< void, double, double >.

Definition at line 58 of file Intrepid2_CubaturePolylib.hpp.


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