20 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_COMPOSITIONAL_FLUXCOMPUTEKERNELBASE_HPP
21 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_COMPOSITIONAL_FLUXCOMPUTEKERNELBASE_HPP
25 #include "common/GEOS_RAJA_Interface.hpp"
26 #include "constitutive/capillaryPressure/CapillaryPressureFields.hpp"
27 #include "constitutive/capillaryPressure/CapillaryPressureBase.hpp"
28 #include "constitutive/fluid/multifluid/MultiFluidBase.hpp"
29 #include "constitutive/fluid/multifluid/MultiFluidFields.hpp"
30 #include "constitutive/permeability/PermeabilityBase.hpp"
31 #include "constitutive/permeability/PermeabilityFields.hpp"
41 namespace isothermalCompositionalMultiphaseFVMKernels
49 TotalMassEquation = 1 << 1,
77 template<
typename VIEWTYPE >
84 fields::flow::gravityCoefficient,
85 fields::flow::pressure,
86 fields::flow::dGlobalCompFraction_dGlobalCompDensity,
87 fields::flow::phaseVolumeFraction,
88 fields::flow::dPhaseVolumeFraction,
89 fields::flow::phaseMobility,
90 fields::flow::dPhaseMobility >;
93 fields::multifluid::phaseDensity,
94 fields::multifluid::dPhaseDensity,
95 fields::multifluid::phaseMassDensity,
96 fields::multifluid::dPhaseMassDensity,
97 fields::multifluid::phaseCompFraction,
98 fields::multifluid::dPhaseCompFraction >;
102 fields::cappres::phaseCapPressure,
103 fields::cappres::dPhaseCapPressure_dPhaseVolFraction >;
107 fields::permeability::permeability,
108 fields::permeability::dPerm_dPressure >;
124 DofNumberAccessor
const & dofNumberAccessor,
130 BitFlags< KernelFlags > kernelFlags );
173 BitFlags< KernelFlags >
const m_kernelFlags;
array1d< array1d< VIEWTYPE > > ElementViewAccessor
The ElementViewAccessor at the ElementRegionManager level is an array of array of VIEWTYPE.
typename ElementViewAccessor< VIEWTYPE >::NestedViewTypeConst ElementViewConst
The ElementViewAccessor at the ElementRegionManager level is the type resulting from ElementViewAcces...
A struct to automatically construct and store element view accessors.
A struct to automatically construct and store element view accessors.
Base class for FluxComputeKernel that holds all data not dependent on template parameters (like stenc...
ElementViewConst< arrayView2d< real64 const, compflow::USD_PHASE > > const m_phaseVolFrac
Views on phase volume fractions.
real64 const m_dt
Time step size.
ElementViewConst< arrayView1d< globalIndex const > > const m_dofNumber
Views on dof numbers.
ElementViewConst< arrayView1d< real64 const > > const m_pres
Views on pressure.
ElementViewConst< arrayView1d< integer const > > const m_ghostRank
Views on ghost rank numbers and gravity coefficients.
arrayView1d< real64 > const m_localRhs
View on the local RHS.
ElementViewConst< arrayView4d< real64 const, constitutive::multifluid::USD_PHASE_COMP > > const m_phaseCompFrac
Views on phase component fractions.
globalIndex const m_rankOffset
Offset for my MPI rank.
CRSMatrixView< real64, globalIndex const > const m_localMatrix
View on the local CRS matrix.
ElementRegionManager::ElementViewConst< VIEWTYPE > ElementViewConst
The type for element-based data. Consists entirely of ArrayView's.
ElementViewConst< arrayView3d< real64 const, compflow::USD_COMP_DC > > const m_dCompFrac_dCompDens
Views on derivatives of comp fractions.
FluxComputeKernelBase(integer const numPhases, globalIndex const rankOffset, DofNumberAccessor const &dofNumberAccessor, CompFlowAccessors const &compFlowAccessors, MultiFluidAccessors const &multiFluidAccessors, real64 const dt, CRSMatrixView< real64, globalIndex const > const &localMatrix, arrayView1d< real64 > const &localRhs, BitFlags< KernelFlags > kernelFlags)
Constructor for the kernel interface.
integer const m_numPhases
Number of fluid phases.
@ C1PPU
Flag indicating whether C1-PPU is used or not.
@ CapPressure
Flag to specify whether capillary pressure is used or not.
@ IHU
Flag indicating whether IHU is used or not.
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).
double real64
64-bit floating point type.
std::int32_t integer
Signed integer type.
Trait struct for ghostRank data.