|
opm-simulators
|
Calculates the local residual of the black oil model. More...
#include <blackoillocalresidualtpfa.hh>
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) |
Calculates the local residual of the black oil model.
|
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.
|
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.
|
inline |
Calculate the source term of the equation.
|
inline |
Evaluate the amount all conservation quantities (e.g.
phase mass) within a finite sub-control volume.