GEOSX
Static Public Member Functions | List of all members
geos::mimeticInnerProduct::MimeticInnerProductHelpers Struct Reference

Helper struct handling inner product for hybrid finite volume schemes. More...

#include <MimeticInnerProductHelpers.hpp>

Static Public Member Functions

static GEOS_HOST_DEVICE void makeFullTensor (real64 const (&values)[3], real64(&result)[3][3])
 Create a full tensor from an array. More...
 
template<localIndex NF>
static GEOS_HOST_DEVICE void orthonormalize (real64(&q0)[NF], real64(&q1)[NF], real64(&q2)[NF], real64(&cellToFaceMat)[NF][3])
 Orthonormalize a set of three vectors. More...
 
template<localIndex NF>
static GEOS_HOST_DEVICE void computeInvTPFATransWithMultiplier (real64 const (&elemPerm)[3], real64 const (&faceNormal)[3], real64 const &faceArea, real64 const &transMult, real64 const &weightToleranceInv, real64(&cellToFaceVec)[3], real64 &tpTransInv)
 For a given face, compute the TPFA entry incorporating the multiplier. More...
 
template<localIndex NF>
static GEOS_HOST_DEVICE void computeTransMatrixWithMultipliers (real64 const (&tpTransInv)[NF], arraySlice2d< real64 > const &transMatrix)
 Incorporate the transmissibility multiplier into the transmissibility matrix. More...
 

Detailed Description

Helper struct handling inner product for hybrid finite volume schemes.

Definition at line 31 of file MimeticInnerProductHelpers.hpp.

Member Function Documentation

◆ computeInvTPFATransWithMultiplier()

template<localIndex NF>
static GEOS_HOST_DEVICE void geos::mimeticInnerProduct::MimeticInnerProductHelpers::computeInvTPFATransWithMultiplier ( real64 const (&)  elemPerm[3],
real64 const (&)  faceNormal[3],
real64 const &  faceArea,
real64 const &  transMult,
real64 const &  weightToleranceInv,
real64(&)  cellToFaceVec[3],
real64 tpTransInv 
)
inlinestatic

For a given face, compute the TPFA entry incorporating the multiplier.

Template Parameters
NFnumber of faces in the element
Parameters
[in]elemPermthe permeability in the element
[in]faceNormalthe unit normal vector to the face
[in]faceAreathe area of the face
[in]transMultthe transmissibility multiplier for this face
[in]weightToleranceInvtolerance used in the trans computation
[in,out]cellToFaceVecthe vector from the element center to the face center
[out]tpTransInvthe TPFA entry incorporating the multiplier

Definition at line 105 of file MimeticInnerProductHelpers.hpp.

◆ computeTransMatrixWithMultipliers()

template<localIndex NF>
static GEOS_HOST_DEVICE void geos::mimeticInnerProduct::MimeticInnerProductHelpers::computeTransMatrixWithMultipliers ( real64 const (&)  tpTransInv[NF],
arraySlice2d< real64 > const &  transMatrix 
)
inlinestatic

Incorporate the transmissibility multiplier into the transmissibility matrix.

Template Parameters
NFnumber of faces in the element
Parameters
[in,out]tpTransInvinverse of the (diagonal of the) TPFA transmissibility matrix (already accounting for the multiplier
[in,out]transMatrixtransmissibility matrix

Definition at line 140 of file MimeticInnerProductHelpers.hpp.

◆ makeFullTensor()

static GEOS_HOST_DEVICE void geos::mimeticInnerProduct::MimeticInnerProductHelpers::makeFullTensor ( real64 const (&)  values[3],
real64(&)  result[3][3] 
)
inlinestatic

Create a full tensor from an array.

Parameters
[in]valuesthe input array
[out]resultthe full tensor

Definition at line 41 of file MimeticInnerProductHelpers.hpp.

◆ orthonormalize()

template<localIndex NF>
static GEOS_HOST_DEVICE void geos::mimeticInnerProduct::MimeticInnerProductHelpers::orthonormalize ( real64(&)  q0[NF],
real64(&)  q1[NF],
real64(&)  q2[NF],
real64(&)  cellToFaceMat[NF][3] 
)
inlinestatic

Orthonormalize a set of three vectors.

Template Parameters
NFnumber of faces in the element
Parameters
[in,out]q0first vector
[in,out]q1second vector
[in,out]q2third vector
[out]cellToFaceMata copy of in/out vectors stacked into a matrix

Definition at line 61 of file MimeticInnerProductHelpers.hpp.


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