GEOSX
Public Types | Public Member Functions | Static Public Attributes | List of all members
geos::SurfaceElementStencilWrapper Class Reference

Provides access to the SurfaceElementStencil that may be called from a kernel function. More...

#include <SurfaceElementStencil.hpp>

Inheritance diagram for geos::SurfaceElementStencilWrapper:
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

 SurfaceElementStencilWrapper (IndexContainerType const &elementRegionIndices, IndexContainerType const &elementSubRegionIndices, IndexContainerType const &elementIndices, WeightContainerType const &weights, ArrayOfArrays< R1Tensor > const &cellCenterToEdgeCenters, real64 const meanPermCoefficient)
 Constructor. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex size () const
 Give the number of stencil entries. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex stencilSize (localIndex index) const
 Give the number of stencil entries for the provided index. More...
 
GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex numPointsInFlux (localIndex index) const
 Give the number of points between which the flux is. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex iconn, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient, CoefficientAccessor< arrayView3d< real64 const > > const &dCoeff_dVar, real64(&weight)[maxNumConnections][2], real64(&dWeight_dVar)[maxNumConnections][2]) const
 Compute weights and derivatives w.r.t to one variable. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex iconn, real64(&weight)[maxNumConnections][2], real64(&dWeight_dVar)[maxNumConnections][2]) const
 Compute weights and derivatives w.r.t to one variable without coefficient Used in ReactiveCompositionalMultiphaseOBL solver for thermal transmissibility computation: here, conductivity is a part of operator and connot be used directly as a coefficient. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex iconn, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient, CoefficientAccessor< arrayView3d< real64 const > > const &dCoeff_dVar1, CoefficientAccessor< arrayView4d< real64 const > > const &dCoeff_dVar2, real64(&weight)[maxNumConnections][2], real64(&dWeight_dVar1)[maxNumConnections][2], real64(&dWeight_dVar2)[maxNumConnections][2][3]) const
 Compute weights and derivatives w.r.t to one variable. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex iconn, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient, CoefficientAccessor< arrayView3d< real64 const > > const &coefficientMultiplier, R1Tensor const &gravityVector, real64(&weight)[maxNumConnections][2]) const
 Compute weights and derivatives w.r.t to one variable. More...
 
GEOS_HOST_DEVICE void computeWeights (localIndex iconn, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient1, CoefficientAccessor< arrayView3d< real64 const > > const &coefficient1Multiplier, CoefficientAccessor< arrayView1d< real64 const > > const &coefficient2, R1Tensor const &gravityVector, real64(&weight1)[maxNumPointsInFlux], real64(&weight2)[maxNumPointsInFlux], real64(&geometricWeight)[maxNumPointsInFlux]) const
 Compute weights and derivatives w.r.t to one variable. More...
 
GEOS_HOST_DEVICE void computeStabilizationWeights (localIndex iconn, real64(&stabilizationWeight)[maxNumConnections][2]) const
 Compute the stabilization weights. More...
 
ArrayOfArraysView< R1Tensor const > getCellCenterToEdgeCenters () const
 Accessor to the CellCenterToEdgeCenter vector. More...
 
GEOS_HOST_DEVICE void removeHydraulicApertureContribution (localIndex const iconn, ElementRegionManager::ElementViewConst< arrayView1d< real64 const > > hydraulicAperture) const
 Remove the contribution of the aperture from the weight in the stencil (done before aperture update) More...
 
GEOS_HOST_DEVICE void addHydraulicApertureContribution (localIndex const iconn, ElementRegionManager::ElementViewConst< arrayView1d< real64 const > > hydraulicAperture) const
 Add the contribution of the aperture to the weight in the stencil (done after aperture update) More...
 
- Public Member Functions inherited from geos::StencilWrapperBase< SurfaceElementStencilTraits >
 StencilWrapperBase (typename SurfaceElementStencilTraits ::IndexContainerType const &elementRegionIndices, typename SurfaceElementStencilTraits ::IndexContainerType const &elementSubRegionIndices, typename SurfaceElementStencilTraits ::IndexContainerType const &elementIndices, typename SurfaceElementStencilTraits ::WeightContainerType const &weights)
 Constructor. More...
 
