20 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_COMPOSITIONAL_CFLKERNEL_HPP
21 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_COMPOSITIONAL_CFLKERNEL_HPP
25 #include "common/GEOS_RAJA_Interface.hpp"
26 #include "constitutive/fluid/multifluid/MultiFluidBase.hpp"
27 #include "constitutive/fluid/multifluid/MultiFluidFields.hpp"
28 #include "constitutive/permeability/PermeabilityBase.hpp"
29 #include "constitutive/permeability/PermeabilityFields.hpp"
30 #include "constitutive/relativePermeability/RelativePermeabilityBase.hpp"
31 #include "constitutive/relativePermeability/RelativePermeabilityFields.hpp"
40 namespace isothermalCompositionalMultiphaseFVMKernels
57 template<
typename VIEWTYPE >
60 template<
typename VIEWTYPE >
65 fields::flow::gravityCoefficient,
66 fields::flow::phaseVolumeFraction,
67 fields::flow::phaseOutflux,
68 fields::flow::componentOutflux >;
72 fields::multifluid::phaseViscosity,
73 fields::multifluid::phaseDensity,
74 fields::multifluid::phaseMassDensity,
75 fields::multifluid::phaseCompFraction >;
79 fields::permeability::permeability,
80 fields::permeability::dPerm_dPressure >;
86 template<
integer NC, localIndex NUM_ELEMS, localIndex maxStencilSize >
90 compute(
integer const numPhases,
96 real64 const (&transmissibility)[2],
108 template<
integer NC,
typename STENCILWRAPPER_TYPE >
110 launch(
integer const numPhases,
112 STENCILWRAPPER_TYPE
const & stencil,
135 static constexpr
real64 minPhaseMobility = 1e-12;
136 static constexpr
real64 minComponentFraction = 1e-12;
138 template<
integer NP >
142 computePhaseCFL(
real64 const poreVol,
148 real64 & phaseCFLNumber );
150 template<
integer NC >
154 computeCompCFL(
real64 const poreVol,
160 template<
integer NC,
integer NP >
175 real64 & maxPhaseCFLNumber,
176 real64 & maxCompCFLNumber );
#define GEOS_HOST_DEVICE
Marks a host-device function.
typename ElementViewAccessor< VIEWTYPE >::NestedViewType ElementView
The ElementViewAccessor at the ElementRegionManager level is the type resulting from ElementViewAcces...
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.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
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.
std::int32_t integer
Signed integer type.
ArrayView< T, 4, USD > arrayView4d
Alias for 4D array view.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
ArrayView< T, 3, USD > arrayView3d
Alias for 3D array view.
Functions to compute the (outflux) total volumetric flux needed in the calculation of CFL numbers.
ElementRegionManager::ElementViewConst< VIEWTYPE > ElementViewConst
The type for element-based data. Consists entirely of ArrayView's.
Functions to compute the CFL number using the phase volumetric outflux and the component mass outflux...