GEOSX
Public Types | Public Member Functions | List of all members
geos::FaceElementToCellStencil Class Referencefinal

#include <FaceElementToCellStencil.hpp>

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

Public Types

using KernelWrapper = FaceElementToCellStencilWrapper
 Type of kernel wrapper for in-kernel update.
 
- 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

 FaceElementToCellStencil ()
 Default constructor.
 
virtual void move (LvArray::MemorySpace const space) override
 Move the data arrays associated with the stencil to a specified memory space. More...
 
virtual void add (localIndex const numPts, localIndex const *const elementRegionIndices, localIndex const *const elementSubRegionIndices, localIndex const *const elementIndices, real64 const *const weights, localIndex const connectorIndex) override
 Add an entry to the stencil. More...
 
void addVectors (real64 const &transMultiplier, real64 const (&faceNormal)[3], real64 const (&cellToFaceVec)[3])
 Adds the vectors need to compute weights needed in kernels. More...
 
KernelWrapper createKernelWrapper () const
 Create an update kernel wrapper. More...
 
virtual localIndex size () const override
 Return the stencil size. More...
 
virtual void reserve (localIndex const size) override
 Reserve the size of the stencil. More...
 
constexpr localIndex stencilSize (localIndex index) const
 Give the number of points in a stencil entry. More...
 
- Public Member Functions inherited from geos::StencilBase< TwoPointStencilTraits, FaceElementToCellStencil >
virtual ~StencilBase ()=default
 Destructor.
 
virtual bool zero (localIndex const connectorIndex)
 Zero weights for a stencil entry. More...
 
virtual localIndex size () const=0
 Give the number of stencil entries. More...
 
void setName (string const &name)
 Set the name used in data movement logging callbacks. More...
 
TwoPointStencilTraits ::IndexContainerViewConstType getElementRegionIndices () const
 Const access to the element regions indices. More...
 
TwoPointStencilTraits ::IndexContainerViewConstType getElementSubRegionIndices () const
 Const access to the element subregions indices. More...
 
TwoPointStencilTraits ::IndexContainerViewConstType getElementIndices () const
 Const access to the element indices. More...
 
TwoPointStencilTraits ::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::StencilBase< TwoPointStencilTraits, FaceElementToCellStencil >
TwoPointStencilTraits ::IndexContainerType m_elementRegionIndices
 The container for the element region indices for each point in each stencil.
 
TwoPointStencilTraits ::IndexContainerType m_elementSubRegionIndices
 The container for the element sub region indices for each point in each stencil.
 
TwoPointStencilTraits ::IndexContainerType m_elementIndices
 The container for the element indices for each point in each stencil.
 
TwoPointStencilTraits ::WeightContainerType m_weights
 The container for the weights for each point in each stencil.
 
unordered_map< localIndex, localIndexm_connectorIndices
 The map that provides the stencil index given the index of the underlying connector object.
 

Detailed Description

Provides management of the interior stencil points for a face elements when using Two-Point flux approximation.

Definition at line 185 of file FaceElementToCellStencil.hpp.

Member Function Documentation

◆ add()

virtual void geos::FaceElementToCellStencil::add ( localIndex const  numPts,
localIndex const *const  elementRegionIndices,
localIndex const *const  elementSubRegionIndices,
localIndex const *const  elementIndices,
real64 const *const  weights,
localIndex const  connectorIndex 
)
overridevirtual

Add an entry to the stencil.

Parameters
[in]numPtsThe number of points in the stencil entry
[in]elementRegionIndicesThe element region indices for each point in the stencil entry
[in]elementSubRegionIndicesThe element sub-region indices for each point in the stencil entry
[in]elementIndicesThe element indices for each point in the stencil entry
[in]weightsThe weights each point in the stencil entry
[in]connectorIndexThe index of the connector element that the stencil acts across

Implements geos::StencilBase< TwoPointStencilTraits, FaceElementToCellStencil >.

◆ addVectors()

void geos::FaceElementToCellStencil::addVectors ( real64 const &  transMultiplier,
real64 const (&)  faceNormal[3],
real64 const (&)  cellToFaceVec[3] 
)

Adds the vectors need to compute weights needed in kernels.

Parameters
transMultipliertransmissibility multiplier
faceNormalface normal vector
cellToFaceVeccell to face vector

◆ createKernelWrapper()

KernelWrapper geos::FaceElementToCellStencil::createKernelWrapper ( ) const

Create an update kernel wrapper.

Returns
the wrapper

◆ move()

virtual void geos::FaceElementToCellStencil::move ( LvArray::MemorySpace const  space)
overridevirtual

Move the data arrays associated with the stencil to a specified memory space.

Parameters
spaceThe target memory space.
Note
The existence of this function indicates we need to redesign the stencil classes.

Reimplemented from geos::StencilBase< TwoPointStencilTraits, FaceElementToCellStencil >.

◆ reserve()

virtual void geos::FaceElementToCellStencil::reserve ( localIndex const  size)
overridevirtual

Reserve the size of the stencil.

Parameters
[in]sizethe size of the stencil to reserve

Reimplemented from geos::StencilBase< TwoPointStencilTraits, FaceElementToCellStencil >.

◆ size()

virtual localIndex geos::FaceElementToCellStencil::size ( ) const
inlineoverridevirtual

Return the stencil size.

Returns
the stencil size

Definition at line 226 of file FaceElementToCellStencil.hpp.

◆ stencilSize()

constexpr localIndex geos::FaceElementToCellStencil::stencilSize ( localIndex  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 240 of file FaceElementToCellStencil.hpp.


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