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

Defines cubature (integration) rules over control volumes. More...

#include <Intrepid2_CubatureControlVolume.hpp>

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

Classes

struct  Functor
 

Public Types

typedef Cubature< DeviceType, pointValueType, weightValueType >::PointViewType PointViewType
 
typedef Cubature< DeviceType, pointValueType, weightValueType >::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

virtual void getCubature (PointViewType cubPoints, weightViewType cubWeights, PointViewType cellCoords) 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.
 
 CubatureControlVolume (const shards::CellTopology cellTopology)
 
- 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).
 
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().
 
virtual ordinal_type getAccuracy () const
 Returns dimension of the integration domain.
 

Protected Attributes

shards::CellTopology primaryCellTopo_
 The topology of the primary cell.
 
shards::CellTopology subcvCellTopo_
 The topology of the sub-control volume.
 
ordinal_type degree_
 The degree of the polynomials that are integrated exactly.
 
Kokkos::DynRankView< pointValueType, DeviceType > subcvCubaturePoints_
 
Kokkos::DynRankView< weightValueType, DeviceType > subcvCubatureWeights_
 

Detailed Description

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

Defines cubature (integration) rules over control volumes.

Each primary cell contains one sub-control volume per node and there is one integration point per sub-control volume.

Definition at line 70 of file Intrepid2_CubatureControlVolume.hpp.

Member Typedef Documentation

◆ PointViewType

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
typedef Cubature<DeviceType,pointValueType,weightValueType>::PointViewType Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::PointViewType

Definition at line 142 of file Intrepid2_CubatureControlVolume.hpp.

◆ weightViewType

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
typedef Cubature<DeviceType,pointValueType,weightValueType>::weightViewType Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::weightViewType

Definition at line 143 of file Intrepid2_CubatureControlVolume.hpp.

Constructor & Destructor Documentation

◆ CubatureControlVolume()

template<typename DT, typename PT, typename WT>
Intrepid2::CubatureControlVolume< DT, PT, WT >::CubatureControlVolume ( const shards::CellTopology cellTopology)

brief Constructor.

Parameters
cellTopology[in] - The topology of the primary cell.

Definition at line 55 of file Intrepid2_CubatureControlVolumeDef.hpp.

References Intrepid2::DefaultCubatureFactory::create(), degree_, primaryCellTopo_, and subcvCellTopo_.

◆ ~CubatureControlVolume()

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::~CubatureControlVolume ( )
inlinevirtual

Definition at line 188 of file Intrepid2_CubatureControlVolume.hpp.

Member Function Documentation

◆ getCubature()

template<typename DT, typename PT, typename WT>
void Intrepid2::CubatureControlVolume< DT, PT, WT >::getCubature ( PointViewType cubPoints,
weightViewType cubWeights,
PointViewType cellCoords ) const
overridevirtual

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.
cellCoords[in] - Array of cell coordinates

Definition at line 92 of file Intrepid2_CubatureControlVolumeDef.hpp.

References getDimension(), Intrepid2::CellTools< DeviceType >::getSubcvCoords(), primaryCellTopo_, Intrepid2::CellTools< DeviceType >::setJacobian(), Intrepid2::CellTools< DeviceType >::setJacobianDet(), and subcvCellTopo_.

◆ getDimension()

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual ordinal_type Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::getDimension ( ) const
inlineoverridevirtual

Returns dimension of integration domain.

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

Definition at line 172 of file Intrepid2_CubatureControlVolume.hpp.

References primaryCellTopo_.

Referenced by getCubature().

◆ getName()

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

Returns cubature name.

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

Definition at line 180 of file Intrepid2_CubatureControlVolume.hpp.

◆ getNumPoints()

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
virtual ordinal_type Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::getNumPoints ( ) const
inlineoverridevirtual

Returns the number of cubature points.

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

Definition at line 164 of file Intrepid2_CubatureControlVolume.hpp.

References primaryCellTopo_.

Member Data Documentation

◆ degree_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
ordinal_type Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::degree_
protected

The degree of the polynomials that are integrated exactly.

Definition at line 135 of file Intrepid2_CubatureControlVolume.hpp.

Referenced by CubatureControlVolume().

◆ primaryCellTopo_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
shards::CellTopology Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::primaryCellTopo_
protected

The topology of the primary cell.

Definition at line 127 of file Intrepid2_CubatureControlVolume.hpp.

Referenced by CubatureControlVolume(), getCubature(), getDimension(), and getNumPoints().

◆ subcvCellTopo_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
shards::CellTopology Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::subcvCellTopo_
protected

The topology of the sub-control volume.

Definition at line 131 of file Intrepid2_CubatureControlVolume.hpp.

Referenced by CubatureControlVolume(), and getCubature().

◆ subcvCubaturePoints_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
Kokkos::DynRankView<pointValueType, DeviceType> Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::subcvCubaturePoints_
protected

Definition at line 138 of file Intrepid2_CubatureControlVolume.hpp.

◆ subcvCubatureWeights_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
Kokkos::DynRankView<weightValueType,DeviceType> Intrepid2::CubatureControlVolume< DeviceType, pointValueType, weightValueType >::subcvCubatureWeights_
protected

Definition at line 139 of file Intrepid2_CubatureControlVolume.hpp.


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