|
Intrepid2
|
Defines direct cubature (integration) rules in Intrepid. More...
#include <Intrepid2_CubatureDirect.hpp>
Classes | |
| struct | CubatureData |
| Cubature data is defined on exec space and deep-copied when an object is created. More... | |
| struct | CubatureDataStatic |
| Cubature data is defined on the host space and is static. More... | |
Public Types | |
| typedef Cubature< DeviceType, pointValueType, weightValueType >::PointViewType | PointViewType |
| typedef Cubature< DeviceType, pointValueType, weightValueType >::weightViewType | weightViewType |
Public Types inherited from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType > | |
| 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 void | getCubature (PointViewType cubPoints, weightViewType cubWeights) const override |
| Returns cubature points and weights (return arrays must be pre-sized/pre-allocated). | |
| virtual ordinal_type | getNumPoints () const override |
| Returns the number of cubature points. | |
| virtual ordinal_type | getDimension () const override |
| Returns dimension of integration domain. | |
| virtual const char * | getName () const override |
| Returns cubature name. | |
| virtual ordinal_type | getAccuracy () const override |
| Returns max. degree of polynomials that are integrated exactly. The return vector has size 1. | |
| CubatureDirect (const CubatureDirect &b) | |
| CubatureDirect & | operator= (const CubatureDirect &b) |
| CubatureDirect (const ordinal_type degree, const ordinal_type dimension) | |
Public Member Functions inherited from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType > | |
| 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, PointViewType) const |
| Returns cubature points and weights on physical cells (return arrays must be pre-sized/pre-allocated). | |
| 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(). | |
Protected Member Functions | |
| template<typename cubPointValueType , class ... cubPointProperties, typename cubWeightValueType , class ... cubWeightProperties> | |
| void | getCubatureFromData (Kokkos::DynRankView< cubPointValueType, cubPointProperties... > cubPoints, Kokkos::DynRankView< cubWeightValueType, cubWeightProperties... > cubWeights, const CubatureData cubData) const |
| Returns cubature points and weights. | |
Protected Attributes | |
| 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. | |
Defines direct 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 pyramid cells.
For quad, hex, and triprism rules, see tensor-product rules defined in the class CubatureTensor, and its derived classes.
Cubature rules for simplices and the pyramid are stored in the cubature_data_ array.
All templates are defined on a reference cell and can be mapped to physical space cells by the methods available in the MultiCell class.
Definition at line 43 of file Intrepid2_CubatureDirect.hpp.
| typedef Cubature<DeviceType,pointValueType,weightValueType>::PointViewType Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::PointViewType |
Definition at line 148 of file Intrepid2_CubatureDirect.hpp.
| typedef Cubature<DeviceType,pointValueType,weightValueType>::weightViewType Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::weightViewType |
Definition at line 149 of file Intrepid2_CubatureDirect.hpp.
|
inline |
Definition at line 193 of file Intrepid2_CubatureDirect.hpp.
|
inline |
Definition at line 198 of file Intrepid2_CubatureDirect.hpp.
|
inline |
Definition at line 210 of file Intrepid2_CubatureDirect.hpp.
|
inlineoverridevirtual |
Returns max. degree of polynomials that are integrated exactly. The return vector has size 1.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 189 of file Intrepid2_CubatureDirect.hpp.
References Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::degree_.
|
inlineoverridevirtual |
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 from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 155 of file Intrepid2_CubatureDirect.hpp.
References Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getCubatureFromData().
Referenced by Intrepid2::Basis_HCURL_TET_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HCURL_TET_In_FEM(), Intrepid2::Basis_HCURL_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HCURL_TRI_In_FEM(), Intrepid2::Basis_HDIV_TET_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HDIV_TET_In_FEM(), Intrepid2::Basis_HDIV_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HDIV_TRI_In_FEM(), and Intrepid2::CubatureTensor< DeviceType, pointValueType, weightValueType >::getCubature().
|
inlineprotected |
Returns cubature points and weights.
| cubPoints | [out] - Array containing the cubature points. |
| cubWeights | [out] - Array of corresponding cubature weights. |
| cubData | [in] - Cubuture data object |
Definition at line 106 of file Intrepid2_CubatureDirect.hpp.
References Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getDimension(), Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getNumPoints(), Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::CubatureData::points_, and Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::CubatureData::weights_.
Referenced by Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getCubature().
|
inlineoverridevirtual |
Returns dimension of integration domain.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 172 of file Intrepid2_CubatureDirect.hpp.
References Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::dimension_.
Referenced by Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getCubatureFromData().
|
inlineoverridevirtual |
Returns cubature name.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Reimplemented in 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 >, and Intrepid2::CubaturePolylib< DeviceType, pointValueType, weightValueType >.
Definition at line 180 of file Intrepid2_CubatureDirect.hpp.
|
inlineoverridevirtual |
Returns the number of cubature points.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 164 of file Intrepid2_CubatureDirect.hpp.
References Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::cubatureData_, and Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::CubatureData::numPoints_.
Referenced by Intrepid2::Basis_HCURL_TET_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HCURL_TET_In_FEM(), Intrepid2::Basis_HCURL_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HCURL_TRI_In_FEM(), Intrepid2::Basis_HDIV_TET_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HDIV_TET_In_FEM(), Intrepid2::Basis_HDIV_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::Basis_HDIV_TRI_In_FEM(), and Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getCubatureFromData().
|
inline |
Definition at line 203 of file Intrepid2_CubatureDirect.hpp.
|
protected |
Cubature data on device.
Definition at line 95 of file Intrepid2_CubatureDirect.hpp.
Referenced by Intrepid2::CubatureDirectLineGauss< DeviceType, pointValueType, weightValueType >::CubatureDirectLineGauss(), Intrepid2::CubatureDirectLineGaussJacobi20< DeviceType, pointValueType, weightValueType >::CubatureDirectLineGaussJacobi20(), Intrepid2::CubatureDirectTetDefault< DeviceType, pointValueType, weightValueType >::CubatureDirectTetDefault(), Intrepid2::CubatureDirectTetSymmetric< DeviceType, pointValueType, weightValueType >::CubatureDirectTetSymmetric(), Intrepid2::CubatureDirectTriDefault< DeviceType, pointValueType, weightValueType >::CubatureDirectTriDefault(), Intrepid2::CubatureDirectTriSymmetric< DeviceType, pointValueType, weightValueType >::CubatureDirectTriSymmetric(), and Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getNumPoints().
|
protected |
The degree of polynomials that are integrated exactly by this cubature rule.
Definition at line 87 of file Intrepid2_CubatureDirect.hpp.
Referenced by Intrepid2::CubatureDirectLineGauss< DeviceType, pointValueType, weightValueType >::CubatureDirectLineGauss(), Intrepid2::CubatureDirectLineGaussJacobi20< DeviceType, pointValueType, weightValueType >::CubatureDirectLineGaussJacobi20(), Intrepid2::CubatureDirectTetDefault< DeviceType, pointValueType, weightValueType >::CubatureDirectTetDefault(), Intrepid2::CubatureDirectTetSymmetric< DeviceType, pointValueType, weightValueType >::CubatureDirectTetSymmetric(), Intrepid2::CubatureDirectTriDefault< DeviceType, pointValueType, weightValueType >::CubatureDirectTriDefault(), Intrepid2::CubatureDirectTriSymmetric< DeviceType, pointValueType, weightValueType >::CubatureDirectTriSymmetric(), and Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getAccuracy().
|
protected |
Dimension of integration domain.
Definition at line 91 of file Intrepid2_CubatureDirect.hpp.
Referenced by Intrepid2::CubatureDirect< DeviceType, pointValueType, weightValueType >::getDimension().