Intrepid2
Public Types | Public Member Functions | List of all members
Intrepid2::Cubature< DeviceType, pointValueType, weightValueType > Class Template Reference

Defines the base class for cubature (integration) rules in Intrepid. More...

#include <Intrepid2_Cubature.hpp>

Inheritance diagram for Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >:
Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureControlVolumeSide< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectLineGauss< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectLineGaussJacobi20< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectTetDefault< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectTetSymmetric< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectTriDefault< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureDirectTriSymmetric< DeviceType, pointValueType, weightValueType > Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType > Intrepid2::CubatureTensorPyr< DeviceType, pointValueType, weightValueType >

Public Types

using ExecSpaceType = typename DeviceType::execution_space
 
using PointViewType = Kokkos::DynRankView< pointValueType, Kokkos::LayoutStride, DeviceType >
 
using weightViewType = Kokkos::DynRankView< weightValueType, Kokkos::LayoutStride, DeviceType >
 
using PointViewTypeAllocatable = Kokkos::DynRankView< pointValueType, DeviceType >
 
using WeightViewTypeAllocatable = Kokkos::DynRankView< weightValueType, DeviceType >
 
using TensorPointDataType = TensorPoints< pointValueType, DeviceType >
 
using TensorWeightDataType = TensorData< weightValueType, DeviceType >
 

Public Member Functions

virtual TensorPointDataType allocateCubaturePoints () const
 Returns a points container appropriate for passing to getCubature(). More...
 
virtual TensorWeightDataType allocateCubatureWeights () const
 Returns a weight container appropriate for passing to getCubature(). More...
 
virtual void getCubature (PointViewType, weightViewType) const
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated). More...
 
virtual void getCubature (PointViewType, weightViewType, PointViewType) const
 Returns cubature points and weights on physical cells (return arrays must be pre-sized/pre-allocated). More...
 
virtual void getCubature (const TensorPointDataType &tensorCubPoints, const TensorWeightDataType &tensorCubWeights) const
 Returns tensor cubature points and weights. For non-tensor cubatures, the tensor structures are trivial, thin wrappers around the data returned by getCubature(). The provided containers should be pre-allocated through calls to allocateCubaturePoints() and allocateCubatureWeights(). More...
 
virtual ordinal_type getNumPoints () const
 Returns the number of cubature points.
 
virtual ordinal_type getDimension () const
 Returns dimension of the integration domain.
 
virtual ordinal_type getAccuracy () const
 Returns dimension of the integration domain.
 
virtual const char * getName () const
 Returns cubature name.
 

Detailed Description

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

Defines the base class for cubature (integration) rules in Intrepid.

Cubature template (rule) consists of cubature points and cubature weights. Intrepid provides a small collection of frequently used cubature rule templates for FEM reconstructions on simplices (edge, tri, tet) and the pyramid cell, defined in the derived classes of CubatureDirect.

For quad, hex, and triprism cells cubature templates are tensor products of CubatureDirect templates. The tensor-product cubatures are defined in the derived class CubatureTensor.

Definition at line 124 of file Intrepid2_Cubature.hpp.

Member Function Documentation

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual TensorPointDataType Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::allocateCubaturePoints ( ) const
inlinevirtual

Returns a points container appropriate for passing to getCubature().

Returns
cubPoints - Data structure sized for the cubature points.

Reimplemented in Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.

Definition at line 139 of file Intrepid2_Cubature.hpp.

References Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getDimension(), and Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getNumPoints().

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual TensorWeightDataType Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::allocateCubatureWeights ( ) const
inlinevirtual

Returns a weight container appropriate for passing to getCubature().

Returns
cubWeights - Data structure sized for the cubature weights.

Reimplemented in Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.

Definition at line 152 of file Intrepid2_Cubature.hpp.

References Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getNumPoints().

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual void Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature ( PointViewType  ,
weightViewType   
) const
inlinevirtual

Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).

Parameters
cubPoints[out] - Array containing the cubature points.
cubWeights[out] - Array of corresponding cubature weights.

Reimplemented in Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >, Intrepid2::CubatureTensorPyr< DeviceType, pointValueType, weightValueType >, and Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.

Definition at line 170 of file Intrepid2_Cubature.hpp.

Referenced by Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature().

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual void Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature ( PointViewType  ,
weightViewType  ,
PointViewType   
) const
inlinevirtual

Returns cubature points and weights on physical cells (return arrays must be pre-sized/pre-allocated).

Parameters
cubPoints[out] - Array containing the cubature points.
cubWeights[out] - Array of corresponding cubature weights.
cellVertices[in] - Array containing the cell vertices.

Reimplemented in Intrepid2::CubatureControlVolumeSide< DeviceType, pointValueType, weightValueType >, Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >, and Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >.

Definition at line 185 of file Intrepid2_Cubature.hpp.

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual void Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature ( const TensorPointDataType tensorCubPoints,
const TensorWeightDataType tensorCubWeights 
) const
inlinevirtual

Returns tensor cubature points and weights. For non-tensor cubatures, the tensor structures are trivial, thin wrappers around the data returned by getCubature(). The provided containers should be pre-allocated through calls to allocateCubaturePoints() and allocateCubatureWeights().

Parameters
cubPoints[out] - TensorPoints structure containing the cubature points.
cubWeights[out] - TensorData structure containing cubature weights.

Reimplemented in Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.

Definition at line 199 of file Intrepid2_Cubature.hpp.

References Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature(), Intrepid2::TensorData< Scalar, DeviceType >::getTensorComponent(), Intrepid2::TensorPoints< PointScalar, DeviceType >::getTensorComponent(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingView(), Intrepid2::TensorPoints< PointScalar, DeviceType >::numTensorComponents(), and Intrepid2::TensorData< Scalar, DeviceType >::numTensorComponents().


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