mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-18 21:43:27 -06:00
Reimplement clone_wells() in terms of well_controls_clone()
This commit is contained in:
parent
81d691e66a
commit
3a6ac6a759
@ -474,14 +474,12 @@ struct Wells *
|
|||||||
clone_wells(const struct Wells *W)
|
clone_wells(const struct Wells *W)
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
{
|
{
|
||||||
int c, np, nperf, ok, pos, w;
|
int np, nperf, ok, pos, w;
|
||||||
double target;
|
const int *cells;
|
||||||
const int *cells;
|
const double *WI, *comp_frac;
|
||||||
const double *WI, *comp_frac, *distr;
|
|
||||||
enum WellControlType type;
|
|
||||||
const struct WellControls *ctrls;
|
|
||||||
|
|
||||||
struct Wells *newWells;
|
struct WellControls *ctrl;
|
||||||
|
struct Wells *newWells;
|
||||||
|
|
||||||
if (W == NULL) {
|
if (W == NULL) {
|
||||||
newWells = NULL;
|
newWells = NULL;
|
||||||
@ -505,25 +503,16 @@ clone_wells(const struct Wells *W)
|
|||||||
ok = add_well(W->type[ w ], W->depth_ref[ w ], nperf,
|
ok = add_well(W->type[ w ], W->depth_ref[ w ], nperf,
|
||||||
comp_frac, cells, WI, W->name[ w ], newWells);
|
comp_frac, cells, WI, W->name[ w ], newWells);
|
||||||
|
|
||||||
/* Capacity should be sufficient from create_wells() */
|
|
||||||
assert (ok);
|
|
||||||
|
|
||||||
ctrls = W->ctrls[ w ];
|
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
for (c = 0; ok && (c < well_controls_get_num(ctrls)); c++) {
|
ok = (ctrl = well_controls_clone(W->ctrls[w])) != NULL;
|
||||||
type = well_controls_iget_type( ctrls , c );
|
|
||||||
target = well_controls_iget_target( ctrls , c );
|
|
||||||
distr = well_controls_iget_distr( ctrls , c );
|
|
||||||
|
|
||||||
ok = append_well_controls(type, target, distr, w, newWells);
|
|
||||||
|
|
||||||
assert (ok);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
set_current_control(w, well_controls_get_current( ctrls) , newWells);
|
/* Destroy control set implied by add_well() */
|
||||||
|
well_controls_destroy(newWells->ctrls[w]);
|
||||||
|
|
||||||
|
/* Assign complete clone of w's control set */
|
||||||
|
newWells->ctrls[w] = ctrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
pos = W->well_connpos[w + 1];
|
pos = W->well_connpos[w + 1];
|
||||||
|
Loading…
Reference in New Issue
Block a user