Intrepid2
|
Defines cubature (integration) rules over Neumann boundaries for control volume method. More...
#include <Intrepid2_CubatureControlVolumeBoundary.hpp>
Classes | |
struct | Functor |
Public Types | |
typedef Cubature< DeviceType, pointValueType, weightValueType >::PointViewType | PointViewType |
typedef Cubature< DeviceType, pointValueType, weightValueType >::weightViewType | weightViewType |
![]() | |
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, 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) | |
![]() | |
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 | 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. | |
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_ |
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 72 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
typedef Cubature<DeviceType,pointValueType,weightValueType>::PointViewType Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::PointViewType |
Definition at line 132 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
typedef Cubature<DeviceType,pointValueType,weightValueType>::weightViewType Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::weightViewType |
Definition at line 133 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
Intrepid2::CubatureControlVolumeBoundary< DT, PT, WT >::CubatureControlVolumeBoundary | ( | const shards::CellTopology | cellTopology, |
const ordinal_type | sideIndex | ||
) |
brief Constructor.
cellTopology | [in] - The topology of the primary cell. |
cellSide | [in] - The index of the boundary side of the primary cell |
Definition at line 56 of file Intrepid2_CubatureControlVolumeBoundaryDef.hpp.
References Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell().
|
inlinevirtual |
Definition at line 183 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
overridevirtual |
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. |
cellCoords | [in] - Array of cell coordinates |
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 178 of file Intrepid2_CubatureControlVolumeBoundaryDef.hpp.
References Intrepid2::FunctionSpaceTools< DeviceType >::computeEdgeMeasure(), Intrepid2::FunctionSpaceTools< DeviceType >::computeFaceMeasure(), Intrepid2::CellTools< DeviceType >::getSubcvCoords(), Intrepid2::CellTools< DeviceType >::setJacobian(), and Intrepid2::CellTools< DeviceType >::setJacobianDet().
|
inlineoverridevirtual |
Returns dimension of integration domain.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 164 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
References Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::primaryCellTopo_.
|
inlineoverridevirtual |
Returns cubature name.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 172 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
inlineoverridevirtual |
Returns the number of cubature points.
Reimplemented from Intrepid2::Cubature< DeviceType, pointValueType, weightValueType >.
Definition at line 154 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
References Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::primaryCellTopo_, and Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::sideIndex_.
|
protected |
Definition at line 127 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
protected |
The degree of the polynomials that are integrated exactly.
Definition at line 120 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
protected |
The topology of the primary cell side.
Definition at line 112 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
Referenced by Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::getDimension(), and Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::getNumPoints().
|
protected |
Index of cell side.
Definition at line 124 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
Referenced by Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::getNumPoints().
|
protected |
Definition at line 128 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
protected |
Definition at line 129 of file Intrepid2_CubatureControlVolumeBoundary.hpp.
|
protected |
The topology of the sub-control volume.
Definition at line 116 of file Intrepid2_CubatureControlVolumeBoundary.hpp.