diff --git a/src/cfs_tpfa.c b/src/cfs_tpfa.c index 90d58eeb3..0fea19f90 100644 --- a/src/cfs_tpfa.c +++ b/src/cfs_tpfa.c @@ -992,34 +992,48 @@ cfs_tpfa_assemble(grid_t *G, /* ---------------------------------------------------------------------- */ void -cfs_tpfa_press_flux(grid_t *G, - flowbc_t *bc, - well_t *W, - int np, - const double *trans, - const double *pmobf, - const double *gravcap_f, - struct completion_data *wdata, - struct cfs_tpfa_data *h, - double *cpress, - double *fflux, - double *wpress, - double *wflux) +cfs_tpfa_press_increment(grid_t *G, + well_t *W, + struct cfs_tpfa_data *h, + double *cpress_inc, + double *wpress_inc) /* ---------------------------------------------------------------------- */ { /* Assign cell pressure directly from solution vector */ - memcpy(cpress, h->x, G->number_of_cells * sizeof *cpress); + memcpy(cpress_inc, h->x, G->number_of_cells * sizeof *cpress_inc); + if (W != NULL) { + assert (wpress_inc != NULL); + + /* Assign well BHP directly from solution vector */ + memcpy(wpress_inc, h->x + G->number_of_cells, + W->number_of_wells * sizeof *wpress_inc); + } +} + + +/* ---------------------------------------------------------------------- */ +void +cfs_tpfa_flux(grid_t *G, + flowbc_t *bc, + well_t *W, + int np, + const double *trans, + const double *pmobf, + const double *gravcap_f, + const double *cpress, + const double *wpress, + struct completion_data *wdata, + double *fflux, + double *wflux) +/* ---------------------------------------------------------------------- */ +{ compute_flux(G, bc, np, trans, pmobf, gravcap_f, cpress, fflux); if ((W != NULL) && (wdata != NULL)) { assert (wpress != NULL); assert (wflux != NULL); - /* Assign well BHP directly from solution vector */ - memcpy(wpress, h->x + G->number_of_cells, - W->number_of_wells * sizeof *wpress); - compute_wflux(W, np, wdata, cpress, wpress, wflux); } } diff --git a/src/cfs_tpfa.h b/src/cfs_tpfa.h index acd809ea4..7cbec29a6 100644 --- a/src/cfs_tpfa.h +++ b/src/cfs_tpfa.h @@ -60,19 +60,25 @@ cfs_tpfa_assemble(grid_t *G, struct cfs_tpfa_data *h); void -cfs_tpfa_press_flux(grid_t *G, - flowbc_t *bc, - well_t *W, - int np, - const double *trans, - const double *pmobf, - const double *gravcap_f, - struct completion_data *wdata, - struct cfs_tpfa_data *h, - double *cpress, - double *fflux, - double *wpress, - double *wflux); +cfs_tpfa_press_increment(grid_t *G, + well_t *W, + struct cfs_tpfa_data *h, + double *cpress_inc, + double *wpress_inc); + +void +cfs_tpfa_flux(grid_t *G, + flowbc_t *bc, + well_t *W, + int np, + const double *trans, + const double *pmobf, + const double *gravcap_f, + const double *cpress, + const double *wpress, + struct completion_data *wdata, + double *fflux, + double *wflux); void cfs_tpfa_fpress(grid_t *G,