opm-simulators
Loading...
Searching...
No Matches
Opm::BlackOilLocalResidualTPFA< TypeTag > Class Template Reference

Calculates the local residual of the black oil model. More...

#include <blackoillocalresidualtpfa.hh>

Inheritance diagram for Opm::BlackOilLocalResidualTPFA< TypeTag >:

Classes

struct  ResidualNBInfo

Public Member Functions

template<class LhsEval>
void computeStorage (Dune::FieldVector< LhsEval, numEq > &storage, const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx) const
 Evaluate the amount all conservation quantities (e.g.
void computeSource (RateVector &source, const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx) const
 Calculate the source term of the equation.

Static Public Member Functions

template<class LhsEval, class StorageType, class IntensiveQuantitiesType = IntensiveQuantities>
static OPM_HOST_DEVICE void computeStorage (StorageType &storage, const IntensiveQuantitiesType &intQuants)
template<class ModuleParamsT, class RateVectorT, class IntensiveQuantitiesT, class ResidualNBInfoT>
static OPM_HOST_DEVICE void computeFlux (RateVectorT &flux, RateVectorT &darcy, const unsigned globalIndexIn, const unsigned globalIndexEx, const IntensiveQuantitiesT &intQuantsIn, const IntensiveQuantitiesT &intQuantsEx, const ResidualNBInfoT &nbInfo, const ModuleParamsT &moduleParams)
 This function works like the ElementContext-based version with one main difference: The darcy flux is calculated here, not read from the extensive quantities of the element context.
static void computeFlux (RateVector &flux, const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
template<class RateVectorT, class IntensiveQuantitiesT, class ResidualNBInfoT, class ModuleParamsT>
static OPM_HOST_DEVICE void calculateFluxes_ (RateVectorT &flux, RateVectorT &darcy, const IntensiveQuantitiesT &intQuantsIn, const IntensiveQuantitiesT &intQuantsEx, const unsigned &globalIndexIn, const unsigned &globalIndexEx, const ResidualNBInfoT &nbInfo, const ModuleParamsT &moduleParams)
template<class BoundaryConditionData, class RateVectorLocal, class LocalProblem>
static OPM_HOST_DEVICE void computeBoundaryFlux (RateVectorLocal &bdyFlux, const LocalProblem &problem, const BoundaryConditionData &bdyInfo, const IntensiveQuantities &insideIntQuants, unsigned globalSpaceIdx)
template<class BoundaryConditionData>
static void computeBoundaryFluxRate (RateVector &bdyFlux, const BoundaryConditionData &bdyInfo)
template<class BoundaryConditionData>
static void computeBoundaryFluxFree (const Problem &problem, RateVector &bdyFlux, const BoundaryConditionData &bdyInfo, const IntensiveQuantities &insideIntQuants, unsigned globalSpaceIdx)
template<class ProblemLocal, class BoundaryConditionData, class RateVectorLocal>
static OPM_HOST_DEVICE void computeBoundaryThermal (const ProblemLocal &problem, RateVectorLocal &bdyFlux, const BoundaryConditionData &bdyInfo, const IntensiveQuantities &insideIntQuants, unsigned globalSpaceIdx)
static void computeSource (RateVector &source, const Problem &problem, const IntensiveQuantities &insideIntQuants, unsigned globalSpaceIdex, unsigned timeIdx)
static void computeSourceDense (RateVector &source, const Problem &problem, const IntensiveQuantities &insideIntQuants, unsigned globalSpaceIdex, unsigned timeIdx)
template<class UpEval, class FluidState>
static void evalPhaseFluxes_ (RateVector &flux, unsigned phaseIdx, unsigned pvtRegionIdx, const ExtensiveQuantities &extQuants, const FluidState &upFs)
template<class UpEval, class Eval, class FluidState, class RateVectorT = RateVector>
static OPM_HOST_DEVICE void evalPhaseFluxes_ (RateVectorT &flux, unsigned phaseIdx, unsigned pvtRegionIdx, const Eval &surfaceVolumeFlux, const FluidState &upFs)
 Helper function to calculate the flux of mass in terms of conservation quantities via specific fluid phase over a face.
template<class Scalar>
static void adaptMassConservationQuantities_ (Dune::FieldVector< Scalar, numEq > &container, unsigned pvtRegionIdx)
 Helper function to convert the mass-related parts of a Dune::FieldVector that stores conservation quantities in terms of "surface-volume" to the conservation quantities used by the model.
template<class ScalarVector, class FsysType>
static OPM_HOST_DEVICE void adaptMassConservationQuantities_ (ScalarVector &container, unsigned pvtRegionIdx, const FsysType &fsys)
 Helper function to convert the mass-related parts of a vector that stores conservation quantities in terms of "surface-volume" to the conservation quantities used by the model.
static FaceDir::DirEnum faceDirFromDirId (const int dirId)

Detailed Description

template<class TypeTag>
class Opm::BlackOilLocalResidualTPFA< TypeTag >

Calculates the local residual of the black oil model.

Member Function Documentation

◆ adaptMassConservationQuantities_() [1/2]

template<class TypeTag>
template<class Scalar>
void Opm::BlackOilLocalResidualTPFA< TypeTag >::adaptMassConservationQuantities_ ( Dune::FieldVector< Scalar, numEq > & container,
unsigned pvtRegionIdx )
inlinestatic

Helper function to convert the mass-related parts of a Dune::FieldVector that stores conservation quantities in terms of "surface-volume" to the conservation quantities used by the model.

Convenience overload for CPU code that uses the static FluidSystem. Delegates to the FsysType overload below, constructing a default FluidSystem instance.

◆ adaptMassConservationQuantities_() [2/2]

template<class TypeTag>
template<class ScalarVector, class FsysType>
OPM_HOST_DEVICE void Opm::BlackOilLocalResidualTPFA< TypeTag >::adaptMassConservationQuantities_ ( ScalarVector & container,
unsigned pvtRegionIdx,
const FsysType & fsys )
inlinestatic

Helper function to convert the mass-related parts of a vector that stores conservation quantities in terms of "surface-volume" to the conservation quantities used by the model.

Depending on the value of the BlackoilConserveSurfaceVolume property, the model either conserves mass by means of "surface volume" of the components or mass directly. In the former case, this method is a no-op; in the latter, the values passed are multiplied by their respective pure component's density at surface conditions.

This overload accepts a fluid system instance, enabling use in GPU kernels and other contexts where the static fluid system is not accessible.

◆ computeSource()

template<class TypeTag>
void Opm::BlackOilLocalResidualTPFA< TypeTag >::computeSource ( RateVector & source,
const ElementContext & elemCtx,
unsigned dofIdx,
unsigned timeIdx ) const
inline

Calculate the source term of the equation.

◆ computeStorage()

template<class TypeTag>
template<class LhsEval>
void Opm::BlackOilLocalResidualTPFA< TypeTag >::computeStorage ( Dune::FieldVector< LhsEval, numEq > & storage,
const ElementContext & elemCtx,
unsigned dofIdx,
unsigned timeIdx ) const
inline

Evaluate the amount all conservation quantities (e.g.

phase mass) within a finite sub-control volume.


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