Commit Graph

72 Commits

Author SHA1 Message Date
Bård Skaflestad
fb8e79857c Add tentative implementation of surface-rate targets.
Not tested at present.
2012-09-26 10:14:45 +02:00
Bård Skaflestad
271b0d800c Merge remote-tracking branch 'upstream/master' into fix-impedance-mismatch 2012-09-20 15:49:59 +02:00
Bård Skaflestad
b137eb0b65 Interpret `wells != 0 && wells->W == 0'' as `no wells''.
The CompressibleTpfa class always passes a non-null `forces->wells'
object to the constructor, assembly, and reconstruction routines but
uses ``forces->wells->W == 0'' to signify a simulation model without
wells.  This is, arguably, an error in the CompressibleTpfa class but
one that does not require a lot of work to support in the
cfs_tpfa_residual module.

Insert the extra tests in an effort to honour the ``liberal in what you
accept, strict in what you produce'' principle.
2012-09-20 15:48:48 +02:00
Atgeirr Flø Rasmussen
50a23c0f5d Support shut wells in compressible tpfa solver. 2012-09-20 14:34:33 +02:00
Atgeirr Flø Rasmussen
983a29691c Function cfs_tpfa_residual_assemble() and friends now return singularity flag.
The singularity flag is true if there are no pressure conditions and no
compressibility (so the absolute values of the pressure solution will be
arbitrary).
2012-08-23 14:00:04 +02:00
Xavier Raynaud
660f14df3b Corrected bug (residual should not be divided by dt). 2012-08-21 17:12:07 +02:00
Xavier Raynaud
712ccb0309 Corrected typo in comment. 2012-08-21 17:09:19 +02:00
Xavier Raynaud
7e1e1e7951 Fixed sign error and replaced porevol->porevol0. 2012-08-21 10:20:59 +02:00
Atgeirr Flø Rasmussen
547efbe7d1 Added function cfs_tpfa_res_comprock_assemble().
This is intended to handle cases with both fluid and rock compressibility.
2012-08-17 10:36:57 +02:00
Bård Skaflestad
81f4ab5dd9 Add partial Doxygen markup to public interfaces.
More work needed.
2012-07-03 01:30:18 +02:00
Bård Skaflestad
c1c76a48b6 Restore a blank line that was lost in an earlier cset. 2012-06-20 00:38:47 +02:00
Bård Skaflestad
ecda277cb0 Slight normalisation and clean-up of coding style.
Notably:
  * Replace all remaining <tab>s with (8) spaces.
  * Use post-increment for all counters.
  * Insert a number of blank lines to highlight important groups.
2012-06-19 18:37:26 +02:00
Halvor M. Nilsen
d1f1af8854 Added inizialization of ok, which correct error for solves without wells. The only thing which is check is if the well object have incompressible form. 2012-06-19 13:37:22 +02:00
Bård Skaflestad
77d92e18be Don't mix declarations and definitions. 2012-06-07 10:28:02 +02:00
Xavier Raynaud
b2c5772728 set up correctly a flag in ifs_tpfa.c 2012-06-07 09:29:56 +02:00
Bård Skaflestad
4b6b8c0def Realign function prototypes. No functional changes. 2012-05-24 14:36:53 +02:00
Bård Skaflestad
83274c4027 compute_cell_contrib(): Advance derivative pointer for each connection.
Failing to do this operation resulted in incorrect matrices in cases
with anisotropic tensors and/or non-cube cells.  The error has been
present since the inception of this implementation.
2012-05-15 14:34:56 +02:00
Bård Skaflestad
a865f01478 comprock_increment(): Don't proceed to mult_csr() unless OK. 2012-05-10 22:29:41 +02:00
Atgeirr Flø Rasmussen
a4b32311b2 Fix indexing bug in well handling code for incremental (Newton) pressure assembly. 2012-05-10 15:31:51 +02:00
Xavier Raynaud
8842943794 Make compressible pressure solver compatible with well management. 2012-05-10 12:38:29 +02:00
Bård Skaflestad
0cd6a0a0c6 Realign pointer offsets to provide additional visual cues. 2012-05-09 22:39:28 +02:00
Bård Skaflestad
9809afb3a8 Whitespace adjustment. No functional changes. 2012-05-09 19:21:52 +02:00
Bård Skaflestad
56802231ce Re-align variable declarations various assemble*() methods. 2012-05-09 19:21:00 +02:00
Bård Skaflestad
97ed64f438 Call malloc() once, at pimpl construction time, rather than in each *_increment().
It's slightly wasteful, however.  Maybe we can just reuse h->x for the
mult_csr_matrix() output?
2012-05-09 19:15:41 +02:00
Bård Skaflestad
00b1ce27f0 Follow file conventions in mult_csr_matrix(). 2012-05-09 19:07:59 +02:00
Bård Skaflestad
323914eaba Don't expose a (presently) internal function. 2012-05-09 18:58:17 +02:00
Bård Skaflestad
d23c93e661 Merge from upstream. 2012-05-09 18:56:09 +02:00
Bård Skaflestad
6a7c6cfeb0 Convert Residual-based solver to conventions of <newwells.h>.
Almost a mechanical translation.
2012-05-09 16:26:41 +02:00
Xavier Raynaud
f7e2d88fd9 Added Newton compressible fluid solver. 2012-05-09 15:06:13 +02:00
Atgeirr Flø Rasmussen
962a3b6445 Added shut well support to ifs_tpfa.
This was done using the convention that for a well w in W,
    W.ctrls[w]->current < 0
means that it should be treated as shut. This allows us to keep the matrix
structure related to wells constant, without needing to remake it when wells
shut or open.
2012-05-04 08:15:06 +02:00
Atgeirr Flø Rasmussen
8b33bd261d Remove unused variable. 2012-05-03 13:32:30 +02:00
Atgeirr Flø Rasmussen
88a24ef839 Verify that RESERVOIR_RATE controlled wells have specified total rate. 2012-04-26 15:03:55 +02:00
Atgeirr Flø Rasmussen
6d4f0fe293 Updated pressure solver after changes to well data structure. 2012-04-26 14:49:25 +02:00
Atgeirr Flø Rasmussen
b107180272 Added ifs_tpfa_assemble_comprock() to handle compressible rock cases.
This allows us to remove the hack from IncompTpfa.cpp.
2012-04-25 15:00:28 +02:00
Atgeirr Flø Rasmussen
605933abba Pretty-formatting only. 2012-04-19 15:33:25 +02:00
Atgeirr Flø Rasmussen
c961f8e7d2 Suppressed multiple warnings. 2012-03-28 11:56:20 +02:00
Bård Skaflestad
1a873633c1 Implement solution recovery from wells (BHP and perf. fluxes)
Contingent upon passing non-NULL well_press and well_flux pointers in
the solution structure.  The forces must be the same as the ones used
in assembling the system of linear equations.
2012-03-21 11:54:34 +01:00
Bård Skaflestad
7988921f21 ifs_tpfa: Prepare for well solution recovery (BHP and perf. fluxes).
Expose new elements '.well_press' and '.well_flux' in the solution
structure and update callers accordingly.
2012-03-21 11:08:56 +01:00
Bård Skaflestad
18cdd5f1e3 Assemble_bhp_well(): Don't look up wdof diagonal element multiple times. 2012-03-21 10:59:21 +01:00
Bård Skaflestad
af80492ff3 Assemble_rate_well(): Don't look up wdof diagonal element multiple times. 2012-03-21 10:48:58 +01:00
Bård Skaflestad
de44295f32 Implement RESV constraint assembly. 2012-03-20 23:17:52 +01:00
Bård Skaflestad
1492d9b665 Delete trailing whitespace. 2012-03-20 22:46:38 +01:00
Bård Skaflestad
e41b786c16 Assemble_bhp_well(): Remove unused variable. 2012-03-20 22:45:28 +01:00
Bård Skaflestad
e04b48f05e Assemble BHP-type wells into system of linear equations.
All wells are represented, but BHP wells get trivial equations
(n*p=n*target).  While here, stub out RESV assembly process.

BHP and perforation flux recovery is unimplemented at this time.
2012-03-20 19:32:35 +01:00
Bård Skaflestad
e76e224de8 Revert to original (fractional flow) model of perforation fluxes. 2012-03-20 18:46:54 +01:00
Bård Skaflestad
27271b57b5 Pass number of fluid phases along with well data.
Needed to properly index into Wdata->phasemob.  Update callers
accordingly.
2012-03-20 15:43:25 +01:00
Bård Skaflestad
60a9bee4ac Declare well support in ifs_tpfa module. Currently not implemented.
Update callers accordingly.
2012-03-20 13:39:34 +01:00
Bård Skaflestad
e8712565a8 ifs_tpfa_assemble(): Coalesce external forces into single branch. 2012-03-16 14:30:13 +01:00
Bård Skaflestad
3dbd7e4599 Refactor ifs_tpfa_press_flux() flux calculation in preparation of wells.
Specifically, move calculation of cross-boundary fluxes introduced by
boundary conditions out to new internal function boundary_fluxes().
2012-03-16 11:21:34 +01:00
Bård Skaflestad
83345b4e3a Align multi-line parameter lists and structure members.
No functional changes.
2012-03-16 11:06:01 +01:00