20 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_SINGLEPHASEPROPPANTFLUXKERNELS_HPP
21 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_SINGLEPHASEPROPPANTFLUXKERNELS_HPP
30 namespace singlePhaseProppantFluxKernels
44 template<
typename VIEWTYPE >
93 template< localIndex MAX_NUM_CONNECTIONS >
100 real64 const (&transmissibility)[MAX_NUM_CONNECTIONS][2],
101 real64 const (&dTrans_dPres)[MAX_NUM_CONNECTIONS][2],
102 real64 const (&dTrans_dDispJump)[MAX_NUM_CONNECTIONS][2][3],
#define GEOS_HOST_DEVICE
Marks a host-device function.
typename ElementViewAccessor< VIEWTYPE >::NestedViewTypeConst ElementViewConst
The ElementViewAccessor at the ElementRegionManager level is the type resulting from ElementViewAcces...
Provides access to the SurfaceElementStencil that may be called from a kernel function.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
LvArray::CRSMatrixView< T, COL_INDEX, localIndex const, LvArray::ChaiBuffer > CRSMatrixView
Alias for CRS Matrix View.
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
ArraySlice< T, 2, USD > arraySlice2d
Alias for 2D array slice.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ArraySlice< T, 1, USD > arraySlice1d
Alias for 1D array slice.
ArrayView< T, 4, USD > arrayView4d
Alias for 4D array view.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
ArrayView< T, 3, USD > arrayView3d
Alias for 3D array view.
static void launch(SurfaceElementStencilWrapper const &stencilWrapper, real64 const dt, globalIndex const rankOffset, ElementViewConst< arrayView1d< globalIndex const > > const &pressureDofNumber, ElementViewConst< arrayView1d< integer const > > const &ghostRank, ElementViewConst< arrayView1d< real64 const > > const &pres, ElementViewConst< arrayView1d< real64 const > > const &gravCoef, ElementViewConst< arrayView2d< real64 const > > const &dens, ElementViewConst< arrayView2d< real64 const > > const &dDens_dPres, ElementViewConst< arrayView1d< real64 const > > const &mob, ElementViewConst< arrayView1d< real64 const > > const &dMob_dPres, ElementViewConst< arrayView3d< real64 const > > const &permeability, ElementViewConst< arrayView3d< real64 const > > const &dPerm_dPres, ElementViewConst< arrayView4d< real64 const > > const &dPerm_dDispJump, ElementViewConst< arrayView3d< real64 const > > const &permeabilityMultiplier, R1Tensor const &gravityVector, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs)
launches the kernel to assemble the flux contributions to the linear system.
ElementRegionManager::ElementViewConst< VIEWTYPE > ElementViewConst
The type for element-based non-constitutive data parameters. Consists entirely of ArrayView's.
static GEOS_HOST_DEVICE void compute(localIndex const numFluxElems, arraySlice1d< localIndex const > const &seri, arraySlice1d< localIndex const > const &sesri, arraySlice1d< localIndex const > const &sei, real64 const (&transmissibility)[MAX_NUM_CONNECTIONS][2], real64 const (&dTrans_dPres)[MAX_NUM_CONNECTIONS][2], real64 const (&dTrans_dDispJump)[MAX_NUM_CONNECTIONS][2][3], ElementViewConst< arrayView1d< real64 const > > const &pres, ElementViewConst< arrayView1d< real64 const > > const &gravCoef, ElementViewConst< arrayView2d< real64 const > > const &dens, ElementViewConst< arrayView2d< real64 const > > const &dDens_dPres, ElementViewConst< arrayView1d< real64 const > > const &mob, ElementViewConst< arrayView1d< real64 const > > const &dMob_dPres, real64 const dt, arraySlice1d< real64 > const &flux, arraySlice2d< real64 > const &fluxJacobian, arraySlice2d< real64 > const &dFlux_dAperture)
Compute flux and its derivatives for a given tpfa connector.