GEOS
Classes | Namespaces | Functions
CompositionalMultiphaseHybridFVMKernels.hpp File Reference
#include "codingUtilities/Utilities.hpp"
#include "common/DataTypes.hpp"
#include "constitutive/fluid/multifluid/MultiFluidBase.hpp"
#include "constitutive/fluid/multifluid/MultiFluidFields.hpp"
#include "constitutive/permeability/PermeabilityBase.hpp"
#include "constitutive/solid/porosity/PorosityBase.hpp"
#include "constitutive/solid/porosity/PorosityFields.hpp"
#include "constitutive/relativePermeability/RelativePermeabilityBase.hpp"
#include "mesh/ElementRegionManager.hpp"
#include "mesh/ObjectManagerBase.hpp"
#include "physicsSolvers/PhysicsSolverBaseKernels.hpp"
#include "physicsSolvers/fluidFlow/CompositionalMultiphaseBaseFields.hpp"
#include "physicsSolvers/fluidFlow/StencilAccessors.hpp"
#include "physicsSolvers/fluidFlow/kernels/compositional/PropertyKernelBase.hpp"
#include "physicsSolvers/fluidFlow/kernels/compositional/KernelLaunchSelectors.hpp"

Go to the source code of this file.

Classes

struct  geos::compositionalMultiphaseHybridFVMKernels::Pos
 
struct  geos::compositionalMultiphaseHybridFVMKernels::UpwindingHelper
 
struct  geos::compositionalMultiphaseHybridFVMKernels::AssemblerKernelHelper
 Helper structure containing static methods for flux assembly in hybrid FVM. More...
 
struct  geos::compositionalMultiphaseHybridFVMKernels::AssemblerKernel
 
struct  geos::compositionalMultiphaseHybridFVMKernels::DirichletFluxKernel
 
struct  geos::compositionalMultiphaseHybridFVMKernels::FluxKernel
 
class  geos::compositionalMultiphaseHybridFVMKernels::PhaseMobilityKernel< NUM_COMP, NUM_PHASE >
 Define the interface for the property kernel in charge of computing the phase mobilities. More...
 
class  geos::compositionalMultiphaseHybridFVMKernels::PhaseMobilityKernelFactory
 
class  geos::compositionalMultiphaseHybridFVMKernels::ResidualNormKernel
 
class  geos::compositionalMultiphaseHybridFVMKernels::ResidualNormKernelFactory
 
struct  geos::compositionalMultiphaseHybridFVMKernels::SolutionCheckKernel
 
struct  geos::compositionalMultiphaseHybridFVMKernels::PrecomputeKernel
 

Namespaces

 geos
 

Functions

template<typename KERNELWRAPPER , typename INNER_PRODUCT , typename ... ARGS>
void geos::compositionalMultiphaseHybridFVMKernels::simpleKernelLaunchSelector (localIndex numFacesInElem, ARGS &&... args)
 
template<typename KERNELWRAPPER , typename IP_TYPE , typename ... ARGS>
void geos::compositionalMultiphaseHybridFVMKernels::kernelLaunchSelector (integer numFacesInElem, integer numComps, integer numPhases, ARGS &&... args)
 
template<integer NC, integer NP>
void geos::compositionalMultiphaseHybridFVMKernels::evaluateBCFaceProperties (integer const numPhases, SortedArrayView< localIndex const > const &boundaryFaceSet, arrayView1d< real64 const > const &facePres, arrayView1d< real64 const > const &faceTemp, arrayView2d< real64 const, compflow::USD_COMP > const &faceCompFrac, arrayView2d< localIndex const > const &elemRegionList, arrayView2d< localIndex const > const &elemSubRegionList, arrayView2d< localIndex const > const &elemList, localIndex const er, localIndex const esr, constitutive::MultiFluidBase &fluid, constitutive::RelativePermeabilityBase &relperm, arrayView2d< real64, compflow::USD_PHASE > const &facePhaseMob, arrayView2d< real64, compflow::USD_PHASE > const &facePhaseMassDens, arrayView3d< real64, compflow::USD_PHASE_COMP > const &facePhaseCompFrac)
 Evaluate constitutive properties at BC face conditions. More...
 

Function Documentation

◆ evaluateBCFaceProperties()

template<integer NC, integer NP>
void geos::compositionalMultiphaseHybridFVMKernels::evaluateBCFaceProperties ( integer const  numPhases,
SortedArrayView< localIndex const > const &  boundaryFaceSet,
arrayView1d< real64 const > const &  facePres,
arrayView1d< real64 const > const &  faceTemp,
arrayView2d< real64 const, compflow::USD_COMP > const &  faceCompFrac,
arrayView2d< localIndex const > const &  elemRegionList,
arrayView2d< localIndex const > const &  elemSubRegionList,
arrayView2d< localIndex const > const &  elemList,
localIndex const  er,
localIndex const  esr,
constitutive::MultiFluidBase &  fluid,
constitutive::RelativePermeabilityBase &  relperm,
arrayView2d< real64, compflow::USD_PHASE > const &  facePhaseMob,
arrayView2d< real64, compflow::USD_PHASE > const &  facePhaseMassDens,
arrayView3d< real64, compflow::USD_PHASE_COMP > const &  facePhaseCompFrac 
)

Evaluate constitutive properties at BC face conditions.

Evaluate constitutive properties at BC face conditions using flash calculations.

Template Parameters
NCnumber of components
NPnumber of phases
Parameters
[in]numPhasesnumber of phases
[in]boundaryFaceSetset of boundary faces
[in]facePresface pressures at BC
[in]faceTempface temperatures at BC
[in]faceCompFracface component fractions at BC
[in]elemRegionListface to element region list
[in]elemSubRegionListface to element subregion list
[in]elemListface to element list
[in]ertarget element region index
[in]esrtarget element subregion index
[in]fluidmultifluid model
[in]relpermrelative permeability model
[out]facePhaseMoboutput: face phase mobility at BC
[out]facePhaseMassDensoutput: face phase mass density at BC
[out]facePhaseCompFracoutput: face phase component fraction at BC
Template Parameters
NCnumber of components
NPnumber of phases
Parameters
[in]numPhasesnumber of phases in the simulation
[in]boundaryFaceSetsorted array view of boundary face indices
[in]facePrespressure values at boundary faces
[in]faceTemptemperature values at boundary faces
[in]faceCompFraccomponent fraction values at boundary faces
[in]elemRegionListface-to-element region mapping
[in]elemSubRegionListface-to-element subregion mapping
[in]elemListface-to-element index mapping
[in]ertarget element region index
[in]esrtarget element subregion index
[in]fluidreference to multifluid constitutive model
[in]relpermreference to relative permeability constitutive model
[out]facePhaseMobcomputed phase mobility at BC faces
[out]facePhaseMassDenscomputed phase mass density at BC faces
[out]facePhaseCompFraccomputed phase component fractions at BC faces
Note
This function uses serialPolicy (host execution) because CUDA does not allow extended device lambdas inside generic lambda expressions. The output arrays must be explicitly moved to device memory after this function completes.

Definition at line 1696 of file CompositionalMultiphaseHybridFVMKernels_impl.hpp.