changing the mapping s2s_outlet to s2s_inlets

to better refect the real meaning of the mapping.
This commit is contained in:
Kai Bao 2015-10-09 15:48:55 +02:00
parent cb3f54b618
commit 317cbb0af8
4 changed files with 10 additions and 10 deletions

View File

@ -913,7 +913,7 @@ namespace Opm {
const ADB& segqs_well = subset(segqs, Span(nseg, 1, start_position));
if (well->isMultiSegmented()) {
segqs -= superset(cq_s_seg + well->wellOps().s2s_outlet * segqs_well, Span(nseg, 1, start_position), np * nseg_total);
segqs -= superset(cq_s_seg + well->wellOps().s2s_inlets * segqs_well, Span(nseg, 1, start_position), np * nseg_total);
}
else
{
@ -1226,7 +1226,7 @@ namespace Opm {
WellMultiSegmentConstPtr well = wellsMultiSegment()[w];
const int nseg = well->numberOfSegments();
ADB segp = subset(state.segqs, Span(nseg, 1, start_segment));
ADB well_residual = segp - well->wellOps().s2s_outlet * segp;
ADB well_residual = segp - well->wellOps().s2s_inlets * segp;
ADB others_well_residual = subset(well_residual, Span(nseg - 1, 1, 1));
others_residual = others_residual + superset(others_well_residual, Span(nseg - 1, 1, start_segment + 1), nseg_total);
start_segment += nseg;

View File

@ -178,8 +178,8 @@ namespace Opm
std::cout << " maxtrix p2s_gather " << std::endl;
std::cout << well->wellOps().p2s_gather << std::endl;
std::cout << " s2s_outlet " << std::endl;
std::cout << well->wellOps().s2s_outlet << std::endl;
std::cout << " s2s_inlets " << std::endl;
std::cout << well->wellOps().s2s_inlets << std::endl;
std::cout << " output well information for well " << well->name() << " done!!!! " << std::endl;
}

View File

@ -279,8 +279,8 @@ namespace Opm
s2s_gather.reserve(m_number_of_segments_ * m_number_of_segments_);
std::vector<Tri> s2s_outlet;
s2s_outlet.reserve(m_number_of_segments_);
std::vector<Tri> s2s_inlets;
s2s_inlets.reserve(m_number_of_segments_);
// a brutal way first
// will generate matrix with entries bigger than 1.0
// Then we need to normalize all the values.
@ -288,7 +288,7 @@ namespace Opm
s2s_gather.push_back(Tri(s, s, 1.0));
int s_outlet = m_outlet_segment_[s];
if (s_outlet >=0) {
s2s_outlet.push_back(Tri(s_outlet, s, 1.0));
s2s_inlets.push_back(Tri(s_outlet, s, 1.0));
}
int temp_s = s;
while (m_outlet_segment_[temp_s] >=0) {
@ -306,8 +306,8 @@ namespace Opm
// s2s_gather
// s2outlet
m_wops_.s2s_outlet = M(m_number_of_segments_, m_number_of_segments_);
m_wops_.s2s_outlet.setFromTriplets(s2s_outlet.begin(), s2s_outlet.end());
m_wops_.s2s_inlets = M(m_number_of_segments_, m_number_of_segments_);
m_wops_.s2s_inlets.setFromTriplets(s2s_inlets.begin(), s2s_inlets.end());
m_wops_.p2s_average = M(m_number_of_segments_, m_number_of_perforations_);
std::vector<Tri> p2s_average;

View File

@ -89,7 +89,7 @@ namespace Opm
// means the outlet segments will gather all the contribution
// from all the inlet segments in a recurisive way
M p2s_gather; // perforation -> segment (in an accumative way)
M s2s_outlet; // segment -> their outlet segments
M s2s_inlets; // segment -> their inlet segments
};
const WellOps& wellOps() const;