mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
cleaning up unuseful comments and code fragments.
This commit is contained in:
@@ -374,7 +374,7 @@ enum WellVariablePositions {
|
|||||||
const int well_index,
|
const int well_index,
|
||||||
std::vector<double>& well_flux) const;
|
std::vector<double>& well_flux) const;
|
||||||
|
|
||||||
double leastStrictBhpFromBhpLimits(const int well_index) const;
|
double mostStrictBhpFromBhpLimits(const int well_index) const;
|
||||||
|
|
||||||
// TODO: maybe it should be improved to be calculate general rates for THP control later
|
// TODO: maybe it should be improved to be calculate general rates for THP control later
|
||||||
template<typename Simulator>
|
template<typename Simulator>
|
||||||
|
|||||||
@@ -1741,7 +1741,7 @@ namespace Opm {
|
|||||||
for (int w = 0; w < nw; ++w) {
|
for (int w = 0; w < nw; ++w) {
|
||||||
|
|
||||||
// get the bhp value based on the bhp constraints
|
// get the bhp value based on the bhp constraints
|
||||||
double bhp = leastStrictBhpFromBhpLimits(w);
|
double bhp = mostStrictBhpFromBhpLimits(w);
|
||||||
|
|
||||||
// does the well have a THP related constraint?
|
// does the well have a THP related constraint?
|
||||||
bool is_thp_determined = wellHasTHPConstraints(w);
|
bool is_thp_determined = wellHasTHPConstraints(w);
|
||||||
@@ -1758,7 +1758,7 @@ namespace Opm {
|
|||||||
// checking whether a well is newly added, it only happens at the beginning of the report step
|
// checking whether a well is newly added, it only happens at the beginning of the report step
|
||||||
if ( !well_state.isNewWell(w) ) {
|
if ( !well_state.isNewWell(w) ) {
|
||||||
for (int p = 0; p < np; ++p) {
|
for (int p = 0; p < np; ++p) {
|
||||||
// TODO: this is dangerous for new added well
|
// This is dangerous for new added well
|
||||||
// since we are not handling the initialization correctly for now
|
// since we are not handling the initialization correctly for now
|
||||||
potentials[p] = well_state.wellRates()[w * np + p];
|
potentials[p] = well_state.wellRates()[w * np + p];
|
||||||
}
|
}
|
||||||
@@ -1823,23 +1823,8 @@ namespace Opm {
|
|||||||
|
|
||||||
if (well_collection_->groupControlActive()) {
|
if (well_collection_->groupControlActive()) {
|
||||||
// calculate the well potentials
|
// calculate the well potentials
|
||||||
// two functions will probably be merged in the final version
|
|
||||||
// and also the well potentials related parts in well state.
|
|
||||||
if (param_.compute_well_potentials_) {
|
if (param_.compute_well_potentials_) {
|
||||||
|
|
||||||
// the following part should be made a function
|
|
||||||
// const int nw = wells().number_of_wells;
|
|
||||||
for (int w = 0; w < nw; ++w) {
|
|
||||||
WellControls* wc = wells().ctrls[w];
|
|
||||||
const int control = well_controls_get_current(wc);
|
|
||||||
well_state.currentControls()[w] = control;
|
|
||||||
// TODO: when we under defaulted BHP value here, it is not
|
|
||||||
// wise to update the WellState with this target.
|
|
||||||
// It should only be the case with `GRUP` while we have not
|
|
||||||
// applied group control.
|
|
||||||
// updateWellStateWithTarget(wc, control, w, well_state);
|
|
||||||
}
|
|
||||||
|
|
||||||
setWellVariables(well_state);
|
setWellVariables(well_state);
|
||||||
computeWellConnectionPressures(ebos_simulator, well_state);
|
computeWellConnectionPressures(ebos_simulator, well_state);
|
||||||
|
|
||||||
@@ -1880,7 +1865,6 @@ namespace Opm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// since the controls are all updated, we should update well_state accordingly
|
// since the controls are all updated, we should update well_state accordingly
|
||||||
// const int nw = wells().number_of_wells;
|
|
||||||
for (int w = 0; w < nw; ++w) {
|
for (int w = 0; w < nw; ++w) {
|
||||||
WellControls* wc = wells().ctrls[w];
|
WellControls* wc = wells().ctrls[w];
|
||||||
const int control = well_controls_get_current(wc);
|
const int control = well_controls_get_current(wc);
|
||||||
@@ -1892,7 +1876,7 @@ namespace Opm {
|
|||||||
if (well_state.isNewWell(w) ) {
|
if (well_state.isNewWell(w) ) {
|
||||||
well_state.setNewWell(w, false);
|
well_state.setNewWell(w, false);
|
||||||
}
|
}
|
||||||
}
|
} // end of for (int w = 0; w < nw; ++w)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2533,12 +2517,6 @@ namespace Opm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case RESERVOIR_RATE:
|
case RESERVOIR_RATE:
|
||||||
// No direct change to any observable quantity at
|
|
||||||
// surface condition. In this case, use existing
|
|
||||||
// flow rates as initial conditions as reservoir
|
|
||||||
// rate acts only in aggregate.
|
|
||||||
// break;
|
|
||||||
|
|
||||||
case SURFACE_RATE:
|
case SURFACE_RATE:
|
||||||
// checking the number of the phases under control
|
// checking the number of the phases under control
|
||||||
int numPhasesWithTargetsUnderThisControl = 0;
|
int numPhasesWithTargetsUnderThisControl = 0;
|
||||||
@@ -2564,7 +2542,6 @@ namespace Opm {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (well_type == PRODUCER) {
|
} else if (well_type == PRODUCER) {
|
||||||
|
|
||||||
// update the rates of phases under control based on the target,
|
// update the rates of phases under control based on the target,
|
||||||
// and also update rates of phases not under control to keep the rate ratio,
|
// and also update rates of phases not under control to keep the rate ratio,
|
||||||
// assuming the mobility ratio does not change for the production wells
|
// assuming the mobility ratio does not change for the production wells
|
||||||
@@ -2740,7 +2717,7 @@ namespace Opm {
|
|||||||
template<typename FluidSystem, typename BlackoilIndices>
|
template<typename FluidSystem, typename BlackoilIndices>
|
||||||
double
|
double
|
||||||
StandardWellsDense<FluidSystem, BlackoilIndices>::
|
StandardWellsDense<FluidSystem, BlackoilIndices>::
|
||||||
leastStrictBhpFromBhpLimits(const int well_index) const
|
mostStrictBhpFromBhpLimits(const int well_index) const
|
||||||
{
|
{
|
||||||
double bhp;
|
double bhp;
|
||||||
|
|
||||||
@@ -2748,14 +2725,14 @@ namespace Opm {
|
|||||||
const WellType& well_type = wells().type[well_index];
|
const WellType& well_type = wells().type[well_index];
|
||||||
// initial bhp value, making the value not usable
|
// initial bhp value, making the value not usable
|
||||||
switch(well_type) {
|
switch(well_type) {
|
||||||
case INJECTOR:
|
case INJECTOR:
|
||||||
bhp = std::numeric_limits<double>::max();
|
bhp = std::numeric_limits<double>::max();
|
||||||
break;
|
break;
|
||||||
case PRODUCER:
|
case PRODUCER:
|
||||||
bhp = -std::numeric_limits<double>::max();
|
bhp = -std::numeric_limits<double>::max();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
OPM_THROW(std::logic_error, "Expected PRODUCER or INJECTOR type for well " << wells().name[well_index]);
|
OPM_THROW(std::logic_error, "Expected PRODUCER or INJECTOR type for well " << wells().name[well_index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the well controls
|
// the well controls
|
||||||
@@ -2770,18 +2747,18 @@ namespace Opm {
|
|||||||
const double bhp_target = well_controls_iget_target(well_control, ctrl_index);
|
const double bhp_target = well_controls_iget_target(well_control, ctrl_index);
|
||||||
|
|
||||||
switch(well_type) {
|
switch(well_type) {
|
||||||
case INJECTOR: // using the lower bhp contraint from Injectors
|
case INJECTOR: // using the lower bhp contraint from Injectors
|
||||||
if (bhp_target < bhp) {
|
if (bhp_target < bhp) {
|
||||||
bhp = bhp_target;
|
bhp = bhp_target;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PRODUCER:
|
case PRODUCER:
|
||||||
if (bhp_target > bhp) {
|
if (bhp_target > bhp) {
|
||||||
bhp = bhp_target;
|
bhp = bhp_target;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
OPM_THROW(std::logic_error, "Expected PRODUCER or INJECTOR type for well " << wells().name[well_index]);
|
OPM_THROW(std::logic_error, "Expected PRODUCER or INJECTOR type for well " << wells().name[well_index]);
|
||||||
} // end of switch
|
} // end of switch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,22 +167,6 @@ namespace Opm
|
|||||||
perfPress()[ perf ] = prevState.perfPress()[ oldPerf_idx ];
|
perfPress()[ perf ] = prevState.perfPress()[ oldPerf_idx ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// currentControls
|
|
||||||
// TODO: copying the control index from the previous state can provide better guess of the inital control
|
|
||||||
// while it can cause problem when the combination of the controls/constraints change. In that situation, coying
|
|
||||||
// the control index means specifying a rather random control. The VFP table provides some damaging values for
|
|
||||||
// situatioin not desirable, entering with a random control will possibly crash the whole simulation. Restarting with smaller
|
|
||||||
// time step might not help.
|
|
||||||
/* const int old_control_index = prevState.currentControls()[ oldIndex ];
|
|
||||||
if (old_control_index < well_controls_get_num(wells->ctrls[w])) {
|
|
||||||
// If the set of controls have changed, this may not be identical
|
|
||||||
// to the last control, but it must be a valid control.
|
|
||||||
currentControls()[ newIndex ] = old_control_index;
|
|
||||||
} else {
|
|
||||||
assert(well_controls_get_num(wells->ctrls[w]) > 0);
|
|
||||||
currentControls()[ newIndex ] = 0;
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user