GEOS
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC > Class Template Reference

Define the interface for the assembly kernel in charge of flux terms. More...

#include <ThermalCompositionalMultiphaseWellKernels.hpp>

Inheritance diagram for geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC >:
Inheritance graph
[legend]

Classes

struct  StackVariables
 

Public Types

using Base = compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, IS_THERMAL >
 
using WJ_COFFSET = compositionalMultiphaseWellKernels::ColOffset_WellJac< NC, IS_THERMAL >
 
using WJ_ROFFSET = compositionalMultiphaseWellKernels::RowOffset_WellJac< NC, IS_THERMAL >
 
using CP_Deriv = multifluid::DerivativeOffsetC< NC, IS_THERMAL >
 
using TAG = compositionalMultiphaseWellKernels::ElemTag
 
- Public Types inherited from geos::compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, 1 >
using COFFSET = compositionalMultiphaseWellKernels::ColOffset
 
using ROFFSET = compositionalMultiphaseWellKernels::RowOffset
 
using TAG = compositionalMultiphaseWellKernels::ElemTag
 
using FLUID_PROP_COFFSET = constitutive::multifluid::DerivativeOffsetC< NC, IS_THERMAL >
 
using WJ_COFFSET = compositionalMultiphaseWellKernels::ColOffset_WellJac< NC, IS_THERMAL >
 
using WJ_ROFFSET = compositionalMultiphaseWellKernels::RowOffset_WellJac< NC, IS_THERMAL >
 
using CP_Deriv = constitutive::multifluid::DerivativeOffsetC< NC, IS_THERMAL >
 

Public Member Functions

 FaceBasedAssemblyKernel (real64 const dt, globalIndex const rankOffset, string const wellDofKey, WellControls const &wellControls, WellElementSubRegion const &subRegion, MultiFluidBase const &fluid, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, BitFlags< isothermalCompositionalMultiphaseBaseKernels::KernelFlags > kernelFlags)
 Constructor for the kernel interface. More...
 
GEOS_HOST_DEVICE void setup (localIndex const iwelem, StackVariables &stack) const
 
GEOS_HOST_DEVICE void complete (localIndex const iwelem, StackVariables &stack) const
 
GEOS_HOST_DEVICE void computeFlux (localIndex const iwelem, StackVariables &stack) const
 Compute the local flux contributions to the residual and Jacobian. More...
 
- Public Member Functions inherited from geos::compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, 1 >
 FaceBasedAssemblyKernel (real64 const dt, globalIndex const rankOffset, string const wellDofKey, WellControls const &wellControls, WellElementSubRegion const &subRegion, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, BitFlags< isothermalCompositionalMultiphaseBaseKernels::KernelFlags > kernelFlags)
 Constructor for the kernel interface. More...
 
GEOS_HOST_DEVICE void setup (localIndex const iconn, StackVariables &stack) const
 Performs the setup phase for the kernel. More...
 
GEOS_HOST_DEVICE void complete (localIndex const iconn, StackVariables &stack) const
 Performs the setup phase for the kernel. More...
 
GEOS_HOST_DEVICE void computeExit (real64 const &dt, real64 const(&compFlux)[NC], StackVariables &stack, real64(&dCompFlux)[NC][numDof]) const
 
GEOS_HOST_DEVICE void compute (real64 const &dt, real64 const(&compFlux)[NC], StackVariables &stack, real64(&dCompFlux)[(NC)][numDof]) const
 
GEOS_HOST_DEVICE void computeFlux (localIndex const iwelem, StackVariables &stack, FUNC &&compFluxKernelOp=NoOpFunc{}) const
 Compute the local flux contributions to the residual and Jacobian. More...
 

Static Public Member Functions

template<typename POLICY , typename KERNEL_TYPE >
static void launch (localIndex const numElements, KERNEL_TYPE const &kernelComponent)
 Performs the kernel launch. More...
 
- Static Public Member Functions inherited from geos::compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, 1 >
static void launch (localIndex const numElements, KERNEL_TYPE const &kernelComponent)
 Performs the kernel launch. More...
 

Public Attributes

bool const m_isProducer
 Well type.
 
real64 const m_dt
 Time step size.
 
arrayView1d< real64 > const m_localRhs
 View on the local RHS.
 
CRSMatrixView< real64, globalIndex const > const m_localMatrix
 View on the local CRS matrix.
 
integer const m_rankOffset
 Rank offset for calculating row/col Jacobian indices.
 
integer const m_useTotalMassEquation
 Kernel option flag.
 

Static Public Attributes

static constexpr integer IS_THERMAL = 1
 
static constexpr integer numComp = NC
 Compile time value for the number of components.
 
static constexpr integer numDof = WJ_COFFSET::nDer
 Compute time value for the number of degrees of freedom.
 
