20 #ifndef GEOS_FINITEVOLUME_MIMETICINNERPRODUCTS_ADAPTIVEINNERPRODUCT_HPP_
21 #define GEOS_FINITEVOLUME_MIMETICINNERPRODUCTS_ADAPTIVEINNERPRODUCT_HPP_
27 namespace mimeticInnerProduct
47 template<
typename MFD_IP >
62 template< localIndex NF >
70 real64 const (&elemPerm)[ 3 ],
71 real64 const & lengthTolerance,
78 MFD_IP::template computeM< NF >( nodePosition,
87 TPFAInnerProduct::computeM< NF >( nodePosition,
100 M[i][j] = weight * mfdMassMatrix( i, j ) + ( 1.0 - weight ) * tpfaMassMatrix( i, j );
#define GEOS_HOST_DEVICE
Marks a host-device function.
StackArray< T, 2, MAXSIZE > stackArray2d
Alias for 2D stack array.
LvArray::ArrayOfArraysView< T, INDEX_TYPE const, CONST_SIZES, LvArray::ChaiBuffer > ArrayOfArraysView
View of array of variable-sized arrays. See LvArray::ArrayOfArraysView for details.
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, 2, USD > arrayView2d
Alias for 2D array view.
Adaptive mixed-form inner product blending the MFD mass matrix of MFD_IP with the diagonal TPFA mass ...
static GEOS_HOST_DEVICE void computeM(arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &nodePosition, ArrayOfArraysView< localIndex const > const &faceToNodes, arraySlice1d< localIndex const > const &elemToFaces, arraySlice1d< real64 const > const &elemCenter, real64 const &elemVolume, real64 const (&elemPerm)[3], real64 const &lengthTolerance, real64 const &weight, arraySlice2d< real64 > const &M)
Compute the blended mixed-form mass matrix M_adapt in a given element.