Commit Graph

336 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
8c58165862 Added LinearSolverFactory class. 2012-04-13 16:33:51 +02:00
Atgeirr Flø Rasmussen
588060d1e6 Use C comments in C code. 2012-04-13 15:46:15 +02:00
Atgeirr Flø Rasmussen
709b8c0b82 Work around mismatch between our HAVE_BOOST and what dune-istl expects.
In our config.h, HAVE_BOOST is defined (empty).
In dune-istl it is expected to be defined to 0 or 1.
2012-04-13 15:37:11 +02:00
Kjetil Olsen Lye
af849bf9e9 Added computations for total flow for each well 2012-04-13 14:22:44 +02:00
Kjetil Olsen Lye
c992deb147 prettification 2012-04-13 13:21:33 +02:00
Kjetil Olsen Lye
3058e26447 merge 2012-04-13 13:20:36 +02:00
Kjetil Olsen Lye
9d1c9dee68 extra tests for injector wells in group control 2012-04-13 13:17:25 +02:00
Kjetil Olsen Lye
62e4b791d2 Added checks for BHP and fluid_volume_rate for group control. Also added error tolerance for group control 2012-04-13 12:57:47 +02:00
Kjetil Olsen Lye
246af80ee8 Fixed a small bug in reading of WCONPROD 2012-04-13 11:37:50 +02:00
Kjetil Olsen Lye
f1cc0d56e8 Added reading of WGRUPCON, also added guide_rates to the well groups. Fixed a small bug in calculateWDP 2012-04-13 10:32:36 +02:00
Bård Skaflestad
9059af9b41 Opm::computeWDP(): Don't shadow (well) loop counter in phase loop. 2012-04-12 22:43:33 +02:00
Bård Skaflestad
a38efedc8d Opm::computeWDP(): Match definition and prototype.
Specifically, accept the densities as a reference to const, not just a
const object.
2012-04-12 22:41:03 +02:00
Bård Skaflestad
6a5534ae2e Pass correctly sized well-rate solution vectors to ifs_tpfa_press_flux().
The function computes a total flux at each perforation (connection), not
just one total flux per well.  Update documentation accordingly.
2012-04-12 20:27:29 +02:00
Kjetil Olsen Lye
74fc0a5c25 Made a (possibly wrong) adjustment to well_controls_append. Each control now has its current index set to 0, as there's only supposed to be one control per well. 2012-04-12 18:47:06 +02:00
Xavier Raynaud
4b193f34ec Added Latex format in documentation. 2012-04-12 18:13:57 +02:00
Kjetil Olsen Lye
7c21765100 Made a computeWDP-function 2012-04-12 17:50:51 +02:00
Kjetil Olsen Lye
fb6bde6e04 Changed input arguments for group checking 2012-04-12 16:56:58 +02:00
Atgeirr Flø Rasmussen
608766421b Initialize data members in declared order. 2012-04-12 16:52:57 +02:00
Kjetil Olsen Lye
6756d6b6c3 Made us of wells output arguments in IncompTpfa 2012-04-12 16:39:12 +02:00
Kjetil Olsen Lye
ee736d8071 Made IncompTpfa receive wells-output-arguments 2012-04-12 16:36:08 +02:00
Kjetil Olsen Lye
4150e4a184 Made queries upwards from wells to group to group 2012-04-12 15:48:24 +02:00
Kjetil Olsen Lye
c931e2a1fb Made the WellNode be aware of their own index 2012-04-12 14:25:39 +02:00
Atgeirr Flø Rasmussen
7dcec8976b Moved internal functions into anonymous namespace. 2012-04-11 10:56:08 +02:00
Atgeirr Flø Rasmussen
7c00c770b0 Improved formatting. 2012-04-11 10:52:45 +02:00
Atgeirr Flø Rasmussen
b8238927da Improve formatting. 2012-04-11 10:49:45 +02:00
Atgeirr Flø Rasmussen
263642a98e Removed unneeded check for WELSPECS and shadowing of existing object. 2012-04-11 10:47:30 +02:00
Atgeirr Flø Rasmussen
8ca7fa7665 Merged. 2012-04-10 15:47:28 +02:00
Atgeirr Flø Rasmussen
ddf0f09b6e Disabled OpenMP pragmas in low-level fluid evaluations.
This is done to reduce risk of misuse, considering two cases:
 - These functions are often called with a single data point,
   making the thread setup and teardown time prohibitively expensive.
 - This may conflict with higher-level use of OpenMP.
