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

Defines cubature (integration) rules over Neumann boundaries for control volume method. More...

#include <Intrepid2_CubatureControlVolumeBoundary.hpp>

Inheritance diagram for Intrepid2::CubatureControlVolumeBoundary< 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.
 CubatureControlVolumeBoundary (const shards::CellTopology cellTopology, const ordinal_type sideIndex)
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 ordinal_type getAccuracy () const
 Returns dimension of the integration domain.

Protected Attributes

shards::CellTopology primaryCellTopo_
 The topology of the primary cell side.
shards::CellTopology subcvCellTopo_
 The topology of the sub-control volume.
ordinal_type degree_
 The degree of the polynomials that are integrated exactly.
ordinal_type sideIndex_
 Index of cell side.
Kokkos::View< ordinal_type **, Kokkos::HostSpace > boundarySidesHost_
Kokkos::View< ordinal_type **, Kokkos::LayoutRight, DeviceType > sideNodeMap_
Kokkos::DynRankView< pointValueType, DeviceType > sidePoints_

Detailed Description

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

Defines cubature (integration) rules over Neumann boundaries for control volume method.

Integration on Neumann boundaries for the control volume method requires integration points defined on primary cell sides. These points are not equivalent to control volume points on lower dimensional topologies and therefore require a separate class to define them.

Definition at line 39 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Member Typedef Documentation

◆ PointViewType

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

Definition at line 99 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

◆ weightViewType

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

Definition at line 100 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Constructor & Destructor Documentation

◆ CubatureControlVolumeBoundary()

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

brief Constructor.

Parameters
cellTopology[in] - The topology of the primary cell.
cellSide[in] - The index of the boundary side of the primary cell

Definition at line 23 of file Intrepid2_CubatureControlVolumeBoundaryDef.hpp.

References degree_, Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell(), primaryCellTopo_, sideIndex_, and subcvCellTopo_.

◆ ~CubatureControlVolumeBoundary()

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

Definition at line 150 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Member Function Documentation

◆ getCubature()

template<typename DT, typename PT, typename WT>
void Intrepid2::CubatureControlVolumeBoundary< 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 145 of file Intrepid2_CubatureControlVolumeBoundaryDef.hpp.

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

◆ getDimension()

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

Returns dimension of integration domain.

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

Definition at line 131 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

References primaryCellTopo_.

Referenced by getCubature().

◆ getName()

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

Returns cubature name.

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

Definition at line 139 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

◆ getNumPoints()

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

Returns the number of cubature points.

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

Definition at line 121 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

References primaryCellTopo_, and sideIndex_.

Member Data Documentation

◆ boundarySidesHost_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
Kokkos::View<ordinal_type**,Kokkos::HostSpace> Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::boundarySidesHost_
protected

Definition at line 94 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

◆ degree_

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

The degree of the polynomials that are integrated exactly.

Definition at line 87 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Referenced by CubatureControlVolumeBoundary().

◆ primaryCellTopo_

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

The topology of the primary cell side.

Definition at line 79 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

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

◆ sideIndex_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
ordinal_type Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::sideIndex_
protected

Index of cell side.

Definition at line 91 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Referenced by CubatureControlVolumeBoundary(), getCubature(), and getNumPoints().

◆ sideNodeMap_

template<typename DeviceType = void, typename pointValueType = double, typename weightValueType = double>
Kokkos::View<ordinal_type**,Kokkos::LayoutRight,DeviceType> Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::sideNodeMap_
protected

Definition at line 95 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

◆ sidePoints_

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

Definition at line 96 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

◆ subcvCellTopo_

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

The topology of the sub-control volume.

Definition at line 83 of file Intrepid2_CubatureControlVolumeBoundary.hpp.

Referenced by CubatureControlVolumeBoundary(), and getCubature().


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