SurfaceElementStencilTraits ::IndexContainerViewConstType getElementRegionIndices () const
 Const access to the element regions indices. More...
 
SurfaceElementStencilTraits ::IndexContainerViewConstType getElementSubRegionIndices () const
 Const access to the element subregions indices. More...
 
SurfaceElementStencilTraits ::IndexContainerViewConstType getElementIndices () const
 Const access to the element indices. More...
 
SurfaceElementStencilTraits ::WeightContainerViewConstType getWeights () const
 Const access to the stencil weights. More...
 

Static Public Attributes

static constexpr real64 MULTIPLIER_THRESHOLD = 1e-10
 Threshold for the application of the permeability multiplier.
 
- 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.
 

Additional Inherited Members

- Protected Attributes inherited from geos::StencilWrapperBase< SurfaceElementStencilTraits >
SurfaceElementStencilTraits ::IndexContainerViewConstType m_elementRegionIndices
 The container for the element region indices for each point in each stencil.
 
SurfaceElementStencilTraits ::IndexContainerViewConstType m_elementSubRegionIndices
 The container for the element sub region indices for each point in each stencil.
 
SurfaceElementStencilTraits ::IndexContainerViewConstType m_elementIndices
 The container for the element indices for each point in each stencil.
 
SurfaceElementStencilTraits ::WeightContainerViewType m_weights
 The container for the weights for each point in each stencil.
 

Detailed Description

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

Definition at line 38 of file SurfaceElementStencil.hpp.

Constructor & Destructor Documentation

◆ SurfaceElementStencilWrapper()

geos::SurfaceElementStencilWrapper::SurfaceElementStencilWrapper ( IndexContainerType const &  elementRegionIndices,
IndexContainerType const &  elementSubRegionIndices,
IndexContainerType const &  elementIndices,
WeightContainerType const &  weights,
ArrayOfArrays< R1Tensor > const &  cellCenterToEdgeCenters,
real64 const  meanPermCoefficient 
)

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
cellCenterToEdgeCentersCell center to Edge center vector
meanPermCoefficientMean permeability coefficient

Member Function Documentation

◆ addHydraulicApertureContribution()

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::addHydraulicApertureContribution ( localIndex const  iconn,
ElementRegionManager::ElementViewConst< arrayView1d< real64 const > >  hydraulicAperture 
) const
inline

Add the contribution of the aperture to the weight in the stencil (done after aperture update)

Parameters
iconnconnection index
hydraulicAperturehydraulic apertures of the fractures

Definition at line 615 of file SurfaceElementStencil.hpp.

◆ computeStabilizationWeights()

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeStabilizationWeights ( localIndex  iconn,
real64(&)  stabilizationWeight[maxNumConnections][2] 
) const
inline

Compute the stabilization weights.

Parameters
[in]iconnconnection index
[out]stabilizationWeightview weights

Definition at line 187 of file SurfaceElementStencil.hpp.

◆ computeWeights() [1/5]

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeWeights ( localIndex  iconn,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficientMultiplier,
R1Tensor const &  gravityVector,
real64(&)  weight[maxNumConnections][2] 
) const
inline

Compute weights and derivatives w.r.t to one variable.

Parameters
[in]iconnconnection index
[in]coefficientview accessor to the coefficient used to compute the weights
[in]coefficientMultiplierview accessor to the coefficient multiplier used to compute the weights
[in]gravityVectorgravity vector
[out]weightview weights

Definition at line 500 of file SurfaceElementStencil.hpp.

◆ computeWeights() [2/5]

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeWeights ( localIndex  iconn,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient,
CoefficientAccessor< arrayView3d< real64 const > > const &  dCoeff_dVar,
real64(&)  weight[maxNumConnections][2],
real64(&)  dWeight_dVar[maxNumConnections][2] 
) const
inline

Compute weights and derivatives w.r.t to one variable.

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

Definition at line 305 of file SurfaceElementStencil.hpp.

◆ computeWeights() [3/5]

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeWeights ( localIndex  iconn,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient,
CoefficientAccessor< arrayView3d< real64 const > > const &  dCoeff_dVar1,
CoefficientAccessor< arrayView4d< real64 const > > const &  dCoeff_dVar2,
real64(&)  weight[maxNumConnections][2],
real64(&)  dWeight_dVar1[maxNumConnections][2],
real64(&)  dWeight_dVar2[maxNumConnections][2][3] 
) const
inline

