|
NewTranFluxModule.hpp
Go to the documentation of this file.
128 enum { enableEnergy = getPropValue<TypeTag, Properties::EnergyModuleType>() == EnergyModules::FullyImplicitThermal };
130 static constexpr bool enableConvectiveMixing = getPropValue<TypeTag, Properties::EnableConvectiveMixing>();
146 OPM_THROW(std::invalid_argument, "The ECL transmissibility module does not provide an explicit intrinsic permeability");
157 OPM_THROW(std::invalid_argument, "The ECL transmissibility module does not provide explicit potential gradients");
177 OPM_THROW(std::invalid_argument, "The ECL transmissibility module does not provide explicit filter velocities");
221 OPM_HOST_DEVICE void updateSolvent(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
224 OPM_HOST_DEVICE void updatePolymer(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
229 OPM_HOST_DEVICE static void volumeAndPhasePressureDifferences(std::array<short, numPhases>& upIdx,
295 // Use arithmetic average (more accurate with harmonic, but that requires recomputing the transmissbility)
296 const Evaluation transMult = (intQuantsIn.rockCompTransMultiplier() + Toolbox::value(intQuantsEx.rockCompTransMultiplier()))/2;
349 ConvectiveMixingModule::modifyAvgDensity(rhoAvg, intQuantsIn, intQuantsEx, phaseIdx, moduleParams.convectiveMixingModuleParam);
421 OPM_HOST_DEVICE void calculateGradients_(const ElementContext& elemCtx, unsigned scvfIdx, unsigned timeIdx)
425 volumeAndPhasePressureDifferences(upIdx_ , dnIdx_, volumeFlux_, pressureDifference_, elemCtx, scvfIdx, timeIdx);
457 // extensive refactoring. It means that the TpfaLinearizer will not support bcs for solvent until this is
463 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:99 Provides the defaults for the parameters required by the transmissibility based volume flux calculati... Definition: NewTranFluxModule.hpp:91 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:432 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:229 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:575 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:214 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:166 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:476 OPM_HOST_DEVICE const DimMatrix & intrinsicPermeability() const Return the intrinsic permeability tensor at a face [m^2]. Definition: NewTranFluxModule.hpp:144 OPM_HOST_DEVICE void calculateGradients_(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Update the required gradients for interior faces. Definition: NewTranFluxModule.hpp:421 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:200 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:189 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:314 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:175 OPM_HOST_DEVICE void updatePolymer(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Definition: NewTranFluxModule.hpp:224 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:155 OPM_HOST_DEVICE void updateSolvent(const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx) Definition: NewTranFluxModule.hpp:221 OPM_HOST_DEVICE void calculateBoundaryFluxes_(const ElementContext &, unsigned, unsigned) Definition: NewTranFluxModule.hpp:578 Provides the intensive quantities for the ECL flux module. Definition: NewTranFluxModule.hpp:99 void update_(const ElementContext &, unsigned, unsigned) Definition: NewTranFluxModule.hpp:102 Declare the properties used by the infrastructure code of the finite volume discretizations. Definition: blackoilbioeffectsmodules.hh:45 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:72 static void registerParameters() Register all run-time parameters for the flux module. Definition: NewTranFluxModule.hpp:80 |