GEOS
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF > Class Template Reference

Define the interface for the assembly kernel in charge of accumulation. More...

#include <ImmiscibleMultiphaseKernels.hpp>

Classes

struct  StackVariables
 Kernel variables (dof numbers, jacobian and residual) located on the stack. More...
 

Public Member Functions

 AccumulationKernel (localIndex const numPhases, globalIndex const rankOffset, string const dofKey, ElementSubRegionBase const &subRegion, constitutive::TwoPhaseImmiscibleFluid const &fluid, constitutive::CoupledSolidBase const &solid, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, BitFlags< KernelFlags > const kernelFlags)
 Constructor. More...
 
GEOS_HOST_DEVICE integer elemGhostRank (localIndex const ei) const
 Getter for the ghost rank of an element. More...
 
GEOS_HOST_DEVICE void setup (localIndex const ei, StackVariables &stack) const
 Performs the setup phase for the kernel. More...
 
GEOS_HOST_DEVICE void computeAccumulation (localIndex const ei, StackVariables &stack) const
 Compute the local accumulation contributions to the residual and Jacobian. More...
 
GEOS_HOST_DEVICE void complete (localIndex const GEOS_UNUSED_PARAM(ei), StackVariables &stack) const
 Performs the complete phase for the kernel. More...
 

Static Public Member Functions

template<typename POLICY , typename KERNEL_TYPE >
static void launch (localIndex const numElems, KERNEL_TYPE const &kernelComponent)
 Performs the kernel launch. More...
 

Public Attributes

integer const m_numPhases
 Number of fluid phases.
 

Static Public Attributes

static constexpr integer numDof = NUM_DOF
 Compute time value for the number of degrees of freedom.
 
static constexpr integer numEqn = NUM_EQN
 Compute time value for the number of equations.
 

Protected Attributes

globalIndex const m_rankOffset
 Offset for my MPI rank.
 
arrayView1d< globalIndex const > const m_dofNumber
 View on the dof numbers.
 
arrayView1d< integer const > const m_elemGhostRank
 View on the ghost ranks.
 
arrayView1d< real64 const > const m_volume
 View on the element volumes.
 
arrayView2d< real64 const > const m_porosity
 Views on the porosity.
 
arrayView2d< real64 const > const m_dPoro_dPres
 
arrayView2d< real64 const, immiscibleFlow::USD_PHASE > const m_phaseVolFrac
 Views on the phase volume fractions.
 
arrayView3d< real64 const, constitutive::multifluid::USD_PHASE > const m_phaseDens
 Views on the phase densities.
 
arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_DC > const m_dPhaseDens
 
arrayView2d< real64 const, immiscibleFlow::USD_PHASE > m_phaseMass_n
 
CRSMatrixView< real64, globalIndex const > const m_localMatrix
 View on the local CRS matrix.
 
arrayView1d< real64 > const m_localRhs
 View on the local RHS.
 
BitFlags< KernelFlags > const m_kernelFlags
 

Detailed Description

template<integer NUM_EQN, integer NUM_DOF>
class geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >

Define the interface for the assembly kernel in charge of accumulation.

Template Parameters
NUM_EQNnumber of fluid phases
NUM_DOFnumber of degrees of freedom

Definition at line 817 of file ImmiscibleMultiphaseKernels.hpp.

Constructor & Destructor Documentation

◆ AccumulationKernel()

template<integer NUM_EQN, integer NUM_DOF>
geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::AccumulationKernel ( localIndex const  numPhases,
globalIndex const  rankOffset,
string const  dofKey,
ElementSubRegionBase const &  subRegion,
constitutive::TwoPhaseImmiscibleFluid const &  fluid,
constitutive::CoupledSolidBase const &  solid,
CRSMatrixView< real64, globalIndex const > const &  localMatrix,
arrayView1d< real64 > const &  localRhs,
BitFlags< KernelFlags > const  kernelFlags 
)
inline

Constructor.

Parameters
[in]numPhasesthe number of fluid phases
[in]rankOffsetthe offset of my MPI rank
[in]dofKeythe string key to retrieve the degress of freedom numbers
[in]subRegionthe element subregion
[in]fluidthe fluid model
[in]solidthe solid model
[in,out]localMatrixthe local CRS matrix
[in,out]localRhsthe local right-hand side vector
[in,out]kernelFlagsthe kernel options

Definition at line 842 of file ImmiscibleMultiphaseKernels.hpp.

Member Function Documentation

◆ complete()

template<integer NUM_EQN, integer NUM_DOF>
GEOS_HOST_DEVICE void geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::complete ( localIndex const   GEOS_UNUSED_PARAMei,
StackVariables stack 
) const
inline

Performs the complete phase for the kernel.

Parameters
[in]eithe element index
[in,out]stackthe stack variables

Definition at line 964 of file ImmiscibleMultiphaseKernels.hpp.

◆ computeAccumulation()

template<integer NUM_EQN, integer NUM_DOF>
GEOS_HOST_DEVICE void geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::computeAccumulation ( localIndex const  ei,
StackVariables stack 
) const
inline

Compute the local accumulation contributions to the residual and Jacobian.

Parameters
[in]eithe element index
[in,out]stackthe stack variables

Definition at line 936 of file ImmiscibleMultiphaseKernels.hpp.

◆ elemGhostRank()

template<integer NUM_EQN, integer NUM_DOF>
GEOS_HOST_DEVICE integer geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::elemGhostRank ( localIndex const  ei) const
inline

Getter for the ghost rank of an element.

Parameters
[in]eithe element index
Returns
the ghost rank of the element

Definition at line 905 of file ImmiscibleMultiphaseKernels.hpp.

◆ launch()

template<integer NUM_EQN, integer NUM_DOF>
template<typename POLICY , typename KERNEL_TYPE >
static void geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::launch ( localIndex const  numElems,
KERNEL_TYPE const &  kernelComponent 
)
inlinestatic

Performs the kernel launch.

Template Parameters
POLICYthe policy used in the RAJA kernels
KERNEL_TYPEthe kernel type
Parameters
[in]numElemsthe number of elements
[in,out]kernelComponentthe kernel component providing access to setup/compute/complete functions and stack variables

Definition at line 1000 of file ImmiscibleMultiphaseKernels.hpp.

◆ setup()

template<integer NUM_EQN, integer NUM_DOF>
GEOS_HOST_DEVICE void geos::immiscibleMultiphaseKernels::AccumulationKernel< NUM_EQN, NUM_DOF >::setup ( localIndex const  ei,
StackVariables stack 
) const
inline

Performs the setup phase for the kernel.

Parameters
[in]eithe element index
[in]stackthe stack variables

Definition at line 915 of file ImmiscibleMultiphaseKernels.hpp.


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