|
NewTranFluxModule.hpp
Go to the documentation of this file.
127 enum { enableEnergy = getPropValue<TypeTag, Properties::EnergyModuleType>() == EnergyModules::FullyImplicitThermal };
129 static constexpr bool enableConvectiveMixing = getPropValue<TypeTag, Properties::EnableConvectiveMixing>();
145 throw std::invalid_argument("The ECL transmissibility module does not provide an explicit intrinsic permeability");
156 throw std::invalid_argument("The ECL transmissibility module does not provide explicit potential gradients");
176 throw std::invalid_argument("The ECL transmissibility module does not provide explicit filter velocities");
220 OPM_HOST_DEVICE void updateSolvent(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
223 OPM_HOST_DEVICE void updatePolymer(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
228 OPM_HOST_DEVICE static void volumeAndPhasePressureDifferences(std::array<short, numPhases>& upIdx,
294 // Use arithmetic average (more accurate with harmonic, but that requires recomputing the transmissbility)
295 const Evaluation transMult = (intQuantsIn.rockCompTransMultiplier() + Toolbox::value(intQuantsEx.rockCompTransMultiplier()))/2;
348 ConvectiveMixingModule::modifyAvgDensity(rhoAvg, intQuantsIn, intQuantsEx, phaseIdx, moduleParams.convectiveMixingModuleParam);
420 OPM_HOST_DEVICE void calculateGradients_(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
424 volumeAndPhasePressureDifferences(upIdx_ , dnIdx_, volumeFlux_, pressureDifference_, elemCtx, scvfIdx, timeIdx);
456 // extensive refactoring. It means that the TpfaLinearizer will not support bcs for solvent until this is
462 const auto solventFlux = pressureDifference_[gasPhaseIdx] * intQuantsIn.mobility(gasPhaseIdx) * (-transModified/faceArea);
Classes required for dynamic convective mixing. Declares the properties required by the black oil model. Definition: blackoilconvectivemixingmodule.hh:103 Provides the defaults for the parameters required by the transmissibility based volume flux calculati... Definition: NewTranFluxModule.hpp:90 OPM_HOST_DEVICE void calculateBoundaryGradients_(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx, const FluidState &exFluidState) Update the required gradients for boundary faces. Definition: NewTranFluxModule.hpp:431 static OPM_HOST_DEVICE void volumeAndPhasePressureDifferences(std::array< short, numPhases > &upIdx, std::array< short, numPhases > &dnIdx, Evaluation(&volumeFlux)[numPhases], Evaluation(&pressureDifferences)[numPhases], const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Definition: NewTranFluxModule.hpp:228 OPM_HOST_DEVICE void calculateFluxes_(const ElementContext &, unsigned, unsigned) Update the volumetric fluxes for all fluid phases on the interior faces of the context. Definition: NewTranFluxModule.hpp:574 OPM_HOST_DEVICE unsigned downstreamIndex_(unsigned phaseIdx) const Returns the local index of the degree of freedom in which is in downstream direction. Definition: NewTranFluxModule.hpp:213 OPM_HOST_DEVICE const Evaluation & pressureDifference(unsigned phaseIdx) const Return the gravity corrected pressure difference between the interior and the exterior of a face. Definition: NewTranFluxModule.hpp:165 static OPM_HOST_DEVICE void calculateBoundaryGradients_(const Problem &problem, const unsigned globalSpaceIdx, const IntensiveQuantities &intQuantsIn, const unsigned bfIdx, const double faceArea, const double zEx, const FluidState &exFluidState, std::array< short, numPhases > &upIdx, std::array< short, numPhases > &dnIdx, EvaluationContainer &volumeFlux, EvaluationContainer &pressureDifference) Update the required gradients for boundary faces. Definition: NewTranFluxModule.hpp:475 OPM_HOST_DEVICE const DimMatrix & intrinsicPermeability() const Return the intrinsic permeability tensor at a face [m^2]. Definition: NewTranFluxModule.hpp:143 OPM_HOST_DEVICE void calculateGradients_(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Update the required gradients for interior faces. Definition: NewTranFluxModule.hpp:420 OPM_HOST_DEVICE unsigned upstreamIndex_(unsigned phaseIdx) const Returns the local index of the degree of freedom in which is in upstream direction. Definition: NewTranFluxModule.hpp:199 OPM_HOST_DEVICE const Evaluation & volumeFlux(unsigned phaseIdx) const Return the volume flux of a fluid phase at the face's integration point . Definition: NewTranFluxModule.hpp:188 static OPM_HOST_DEVICE void calculatePhasePressureDiff_(short &upIdx, short &dnIdx, EvalType &pressureDifference, const IntensiveQuantities &intQuantsIn, const IntensiveQuantities &intQuantsEx, const unsigned phaseIdx, const unsigned interiorDofIdx, const unsigned exteriorDofIdx, const Scalar Vin, const Scalar Vex, const unsigned globalIndexIn, const unsigned globalIndexEx, const Scalar distZg, const Scalar thpres, const ModuleParams &moduleParams) Definition: NewTranFluxModule.hpp:313 OPM_HOST_DEVICE const EvalDimVector & filterVelocity(unsigned) const Return the filter velocity of a fluid phase at the face's integration point [m/s]. Definition: NewTranFluxModule.hpp:174 OPM_HOST_DEVICE void updatePolymer(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Definition: NewTranFluxModule.hpp:223 OPM_HOST_DEVICE const EvalDimVector & potentialGrad(unsigned) const Return the pressure potential gradient of a fluid phase at the face's integration point [Pa/m]. Definition: NewTranFluxModule.hpp:154 OPM_HOST_DEVICE void updateSolvent(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Definition: NewTranFluxModule.hpp:220 OPM_HOST_DEVICE void calculateBoundaryFluxes_(const ElementContext &, unsigned, unsigned) Definition: NewTranFluxModule.hpp:577 Provides the intensive quantities for the ECL flux module. Definition: NewTranFluxModule.hpp:98 void update_(const ElementContext &, unsigned, unsigned) Definition: NewTranFluxModule.hpp:101 Declare the properties used by the infrastructure code of the finite volume discretizations. Definition: blackoilbioeffectsmodules.hh:43 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(.... Definition: propertysystem.hh:233 ConvectiveMixingModuleParamT convectiveMixingModuleParam Definition: blackoilmoduleparams.hh:23 Specifies a flux module which uses ECL transmissibilities. Definition: NewTranFluxModule.hpp:71 static void registerParameters() Register all run-time parameters for the flux module. Definition: NewTranFluxModule.hpp:79 |