Markus Blatt
d5f470cb68
Refactored parts needed for Blackoil in autodiff to get rid of UG dependency.
...
This patch refactors (hopefully) all parts of opm-core that are needed
by the fully implicite black oil solver in opm-autodiff and that inherently
relied on UnstructuredGrid.
We added a new simple grid interface consisting out of free functions
that will allow us to use CpGrid without copying it to an UnstructuredGrid
by the means of the GridAdapter. Using this interface we have add methods that
allow specifying the grid information (global_cell, cartdims, etc.) wherever
possible to prevent introducing grid parameters for the type of the grid.
Unfortunately this was not possible everywhere.
2014-02-17 13:23:01 +01:00
Kristian Flikka
ab42682399
Removed old EclipseGridParser from WellsManager constructor, WGROUPCON still missing
2014-02-14 15:36:32 +01:00
Kristian Flikka
d1494e7daa
Removed the previously introduced getAndUnRootChild method
2014-02-14 13:46:54 +01:00
Kristian Flikka
3c93c7a781
Added building of WellsCollection group structure from new opm-parser objects
2014-02-14 13:43:25 +01:00
Kristian Flikka
ae8944f6ea
Added an else to avoid unnecessary checking.
2014-02-14 09:01:21 +01:00
Kristian Flikka
d7568b4adf
Changed the WellCollection addChild functions to be more specific, and strict
2014-02-13 16:00:39 +01:00
Kristian Flikka
f94f63ff56
Extracted common functionality from the three create functions
2014-02-12 15:45:06 +01:00
Kristian Flikka
1181d1c1bc
Create WellsGroupInterface from opm-parser Well/Group objects
2014-02-12 15:39:57 +01:00
Kristian Flikka
b6072e5112
Added support for creation of WellsGroup objects from new parser Well and Group objects
2014-02-11 14:12:36 +01:00
Kristian Flikka
aa329b8b3e
Removed WELOPEN from constructor, added throwing on non OPEN/SHUT statuses
2014-02-06 16:31:35 +01:00
Kristian Flikka
3d215691da
Removed WELTARG commented code, moved wellperf_data into createWellsFromSpecs function
2014-02-03 09:22:28 +01:00
Kristian Flikka
76dff2e326
Extracted well controls setup to separate function
2014-02-03 09:07:58 +01:00
Kristian Flikka
e12ec1b25d
Extracted well specification and completion data setup to a function
2014-02-03 08:58:54 +01:00
Joakim Hove
30df3cab37
Using well->hasInjectionControl() to check whether a particular control is available.
2014-01-30 16:37:20 +01:00
Joakim Hove
35d0808fbe
Implemented WCONPROD support from Parser::Schedule object.
2014-01-30 15:55:17 +01:00
Joakim Hove
3e2df33a65
Merge remote-tracking branch 'upstream/opm-parser-integrate' into wellsmanager-rates
...
Conflicts:
opm/core/wells/WellsManager.cpp
2014-01-30 09:50:09 +01:00
Joakim Hove
70e2dd9f12
Implemented well injector properties from opm-parser::Well.
2014-01-30 08:02:13 +01:00
Kristian Flikka
d621fdfe79
Removed print statement
2014-01-29 12:30:03 +01:00
Kristian Flikka
fbe2f31653
Updated COMPDAT i,j,k indices, and removed the old commented part
2014-01-29 11:58:14 +01:00
Kristian Flikka
7ce9cb9055
Compdat extraction from new CompletionXXX classes
2014-01-29 11:58:13 +01:00
Joakim Hove
7774a11eee
WellType is determined from well->isProducer() instead of looking for WCONINJE / WCONPROD keywords.
2014-01-24 12:00:58 +01:00
Kristian Flikka
3b0a9067b4
Removes the WELSPECS usage in WellsManager constructor. Step 1 in rewrite of constructor
2014-01-22 15:22:32 +01:00
Kristian Flikka
691148122c
Merged from upstream/opm-parser-integrate
2014-01-21 13:05:59 +01:00
Kristian Flikka
2ffcb219bb
Changed phaseUsageFromDeck to use eclipseState
2014-01-10 13:43:02 +01:00
Kristian Flikka
731fe7d3f4
Changed new WellsManager constructor to take in EclipseStateConstPtr instead of SchedulePtr
2014-01-08 16:10:55 +01:00
Joakim Hove
f00e3d5763
Comparing well names protects againts NULL.
2014-01-08 16:10:43 +01:00
Joakim Hove
ddf6a3c084
Removed access to internal variabel cpty.
2014-01-08 11:32:00 +01:00
Kristian Flikka
1f1c0ebcf3
New constructor for WellsManager that also takes the new parser as argument. New test comparing old and new
2014-01-07 16:10:45 +01:00
Joakim Hove
370f9f0458
Using && instead of &= in the functions comparing wells and well_controls.
2014-01-06 19:22:39 +01:00
Joakim Hove
9fa7362992
Removed explicit (struct WellControls *) cast to align with the rest of the code.
2014-01-06 19:09:36 +01:00
Joakim Hove
b22b3f9fe2
Moved struct WellControls to the implementation file well_controls.c.
2014-01-06 15:13:32 +01:00
Joakim Hove
8132954b85
Added functions to get type, target and distr of *current* control.
2014-01-06 14:40:03 +01:00
Joakim Hove
965c12a689
Implemented well_control based on well_controls_iset_xxx() functions.
2014-01-06 12:40:03 +01:00
Joakim Hove
2ee6331ac1
Implemented well_controls_add_new() with well_controls_iset_xxx() functions.
2014-01-06 12:24:32 +01:00
Joakim Hove
6098368d08
Added new function well_controls_iset_distr().
2014-01-06 12:22:15 +01:00
Joakim Hove
3d171bd961
Using new function well_controls_invert_current().
2014-01-06 12:08:29 +01:00
Joakim Hove
bf95c9f768
Added new functions to set target and type and invert value of current control.
2014-01-06 12:06:36 +01:00
Joakim Hove
d783028bcb
Using well_controls_get_num() and well_controls_get|set_current() in WellsManager
2014-01-06 10:12:11 +01:00
Joakim Hove
17b800796f
Temporarily added symbol HAVE_WELLCONTROLS before including well_controls.h - to get acces to the internal elements in struct WellControls.
2014-01-05 16:25:31 +01:00
Joakim Hove
3653404c41
Reimplemnted struct WellControls access to use the set/get functions in well_controls.c
2014-01-05 16:23:22 +01:00
Joakim Hove
aea54d073a
Added well_controls_get_xxx() and well_controls_set_xxx() functions. The well_controls_reserved() function is called from well_controls_add() and not explicitly.
2014-01-05 16:22:30 +01:00
Joakim Hove
fb8413960c
Removed #include <opm/core/well_controls.h> from wells.h and inserted explicit #include <opm/core/well_controls.h> where needed.
2014-01-05 15:03:30 +01:00
Joakim Hove
157d0870f2
Removed struct WellControlManagement and replaced with simple integer field cpty in the WellControls structure.
2014-01-05 14:54:56 +01:00
Joakim Hove
8acdf34653
Moved well_controls implementation to separate file well_controls.c.
2014-01-05 14:47:15 +01:00
Joakim Hove
0450e1bb77
Extracted everything related to well controls to separate header well_controls.h - to simplify introducing new parser.
2014-01-03 16:04:12 +01:00
Kristian Flikka
e4a7a33598
Implementation (not finished) of wells_equal, well_controls_equal, and tests. To build a WellsManager test for old and new parser
...
Conflicts:
CMakeLists_files.cmake
2014-01-03 16:00:10 +01:00
Andreas Lauser
fde3fe3332
convert users of MESSAGE to OPM_MESSAGE
2013-09-05 13:04:38 +02:00
Andreas Lauser
d6fa31b452
convert users of the ASSERT and the ASSERT2 macros to standard assert()
2013-09-05 13:04:37 +02:00
Andreas Lauser
cb76a0fd7f
convert THROW to OPM_THROW
2013-09-05 13:04:37 +02:00
Andreas Lauser
408d3389c3
include iostream in the files which use std::cerr or std::cout
...
for some of these files this is needed to make to keep it compiling
after the next patch because the new ErrorMacros.hpp file will no
longer implicitly includes <iostream>. for the remaining files it is
just good style.
While at it, the includes for most of these files have been ordered in
order of decreasing abstraction level.
2013-09-05 13:04:37 +02:00
Andreas Lauser
5cd622fbf7
use std::shared_ptr instead of boost::shared_ptr
...
our policy is that we only use boost if necessary, i.e., if the oldest
supported compiler does not support a given feature but boost
does. since we recently switched to GCC 4.4 or newer, std::shared_ptr
is available unconditionally.
2013-08-08 13:25:58 +02:00
Andreas Lauser
5893b9324e
replace boost::array by std::array
...
GCC 4.4 supports std::array, so there is not much point in keeping
compatibility with ancient compilers...
2013-07-30 17:46:32 +02:00
Júlio Hoffimann
c077912466
Remove trailing whitespaces
2013-07-28 08:34:13 -03:00
Markus Blatt
b5db3e0713
Changed std::tr1 occurences to boost.
...
std::tr1 might not be supported by all compilers and will eventually
be dropped by others. Using boost instead makes this more
portable.
2013-07-04 16:04:35 +02:00
Atgeirr Flø Rasmussen
5d457ff708
Ensures well rate initialization actually happens.
...
Do not use the well's comp_frac member, only rely on the control's distr
member for initialization. This forced a change to WellsManager's
initialization of the distr member.
2013-06-02 23:30:43 +02:00
Andreas Lauser
40fe2abf04
make config.h the first header to be included in any compile unit
...
this is required for consistency amongst the compile units which are
linked into the same library and seems to be forgotten quite
frequently.
2013-04-10 12:56:14 +02:00
Atgeirr Flø Rasmussen
c78b7de680
Renamed newwells.h -> wells.h.
...
Also moved implementation file to subdir.
2013-03-18 10:33:34 +01:00
Atgeirr Flø Rasmussen
e99e023980
Merge remote-tracking branch 'hnil/hnil_class' into combined.
...
Conflicts:
CMakeLists.txt
examples/sim_wateroil.cpp
opm/core/grid/cpgpreprocess/geometry.c
opm/core/transport/reorder/ReorderSolverInterface.hpp
opm/core/transport/reorder/TofDiscGalReorder.cpp
opm/core/transport/reorder/TofDiscGalReorder.hpp
opm/core/transport/reorder/TofReorder.cpp
opm/core/transport/reorder/TofReorder.hpp
opm/core/transport/reorder/TransportSolverCompressibleTwophaseReorder.cpp
opm/core/transport/reorder/TransportSolverTwophaseReorder.cpp
2013-03-14 16:18:39 +01:00
Atgeirr Flø Rasmussen
b73a33f4af
Adapt include statements to moved headers.
2013-03-14 10:29:42 +01:00
Atgeirr Flø Rasmussen
a154183b9d
Moved opm/core/eclipse/* to opm/core/io/eclipse/*.
2013-03-07 22:59:06 +01:00
Atgeirr Flø Rasmussen
7dd4720057
Changed OpenRS->OPM in copyright notices and #include guards.
2013-01-29 13:42:24 +01:00
Halvor Møll Nilsen
e66df86e2d
Changed cmake to make build without ert for now. Small change in WellsManager.cpp
2012-10-30 14:51:12 +01:00
Halvor Møll Nilsen
ae05d3d7e8
Merge from upstream and corrected conflictes.
2012-10-30 13:38:55 +01:00
Atgeirr Flø Rasmussen
17ffcc77aa
Merge pull request #84 from bska/fix-equality-comparisons
...
Fix well classification that was only correct by accident
2012-10-25 01:08:48 -07:00
Roland Kaufmann
28661b7342
Remove superfluous construction by std::make_pair
...
Since we know the type of the components, we may just as well create the
pair directly! (Using make_pair invokes compiler bugs in GCC).
2012-10-24 21:22:11 +02:00
Bård Skaflestad
0c599b8868
Fix well classification that was only correct by accident
...
Specifically, the tests
if (!wells->type[self_index] == INJECTOR)
if (!wells->type[self_index] == PRODUCER)
produced the expected results *only* because INJECTOR==0 and PRODUCER==1
in the WellType enumeration, thus (!INJECTOR == PRODUCER) and
(!PRODUCER == INJECTOR).
Installing the (much) more appropriate
if (wells->type[self_index] != INJECTOR)
if (wells->type[self_index] != PRODUCER)
is not only more readable, it is also future-proof and scales better if
we ever introduce new WellTypes (e.g., a MONITOR).
2012-10-24 21:12:29 +02:00
Roland Kaufmann
d8dd982408
Make GCC 4.6.3 happy in C++0x mode
...
It complains about not finding a match for the pair<> template class,
because the first parameter (this) is allegedly const. However, this
isn't a const method, so I suspect it is a compiler bug.
In order to move on, I slap on a harmless cast which will make this
particular compiler happy, and which should have no effects elsewhere,
but put it in a #if..#else..#endif macro to avoid warnings on others;
hopefully this also makes it easier to spot and remove in the future.
2012-10-24 09:57:12 +02:00
kristinf
a740bcfe5f
sign error in total_produced
2012-10-09 15:23:56 +02:00
Atgeirr Flø Rasmussen
9e90dcebe5
Fix sign of production rate controls.
...
In the Wells struct, production rate control targets must be negative
(and injection rate control targets are always positive).
In the WellsGroup classes, there are separate variables for injection
and production, and all rates are positive. Therefore, upon adding or
modification of a production rate control, the negated value must
be used.
2012-10-08 14:27:56 +02:00
Bård Skaflestad
d6154d8961
Clone wells object when constructing from existing.
...
This installs a measure of safety on the part of the interface in that
the caller is free to dispose of the wells object upon returning from
the WellsManager constructor.
2012-10-05 10:15:06 +02:00
Halvor Møll Nilsen
044c13e9fb
Added constuctor to WellManager which used Wells struct.
2012-10-05 10:14:55 +02:00
Atgeirr Flø Rasmussen
e3388575d6
Fix treatment of WELOPEN keyword.
...
Now you can actually shut and open wells with WELOPEN. The following
caveats apply:
- this may interact improperly with group controls,
- dynamic usage of WCONINJE/WCONPROD should not be mixed with WELOPEN.
2012-09-20 14:35:03 +02:00
Atgeirr Flø Rasmussen
bdcf0291e0
Fix error message.
2012-09-14 09:52:13 +02:00
Halvor Møll Nilsen
0f3423cbf4
Added constuctor to WellManager which used Wells struct.
2012-09-05 11:47:38 +02:00
Bård Skaflestad
fe9cc7f29a
Prune an unused header.
2012-06-19 09:34:34 +02:00
Bård Skaflestad
c4342bd16b
*Control::mode(): Defer control-mode look-up to std::map.
2012-06-19 00:30:32 +02:00
Bård Skaflestad
7fc7972e93
Sort includes.
2012-06-19 00:01:30 +02:00
Bård Skaflestad
5ad262ec84
*Control::mode(): Defer keyword look-up to std::find() algorithm.
...
This is simpler than implementing our own version of the same.
2012-06-18 15:21:27 +02:00
Bård Skaflestad
6fbf50827f
Add support for storing well names in "Wells" structure.
...
The well name must be passed as a parameter to add_well(), so update
callers accordingly.
2012-06-18 10:15:53 +02:00
Kjetil Olsen Lye
dec0e60bd4
Removed errors on trying to open a shut well (or shut an open well).
2012-06-15 15:16:32 +02:00
Kjetil Olsen Lye
068cbf0605
Handle WellOpen has both open and shut.
2012-06-15 14:29:43 +02:00
Kjetil Olsen Lye
1a37c410fc
Made the grouptree respect the new convention of tilde.
2012-06-15 14:08:28 +02:00
Kjetil Olsen Lye
6f22704406
Correct a const error.
2012-06-15 13:57:35 +02:00
Kjetil Olsen Lye
c0717c0f7c
Added welshut for production wells. Also added wellopen-handling.
2012-06-15 13:49:58 +02:00
Kjetil Olsen Lye
2a631282fc
Added initial shutting of injection wells.
2012-06-15 13:38:07 +02:00
Atgeirr Flø Rasmussen
f452c4c33c
WellsManager now handles multiple WELSPECS, WCONINJE, WCONPROD-lines referring to the same well.
...
This is mostly relevant for schedule handling. The last occurence of a well
is the one used.
2012-06-15 10:12:36 +02:00
Kjetil Olsen Lye
c42b24612b
Removed a debug print statement in the WellsGroup-code.
2012-06-11 13:16:39 +02:00
Atgeirr Flø Rasmussen
611cd53380
Reorganized, added opm/core/wells/ and opm/core/simulator/.
2012-06-05 15:42:49 +02:00