2012-04-10 15:46:24 +02:00
Atgeirr Flø Rasmussen
844b2b6cc6 Removed unused code. 2012-04-10 15:42:47 +02:00
Kjetil Olsen Lye
36ffb7416a Fixed some warnings 2012-04-10 15:01:52 +02:00
Kjetil Olsen Lye
65d3ad547e merge 2012-04-10 14:48:35 +02:00
Kjetil Olsen Lye
a9dfab1b37 Fixed namespacing issue 2012-04-10 14:47:29 +02:00
Atgeirr Flø Rasmussen
ee4123c3d8 Made state before init() valid (0.0 water sat, 1.0 oil sat). 2012-04-02 15:41:13 +02:00
Atgeirr Flø Rasmussen
d397fd847b Changed single-cell solver call.
- Using [0,1] interval instead of [smin, smax] interval to handle compressible case.
 - Using new version of Regula Falsi function which exploits initial guess.
2012-04-02 13:24:57 +02:00
Atgeirr Flø Rasmussen
495a30ef17 Merge. 2012-03-30 16:11:27 +02:00
Atgeirr Flø Rasmussen
baf099cd5a Minor modification of residual formula (equivalent to the old). 2012-03-30 16:11:07 +02:00
Kjetil Olsen Lye
b959de1ba0 Some comments 2012-03-30 10:51:31 +02:00
Atgeirr Flø Rasmussen
ed5a7802b3 Bugfix: ensure all cells have a valid saturation initially. 2012-03-29 21:10:14 +02:00
Kjetil Olsen Lye
abdae7073e merge 2012-03-29 18:35:00 +02:00
Kjetil Olsen Lye
5cff14343d Added WellCollection as a forest of Well group trees. Did parsing of group control input data into this forest format 2012-03-29 18:34:51 +02:00
Atgeirr Flø Rasmussen
5e78fc1c9f Multiple changes dealing with initialization. Work in progress.
- Moved simulator state class into its own file.
 - Using new initState...() methods in spu_2p.cpp
 - No longer controlled by 'scenario' parameter.
2012-03-29 13:05:59 +02:00
Atgeirr Flø Rasmussen
41979968ff Minor bugfix. 2012-03-29 12:50:18 +02:00
Atgeirr Flø Rasmussen
bcb9a8772f Added correct documentation to initStateTwophaseBasic(). 2012-03-29 11:09:13 +02:00
Atgeirr Flø Rasmussen
3870df7fcd Added functions initStateTwophaseBasic() and initStateTwophaseFromDeck(). 2012-03-29 11:06:05 +02:00
Atgeirr Flø Rasmussen
0e861d1845 Suppressed multiple warnings. 2012-03-28 16:39:04 +02:00
Kjetil Olsen Lye
9ec1b4243b merge 2012-03-28 15:49:48 +02:00
Kjetil Olsen Lye
844698baa2 Prettification of code 2012-03-28 15:49:39 +02:00
Atgeirr Flø Rasmussen
c577e8d952 Merged. 2012-03-28 14:41:56 +02:00
Kjetil Olsen Lye
bc1fcb831b Fixed some warnings and added GCONPROD reading for the eclipse parser 2012-03-28 12:38:48 +02:00
Atgeirr Flø Rasmussen
244faaf975 Merge. 2012-03-28 11:57:25 +02:00
Atgeirr Flø Rasmussen
c961f8e7d2 Suppressed multiple warnings. 2012-03-28 11:56:20 +02:00
Kjetil Olsen Lye
e075d3d92b merge 2012-03-27 16:57:12 +02:00
Kjetil Olsen Lye
eedb506ad0 Started reading the gruptree 2012-03-27 16:57:01 +02:00
Bård Skaflestad
2cd5cfb867 solveGravity(): Don't compare signed and unsigned expressions. 2012-03-27 11:19:13 +02:00
Kjetil Olsen Lye
d2e4f5d664 Removed all traces of the property tree (I hope) 2012-03-27 11:09:04 +02:00
Kjetil Olsen Lye
867653d4b1 Fixed minor error 2012-03-27 10:58:42 +02:00
Kjetil Olsen Lye
2bdebbe7db Fixed minor error 2012-03-27 10:57:44 +02:00
Kjetil Olsen Lye
5b485b8c8a Added exmaple file 2012-03-27 10:56:32 +02:00
Kjetil Olsen Lye
f7d88a1836 merge 2012-03-27 09:23:32 +02:00
Kjetil Olsen Lye
040be401e0 added initial input reading for group control (GRUP-keyword) 2012-03-27 09:23:24 +02:00
Atgeirr Flø Rasmussen
7777a8ee07 Bugfix in solveMultiCell(). 2012-03-26 14:20:00 +02:00
Kjetil Olsen Lye
bceee40b4f Added opm-parallelization to column solver for gravity. Did a (minor) interface change on extractColumn 2012-03-23 12:32:25 +01: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
Atgeirr Flø Rasmussen
65ee7ccc2f Bugfixes in RockCompressibility::isActive() and constructor. 2012-03-20 21:36:31 +01:00
Bård Skaflestad
2085a381f3 Merge from upstream. 2012-03-20 19:34:30 +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
Atgeirr Flø Rasmussen
6688ea1031 Make comments relating to omega (frac.flow-weighted density) precise. 2012-03-20 14:21:22 +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
Atgeirr Flø Rasmussen
39e55a34cf Merged. 2012-03-20 12:12:21 +01:00
Atgeirr Flø Rasmussen
b430b7bcb5 Now running with rock compressibility (testing in progress). Multiple changes.
- TransportModelTwophase no longer takes pore volume in constructor, but in
   the solve() and solveGravity() calls.
 - Residual function uses compressibility term (not yet for gravity residual).
 - spu_2p now takes a new parameter "init_p_bar", and ReservoirState class
   accepts initial pressure as a constructor argument.
 - Moved parts of initialization around, since pore volume now depends on
   state (pressure).
