mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-16 20:24:48 -06:00
Update surface volume in transport solver.
This commit is contained in:
parent
708c56bb94
commit
8bf900f1bf
@ -332,15 +332,18 @@ namespace Opm
|
||||
std::cout << "Making " << num_transport_substeps_ << " transport substeps." << std::endl;
|
||||
}
|
||||
for (int tr_substep = 0; tr_substep < num_transport_substeps_; ++tr_substep) {
|
||||
tsolver_.solve(&state.faceflux()[0], initial_pressure,
|
||||
tsolver_.solve(&state.faceflux()[0], initial_pressure,
|
||||
state.pressure(), &transport_src[0], stepsize, inflow_c,
|
||||
state.saturation(), state.concentration(), state.maxconcentration());
|
||||
state.saturation(), state.surfacevol(),
|
||||
state.concentration(), state.maxconcentration());
|
||||
|
||||
// Computeinjectedproduced function does not take into account polymer.
|
||||
Opm::computeInjectedProduced(props_,
|
||||
state.pressure(), state.surfacevol(), state.saturation(),
|
||||
transport_src, stepsize, injected, produced);
|
||||
if (use_segregation_split_) {
|
||||
tsolver_.solveGravity(columns_, stepsize,
|
||||
state.saturation(), state.concentration(),
|
||||
state.saturation(), state.concentration(),
|
||||
state.maxconcentration());
|
||||
}
|
||||
}
|
||||
@ -404,7 +407,7 @@ namespace Opm
|
||||
tot_produced[0]/tot_porevol_init);
|
||||
if (wells_) {
|
||||
wellreport.push(props_, *wells_, state.pressure(), state.surfacevol(),
|
||||
state.saturation(), timer.currentTime() + timer.currentStepLength(),
|
||||
state.saturation(), timer.currentTime() + timer.currentStepLength(),
|
||||
well_state.bhp(), well_state.perfRates());
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <opm/core/transport/reorder/reordersequence.h>
|
||||
#include <opm/core/utility/RootFinders.hpp>
|
||||
#include <opm/core/utility/miscUtilities.hpp>
|
||||
#include <opm/core/utility/miscUtilitiesBlackoil.hpp>
|
||||
#include <opm/core/pressure/tpfa/trans_tpfa.h>
|
||||
#include <cmath>
|
||||
#include <list>
|
||||
@ -208,6 +209,7 @@ namespace Opm
|
||||
const double dt,
|
||||
const double inflow_c,
|
||||
std::vector<double>& saturation,
|
||||
std::vector<double>& surfacevol,
|
||||
std::vector<double>& concentration,
|
||||
std::vector<double>& cmax)
|
||||
{
|
||||
@ -248,6 +250,8 @@ namespace Opm
|
||||
reorderAndTransport(grid_, darcyflux);
|
||||
toBothSat(saturation_, saturation);
|
||||
|
||||
// Compute surface volume as a postprocessing step from saturation and A_
|
||||
computeSurfacevol(grid_.number_of_cells, props_.numPhases(), &A_[0], &saturation[0], &surfacevol[0]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -89,6 +89,7 @@ namespace Opm
|
||||
const double dt,
|
||||
const double inflow_c,
|
||||
std::vector<double>& saturation,
|
||||
std::vector<double>& surfacevol,
|
||||
std::vector<double>& concentration,
|
||||
std::vector<double>& cmax);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user