mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-18 21:43:27 -06:00
Implemented well_controls based on well_controls_get_xxx() functions.
This commit is contained in:
parent
027ffb3c5a
commit
8ef5b2b695
@ -5,7 +5,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define HAVE_WELLCONTROLS
|
||||
|
||||
#include <opm/core/wells.h>
|
||||
#include <opm/core/well_controls.h>
|
||||
#include <opm/core/linalg/blas_lapack.h>
|
||||
@ -808,7 +808,7 @@ welleq_coeff_resv(int np, struct cfs_tpfa_res_data *h,
|
||||
pflux = h->pimpl->flux_work;
|
||||
dpflux_w = pflux + (1 * np);
|
||||
dpflux_c = dpflux_w + (1 * np);
|
||||
distr = ctrl->distr + (ctrl->current * np);
|
||||
distr = well_controls_get_current_distr( ctrl );
|
||||
|
||||
*res = *w2c = *w2w = 0.0;
|
||||
for (p = 0; p < np; p++) {
|
||||
@ -835,7 +835,7 @@ welleq_coeff_surfrate(int i, int np, struct cfs_tpfa_res_data *h,
|
||||
pflux = h->pimpl->compflux_p + (i * (1 * np));
|
||||
dpflux_w = h->pimpl->compflux_deriv_p + (i * (2 * np));
|
||||
dpflux_c = dpflux_w + (1 * (1 * np));
|
||||
distr = ctrl->distr + (ctrl->current * (1 * np));
|
||||
distr = well_controls_get_current_distr( ctrl );
|
||||
|
||||
*res = *w2c = *w2w = 0.0;
|
||||
for (p = 0; p < np; p++) {
|
||||
@ -869,14 +869,14 @@ assemble_completion_to_well(int i, int w, int c, int nc, int np,
|
||||
W = wells->W;
|
||||
ctrl = W->ctrls[ w ];
|
||||
|
||||
if (ctrl->current < 0) {
|
||||
if (well_controls_get_current(ctrl) < 0) {
|
||||
/* Interpreting a negative current control index to mean a shut well */
|
||||
welleq_coeff_shut(np, h, &res, &w2c, &w2w);
|
||||
}
|
||||
else {
|
||||
switch (ctrl->type[ ctrl->current ]) {
|
||||
switch (well_controls_get_current_type(ctrl)) {
|
||||
case BHP :
|
||||
welleq_coeff_bhp(np, pw - ctrl->target[ ctrl->current ],
|
||||
welleq_coeff_bhp(np, pw - well_controls_get_current_target( ctrl ),
|
||||
h, &res, &w2c, &w2w);
|
||||
break;
|
||||
|
||||
@ -933,7 +933,7 @@ assemble_well_contrib(struct cfs_tpfa_res_wells *wells ,
|
||||
|
||||
for (w = i = 0; w < W->number_of_wells; w++) {
|
||||
pw = wpress[ w ];
|
||||
is_open = W->ctrls[w]->current >= 0;
|
||||
is_open = (well_controls_get_current(W->ctrls[w]) >= 0);
|
||||
|
||||
for (; i < W->well_connpos[w + 1]; i++, pmobp += np) {
|
||||
|
||||
@ -958,10 +958,10 @@ assemble_well_contrib(struct cfs_tpfa_res_wells *wells ,
|
||||
}
|
||||
|
||||
ctrl = W->ctrls[ w ];
|
||||
if ((ctrl->current >= 0) && /* OPEN? */
|
||||
(ctrl->type[ ctrl->current ] != BHP)) {
|
||||
|
||||
h->F[ nc + w ] -= dt * ctrl->target[ ctrl->current ];
|
||||
if ((well_controls_get_current(ctrl) >= 0) && /* OPEN? */
|
||||
(well_controls_get_current_type(ctrl) != BHP)) {
|
||||
|
||||
h->F[ nc + w ] -= dt * well_controls_get_current_target(ctrl);
|
||||
}
|
||||
else {
|
||||
is_neumann = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user