2012-03-20 12:11:08 +01:00
Atgeirr Flø Rasmussen
07c4938e00 Compensate for matrix adjustment in rock comp case. 2012-03-20 12:05:59 +01:00
Bård Skaflestad
433485c4f9 Solve(rock_comp): Refactor rock-compressibility diagonal term calculation. 2012-03-20 11:21:02 +01:00
Atgeirr Flø Rasmussen
227d3e7d3c Added computePorevolume() overload taking rock compressibility into account. 2012-03-20 10:31:32 +01:00
Atgeirr Flø Rasmussen
a4a92b9bd9 Fixed const correctness issue in RockCompressibility class. 2012-03-20 10:29:43 +01:00
Atgeirr Flø Rasmussen
8f6af3ba19 Added RockCompressibility::isActive() method. 2012-03-20 10:15:33 +01:00
Atgeirr Flø Rasmussen
f40d0ad8de Documented computePhaseMobilities(). 2012-03-20 10:13:27 +01:00
Atgeirr Flø Rasmussen
bc0173a56b Merge. 2012-03-19 14:35:37 +01:00
Atgeirr Flø Rasmussen
983b55049f Fixed and documented constructor taking ParameterGroup. 2012-03-19 14:35:13 +01:00
Atgeirr Flø Rasmussen
e239c1d209 Added constructor taking parameters to RockCompressibility. 2012-03-19 14:30:44 +01:00
Atgeirr Flø Rasmussen
3f683e607e Added RockCompressibility class. 2012-03-19 13:55:26 +01:00
Bård Skaflestad
049f02e1df solve(rock_comp): Replace manual index search with csrmatrix_elm_index(). 2012-03-19 13:55:21 +01:00
Atgeirr Flø Rasmussen
ed5cf7270c Implemented solve() with rock compressibility (untested). Struct init warning suppression. 2012-03-19 11:52:03 +01:00
Bård Skaflestad
f3ce1369c4 Merge from upstream. 2012-03-16 20:35:52 +01:00
Bård Skaflestad
e8712565a8 ifs_tpfa_assemble(): Coalesce external forces into single branch. 2012-03-16 14:30:13 +01:00
Atgeirr Flø Rasmussen
75b6e1fc97 Fixed bugs and changed interface for Gauss-Seidel segregation solver. 2012-03-16 13:41:10 +01:00
Bård Skaflestad
78687dc5c9 Refactor construction of driving forces in preparation of well support. 2012-03-16 11:59:51 +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
Atgeirr Flø Rasmussen
a02089eabb Merge. 2012-03-16 08:33:35 +01:00
Atgeirr Flø Rasmussen
6e916914d6 Added experimental Gauss-Seidel segregation solver. Not yet functioning. 2012-03-16 08:33:00 +01:00
Bård Skaflestad
4378bf7192 Initialise all tpfa_solution members to zero (i.e., NULL).
This is in anticipation of introducing additional structure members to
represent solution variables associated with wells whilst having the
compiler generate the appropriate null pointers to aid debugging.

