GEOS
Public Types | Public Member Functions | List of all members
geos::BoundaryStencilWrapper Class Reference

#include <BoundaryStencil.hpp>

Inheritance diagram for geos::BoundaryStencilWrapper:
Inheritance graph
[legend]

Public Types

template<typename VIEWTYPE >
using CoefficientAccessor = ElementRegionManager::ElementViewConst< VIEWTYPE >
 Coefficient view accessory type.
 
- Public Types inherited from geos::StencilTraits< CONTAINER, MAX_NUM_POINTS_IN_FLUX, MAX_STENCIL_SIZE, MAX_NUM_CONNECTIONS >
using IndexContainerType = CONTAINER< localIndex >
 The array type that will be used to store the indices of the stencil contributors.
 
using IndexContainerViewConstType = LvArray::typeManipulation::NestedViewTypeConst< IndexContainerType >
 The array view to const type for the stencil indices.
 
using WeightContainerType = CONTAINER< real64 >
 The array type that is used to store the weights of the stencil contributors.
 
using WeightContainerViewConstType = LvArray::typeManipulation::NestedViewTypeConst< WeightContainerType >
 The array view to const type for the stencil weights.
 
using WeightContainerViewType = LvArray::typeManipulation::NestedViewType< WeightContainerType >
 The array view to type for the stencil weights.
 

Public Member Functions

 BoundaryStencilWrapper (IndexContainerType const &elementRegionIndices, IndexContainerType const &elementSubRegionIndices, IndexContainerType const &elementIndices, WeightContainerType const &weights, arrayView2d< real64, nodes::REFERENCE_POSITION_USD > const &faceNormal, arrayView2d< real64, nodes::REFERENCE_POSITION_USD > const &cellToFaceVec, arrayView1d< real64 > const &weightMultiplier)
 Constructor. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex const iconn, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient, real64 &weight, real64(&dWeight_dCoef)[3]) const
 Compute weights and derivatives w.r.t to the coefficient. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex size () const
 Give the number of stencil entries. More...
 
GEOS_HOST_DEVICE constexpr GEOS_FORCE_INLINE localIndex stencilSize (localIndex const index) const
 Give the number of points in a stencil entry. More...
 
GEOS_HOST_DEVICE constexpr GEOS_FORCE_INLINE localIndex numPointsInFlux (localIndex const index) const
 Give the number of points between which the flux is. More...
 
- Public Member Functions inherited from geos::StencilWrapperBase< TwoPointStencilTraits >
 StencilWrapperBase (typename TRAITS::IndexContainerType const &elementRegionIndices, typename TRAITS::IndexContainerType const &elementSubRegionIndices, typename TRAITS::IndexContainerType const &elementIndices, typename TRAITS::WeightContainerType const &weights)
 Constructor. More...
 
TRAITS::IndexContainerViewConstType getElementRegionIndices () const
 Const access to the element regions indices. More...
 
TRAITS::IndexContainerViewConstType getElementSubRegionIndices () const
 Const access to the element subregions indices. More...
 
TRAITS::IndexContainerViewConstType getElementIndices () const
 Const access to the element indices. More...
 
TRAITS::WeightContainerViewConstType getWeights () const
 Const access to the stencil weights. More...
 

Additional Inherited Members

- Static Public Attributes inherited from geos::StencilTraits< CONTAINER, MAX_NUM_POINTS_IN_FLUX, MAX_STENCIL_SIZE, MAX_NUM_CONNECTIONS >
static constexpr localIndex maxNumPointsInFlux = MAX_NUM_POINTS_IN_FLUX
 Maximum number of points the flux.
 
static constexpr localIndex maxStencilSize = MAX_STENCIL_SIZE
 Maximum number of points in a stencil.
 
static constexpr localIndex maxNumConnections = MAX_NUM_CONNECTIONS
 Maximum number of connections in a stencil.
 
- Protected Attributes inherited from geos::StencilWrapperBase< TwoPointStencilTraits >
TRAITS::IndexContainerViewConstType m_elementRegionIndices
 The container for the element region indices for each point in each stencil.
 
TRAITS::IndexContainerViewConstType m_elementSubRegionIndices
 The container for the element sub region indices for each point in each stencil.
 
TRAITS::IndexContainerViewConstType m_elementIndices
 The container for the element indices for each point in each stencil.
 
TRAITS::WeightContainerViewType m_weights
 The container for the weights for each point in each stencil.
 

Detailed Description

Provides access to the boundary stencil that may be called from a kernel function.

Definition at line 31 of file BoundaryStencil.hpp.

Constructor & Destructor Documentation

◆ BoundaryStencilWrapper()

geos::BoundaryStencilWrapper::BoundaryStencilWrapper ( IndexContainerType const &  elementRegionIndices,
IndexContainerType const &  elementSubRegionIndices,
IndexContainerType const &  elementIndices,
WeightContainerType const &  weights,
arrayView2d< real64, nodes::REFERENCE_POSITION_USD > const &  faceNormal,
arrayView2d< real64, nodes::REFERENCE_POSITION_USD > const &  cellToFaceVec,
arrayView1d< real64 > const &  weightMultiplier 
)

Constructor.

Parameters
elementRegionIndicesThe container for the element region indices for each point in each stencil
elementSubRegionIndicesThe container for the element sub region indices for each point in each stencil
elementIndicesThe container for the element indices for each point in each stencil
weightsThe container for the weights for each point in each stencil
faceNormalFace normal vector
cellToFaceVecCell center to face center vector
weightMultiplierWeight multiplier

Member Function Documentation

◆ computeWeights()

GEOS_HOST_DEVICE void geos::BoundaryStencilWrapper::computeWeights ( localIndex const  iconn,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient,
real64 weight,
real64(&)  dWeight_dCoef[3] 
) const
inline

Compute weights and derivatives w.r.t to the coefficient.

Parameters
[in]iconnconnection index
[in]coefficientview accessor to the coefficient used to compute the weights
[out]weightview weights
[out]dWeight_dCoefderivative of the weights w.r.t to the coefficient

Definition at line 189 of file BoundaryStencil.hpp.

◆ numPointsInFlux()

GEOS_HOST_DEVICE constexpr GEOS_FORCE_INLINE localIndex geos::BoundaryStencilWrapper::numPointsInFlux ( localIndex const  index) const
inlineconstexpr

Give the number of points between which the flux is.

Parameters
[in]indexof the stencil entry for which to query the size
Returns
the number of points.

Definition at line 99 of file BoundaryStencil.hpp.

◆ size()

GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex geos::BoundaryStencilWrapper::size ( ) const
inline

Give the number of stencil entries.

Returns
The number of stencil entries

Definition at line 76 of file BoundaryStencil.hpp.

◆ stencilSize()

GEOS_HOST_DEVICE constexpr GEOS_FORCE_INLINE localIndex geos::BoundaryStencilWrapper::stencilSize ( localIndex const  index) const
inlineconstexpr

Give the number of points in a stencil entry.

Parameters
[in]indexof the stencil entry for which to query the size
Returns
the size of a stencil entry

Definition at line 86 of file BoundaryStencil.hpp.


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