changes to make local update of primaryvariables and intensive quantities possible

This commit is contained in:
hnil 2022-06-15 13:26:38 +02:00 committed by Atgeirr Flø Rasmussen
parent 112c2c3573
commit 56f742ed7d
3 changed files with 15 additions and 4 deletions

View File

@ -102,6 +102,7 @@ class BlackOilIntensiveQuantitiesSimple
enum { dimWorld = GridView::dimensionworld }; enum { dimWorld = GridView::dimensionworld };
enum { compositionSwitchIdx = Indices::compositionSwitchIdx }; enum { compositionSwitchIdx = Indices::compositionSwitchIdx };
static const bool compositionSwitchEnabled = Indices::compositionSwitchIdx >= 0; static const bool compositionSwitchEnabled = Indices::compositionSwitchIdx >= 0;
static const bool waterEnabled = Indices::waterEnabled; static const bool waterEnabled = Indices::waterEnabled;
static const bool gasEnabled = Indices::gasEnabled; static const bool gasEnabled = Indices::gasEnabled;
@ -132,7 +133,8 @@ public:
void update(const Problem& problem,const PrimaryVariables& primaryVars,unsigned globalSpaceIdx, unsigned timeIdx) void update(const Problem& problem,const PrimaryVariables& primaryVars,unsigned globalSpaceIdx, unsigned timeIdx)
{ {
//ParentType::update(elemCtx, dofIdx, timeIdx);//only used for extrusion factor //ParentType::update(elemCtx, dofIdx, timeIdx);//only used for extrusion factor
const auto& materialParams = problem.materialLawParams(globalSpaceIdx); //const auto& materialParams = problem.materialLawParams(globalSpaceIdx);
const auto& materialParams = problem.materialLawParams(0);
Scalar RvMax; Scalar RvMax;
if (FluidSystem::enableVaporizedOil()) { if (FluidSystem::enableVaporizedOil()) {
RvMax = problem.maxOilVaporizationFactor(timeIdx, globalSpaceIdx); RvMax = problem.maxOilVaporizationFactor(timeIdx, globalSpaceIdx);
@ -439,7 +441,7 @@ public:
} else { } else {
x = rockCompressibility*(fluidState_.pressure(gasPhaseIdx) - rockRefPressure); x = rockCompressibility*(fluidState_.pressure(gasPhaseIdx) - rockRefPressure);
} }
porosity_ *= 1.0 + x + 0.5*x*x; porosity_ *= 1.0 + (1 + 0.5*x)*x;
} }
// // deal with water induced rock compaction // // deal with water induced rock compaction

View File

@ -232,7 +232,6 @@ public:
numPriVarsSwitched_ = comm.sum(numPriVarsSwitched_); numPriVarsSwitched_ = comm.sum(numPriVarsSwitched_);
} }
protected:
/*! /*!
* \copydoc FvBaseNewtonMethod::updatePrimaryVariables_ * \copydoc FvBaseNewtonMethod::updatePrimaryVariables_
*/ */

View File

@ -784,6 +784,16 @@ public:
} }
} }
void invalidateAndUpdateIntensiveSingleQuantitiesSimple(const Problem& problem,
const PrimaryVariables& primaryVar,
unsigned dofIdx,
unsigned timeIdx) const
{
//invalidateIntensiveQuantitiesCache(timeIdx);
auto& intquant = intensiveQuantityCache_[timeIdx][dofIdx];
intquant.update(problem, primaryVar, dofIdx, timeIdx);
intensiveQuantityCacheUpToDate_[timeIdx][dofIdx] = true;
}
void invalidateAndUpdateIntensiveQuantitiesSimple(const Problem& problem, void invalidateAndUpdateIntensiveQuantitiesSimple(const Problem& problem,
const SolutionVector& primaryVars, const SolutionVector& primaryVars,