Compute weights and derivatives w.r.t to one variable.

Parameters
[in]iconnconnection index
[in]coefficientview accessor to the coefficient used to compute the weights
[in]dCoeff_dVar1view accessor to the derivative of the coefficient w.r.t to the variable 1
[in]dCoeff_dVar2view accessor to the derivative of the coefficient w.r.t to the variable 2
[out]weightview weights
[out]dWeight_dVar1derivative of the weights w.r.t to the variable 1
[out]dWeight_dVar2derivative of the weights w.r.t to the variable 2

Definition at line 421 of file SurfaceElementStencil.hpp.

◆ computeWeights() [4/5]

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeWeights ( localIndex  iconn,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient1,
CoefficientAccessor< arrayView3d< real64 const > > const &  coefficient1Multiplier,
CoefficientAccessor< arrayView1d< real64 const > > const &  coefficient2,
R1Tensor const &  gravityVector,
real64(&)  weight1[maxNumPointsInFlux],
real64(&)  weight2[maxNumPointsInFlux],
real64(&)  geometricWeight[maxNumPointsInFlux] 
) const
inline

Compute weights and derivatives w.r.t to one variable.

Parameters
[in]iconnconnection index
[in]coefficient1view accessor to the first coefficient used to compute the first weights
[in]coefficient1Multiplierview accessor to the coefficient multiplier used to compute the first weights
[in]coefficient2view accessor to the first coefficient used to compute the second weights
[in]gravityVectorgravity vector
[out]weight1view on the first weights
[out]weight2view on the second weights
[out]geometricWeightview on the purely geometric weights

Definition at line 559 of file SurfaceElementStencil.hpp.

◆ computeWeights() [5/5]

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::computeWeights ( localIndex  iconn,
real64(&)  weight[maxNumConnections][2],
real64(&)  dWeight_dVar[maxNumConnections][2] 
) const
inline

Compute weights and derivatives w.r.t to one variable without coefficient Used in ReactiveCompositionalMultiphaseOBL solver for thermal transmissibility computation: here, conductivity is a part of operator and connot be used directly as a coefficient.

Parameters
[in]iconnconnection index
[out]weightview weights
[out]dWeight_dVarderivative of the weights w.r.t to the variable

Definition at line 369 of file SurfaceElementStencil.hpp.

◆ getCellCenterToEdgeCenters()

ArrayOfArraysView< R1Tensor const > geos::SurfaceElementStencilWrapper::getCellCenterToEdgeCenters ( ) const
inline

Accessor to the CellCenterToEdgeCenter vector.

Returns
the view const to the CellCenterToEdgeCenter vector

Definition at line 195 of file SurfaceElementStencil.hpp.

◆ numPointsInFlux()

GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex geos::SurfaceElementStencilWrapper::numPointsInFlux ( localIndex  index) const
inline

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 92 of file SurfaceElementStencil.hpp.

◆ removeHydraulicApertureContribution()

GEOS_HOST_DEVICE void geos::SurfaceElementStencilWrapper::removeHydraulicApertureContribution ( localIndex const  iconn,
ElementRegionManager::ElementViewConst< arrayView1d< real64 const > >  hydraulicAperture 
) const
inline

Remove the contribution of the aperture from the weight in the stencil (done before aperture update)

Parameters
iconnconnection index
hydraulicAperturehydraulic apertures of the fractures

Definition at line 600 of file SurfaceElementStencil.hpp.

◆ size()

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

Give the number of stencil entries.

Returns
The number of stencil entries

Definition at line 71 of file SurfaceElementStencil.hpp.

◆ stencilSize()

GEOS_HOST_DEVICE GEOS_FORCE_INLINE localIndex geos::SurfaceElementStencilWrapper::stencilSize ( localIndex  index) const
inline

Give the number of stencil entries for the provided index.

Parameters
[in]indexthe index of which the stencil size is request
Returns
The number of stencil entries for the provided index

Definition at line 81 of file SurfaceElementStencil.hpp.


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