Intrepid2
|
Defines the base class for cubature (integration) rules in Intrepid. More...
#include <Intrepid2_Cubature.hpp>
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. | |
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 91 of file Intrepid2_Cubature.hpp.
|
inlinevirtual |
Returns a points container appropriate for passing to getCubature().
Reimplemented in Intrepid2::CubatureTensorPyr< DeviceType, pointValueType, weightValueType >, and Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.
Definition at line 106 of file Intrepid2_Cubature.hpp.
References Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getDimension(), and Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getNumPoints().
|
inlinevirtual |
Returns a weight container appropriate for passing to getCubature().
Reimplemented in Intrepid2::CubatureTensorPyr< DeviceType, pointValueType, weightValueType >, and Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.
Definition at line 119 of file Intrepid2_Cubature.hpp.
References Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getNumPoints().
|
inlinevirtual |
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
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 137 of file Intrepid2_Cubature.hpp.
Referenced by Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >::getCubature().
|
inlinevirtual |
Returns cubature points and weights on physical cells (return arrays must be pre-sized/pre-allocated).
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 152 of file Intrepid2_Cubature.hpp.
|
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().
cubPoints | [out] - TensorPoints structure containing the cubature points. |
cubWeights | [out] - TensorData structure containing cubature weights. |
Reimplemented in Intrepid2::CubatureTensorPyr< DeviceType, pointValueType, weightValueType >, and Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >.
Definition at line 166 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().