Unfortunately, GCC warns about the standard "structure = { 0 }" idiom
under -Wmissing-field-initializers which is enabled by default under
"-Wextra".
2012-03-15 15:13:03 +01:00
Bård Skaflestad
27226eaacb Encapsulate ifs_tpfa pressure solution in ad-hoc structure.
This is to limit the number of explicit interface changes when we
produce solution variables for wells too.

Update callers accordingly.
2012-03-15 14:26:40 +01:00
Bård Skaflestad
bc106cb286 ifs_tpfa: Build sparse matrix structure capable of handling wells.
Actual contributions not included at this time.  Update caller
(IncompTPFA) accordingly, but don't modify observable behaviour.
2012-03-15 02:53:59 +01:00
Atgeirr Flø Rasmussen
5a47b3b075 Fix doc typo. 2012-03-14 13:46:21 +01:00
Atgeirr Flø Rasmussen
d98b83bd3d Moved Watercut class to miscUtilities.hpp. 2012-03-14 12:47:01 +01:00
Atgeirr Flø Rasmussen
08e12d7be1 Added wellsToSrc() function. Use forward declarations in header. 2012-03-14 09:51:08 +01:00
Bård Skaflestad
e93ae04452 Merge from upstream. 2012-03-14 00:00:15 +01:00
Bård Skaflestad
7e74da8021 Account for explicit flux BCs during flux calculation. 2012-03-13 23:35:26 +01:00
Bård Skaflestad
81f3c31392 Account for compressed BC representation during flux calculation. 2012-03-13 23:28:43 +01:00
Bård Skaflestad
11671f0cad Assemble flux boundary conditions into system of linear equations.
A few restrictions apply:

  * The bc->value is interpreted as an inflow *into* the connecting
    cell.  Outflow conditions must be specified using a negative
    sign.

  * We do not currently support general total flux conditions
    (necessitates the introduction of additional degrees of freedom),
    so bc->cond_pos[i+1]-bc->cond_pos[i] must be one (1) for all
    BC_FLUX_TOTVOL conditions.
2012-03-13 21:00:51 +01:00
Atgeirr Flø Rasmussen
f72fdf1914 Added computeSaturatedVol() and computeInjectedProduced() functions. 2012-03-13 15:56:52 +01:00
Bård Skaflestad
47a3af5cfd Rename confusing variable to promote better understanding. 2012-03-13 14:48:09 +01:00
Bård Skaflestad
89aaf3dea2 Refactor transmissibility reference during Dirichlet BC assembly. 2012-03-13 14:43:56 +01:00
Bård Skaflestad
427a2e6712 Take gravity into effect when assembling Dirichlet boundary conditions. 2012-03-13 14:42:38 +01:00
Bård Skaflestad
29ba859a80 Re-implement computeTotalMobilityOmega() in terms of computePhaseMobilities(). 2012-03-12 16:18:02 +01:00
Bård Skaflestad
c4f803fedd Re-implement computeTotalMobility() in terms of computePhaseMobilities(). 2012-03-12 16:09:26 +01:00
Bård Skaflestad
2ac5157148 Add utility for calculating all phase mobilities. 2012-03-12 16:03:29 +01:00
Atgeirr Flø Rasmussen
dfa5bda17d Changed some function signatures to take const UnstructuredGrid& instead of ptr. 2012-03-12 13:44:05 +01:00
Atgeirr Flø Rasmussen
03200bbf37 Added computeTransportSource() function. Handling bdy fluxes in spu_2p. 2012-03-12 13:00:48 +01:00
Bård Skaflestad
5caa3eb3e8 Remove a useless explicit type conversion. 2012-03-12 09:59:30 +01:00
Bård Skaflestad
f06b5e3589 Move source term assembly out main loop. 2012-03-12 09:50:35 +01:00
Atgeirr Flø Rasmussen
38aaa867bb Fixed indexing bug in findSideFaces(). 2012-03-09 15:50:48 +01:00
Atgeirr Flø Rasmussen
8ac62545cf Added default constructor. 2012-03-09 14:25:52 +01:00
Atgeirr Flø Rasmussen
100108b5ad Added computeAverageSat() function. 2012-03-09 11:44:21 +01:00
Bård Skaflestad
4fc45dea82 Support variable number of physical grid dimensions (typically 2 or 3). 2012-03-09 08:56:28 +01:00
Bård Skaflestad
29fa476715 Use more traditional implementation of cartCoord(). 2012-03-09 00:50:44 +01:00
Bård Skaflestad
501a1d9a51 findSideFaces(): Support grids that don't define an explicit global_cell.
Assume that global_cell==0 denotes the identity mapping (typically a
Cartesian grid).
2012-03-08 20:53:32 +01:00
Bård Skaflestad
52cda7cbb9 findSideFaces(): Generate initial 'ijk' that was (probably) intended.
The trick of eliding explicit initialisers can only be use to zero an
array (or structure), not to copy an arbitrary initialiser to all
elements of the array.
2012-03-08 20:51:17 +01:00
Atgeirr Flø Rasmussen
9263fa1f08 Issue warning instead of throwing if input requests compressible effects. 2012-03-08 15:25:36 +01:00
Atgeirr Flø Rasmussen
c68ccff998 Handle flow_conditions_construct(0) correctly. 2012-03-08 15:24:50 +01:00
Atgeirr Flø Rasmussen
c27e881c1a Added methods pressureSide() and fluxSide(). 2012-03-08 13:48:26 +01:00
Atgeirr Flø Rasmussen
00e87d36b9 Changed forward declaration of 'class UnstructuredGrid' to 'struct UnstructuredGrid'. 2012-03-08 12:28:22 +01:00
Bård Skaflestad
cb6d72cfd3 Remove disabled code. 2012-03-07 19:42:41 +01:00
Bård Skaflestad
8fd3a6e079 Don't #include flow_bc.h twice. 2012-03-07 19:40:35 +01:00
Bård Skaflestad
a8df219344 Merge from upstream. 2012-03-07 19:18:57 +01:00
Bård Skaflestad
7bc5ef229a Enable further compression of boundary conditions.
Specifically, refine the representation to allow a boundary condition
to apply to a set of interfaces rather than just a single face.  This
support is realised by the introduction of new interface
flow_conditions_append_multi().

