mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
adding segment volume / dt to BlackoilMultiSegmentModel
to handle the wellbore volume effects.
This commit is contained in:
parent
d5f917d1ac
commit
847ae2ef8c
@ -203,6 +203,10 @@ namespace Opm {
|
|||||||
|
|
||||||
std::vector<int> top_well_segments_;
|
std::vector<int> top_well_segments_;
|
||||||
|
|
||||||
|
// segment volume by dt (time step)
|
||||||
|
// to handle the volume effects of the segment
|
||||||
|
V segvdt_;
|
||||||
|
|
||||||
// return wells object
|
// return wells object
|
||||||
// TODO: remove this wells structure
|
// TODO: remove this wells structure
|
||||||
using Base::wells;
|
using Base::wells;
|
||||||
|
@ -122,6 +122,18 @@ namespace Opm {
|
|||||||
top_well_segments_ = well_state.topSegmentLoc();
|
top_well_segments_ = well_state.topSegmentLoc();
|
||||||
|
|
||||||
//TODO: handle the volume related.
|
//TODO: handle the volume related.
|
||||||
|
// again, we need a global wells class
|
||||||
|
const int nw = wellsMultiSegment().size();
|
||||||
|
const int nseg_total = well_state.numSegments();
|
||||||
|
std::vector<double> segment_volume;
|
||||||
|
segment_volume.reserve(nseg_total);
|
||||||
|
for (int w = 0; w < nw; ++w) {
|
||||||
|
WellMultiSegmentConstPtr well = wellsMultiSegment()[w];
|
||||||
|
const std::vector<double>& segment_volume_well = well->segmentVolume();
|
||||||
|
segment_volume.insert(segment_volume.end(), segment_volume_well.begin(), segment_volume_well.end());
|
||||||
|
}
|
||||||
|
assert(int(segment_volume.size()) == nseg_total);
|
||||||
|
segvdt_ = Eigen::Map<V>(segment_volume.data(), nseg_total) / dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user