Rename CompletionData::gpot -> wdp .

This is in preparation of implementing actual gravity support in
(compressible) well-pressure solution.
This commit is contained in:
Bård Skaflestad 2012-10-16 13:55:07 +02:00
parent 10604d237b
commit 8a8c29f5ce
4 changed files with 22 additions and 23 deletions

View File

@ -192,7 +192,7 @@ struct CompletionData
/** /**
* Gravity potentials. * Gravity potentials.
*/ */
double *gpot; double *wdp;
/** /**
* Volumes to surface-components matrix, A = RB^{-1}. * Volumes to surface-components matrix, A = RB^{-1}.

View File

@ -216,8 +216,8 @@ namespace Opm
const int nperf = wells_->well_connpos[nw]; const int nperf = wells_->well_connpos[nw];
const int dim = grid_.dimensions; const int dim = grid_.dimensions;
const double grav = gravity_ ? gravity_[dim - 1] : 0.0; const double grav = gravity_ ? gravity_[dim - 1] : 0.0;
wellperf_gpot_.clear(); wellperf_wdp_.clear();
wellperf_gpot_.resize(np*nperf, 0.0); wellperf_wdp_.resize(np*nperf, 0.0);
if (grav == 0.0) { if (grav == 0.0) {
return; return;
} }
@ -239,7 +239,7 @@ namespace Opm
props_.matrix(1, &state.pressure()[cell], &state.surfacevol()[np*cell], &cell, &A[0], 0); props_.matrix(1, &state.pressure()[cell], &state.surfacevol()[np*cell], &cell, &A[0], 0);
props_.density(1, &A[0], &rho[0]); props_.density(1, &A[0], &rho[0]);
for (int phase = 0; phase < np; ++phase) { for (int phase = 0; phase < np; ++phase) {
wellperf_gpot_[np*j + phase] = rho[phase]*grav*(cell_depth - ref_depth); wellperf_wdp_[np*j + phase] = rho[phase]*grav*(cell_depth - ref_depth);
} }
} }
} }
@ -480,7 +480,7 @@ namespace Opm
const double bhp = well_state.bhp()[w]; const double bhp = well_state.bhp()[w];
double perf_p = bhp; double perf_p = bhp;
for (int phase = 0; phase < np; ++phase) { for (int phase = 0; phase < np; ++phase) {
perf_p += wellperf_gpot_[np*j + phase]*comp_frac[phase]; perf_p += wellperf_wdp_[np*j + phase]*comp_frac[phase];
} }
// Hack warning: comp_frac is used as a component // Hack warning: comp_frac is used as a component
// surface-volume variable in calls to matrix() and // surface-volume variable in calls to matrix() and
@ -512,7 +512,7 @@ namespace Opm
const double* z = &state.surfacevol()[0]; const double* z = &state.surfacevol()[0];
UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_); UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_);
CompletionData completion_data; CompletionData completion_data;
completion_data.gpot = ! wellperf_gpot_.empty() ? &wellperf_gpot_[0] : 0; completion_data.wdp = ! wellperf_wdp_.empty() ? &wellperf_wdp_[0] : 0;
completion_data.A = ! wellperf_A_.empty() ? &wellperf_A_[0] : 0; completion_data.A = ! wellperf_A_.empty() ? &wellperf_A_[0] : 0;
completion_data.phasemob = ! wellperf_phasemob_.empty() ? &wellperf_phasemob_[0] : 0; completion_data.phasemob = ! wellperf_phasemob_.empty() ? &wellperf_phasemob_[0] : 0;
cfs_tpfa_res_wells wells_tmp; cfs_tpfa_res_wells wells_tmp;
@ -599,7 +599,7 @@ namespace Opm
{ {
UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_); UnstructuredGrid* gg = const_cast<UnstructuredGrid*>(&grid_);
CompletionData completion_data; CompletionData completion_data;
completion_data.gpot = ! wellperf_gpot_.empty() ? const_cast<double*>(&wellperf_gpot_[0]) : 0; completion_data.wdp = ! wellperf_wdp_.empty() ? const_cast<double*>(&wellperf_wdp_[0]) : 0;
completion_data.A = ! wellperf_A_.empty() ? const_cast<double*>(&wellperf_A_[0]) : 0; completion_data.A = ! wellperf_A_.empty() ? const_cast<double*>(&wellperf_A_[0]) : 0;
completion_data.phasemob = ! wellperf_phasemob_.empty() ? const_cast<double*>(&wellperf_phasemob_[0]) : 0; completion_data.phasemob = ! wellperf_phasemob_.empty() ? const_cast<double*>(&wellperf_phasemob_[0]) : 0;
cfs_tpfa_res_wells wells_tmp; cfs_tpfa_res_wells wells_tmp;
@ -643,7 +643,7 @@ namespace Opm
const double bhp = well_state.bhp()[w]; const double bhp = well_state.bhp()[w];
double perf_p = bhp; double perf_p = bhp;
for (int phase = 0; phase < np; ++phase) { for (int phase = 0; phase < np; ++phase) {
perf_p += wellperf_gpot_[np*j + phase]*comp_frac[phase]; perf_p += wellperf_wdp_[np*j + phase]*comp_frac[phase];
} }
well_state.perfPress()[j] = perf_p; well_state.perfPress()[j] = perf_p;
} }

View File

@ -134,7 +134,7 @@ namespace Opm
struct cfs_tpfa_res_data* h_; struct cfs_tpfa_res_data* h_;
// ------ Data that will be modified for every solve. ------ // ------ Data that will be modified for every solve. ------
std::vector<double> wellperf_gpot_; std::vector<double> wellperf_wdp_;
std::vector<double> initial_porevol_; std::vector<double> initial_porevol_;
// ------ Data that will be modified for every solver iteration. ------ // ------ Data that will be modified for every solver iteration. ------

View File

@ -420,15 +420,15 @@ compute_well_compflux_and_deriv(struct cfs_tpfa_res_wells *wells ,
const double *wpress, const double *wpress,
struct cfs_tpfa_res_impl *pimpl ) struct cfs_tpfa_res_impl *pimpl )
{ {
int c, i, w, np2; int c, i, w, np2;
double pw, dp; double pw, dp;
double *WI, *gpot, *Ap, *pmobp; const double *WI, *wdp, *Ap, *pmobp;
double *pflux, *dpflux, gpot[3] = { 0.0 };
double *pflux, *dpflux;
struct Wells *W; struct Wells *W;
assert (wells->W != NULL); assert (wells->W != NULL);
assert (wells->W->number_of_phases <= 3);
W = wells->W; W = wells->W;
@ -436,7 +436,7 @@ compute_well_compflux_and_deriv(struct cfs_tpfa_res_wells *wells ,
assert (W->data != NULL); assert (W->data != NULL);
WI = W->WI; WI = W->WI;
gpot = wells->data->gpot; wdp = wells->data->wdp;
Ap = wells->data->A; Ap = wells->data->A;
pmobp = wells->data->phasemob; pmobp = wells->data->phasemob;
@ -449,11 +449,11 @@ compute_well_compflux_and_deriv(struct cfs_tpfa_res_wells *wells ,
pw = wpress[w]; pw = wpress[w];
for (; i < W->well_connpos[w + 1]; i++, for (; i < W->well_connpos[w + 1]; i++,
gpot += np, Ap += np2, pmobp += np, Ap += np2, pmobp += np,
pflux += np, dpflux += 2 * np) { pflux += np, dpflux += 2 * np) {
c = W->well_cells[i]; c = W->well_cells[i];
dp = pw - cpress[c]; dp = pw + wdp[i]- cpress[c];
compute_darcyflux_and_deriv(np, WI[i], dp, pmobp, gpot, compute_darcyflux_and_deriv(np, WI[i], dp, pmobp, gpot,
pimpl->flux_work, pimpl->flux_work,
@ -909,8 +909,8 @@ assemble_well_contrib(struct cfs_tpfa_res_wells *wells ,
{ {
int w, i, c, np, np2, nc; int w, i, c, np, np2, nc;
int is_neumann, is_open; int is_neumann, is_open;
double pw, dp; double pw, dp, gpot[3] = { 0.0 };
double *WI, *gpot, *pmobp; const double *WI, *wdp, *pmobp;
const double *Ac, *dAc; const double *Ac, *dAc;
struct Wells *W; struct Wells *W;
@ -923,7 +923,7 @@ assemble_well_contrib(struct cfs_tpfa_res_wells *wells ,
W = wells->W; W = wells->W;
WI = W->WI; WI = W->WI;
gpot = wells->data->gpot; wdp = wells->data->wdp;
pmobp = wells->data->phasemob; pmobp = wells->data->phasemob;
is_neumann = 1; is_neumann = 1;
@ -932,14 +932,13 @@ assemble_well_contrib(struct cfs_tpfa_res_wells *wells ,
pw = wpress[ w ]; pw = wpress[ w ];
is_open = W->ctrls[w]->current >= 0; is_open = W->ctrls[w]->current >= 0;
for (; i < W->well_connpos[w + 1]; for (; i < W->well_connpos[w + 1]; i++, pmobp += np) {
i++, gpot += np, pmobp += np) {
c = W->well_cells[ i ]; c = W->well_cells[ i ];
Ac = cq->Ac + (c * np2); Ac = cq->Ac + (c * np2);
dAc = cq->dAc + (c * np2); dAc = cq->dAc + (c * np2);
dp = pw - cpress[ c ]; dp = pw + wdp[i] - cpress[ c ];
init_completion_contrib(i, np, Ac, dAc, h->pimpl); init_completion_contrib(i, np, Ac, dAc, h->pimpl);