Update all consumers of struct FlowBoundaryConditions to accommodate
the one-to-many boundary condition interface mapping in the process.
2012-03-07 19:08:14 +01:00
Atgeirr Flø Rasmussen
9a0c454687 IncompTpfa::solve() now accepts boundary conditions. 2012-03-07 09:32:56 +01:00
Atgeirr Flø Rasmussen
b37681be43 Made bc argument const. 2012-03-07 09:32:02 +01:00
Atgeirr Flø Rasmussen
649e9aa639 Added FlowBCManager class. 2012-03-07 09:18:44 +01:00
Atgeirr Flø Rasmussen
e3a3a1306b Minor typo fix. 2012-03-07 09:15:34 +01:00
Bård Skaflestad
8ca51c0ca4 Merge from upstream. 2012-03-07 01:18:55 +01:00
Bård Skaflestad
85144a9291 Add tentative support for pressure boundary conditions in IncompTPFA.
Not enabled in C++ glue layer (presently assumes no boundary conditions).
2012-03-07 01:18:03 +01:00
Atgeirr Flø Rasmussen
36cf536d4d Merge. 2012-03-06 22:55:59 +01:00
Atgeirr Flø Rasmussen
828b5232e5 Added (commented out) experimental code.
Experiment consists of trying to solve first in cells where all upstream
cells have been updated. Did not seem to change much.
2012-03-06 22:55:47 +01:00
Bård Skaflestad
5cf474cf25 Merge from upstream. 2012-03-06 21:41:33 +01:00
Bård Skaflestad
0a99364c27 Switch to a sparse/compressed boundary condition representation.
Specifically, replace the existing flowbc_t (that was densely
represented on each interface, including internal interface and
external no-flow interfaces) with a new structure given by

    struct FlowBoundaryConditions

The semantics of this structure mirror those of "struct Wells" from
<opm/core/newwells.h>, but is currently mostly intended for simple,
incompressible flow purposes.

Update pressure solvers supporting boundary conditions to accommodate
the new boundary condition representation in the process.
2012-03-06 20:07:35 +01:00
Xavier Raynaud
22a34c70b4 Minor bug. 2012-03-06 15:58:30 +01:00
Atgeirr Flø Rasmussen
939ddd8fe6 Fix minor typo. 2012-03-06 15:10:21 +01:00
Bård Skaflestad
0d5431aaba Start encapsulating ifs_tpfa driving forces into a managing structure. 2012-03-06 14:00:34 +01:00
Atgeirr Flø Rasmussen
afe5c06ceb Added WellsManager class (untested). 2012-03-06 13:59:51 +01:00
Kjetil Olsen Lye
d1e8525c4d merge 2012-02-27 17:47:55 +01:00
Kjetil Olsen Lye
c06401ef5b Fixed some warnings 2012-02-27 17:46:06 +01:00