static constexpr integer numEqn = WJ_ROFFSET::nEqn - 2
 Compile time value for the number of equations except volume and momentum.
 
static constexpr integer maxNumElems
 
static constexpr integer maxStencilSize
 
- Static Public Attributes inherited from geos::compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, 1 >
static constexpr integer numComp
 Compile time value for the number of components.
 
static constexpr integer numDof
 Number of Dof's set in this kernal.
 
static constexpr integer numEqn
 Compile time value for the number of equations except rate, momentum, energy.
 
static constexpr integer maxNumElems
 
static constexpr integer maxStencilSize
 

Protected Attributes

integer const m_numPhases
 Number of phases.
 
arrayView1d< globalIndex const > m_globalWellElementIndex
 Global index of local element.
 
arrayView3d< real64 const, multifluid::USD_PHASE > const m_phaseFraction
 Element phase fraction.
 
arrayView4d< real64 const, multifluid::USD_PHASE_DC > const m_dPhaseFraction
 
arrayView3d< real64 const, multifluid::USD_PHASE > m_phaseEnthalpy
 Views on phase enthalpy.
 
arrayView4d< real64 const, multifluid::USD_PHASE_DC > m_dPhaseEnthalpy
 
- Protected Attributes inherited from geos::compositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC, 1 >
real64 const m_dt
 Time step size.
 
integer const m_rankOffset
 Rank offset for calculating row/col Jacobian indices.
 
arrayView1d< globalIndex const > const m_wellElemDofNumber
 Reference to the degree-of-freedom numbers.
 
arrayView1d< localIndex const > const m_nextWellElemIndex
 Next element index, needed since iterating over element nodes, not edges.
 
arrayView1d< real64 const > const m_connRate
 Connection rate.
 
arrayView2d< real64 const, compflow::USD_COMP > const m_wellElemCompFrac
 Element component fraction.
 
arrayView3d< real64 const, compflow::USD_COMP_DC > const m_dWellElemCompFrac_dCompDens
 Element component fraction derivatives.
 
CRSMatrixView< real64, globalIndex const > const m_localMatrix
 View on the local CRS matrix.
 
arrayView1d< real64 > const m_localRhs
 View on the local RHS.
 
integer const m_useTotalMassEquation
 Kernel option flag.
 
bool const m_isProducer
 Well type.
 
arrayView1d< real64 const > const m_injection
 Injection stream composition.
 

Detailed Description

template<integer NC>
class geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC >

Define the interface for the assembly kernel in charge of flux terms.

Template Parameters
NUM_COMPnumber of fluid components

Definition at line 669 of file ThermalCompositionalMultiphaseWellKernels.hpp.

Constructor & Destructor Documentation

◆ FaceBasedAssemblyKernel()

template<integer NC>
geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC >::FaceBasedAssemblyKernel ( real64 const  dt,
globalIndex const  rankOffset,
string const  wellDofKey,
WellControls const &  wellControls,
WellElementSubRegion const &  subRegion,
MultiFluidBase const &  fluid,
CRSMatrixView< real64, globalIndex const > const &  localMatrix,
arrayView1d< real64 > const &  localRhs,
BitFlags< isothermalCompositionalMultiphaseBaseKernels::KernelFlags >  kernelFlags 
)
inline

Constructor for the kernel interface.

Parameters
[in]rankOffsetthe offset of my MPI rank
[in]stencilWrapperreference to the stencil wrapper
[in]dofNumberAccessor
[in]compFlowAccessors
[in]multiFluidAccessors
[in]capPressureAccessors
[in]permeabilityAccessors
[in]dttime step size
[in,out]localMatrixthe local CRS matrix
[in,out]localRhsthe local right-hand side vector
[in]kernelFlagsflags packed together

Definition at line 716 of file ThermalCompositionalMultiphaseWellKernels.hpp.

Member Function Documentation

◆ computeFlux()

template<integer NC>
GEOS_HOST_DEVICE void geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC >::computeFlux ( localIndex const  iwelem,
StackVariables stack 
) const
inline

Compute the local flux contributions to the residual and Jacobian.

Template Parameters
FUNCthe type of the function that can be used to customize the computation of the phase fluxes
Parameters
[in]iethe element index
[in,out]stackthe stack variables
[in]compFluxKernelOpthe function used to customize the computation of the component fluxes

Definition at line 902 of file ThermalCompositionalMultiphaseWellKernels.hpp.

◆ launch()

template<integer NC>
template<typename POLICY , typename KERNEL_TYPE >
static void geos::thermalCompositionalMultiphaseWellKernels::FaceBasedAssemblyKernel< NC >::launch ( localIndex const  numElements,
KERNEL_TYPE const &  kernelComponent 
)
inlinestatic

Performs the kernel launch.

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

Definition at line 1033 of file ThermalCompositionalMultiphaseWellKernels.hpp.


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