Commit Graph

164 Commits

Author SHA1 Message Date
Bård Skaflestad
5f34301b92 getCubeDim: Support arbitrary number of dimensions
This commit generalises the implementation of utility function
'getCubeDim' to support arbitrary number of space dimensions.  In
actual practice there's no change in features as we only really use
a compile-time constant (= 3) to specify the number of space
dimensions.
2014-08-29 11:39:24 +02:00
Atgeirr Flø Rasmussen
070f2456c4 Properly handle defaulted well reference depths. 2014-08-07 12:57:05 +02:00
Bård Skaflestad
3a6ac6a759 Reimplement clone_wells() in terms of well_controls_clone() 2014-07-03 16:09:56 +02:00
Bård Skaflestad
033625c5a8 well_controls: Add deep-copy (clone) support
New function well_controls_clone(), implemented in terms of the
public API only, mirrors the objective of function clone_wells(),
only for well control sets.  Add a basic test to demonstrate the
function too.
2014-07-03 16:09:56 +02:00
Bård Skaflestad
24804a1f6f clone_wells(): Assert result equal to input
This adds a debug-mode safety belt that cloning wells produces a
comparable set of wells to the input.
2014-07-03 16:09:56 +02:00
Bård Skaflestad
464b0c3d15 well_controls_equal(): Don't compare set capacities
The 'cpty' field is for internal memory management purposes only.
No client can know of its existence, let alone inspect or directly
change the value, so it should not be used to adjudicate control set
equality.  This was useful during the refactoring work to introduce
the opm-parser support, but its utility has since ceased.

Okay'ed by: [at] atgeirr and [at] joakim-hove
2014-07-03 16:09:56 +02:00
Andreas Lauser
f360562aee remove EclipseGridParser compatibility methods from all classes 2014-05-21 11:22:43 +02:00
Atgeirr Flø Rasmussen
320c3332ad Add missing break statements in switch, add default case. 2014-04-24 15:43:54 +02:00
Markus Blatt
ab5e011f34 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conflicts in:
	opm/core/io/eclipse/EclipseWriter.cpp
	opm/core/io/eclipse/EclipseWriter.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp
2014-04-08 21:50:00 +02:00
Atgeirr Flø Rasmussen
db88058b34 Use preferred phase of producer well to set comp_fraction.
This replaces the previous hack, that set comp_fraction to (0,1,0) always.
2014-04-06 23:33:43 +02:00
Markus Blatt
472844e454 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Removed conflicts in
	opm/core/wells/WellsManager.cpp
that were due to the change
```diff
-                    pd.well_index = WellsManagerDetail::computeWellIndex(radius, cubical, cell_perm, completion->getDiameter());
+                    pd.well_index = WellsManagerDetail::computeWellIndex(radius, cubical, cell_perm, completion->getSkinFactor());
```
in  WellsManager::createWellsFromSpecs which moved from WellsManager.cpp to WellsManager_impl.hpp file in a previous commit.
2014-04-04 21:21:22 +02:00
Tor Harald Sandve
d90717877b Hack to set compi for producer.
compi is set to [0 1 0] for all producers
2014-04-04 12:15:49 +02:00
Atgeirr Flø Rasmussen
eb19031c17 Bugfix: skin factor, not diameter. 2014-03-31 14:47:16 +02:00
Markus Blatt
7aa8728be9 Removed last artefact of checkCellExistence (in constructor taking wells)
Somehow this slipped one of the merges. With the last
patch this module failed to compile as we use the new
definition without the bool parameters.
2014-03-29 10:35:12 +01:00
Markus Blatt
0c96066a79 Readd definition of WellsManager constructor from wells.
As @bska pointed in my issue #518 this definition was
accidentally removed in commit 20468d1 during a merge of
upstream changes. Therefore I readd it with this patch.
2014-03-29 10:12:40 +01:00
Markus Blatt
c282949400 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conflicts:
	opm/core/io/eclipse/EclipseWriter.cpp
	opm/core/io/eclipse/EclipseWriter.hpp
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/simulator/initState_impl.hpp
	opm/core/wells/WellsManager.cpp
	opm/core/wells/WellsManager.hpp
2014-03-27 15:27:11 +01:00
Joakim Hove
f0126b2501 Removed WellsManager constructor which takes an ole Eclipsegridparser instance. 2014-03-25 18:57:58 +01:00
Joakim Hove
2eab8aeb38 Changed the access to Parser/EclipseState/Schedule to use new well injection and production properties. To be aligned with opm-parser:e75970a28b96374409a55e3e6cea2198b6a0ea23 2014-03-21 00:35:15 +01:00
Atgeirr Flø Rasmussen
5fc6cbc16f Made single-argument constructors explicit.
Avoids unintended implicit conversions.
2014-03-17 13:27:50 +01:00
Markus Blatt
c6daebc35d Merge branch 'refactor-for-cpgrid-support' into master-refactor-for-cpgrid-support
Manually resolved conflicts in:
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/wells/WellsManager.cpp
2014-03-13 13:41:45 +01:00
Joakim Hove
ca7de3c7c1 Will check if a well is open before throwing for an invalid control. 2014-03-12 20:27:17 +01:00
Joakim Hove
7413894a67 Removed cpos = ~cpos constructions for closing a well; using well_controls_shut_well explicitly instead. 2014-03-12 17:41:40 +01:00
Joakim Hove
8be1f0e8d3 Changed open / close behaviour of well_controls: 1) well_controls has an explicit open_close flag. 2) Will NOT flip current value to change open|close status 2014-03-04 20:23:19 +01:00
Markus Blatt
2d54a7398b Refactored WellsManager to partial use without UnstructuredGrid. 2014-02-25 17:52:51 +01:00
Kristian Flikka
a055b529ec Add handling of WGRUPCON to new-parser friendly WellsManager constructor 2014-02-24 15:24:33 +01:00
Markus Blatt
21864388bd Merge remote-tracking branch 'origin/opm-parser-integrate' into refactor-for-cpgrid-support
Resolved Conflicts:
	opm/core/props/BlackoilPropertiesFromDeck.cpp
	opm/core/props/rock/RockFromDeck.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck.hpp
	opm/core/props/satfunc/SaturationPropsFromDeck_impl.hpp
2014-02-19 15:22:18 +01:00
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