Commit Graph

1228 Commits

Author SHA1 Message Date
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
Bård Skaflestad
2a68bb0341 Add a facility for checking/assigning presence of free phases
This is intentionally black-oil specific because we presently do no
know how to handle other cases (e.g., more phases or number of phases
different from number of components).
2013-12-03 15:56:18 +01:00
Bård Skaflestad
8c8721064d Include <limits> for std::numeric_limits<> template 2013-12-03 15:52:07 +01:00
Bård Skaflestad
c24cc87b26 Sort headers into logical groups.
This is an aesthetic-only change.
2013-12-03 15:43:06 +01:00
Tor Harald Sandve
c77d82a4ee Change name to initBlackoilStateFromDeckUsingRS
The second input of initBlackoilStateFromDeck that computes surface
volumes based on gas/oil ratio is changed from
BlackoilPropertiesInterface to Props. To avoid duplication with the old
initBlackoilStateFromDeck its name is changed to
initBlackoilSurfvolUsingRS.
2013-11-28 15:56:17 +01:00
Tor Harald Sandve
c1b6d57d32 Compute initial saturations from surface volumes
Add new function is added that computes saturation from surface volumes
solving z = As for each cell. This function is used to compute an
intial guess to the saturations in initState_impl.hpp.
2013-11-28 15:56:17 +01:00
Roland Kaufmann
1a1269d9d7 Extract common parts of blackoil and incomp. state
Put the identical parts of the simulator state into a base class that
they can be referenced from when adressing the common fields.
2013-11-13 13:48:28 +01:00
Kristian Flikka
3f970244de Replaced include math.h with cmath, and changed from fabs to abs. Fixed an error in the testfile, a filename was wrong 2013-11-04 13:51:32 +01:00
Joakim Hove
877829f43a Added method equals in BlackoilState.hpp 2013-10-28 17:42:32 +01:00
Atgeirr Flø Rasmussen
847a8f4f7a Bugfix: vector was used with size zero. 2013-10-16 14:02:15 +02:00
Atgeirr Flø Rasmussen
88011cca2e Modify error message. 2013-10-07 12:57:51 +02:00
Atgeirr Flø Rasmussen
d4bb9c0611 Guard against erroneous use of initBlackoilSurfvol(). 2013-10-07 12:46:35 +02:00
Atgeirr Flø Rasmussen
5140d99e60 Merge pull request #386 from totto82/propsMRST
Changes to the props in order to  sync with MRST (Eclipse)
2013-10-07 03:41:09 -07:00
Atgeirr Flø Rasmussen
dcaac93e23 Remove unneeded term, fixing oil injecting behaviour.
The 'comp_term' is supposed to be a total divergence term, which is supposed
to be zero for incompressible flow. It was added for improved robustness in
stagnant areas, but as implemented it would not be computed properly for
oil injection scenarios, due to the convention for two-phase transport
source terms (positive terms are inflow of first phase [water], negative
terms are total outflow).
2013-10-04 13:16:02 +02:00
Atgeirr Flø Rasmussen
13ddbad9a1 Merge pull request #400 from bska/Wunused
Remove unused "typedef"s
2013-10-03 06:52:09 -07:00
Bård Skaflestad
fca913c6b9 Remove unused "typedef"s
CLang and recent versions of GCC warn about unused "typedef"s.  This
change-set removes currently known instances in opm-core.
2013-09-26 19:22:59 +02:00
Bård Skaflestad
8ad884bbde assemble_well_contrib(): Fix misprint in comment. 2013-09-25 15:39:37 +02:00
Bård Skaflestad
e15760856c RESV: Ignore phase distribution for non-PRODUCERs
The WellsManager class handles INJECTORS by assigning a phase
distribution (W->ctrls[i]->distr) that coincides with the injected
fluid for the corresponding well (e.g., {1,0,0} for WATER injectors in
a three-phase WATER/OIL/GAS simulation).  This, however, meshes poorly
with the restriction that all phase components must be ONE in the case
of wells constrained by total reservoir volume flow targets (RESV)
that was introduced in commit b7d1634.

This change-set limits the restriction on phase distributions to
PRODUCERs only and is a tentative solution to GitHub PR #360.
2013-09-25 15:38:55 +02:00
Tor Harald Sandve
aa126cb59f The initBlackoilStateFromDeck is now called only if RS is given in deck 2013-09-24 15:25:52 +02:00
Atgeirr Flø Rasmussen
d7dc0abc13 Further improved WellReport and Watercut docs. 2013-09-24 14:39:41 +02:00
Atgeirr Flø Rasmussen
87466f25d2 Documented WellReport and Watercut classes. 2013-09-24 14:14:54 +02:00
Roland Kaufmann
f8f6836c2b Only use Clang-specific pragma if compiler is Clang
Otherwise the compiler will probably give us a warning that these
pragmas are unknown. By default that warning is disabled with our
own build system, but we also want to be able to link to our library
without incorporating the entire build system too.
2013-09-24 11:15:26 +02:00
Tor Harald Sandve
7d12b0cc5c An initial guess of the surface volume is now computed using the RS
factor in order to compute a more accurate A matrix.
2013-09-24 11:14:22 +02:00
Roland Kaufmann
88a38a8e3f Fix LinearSolverIstl cleanup also for fast AMG branch
To avoid deprecation warnings the number of smoothing steps was passed
through the Criterion instead of directly to the constructor in commit
a7f32b934b.

However, due to an insufficient test matrix this was not tested using
the fast AMG variant of DUNE so it breaks the builds if
`-DHAS_DUNE_FAST_AMG` is defined.

This change should apply the same type of change to this branch as for
the others. The number of smoothing steps is put into a constant to
avoid the magic number 1 to appear in too many places (although I am
not sure the number for pre- and post-smoothing always should be the
same).
2013-09-20 10:00:21 +02:00
Atgeirr Flø Rasmussen
df8981ed2d Merge pull request #376 from rolk/376_warn
Quelch needless warnings (found by Clang)
2013-09-19 05:05:00 -07:00
Roland Kaufmann
1341903bb7 Don't warn about functions not emitted
If a function is used by a template but this template is not
instantiated, the function will still be defined in the header
of a module but it won't be callable because it is in an anonymous
namespace and thus we get a warning.

This only happens in Clang; GCC consider functions referenced from
templates as used.

fixup! Don't warn about functions not emitted
2013-09-19 13:09:44 +02:00
Roland Kaufmann
5f00467f02 Set linear solver steps in criterion instead of ctor
The constructor that takes the number of steps is deprecated; this
generates needless warnings.
2013-09-19 10:32:49 +02:00
Andreas Lauser
57a1efcdc9 fix headers
make all non-implementation headers includable without
preconditions. Also, this removes the GravityColumnSolver.hpp file,
because it tried to include a non-existing file and it was thus unused.
2013-09-11 13:11:47 +02: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
Roland Kaufmann
440c7721ae Remove subdirectory from SuiteSparse include
SuiteSparse may or may not be installed in a suitesparse/ directory.

FindSuiteSparse will look in a suitesparse/ subdirectory when trying
to locate umfpack.h, but it will add the full directory to the compiler
command-line (e.g. `-I/usr/include/suitesparse`) and not that of the
parent. Since the parent is usually included too, it is not noticed
that it is advertedly using another include paths than its own.

However, if we have SuiteSparse installed in a non-system location,
using the subdirectory in the `#include` statement may now cause an
error, even though configuration actually found SuiteSparse!
2013-08-25 09:35:51 +02:00
Roland Kaufmann
76f3863780 Remove bindings to AGMG from library
AGMG is now under a closed-source license, meaning that results
obtained with this solver is not freely reproducible by others.
Its use is therefore discouraged.

As of version 2.3, the DUNE AMG parts are competitive, so there
is a free and open alternative.
2013-08-13 23:25:04 +02:00
Andreas Lauser
e6a2f2655a replace boost::scoped_ptr by std::unique_ptr
thanks to Bård Skaflestad, Atgeirr Rasmusen and Roland Kaufmann for
the hint.
2013-08-08 15:21:38 +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
Bård Skaflestad
6858b4290f Merge pull request #285 from rolk/285_shadow
Provide way of shadowing only some properties
2013-07-31 04:05:13 -07:00
Bård Skaflestad
4b42cc2c5d Merge pull request #289 from andlaus/make-gcc44-mandatory
Make gcc44 mandatory
2013-07-30 13:25:35 -07: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
Andreas Lauser
2306c2c305 fix a few CLang warnings
most of them quite insignificant, but still annoying. The only
exception is the warning about the changed alignment for the 'work'
argument of spu_implicit_assemble(). AFAICT, the only reason why it
worked was that the pointer produced by malloc() was passed
directly. (malloc() seems to fulfill all alignment criteria.) To fix
this, I've changed that argument's type from char* to double*.
2013-07-30 16:27:20 +02:00
Roland Kaufmann
3885bcd7ee Use underscore for data members 2013-07-30 13:24:57 +02:00
Roland Kaufmann
814130f010 Provide way of shadowing only some properties
The current implementations of IncompPropertiesInterface are very
all-or-nothing. In some situations, you want to read rock and fluid
properties from an Eclipse file, but use analytical functions for
the unsaturated properties. Or you want to update properties based
on a marching filter.

This patch provides a way to mix various property objects, or to
"shadow" the properties with a raw array of data, so you don't have
to reimplement the entire interface just to make a small change.
2013-07-30 13:11:52 +02:00
Júlio Hoffimann
c077912466 Remove trailing whitespaces 2013-07-28 08:34:13 -03:00
Roland Kaufmann
baa9bf12e0 Zero-initialize structure to avoid returning undefined
The compiler will otherwise complain that we are returning undefined
data. There is no way for the client code to know whether this was
the case.
2013-07-05 10:59:52 +02:00
Bård Skaflestad
f99377ceec Merge pull request #274 from blattms/non-tr1
Changed std::tr1 occurences to boost.
2013-07-04 12:01:51 -07: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
fb77fffdc8 Merge pull request #263 from bska/remove-redef-kluge
Disable build kluge that is no longer pertinent
2013-06-24 06:02:10 -07:00
Markus Blatt
eaf8e780c7 Fixed unused parameters and whitespace issues. 2013-06-21 12:49:35 +02:00
Bård Skaflestad
85a9a41264 Disable build kluge that is no longer pertinent
The <have_boost_redef.hpp> header was introduced (commit 82369f9) as
a work-around for a particular interaction in the Autotools-based
setup of OPM-Core and the Dune core modules.  Notably, Dune's
"Enable" trick for Boost failed on some older Autoconf systems.  Now
that we're using CMake, however, that kluge is no longer needed
because we (OPM-Core) always

  #define HAVE_BOOST 1

i.e., as an explict true/false value.

Therefore, we need no longer include <have_boost_redef.hpp> .  The
header will be removed at a later time.
2013-06-20 23:14:39 +02:00
Markus Blatt
9b0b60c3f8 Fixed spelling 2013-06-20 17:01:35 +02:00
Markus Blatt
2db889cd2b Unifies the way how AMG is called.
After this patch one can set the prolongation factor for all
AMG calls and the number of smoothing steps for all except
of FastAMG that currently only supports on step.
2013-06-20 16:55:07 +02:00
Markus Blatt
7c69fc31d0 Merge remote-tracking branch 'upstream/master' 2013-06-20 16:07:58 +02:00
Markus Blatt
65a3780e2f Merge remote-tracking branch 'upstream/master'
Conflicts:
	opm/core/linalg/LinearSolverIstl.cpp
2013-06-19 14:55:50 +02:00
Atgeirr Flø Rasmussen
55e58deea6 Add transMult(), poroMultDeriv() and transMultDeriv(). 2013-06-03 14:33:18 +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
Atgeirr Flø Rasmussen
175cecacda Bugfix in well rate init.
Do not always try to initialize, also initialize proper phase rates.
2013-06-02 22:19:43 +02:00
Atgeirr Flø Rasmussen
ad4c9a47e0 Refined well state initialization.
For SURFACE_RATE controlled wells, initialize wellRates() to match.
2013-06-02 21:58:30 +02:00
Atgeirr Flø Rasmussen
c280f2b0dd Initialize rate-controlled well bhp with safety factor.
Safety factor is 1.01 (INJECTOR) or 0.99 (PRODUCER), similar to
mrst's ad-fi/utils/initWellSolLocal.m > initialize().
2013-05-30 11:03:08 +02:00
Atgeirr Flø Rasmussen
a0a9c482ea Created new initialization routine, using RS from deck. 2013-05-27 15:44:07 +02:00
Atgeirr Flø Rasmussen
6e9a46b34d Added gasoilratio() to BlackoilState. 2013-05-27 12:53:06 +02:00
Atgeirr Flø Rasmussen
125c573461 Added assert to guard against wrong usage. 2013-05-24 09:21:41 +02:00
Atgeirr Flø Rasmussen
1cf0bb465b Fix bug in upwinding code.
Accidental usage of std::vector's operator< discovered.
2013-05-24 09:20:46 +02:00
Atgeirr Flø Rasmussen
8592ca825a Added wellRates() member. 2013-05-21 23:54:30 +02:00
Atgeirr Flø Rasmussen
8c92a47b89 Merge remote-tracking branch 'upstream/master' into add-phaseusage-to-interface 2013-05-15 10:10:18 +02:00
Bård Skaflestad
ac33cd6f17 Merge pull request #240 from atgeirr/tof-improvements
Ensure (average of) tracers sum to one for DG1.
2013-05-14 02:28:21 -07:00
Bård Skaflestad
3f4c2ea564 Always interpret 'ref_pressure' as a double
Otherwise, when specifying (e.g.)

   ref_pressure=1.0e-5

(1 Pascal in bars), the value gets reinterpreted as

   ref_pressure=1

which is one bar.
2013-05-14 10:19:12 +02:00
Atgeirr Flø Rasmussen
d312f760e1 Add phaseUsage() method to BlackoilPropertiesInterface.
Also implement method in derived classes.
2013-05-13 16:20:00 +02:00
Atgeirr Flø Rasmussen
9b56384647 Ensure (average of) tracers sum to one for DG1. 2013-05-13 16:17:41 +02:00
Atgeirr Flø Rasmussen
15ab570cd5 Added limiter for tracer. 2013-04-24 11:27:04 +02:00
Atgeirr Flø Rasmussen
8a894ca686 Add tracer computations (method solveTofTracer()).
Same interface as in class TofReorder.
2013-04-24 10:39:50 +02:00
Atgeirr Flø Rasmussen
241f866709 Update doc, only initialize tracerhead_by_cell_ if needed. 2013-04-24 10:36:52 +02:00
Atgeirr Flø Rasmussen
9f6b4e5258 Tracer computations are now fixed and robust.
- Handles noisy source terms.
 - Works with repeated solve calls (multi-cell block solves).
2013-04-23 15:35:47 +02:00
Atgeirr Flø Rasmussen
643c1e7df0 Implement solveMultiCell() with Gauss-Seidel. 2013-04-23 13:38:47 +02:00
Atgeirr Flø Rasmussen
b82a41df18 Work in progress on tracers.
- Changed interface.
 - Read tracerheads (tracer start locations) from file in compute_tof_from_files.
 - Initialize tracerheads from wells in compute_tof.
2013-04-22 14:02:45 +02:00
Atgeirr Flø Rasmussen
5d58dc4500 Fix typo and minimize formatting changes. 2013-04-22 11:29:59 +02:00
Atgeirr Flø Rasmussen
5578400e72 Removed experimental multi-cell solver code.
Since the Gauss-Seidel approach seems to be both simplest and
fastest, all parts dealing with assembling multicell systems
have been removed.
2013-04-22 11:22:23 +02:00
Atgeirr Flø Rasmussen
4fc5770fe2 Optimize multi-cell solve and add new Gauss-Seidel variant. 2013-04-22 11:11:55 +02:00
Atgeirr Flø Rasmussen
b0132b3b05 Make multidim upwind more forgiving of bad grids.
Now it will no longer trigger assertation failure when grids are not
edge-conformal (faulted cornerpoint grids processed by our code will
usually not be). Minor algorithm change to handle this.
2013-04-22 11:07:41 +02:00
Atgeirr Flø Rasmussen
52e96825a4 More refined and concise output of block info. 2013-04-17 13:18:22 +02:00
Atgeirr Flø Rasmussen
25a2c3d00b Implement solveMultiCell() properly.
Interface change: solver now requires a linear solver (for the multi-cell blocks only).

Implementation uses new private method assembleSingleCell(), that is a modified copy
of solveSingleCell(). Should refactor.
2013-04-17 12:58:15 +02:00
Atgeirr Flø Rasmussen
f8db9cad66 Bugfix: do not compute MDU terms for noflow faces. 2013-04-17 10:38:08 +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
f8e00d0bc6 Make all codes use the same linear interpolation routines. 2013-03-22 15:28:16 +01:00
Atgeirr Flø Rasmussen
8dee94dc0f Use markup for parameter lists. 2013-03-22 11:09:38 +01:00
Atgeirr Flø Rasmussen
5be528a646 Use markdown for parameter lists. 2013-03-22 10:02:04 +01:00
Atgeirr Flø Rasmussen
1bfcf77b38 Change doxygen syntax to use markdown. 2013-03-22 09:55:12 +01:00
Atgeirr Flø Rasmussen
3d382f8220 More minor doc fixes. 2013-03-22 09:45:00 +01:00
Atgeirr Flø Rasmussen
00e8606994 Fix minor doc errors. 2013-03-22 09:26:45 +01:00
Atgeirr Flø Rasmussen
c693c44d25 Fix docs for IncompPropertiesBasic. 2013-03-22 09:26:27 +01:00
Atgeirr Flø Rasmussen
b05fec38fd Fixes and improvements to transport solver docs. 2013-03-21 14:52:21 +01:00
Atgeirr Flø Rasmussen
213e143c47 Fixes and improvements to time-of-flight solver docs. 2013-03-21 14:51:49 +01:00
Atgeirr Flø Rasmussen
71057d69db Clean up well docs.
Needed to rename structs in legacy_well.h to avoid clash in docs.
2013-03-20 14:14:53 +01:00
Atgeirr Flø Rasmussen
1e02bd9905 Merge pull request #207 from blattms/release-dune-cmake
Add support for AMG improvements when using inofficial 2.2 DUNE release with CMake support
2013-03-19 08:11:44 -07:00
Markus Blatt
de22c11d91 Removed compile time warning. In verbose mode the warning will be issued during runtime. 2013-03-19 13:48:02 +01:00
Markus Blatt
71d86b7f08 Fixed compilation with official DUNE release. 2013-03-18 15:36:35 +01:00
Markus Blatt
26ab363783 Adapted the documentation. 2013-03-18 14:34:04 +01:00
Markus Blatt
2c4c4cbb2f Added a fast amg version of AMG (with one step of Gaus-Seidel smoothing) and AMG with Krylov-cycle.
The former is only available when using the inofficial 2.2.1 cmake release.
The latter is currently not optimized.
2013-03-18 14:34:03 +01:00
Atgeirr Flø Rasmussen
f9f5cbf321 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
5b132acc70 Further reorganising of opm-core.
Deleted some unused code (or moved to opm-porsol), moved all code dealing with
time-of-flight to opm/core/tof, moved code for implicit transport solver to
opm/core/transport/implicit, spu_[im|ex]plicit.[ch] to opm/core/transport/minimal.
2013-03-18 12:38:04 +01: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
b14c145f10 Moved deprecated opm/core/well.h -> opm/core/pressure/legacy_well.h
Still used by some pressure system assemblers.
2013-03-18 10:23:51 +01:00
Atgeirr Flø Rasmussen
17ac731a0e Make initGravity() to private, call from constructor.
Also modify interface of solveGravity() to be minimal,
construcing columns for segregations solver at construction time.
2013-03-15 13:53:37 +01:00
Atgeirr Flø Rasmussen
da985748d0 Make TransportSolverTwophaseReorder inherit TransportSolverTwophaseInterface.
This changes the solve() interface, which requires clients to change.
2013-03-15 11:31:31 +01:00
Atgeirr Flø Rasmussen
28fc68cf71 Modify solve() interface, fix source term bug in implicit solver. 2013-03-15 08:21:55 +01:00
Atgeirr Flø Rasmussen
dad6990d1d Minor adjustments. 2013-03-15 08:05:23 +01:00
Atgeirr Flø Rasmussen
bdb8d48115 Modified TransportSolverTwophaseInterface::solve(), general cleanup.
Move output arguments last in argument list.
2013-03-14 22:51:44 +01:00
Atgeirr Flø Rasmussen
11015c11ef Rename TwoPhaseTransportSolver -> TransportSolverTwophaseInterface.
To be more consistent with naming practices elsewhere in opm-core.
2013-03-14 22:24:36 +01:00
Atgeirr Flø Rasmussen
87c8d0dc28 Modified for added files and changed class names. 2013-03-14 21:43:21 +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
4fb45f0e64 Moved fluid -> props and subdirs.
This is a non-compiling commit.
2013-03-14 09:56:48 +01:00
Atgeirr Flø Rasmussen
bb944b7e52 Moved writeECLData and writeVtkData to opm/core/io subdirs. 2013-03-08 08:06:18 +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
358e9287f7 Fix error in doc. 2013-03-07 15:14:24 +01:00
Atgeirr Flø Rasmussen
f9cfb7d12d Make destructor of CompressibleTpfa virtual. 2013-03-07 15:14:01 +01:00
Bård Skaflestad
beaac0d089 Use an integer type for "maxit_" counter.
The "maxit_" counter is an upper limit on the number of non-linear
iterations in a single cell.  Declaring this as a "double" is counter
intuitive unless one expects the number to be *really* high.

Present since
  - Commit 93d4bd8 (TransportModelTwophase.hpp)
  - Commit e0d38cf (TransportModelTwophaseCompressible.hpp)
2013-02-19 11:27:54 +01:00
Bård Skaflestad
2eaf60f680 Index into vectors using integers.
This commit corrects an error that has been present since the
introduction of function wellsToSrc() in commit a50bb8f but was never
detected.  Although the conversion int->double->std::size_t is likely to
be loss-less, it is better to not introduce any more steps than are
actually needed.
2013-02-18 11:49:52 +01:00
Bård Skaflestad
4bf93e31c0 Merge pull request #135 from atgeirr/doc-improvements
Doc and comment improvements
2013-02-06 01:26:29 -08:00
Bård Skaflestad
967403996a Replace an assignment with intended equality test
This corrects a latent error that has been present since the inception
of this module.
2013-02-01 16:30:45 +01:00
Bård Skaflestad
267ec64ae8 Eliminate redundant explicit type conversion.
The pointers in question are already type 'int *'.  There is no need to
explicitly convert them to that type too.
2013-02-01 16:25:46 +01:00
Bård Skaflestad
b8e840e81e Eliminate release-mode build warning.
The 'cbottom' variable is only used within an assert().  Don't define
the variable in release (i.e., "NDEBUG") mode.
2013-02-01 16:15:35 +01:00
Bård Skaflestad
62a8a7f527 Use portable method of zeroing vector of ints.
The memset() technique is only applicable to platforms for which
numerical zero is represented by all bits zero.
2013-02-01 16:06:39 +01:00
Atgeirr Flø Rasmussen
7dd4720057 Changed OpenRS->OPM in copyright notices and #include guards. 2013-01-29 13:42:24 +01:00
Bård Skaflestad
95fb0792e5 Bring ParameterGroup interface into scope.
The constructor accepts a parameter::ParameterGroup reference and thus
needs a valid interface in scope.  Relying on header pollution is
unwise.
2013-01-23 17:35:05 +01:00
Atgeirr Flø Rasmussen
977e8a19e2 Added evalFunc() method.
This public method is not virtual, and implemented in the base class using calls to
the virtual methods. Not yet used by the DG solver.
2013-01-23 09:51:30 +01:00
Atgeirr Flø Rasmussen
f99fd9254b Refactored applyMinUpwindLimiter(). 2013-01-23 09:50:25 +01:00
Atgeirr Flø Rasmussen
604be45871 Add methods totalFlux() and minCornerVal().
Also started refactoring applyMinUpwindLimiter() using the
added methods.
2013-01-21 14:55:27 +01:00
Atgeirr Flø Rasmussen
e02bf4f312 Use functionAverage() instead of direct coefficient access.
This fixes the issue with limiters on multilinear basis.
2013-01-21 11:09:43 +01:00
Atgeirr Flø Rasmussen
1093e09d65 Added functionAverage() method to DGBasis classes. 2013-01-21 11:09:07 +01:00
Atgeirr Flø Rasmussen
763d14ce4d Refactored limiter functions.
The two limiter functions were very similar, and were unified in a single
method, with a bool argument to choose method variety.
2013-01-21 10:46:06 +01:00
Markus Blatt
c48234c0e4 Finished customizability in terms of steps and prolongateFactor 2013-01-18 14:11:59 +01:00
Markus Blatt
0baa40fb88 Merge remote-tracking branches 'origin/master' and 'upstream/master' 2013-01-18 13:48:55 +01:00
Bård Skaflestad
d9842837b3 Merge remote-tracking branch 'upstream/master' 2013-01-18 13:23:52 +01:00
Bård Skaflestad
d0fa32011b Opm::WellState::init(): Handle shut wells
This is a minor bugfix to account for the presence of shut wells
(characterised by "ctrls[w]->current < 0").  The existing code would
lead to indexing outside the "ctrls" array in the context of a shut
well.
2013-01-18 13:23:37 +01:00
Atgeirr Flø Rasmussen
862c489cc3 Complete separation of basis func classes.
Also:
 - Add use_tensorial_basis parameter allowing run-time choice of basis.
 - Remove degree argument from solveTof() method, degree is instead obtained
   from parameters in constructors. Modified compute_tof* programs to match.
2013-01-16 15:13:45 +01:00
Atgeirr Flø Rasmussen
dc7385204a Implement (empty) virtual destructor, make methods public. 2013-01-16 15:11:46 +01:00
Atgeirr Flø Rasmussen
5288b84bdc Increased quadrature order in a term.
This is for the benefit of bi/tri-linear basis functions, as stated
in the comments.
2013-01-16 13:45:15 +01:00
Atgeirr Flø Rasmussen
f539c4d183 Moved DG basis to separate classes in its own file.
Also introduced interface (base) class and changed the api, not used yet by the tof solver.
2013-01-16 13:38:02 +01:00
Atgeirr Flø Rasmussen
954ebfa837 Add methods addConstant() and multiplyGradient() to multilinear basis.
Not tested yet, though.
2013-01-15 20:44:28 +01:00
Atgeirr Flø Rasmussen
b61bb494dc Implement limiters with addConstant() and multiplyGradient().
This is instead of directly manipulating the coefficients, requiring
assumptions on the basis used.
2013-01-15 13:52:44 +01:00
Atgeirr Flø Rasmussen
5ac24f9b8d Added addConstant() and multiplyGradient() methods.
So far only to class DGBasisBoundedTotalDegree.
2013-01-15 13:44:18 +01:00
Atgeirr Flø Rasmussen
406965124a Added class DGBasisMultilin.
Multilinear DG1 basis functions added. Will not work with current limiter.
2013-01-15 13:42:05 +01:00
Atgeirr Flø Rasmussen
e24795ba94 Reduce source sum failure from error to warning.
Should extend to sum over sources and boundaries before reinstating.
2013-01-15 13:39:35 +01:00
Atgeirr Flø Rasmussen
5548fd85f9 Renamed class DGBasis -> DGBasisBoundedTotalDegree. 2013-01-15 13:37:39 +01:00
Atgeirr Flø Rasmussen
81c8870ba8 Do not require unnecessary high quadrature precision. 2013-01-15 13:33:55 +01:00
Atgeirr Flø Rasmussen
7f05b1bb0e Added (disabled) extra output for debugging purposes.
Enable by defining EXTRA_VERBOSE.
2013-01-15 13:17:43 +01:00
Atgeirr Flø Rasmussen
dd2e01ce9e Do not assume that the first basis function is the constant 1.
Properly integrate b_i * porosity over the cell for all basis functions b_i.
2013-01-15 13:10:09 +01:00
Atgeirr Flø Rasmussen
e5ff636860 Merge branch 'master' into dg-improvements 2013-01-08 16:01:52 +01:00
Atgeirr Flø Rasmussen
89516931e4 Added MinUpwindAverage limiter method, made it default. 2013-01-08 16:00:17 +01:00
Atgeirr Flø Rasmussen
53932a8184 Documented new available limiting options in constructor doc. 2013-01-08 13:34:50 +01:00
Atgeirr Flø Rasmussen
a0827ab02d Change constructor to take ParameterGroup argument.
Also make tof to limit against >= 0.0, for case when upstream cell values go
below zero.

Disabled some debug output.
2013-01-08 13:14:26 +01:00
Atgeirr Flø Rasmussen
832072a5cb Improvements to DG1 flux limiter.
Skeleton in place for increased flexibility in methods and usage.
(So far behaviour choices are hardcoded, though.)
Added relative flux thresholding to existing limiter to avoid flux noise
strongly affecting solution. For example no-flow boundaries could be treated
as inflow boundaries and make the minimum upwind face limiter meaningless.
2013-01-08 11:04:43 +01:00
Atgeirr Flø Rasmussen
6a23ebe449 Add methods sequence() and components(). 2013-01-08 11:04:07 +01:00
Atgeirr Flø Rasmussen
db7fe12a45 Simplify and correct implementation of limiter.
Now we check all corners' tof values for the cell under consideration,
not just the inflow face corners'.
2013-01-07 15:48:47 +01:00
Atgeirr Flø Rasmussen
bfa52cc5f2 Bugfix, again: it was correct to take the maximum, reinstating.
There is a different problem that needs fixing, however:
Flux inaccuracies (for example on boundaries) may tag some
face as inflow face for a cell, even if it should have been
no-flow. This may let the cell avoid limiting, even though it
should have been limited according to the proper inflow faces.
2013-01-07 15:10:43 +01:00
Atgeirr Flø Rasmussen
583c905a43 Bugfix: take minimum of allowed slopes, not maximum. 2013-01-04 19:59:05 +01:00
Bård Skaflestad
70da461a97 Merge pull request #110 from atgeirr/dg-improvements
Improvements for time-of-flight and tracer computations
2013-01-03 08:25:11 -08:00
Atgeirr Flø Rasmussen
8cb2ea4c94 Added solveTofTracer() method. 2013-01-03 14:07:51 +01:00
Atgeirr Flø Rasmussen
538e1eab5f Limiter now works reasonably well.
Case with no inflow faces should be checked.
2012-12-20 18:03:08 +01:00
Bård Skaflestad
1059611c78 Merge pull request #109 from atgeirr/dg-improvements
DG time-of-flight improvements
2012-12-19 09:09:33 -08:00
Atgeirr Flø Rasmussen
3e723bc965 Added limiter for DG1, parameter 'use_limiter'.
The limiter is experimental and unfinished, untested work in progress.
Limiter is therefore inactive by default.

Also fixed a minor bug: use_cvi_ was not initialized.
2012-12-18 14:15:31 +01:00
Atgeirr Flø Rasmussen
94b128d6b6 Bugfix: use sufficient quadrature order. 2012-12-18 14:12:56 +01:00
osae
51d2e9de0d Support for keywords ENPTVD and ENKRVD. 2012-12-17 14:02:30 +01:00
osae
28a3a0770f Scaling of relperm functions - oil/water systems.
opm/core/eclipse/EclipseGridParser.cpp
opm/core/eclipse/EclipseGridParser.hpp
- New keywords: ENDSCALE SCALECRS SWCR SWL SWU SOWCR KRW KRWR KRO KRORW

opm/core/eclipse/SpecialEclipseFields.hpp
- Parsers for ENDSCALE and SCALECRS.

opm/core/fluid/BlackoilPropertiesFromDeck.cpp
- Consistency check: ENDSCALE implemented for SatFuncSimple only.

opm/core/fluid/SatFuncGwseg.hpp
opm/core/fluid/SatFuncSimple.hpp
opm/core/fluid/SatFuncStone2.hpp
- Accomodate "default" values for scalable parameters.
- For SatFuncGwseg and SatFuncStone2 the associated functionality not
  yet supported and the variables are dummies to satisfy the compiler.

opm/core/fluid/SatFuncSimple.cpp
- Initialisation for scalable parameters.
- Evaluation of relperms: Use (1-so) for evaluation of oil-relperms.
  (For scaled arguments sw and so do not necessarily add to one.)
- TODO: SatFuncGwseg.cpp and SatFuncStone2.cpp for oil-water systems.

opm/core/fluid/SaturationPropsFromDeck.hpp
- Struct to accomodate cell-wise scaling factors.
- Two flags indicating scaling and method.
- Methods for parameter initialisation and scaled relperm computation.

opm/core/fluid/SaturationPropsFromDeck_impl.hpp
- Initialize scaling options and relevant cell-wise scaling factors.
- Relperm evaluation modified for possible end point scaling.
2012-12-07 14:52:00 +01:00
Atgeirr Flø Rasmussen
5e04ec1448 Modify precision for quadrature depending on use of CVI method. 2012-12-06 10:18:57 +01:00
Atgeirr Flø Rasmussen
534f8f8bb6 No longer ignores boundary fluxes.
This means that the class does expect source terms that are just that, and not
'transport source' terms that include boundary inflows (like the transport
solvers expect). This is also consistent with the behaviour of the DG version.
2012-12-05 10:39:00 +01:00
Atgeirr Flø Rasmussen
8fce539d3d Adapt to moved [Cell|Face]Quadrature classes.
Also fix a minor issue with potentially buggy error output after LAPACK failure.
2012-12-04 16:11:05 +01:00
Markus Blatt
87a5ba847e Merge remote-tracking branch 'upstream/master' 2012-11-22 12:48:02 +01:00
Halvor Møll Nilsen
1be0bd4a20 Corrected include statements after renaming files. 2012-11-16 16:24:54 +01:00
Halvor Møll Nilsen
4a6e10bb08 Continued renaming of transpormodels to transportsolver*reorder 2012-11-16 16:06:01 +01:00
Halvor Møll Nilsen
6b73114430 Changed name of all TransportModels which was reorder solvers 2012-11-16 16:00:56 +01:00
Halvor Møll Nilsen
74cddb0b01 Changes needed to for makeing a simulator using ImplicitTransport. Several changes in names to highlight what is reorder simulator classes 2012-11-16 13:38:03 +01:00
Halvor Møll Nilsen
cfae3edcaf Changes to try to make naming and classes more consistent. This is a start to make devide models and tranport solvers so that VE models is more easely handled 2012-11-15 13:20:49 +01:00
Atgeirr Flø Rasmussen
6324408357 Update CompressibleTpfa wellbore gravity handling.
Should now be in sync with cfs_tpfa_residual C interface. Simple well
gravity model implemented.
More flexibility in well gravity models would be a natural future extension.
2012-11-06 19:28:22 +01:00
Bård Skaflestad
ab71ea4780 Merge branch 'master' into gravity-in-wells 2012-11-05 15:48:07 +01:00
Atgeirr Flø Rasmussen
7deba2cce0 Bugfix tof computations with multidimensional upwinding.
Cell tof depends on downwind face tof in a more complicated way
with multidim upwinding, this was not done correctly.
2012-11-05 14:26:00 +01:00
Bård Skaflestad
a0c8028ea8 Account for gravity in well connection flux calculation
We previously ignored effects of gravity in the calculation of the well
connection fluxes (i.e., perforation fluxes).  This commit includes
those effects where appropriate.
2012-11-01 13:34:27 +01:00
Markus Blatt
08ecc6988c Merge remote-tracking branch 'upstream/master' 2012-10-30 16:27:49 +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
Halvor Møll Nilsen
036cfacea4 changes to be able to use black oil properties even if rock do not match current grid 2012-10-30 13:28:22 +01:00
Atgeirr Flø Rasmussen
a124d2e3be Implemented multidimensional upwinding.
The 'SMU' variant is chosen for its smoothness.
2012-10-30 13:10:50 +01:00
Atgeirr Flø Rasmussen
bd013a7d4d Added parameters for controlling use of multidim upwinding.
For now, you will simply get SPU even with use_multidim_upwind=true.
2012-10-29 17:23:17 +01:00
Bård Skaflestad
7406847201 Merge branch 'master' into gravity-in-wells 2012-10-25 10:44:17 +02: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
Bård Skaflestad
f9fe3322b6 Merge branch 'master' into gravity-in-wells 2012-10-24 22:43:25 +02: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
Bård Skaflestad
98fd1f05dd Merge branch 'master' into gravity-in-wells 2012-10-24 10:09:31 +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
Bård Skaflestad
8e38cd5f5c Merge branch 'master' into gravity-in-wells 2012-10-17 13:30:37 +02:00
Atgeirr Flø Rasmussen
88af4a4ce3 Fix output in case of LAPACK error.
Make copy of matrix before calling dgesv, since it will overwrite it.
2012-10-17 12:40:43 +02:00
Bård Skaflestad
5afc290604 Don't compare floating point numbers for equality. 2012-10-16 21:48:38 +02:00
Bård Skaflestad
75f7a725b3 Update documentation accompanying CompletionData structure.
Specifically, the 'wdp' member is a scalar value at each well
connection.  Phase behaviour is incorporated through other means.
2012-10-16 14:05:33 +02:00
Bård Skaflestad
8a8c29f5ce Rename CompletionData::gpot -> wdp .
This is in preparation of implementing actual gravity support in
(compressible) well-pressure solution.
2012-10-16 13:55:07 +02:00
Atgeirr Flø Rasmussen
49af5dcd7b Use new velocity interpolation interface.
The class TransportModelTracerTofDiscGal now uses
VelocityInterpolationInterface, and acts as a factory
internally, choosing an interpolation method depending on
the parameter 'use_cvi'.
2012-10-16 11:11:33 +02:00
Bård Skaflestad
10604d237b Document public interface of compr_source module.
This is Doxygen-style reference documentation only.
2012-10-15 19:49:23 +02:00
Bård Skaflestad
80a14f849b Reformat to add Doxygen markup where appropriate 2012-10-15 19:15:31 +02:00
Bård Skaflestad
30cb6eaf7f Document public interface of compr_quant_general module
This is Doxygen-style reference documentation only.
2012-10-15 16:08:17 +02:00
Bård Skaflestad
f35663130a Document public interface of cfs_tpfa_residual module
This is Doxygen-style reference documentation only.
2012-10-15 15:21:27 +02:00
Bård Skaflestad
d3f85ea60c Merge remote-tracking branch 'upstream/master' into ert
Conflicts:
	Makefile.am
	opm/core/grid/cpgpreprocess/preprocess.h
	tests/Makefile.am

This brings ert branch up-to-date with current Github master branch.
2012-10-12 00:43:51 +02:00
Markus Blatt
230c6320eb Merge branch 'master' of https://github.com/OPM/opm-core 2012-10-11 11:25:25 +02:00
Atgeirr Flø Rasmussen
ca15ce6eec Fix comment. 2012-10-10 14:12:38 +02:00
Atgeirr Flø Rasmussen
89eee7e220 Bugfix: order of function arguments.
Order of arguments for computePhaseFlowRatesPerWell() was wrong.
This fix was done previously for SimulatorCompressibleTwophase,
but the incompressible sim was ignored.

Also added an ASSERT that may help catch some misuse.
2012-10-10 14:09:09 +02:00
Atgeirr Flø Rasmussen
c8498b76b6 Merge pull request #59 from kristinf/dev
sign error in total_produced

Looks correct.
2012-10-10 04:49:06 -07:00
Markus Blatt
b296a4488e Merge remote-tracking branch 'upstream/master' 2012-10-10 10:25:25 +02:00
kristinf
a740bcfe5f sign error in total_produced 2012-10-09 15:23:56 +02:00
Atgeirr Flø Rasmussen
31d17a0dcd Whitespace cleanup. 2012-10-09 12:21:17 +02:00
Atgeirr Flø Rasmussen
76259dcd0f Improve docs and give more info on error. 2012-10-09 09:54:54 +02:00
Atgeirr Flø Rasmussen
36721602b2 Add timing of topological sort. 2012-10-09 09:54:26 +02:00
Atgeirr Flø Rasmussen
256a5496b1 Merge branch 'master' into reorder_tof 2012-10-08 16:16:05 +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
Atgeirr Flø Rasmussen
a635140500 Merge branch 'master' into reorder_tof 2012-10-08 13:52:59 +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
Bård Skaflestad
e5c5a64a4a New function clone_wells()
Used to create a deep copy (clone) of an existing Wells object.

While here, add test case for common Wells object operations.
2012-10-05 10:14:44 +02:00
Markus Blatt
7957198131 Merge remote-tracking branch 'upstream/master' 2012-10-05 10:11:59 +02:00
Atgeirr Flø Rasmussen
108589a286 Merge branch 'master' into reorder_tof 2012-10-05 09:20:37 +02:00
Bård Skaflestad
24504875ea Reference <grid.h> from canonical location.
The header was removed from this directory upon import from the
preexisting "opmtransport" repository.
2012-10-05 00:56:12 +02:00
Bård Skaflestad
4d488c98a7 Unequivocally exclude MATLAB timing printing.
It is not actually needed and prevents building when symbol
MATLAB_MEX_FILE is defined.
2012-10-05 00:53:59 +02:00
Markus Blatt
de1e709476 Merge remote-tracking branch 'upstream/master' 2012-10-03 20:01:05 +02:00
Markus Blatt
1105c9b540 Make number of smoothing steps and scaling factor for prolongation of AMG adjustable 2012-10-03 20:01:00 +02:00
Atgeirr Flø Rasmussen
6f31f059d7 Merge branch 'master' into reorder_tof 2012-10-03 10:05:53 +02:00
Atgeirr Flø Rasmussen
a9783eefc7 Add explanatory comment. 2012-10-02 15:46:33 +02:00
Atgeirr Flø Rasmussen
5acbf00b14 Update compressible transport solver for new src convention.
Namely, that inflowing transport sources are water *surface* volumes,
not water *reservoir* volumes.
2012-10-02 14:37:18 +02:00
Atgeirr Flø Rasmussen
4f276a8870 Bugfix: size of vector for A should be np*np. 2012-10-02 14:35:28 +02:00
Atgeirr Flø Rasmussen
017663cc5b Change interface for (blackoil) computeInjectedProduced().
Also use new computeInjectedProduced() and computeTransportSource()
functions in SimulatorCompressibleTwophase.
2012-10-02 11:12:23 +02:00
Atgeirr Flø Rasmussen
17c1be6541 Modified functions dealing with transport source.
In preparation for switching to new convention for inflow
sources in the compressible case: source being surface volumes,
not reservoir volumes.
2012-10-01 16:40:47 +02:00
Atgeirr Flø Rasmussen
6fb248d403 Update WellState::perfPress() after pressure solve. 2012-10-01 16:40:10 +02:00
Atgeirr Flø Rasmussen
0eb54ca90a Added perfPress() to WellState. 2012-10-01 16:39:35 +02:00
Atgeirr Flø Rasmussen
78835b57b8 Merge branch 'master' into ert 2012-09-30 15:08:49 +02:00
Atgeirr Flø Rasmussen
f6b2306dab Work in progress: degree 2 quadratures.
Also, changed quadrature degrees used to get exact quadratures for all terms.
2012-09-28 14:44:04 +02:00
Atgeirr Flø Rasmussen
cf38936c99 Merge branch 'master' into reorder_tof 2012-09-27 11:19:56 +02:00
Atgeirr Flø Rasmussen
d83ab5856d Fix: forgotten multiply by cell volume in a quadrature. 2012-09-27 09:49:36 +02:00
Atgeirr Flø Rasmussen
04a76988d9 Add sink term contribution. 2012-09-26 15:15:04 +02:00
Atgeirr Flø Rasmussen
93094ebeec Fix argument order in call. 2012-09-26 14:21:00 +02:00
Atgeirr Flø Rasmussen
99a12a7edc Initial version of DG(1) for tof implemented.
Basis functions, quadratures and velocity interpolation are basic versions,
not handling any higher than DG(1) for now. These are currently in helper
classes and functions. The code in the main solver class is written with
the aim of supporting DG(n) generally.
2012-09-26 13:30:54 +02:00
Bård Skaflestad
fb8e79857c Add tentative implementation of surface-rate targets.
Not tested at present.
2012-09-26 10:14:45 +02:00
Atgeirr Flø Rasmussen
bbc5ed5c68 Merge branch 'master' into reorder_tof 2012-09-26 09:08:26 +02:00
Atgeirr Flø Rasmussen
6a01298312 Merge branch 'master' into ert
Conflicts:
	Makefile.am
2012-09-26 09:07:57 +02:00
Atgeirr Flø Rasmussen
1a227dbf86 Added skeleton of general order DG tof solver. 2012-09-26 08:58:03 +02:00
Atgeirr Flø Rasmussen
b9a2c14113 Add proper support for source terms.
This fixes the problem with infinite tofs at sinks.
2012-09-25 14:00:17 +02:00
Atgeirr Flø Rasmussen
ddf177b4c5 Merge branch 'master' into reorder_tof 2012-09-25 10:13:46 +02:00
Atgeirr Flø Rasmussen
9f69e9fa51 Guard against input error.
If no valid threephase_model is input, throw instead of crashing.
2012-09-24 17:09:50 +02:00
Atgeirr Flø Rasmussen
56e81968e3 Add support for new three-phase relperm option to BlackoilPropertiesFromDeck.
New parameter option added: 'threephase_model' can now be 'gwseg'.
2012-09-24 16:43:00 +02:00
Roland Kaufmann
ab21d44c9a Disable warning for using DUNE's FieldVector::size
In DUNE 2.2 FieldVector::size changed from being a member to being a
method. A compatibility warning is issued if you include the relevant
headers.

This warning can be silenced for DUNE modules by using passing the
option --enable-fieldvector-size-is-method to ./configure. This patch
effectively does the same, but through a macro definition.
2012-09-24 00:21:06 +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
Bård Skaflestad
bdcd5236bd Don't crash on models without wells.
The user will legitimately want to run models that do not specify wells
(e.g., using boundary conditions).  While we do not yet fully support
that configuration (no wells), we absolutely must not crash by
dereferencing null pointers or generating pointers into ::empty()
std::vector<>s.

This commit installs the required guards needed to avoid said failure
mode.
2012-09-20 15:03:38 +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
50a23c0f5d Support shut wells in compressible tpfa solver. 2012-09-20 14:34:33 +02:00
Atgeirr Flø Rasmussen
2017481a58 Improve diagnostic output if crossflow is detected. 2012-09-20 14:33:57 +02:00
Atgeirr Flø Rasmussen
8dc958044f Merge branch 'master' into ert 2012-09-18 09:18:40 +02:00
Atgeirr Flø Rasmussen
65447604ae Typo fix. 2012-09-14 20:56:08 +02:00
Atgeirr Flø Rasmussen
67b5f007fd Made initialization from SWAT/SGAS etc. more robust and general. 2012-09-14 10:40:36 +02:00
Atgeirr Flø Rasmussen
fa6b772972 Changed well initialization and property calculation.
Bhp is now initialized to bhp target for bhp-controlled wells.
Mobilities and pvt properties are now calculated from
well perforation pressure and injection specifications for
injectors, producers still use cell properties as before.
2012-09-14 09:53:11 +02:00
Atgeirr Flø Rasmussen
bdcf0291e0 Fix error message. 2012-09-14 09:52:13 +02:00
Atgeirr Flø Rasmussen
026863c95d Merge branch 'master' into reorder_tof 2012-09-05 14:21:47 +02:00
Xavier Raynaud
680276debf Fixed documentation. 2012-09-05 14:07:51 +02:00
Atgeirr Flø Rasmussen
9c77d12f8d Merge branch 'master' into ert
Conflicts:
	Makefile.am
	configure.ac
	examples/Makefile.am
	opm/core/GridManager.cpp
	opm/core/eclipse/EclipseGridParser.cpp
	opm/core/grid/cpgpreprocess/preprocess.h
	tests/Makefile.am
2012-09-05 13:36:19 +02:00
Xavier Raynaud
3eda90b7e6 Merge remote-tracking branch 'upstream/master' 2012-09-05 13:35:48 +02:00
Xavier Raynaud
1d98e043a5 Fixed source term (measured at reservoir conditions). 2012-09-05 13:34:25 +02:00
Atgeirr Flø Rasmussen
fa2fc1e914 Merge branch 'master' into reorder_tof 2012-09-05 12:32:38 +02:00
Halvor Møll Nilsen
0f3423cbf4 Added constuctor to WellManager which used Wells struct. 2012-09-05 11:47:38 +02:00
Atgeirr Flø Rasmussen
0f91bc6a34 Massive whitespace cleanup: entire fluid subdir. 2012-09-05 11:28:54 +02:00
Xavier Raynaud
32e1ae249d Merge remote-tracking branch 'upstream/master' 2012-09-05 10:11:02 +02:00
Xavier Raynaud
3d01a60099 Changed solvegravity interface. Fixed bug. 2012-09-05 10:10:02 +02:00
Xavier Raynaud
8c68fd0373 Add initial guess in root solver for gravity residual. 2012-09-04 15:13:55 +02:00
Xavier Raynaud
55793cc909 Use same search interval in computation of flux and gravity residuals. 2012-09-04 15:01:14 +02:00
Xavier Raynaud
ff78e358f0 Removed unappropriate conversion from water saturation to complete saturation. 2012-09-04 14:22:56 +02:00
Xavier Raynaud
876d23942c Use porevolume of last step in computation of gravity residual. 2012-09-04 14:21:51 +02:00
Bård Skaflestad
abd8973382 Merge remote-tracking branch 'upstream/master' 2012-09-04 13:58:43 +02:00
Atgeirr Flø Rasmussen
f68c289e9d Merge branch 'master' into nonuniform_fluid_tables
Conflicts:
	opm/core/fluid/BlackoilPropertiesFromDeck.cpp
	opm/core/fluid/BlackoilPropertiesFromDeck.hpp
	opm/core/fluid/SaturationPropsFromDeck.cpp
2012-09-04 13:34:30 +02:00
Atgeirr Flø Rasmussen
23ae62f8dc Constified some local variables. 2012-09-04 13:15:26 +02:00
Atgeirr Flø Rasmussen
0f9d572f9a Fix stride bug in WellReport::push(). Use convert::to(). 2012-09-04 13:12:06 +02:00
Atgeirr Flø Rasmussen
14aab769f2 Fix stride bug in SGAS/SWAT init. 2012-09-04 13:06:13 +02:00
Atgeirr Flø Rasmussen
7c7609698f Added proper Doxygen tags. 2012-09-04 12:52:17 +02:00
Atgeirr Flø Rasmussen
0101e1f575 Updated doc to match new parameter names.
New parameters are (default):
    pvt_tab_size (200)
    sat_tab_size (200)
    threephase_model ("simple") [also accepts "stone2"].
2012-09-04 11:49:05 +02:00
Atgeirr Flø Rasmussen
03f6f43160 Merge branch 'master' into nonuniform_fluid_tables
Conflicts:
	Makefile.am
	opm/core/fluid/BlackoilPropertiesFromDeck.hpp
	opm/core/fluid/SaturationPropsFromDeck.cpp
	opm/core/fluid/SaturationPropsFromDeck.hpp
	opm/core/fluid/blackoil/BlackoilPvtProperties.cpp
	opm/core/fluid/blackoil/BlackoilPvtProperties.hpp
	opm/core/fluid/blackoil/SinglePvtDead.cpp

This merge combines three more-or-less orthogonal features
for saturation tables: the option to use StoneII or Simple
three-phase behaviour, the option to fit a spline or not,
and finally setting the number of samples used (if spline
fitting).

Interfaces have changed, the most top-level one being
that BlackoilPropertiesFromDeck::init() now also takes
a ParameterGroup argument.
2012-09-04 11:42:31 +02:00
Atgeirr Flø Rasmussen
e9c4c2499c Documented parameters. 2012-09-03 15:09:55 +02:00
Atgeirr Flø Rasmussen
4e1647bb62 Formatting fixes. 2012-09-03 15:07:03 +02:00
Atgeirr Flø Rasmussen
489501b49b Documented new constructor. Fixed layout. 2012-09-03 14:16:54 +02:00
Atgeirr Flø Rasmussen
c2d41a6639 Whitespace cleanup and adding a check for #phases <= 3. 2012-09-03 14:04:52 +02:00
Atgeirr Flø Rasmussen
913054c473 Added more checks in 3-phase init code. 2012-09-03 13:54:50 +02:00
Atgeirr Flø Rasmussen
c409fcccce Merge remote-tracking branch 'hnil/master' 2012-09-03 13:40:33 +02:00
Bård Skaflestad
ca428559ab Merge remote-tracking branch 'upstream/master' 2012-09-03 13:27:50 +02:00
Atgeirr Flø Rasmussen
109ba09d9d Merge branch 'master' into nonuniform_fluid_tables 2012-09-03 13:12:11 +02:00
Xavier Raynaud
a8cb519d4e Fixed comment. 2012-09-03 12:26:22 +02:00
Xavier Raynaud
0701daa4dc Improve documentation. 2012-09-03 11:29:48 +02:00
Halvor Møll Nilsen
2dede29f20 Introduced posibility to change number of sample points for pvt.
Did change the PVTW calculation so derivatives are exact.
Extended the test functions for pvt and relperm
2012-08-31 17:01:07 +02:00
Xavier Raynaud
b4a4e297a8 Added functionality to compute porosity for compressible fluid. 2012-08-29 10:54:21 +02:00
Halvor Møll Nilsen
6852be422c Added new SatFuncSimple fluid.
Introduced a simple fluid which has no problem with strange black oil behavior.
Intended for testing, but for now it is used in SaturationPropsFromDeck.
2012-08-28 16:41:06 +02:00
Halvor Møll Nilsen
94c04f343d Added param initializer on fluids with param to addjust table length.
Moved internal class SatFunc to SatFuncStone2.
2012-08-28 14:27:14 +02:00
Xavier Raynaud
9aa349b1e5 Corrected comment. 2012-08-28 13:12:54 +02:00
Atgeirr Flø Rasmussen
7a79bd1872 Enable choice of spline-smoothed saturation props (or not). 2012-08-27 17:56:01 +02:00
Atgeirr Flø Rasmussen
214546ece9 Merge branch 'master' into reorder_tof 2012-08-27 17:02:50 +02:00
Atgeirr Flø Rasmussen
d9cff689b4 Added class SinglePvtDead, add parameter 'props_use_spline' to simulators.
Recall that the class that used to be called SinglePvtDead has
been renamed to SinglePvtDeadSpline. If 'props_use_spline' is true,
that class is used (this is the default), which makes a monotone
spline that is uniformly, densely sampled. The new class simply
uses linear interpolation in the input tables.
2012-08-27 16:48:21 +02:00
Bård Skaflestad
bf70195448 Merge remote-tracking branch 'upstream/master' 2012-08-27 15:37:07 +02:00
Xavier Raynaud
22372710b8 Merge remote-tracking branch 'atgeirr/master' 2012-08-27 13:32:55 +02:00
Xavier Raynaud
af8a6fa7da Changed private->protected and added virtual to make class derivation. 2012-08-27 13:19:04 +02:00
Atgeirr Flø Rasmussen
5182fef48d Switch loop ordering for better cache performance. 2012-08-27 13:17:27 +02:00
Halvor Møll Nilsen
cf9b9cdf20 Started work on supporting 3 phases for wellreport. 2012-08-27 12:22:32 +02:00
Halvor Møll Nilsen
9ef6014964 Addes support for initialisation of three phases using SWOF and SGOF 2012-08-27 12:20:03 +02:00
Atgeirr Flø Rasmussen
931dcc4a3d Implemented rudimentary solveMultiCell().
Simply calls solveSingleCell() once for each cell in block.
2012-08-27 11:26:51 +02:00
Atgeirr Flø Rasmussen
9bb76d74cc Fixed bug in matrix multiplication (matrix has Fortran element order). 2012-08-27 11:19:22 +02:00
Atgeirr Flø Rasmussen
0a8ac1ddb5 Minor revision, mostly whitespace cleanup and comments. 2012-08-27 09:48:06 +02:00
Bård Skaflestad
a8d75d2b25 Reference <grid.h> from canonical location.
The header was removed from this directory upon import from the
preexisting "opmtransport" repository.
2012-08-24 20:31:13 +02:00
Bård Skaflestad
c2a0b51365 Unequivocally exclude MATLAB timing printing.
It is not actually needed and prevents building when symbol
MATLAB_MEX_FILE is defined.
2012-08-24 20:31:13 +02:00
Halvor Møll Nilsen
6390cceaa2 Corrected typing pointed out by atgeirr in respose to pullrequest 2012-08-24 20:31:13 +02:00
Halvor Møll Nilsen
7ee5d5e403 added writing of reorder iterations for each cell 2012-08-24 20:31:13 +02:00
Atgeirr Flø Rasmussen
3e9cc74922 Initial commit of tof computation by reordering. 2012-08-24 16:08:26 +02:00
Halvor Møll Nilsen
0da049f4c8 Corrected mistake from moving function calls. 2012-08-24 13:39:42 +02:00
Atgeirr Flø Rasmussen
46fb488410 Minor code cleanup in TransportModelTwophase. 2012-08-24 13:31:23 +02:00
Atgeirr Flø Rasmussen
3dfb2eb29b Merge remote-tracking branch 'upstream/master'
Conflicts:
	opm/core/simulator/SimulatorIncompTwophase.cpp
2012-08-24 13:31:05 +02:00
Halvor Møll Nilsen
a26c6779c6 Corrected typing pointed out by atgeirr in respose to pullrequest 2012-08-24 12:52:41 +02:00
Atgeirr Flø Rasmussen
c7bbf1146c Removed unneeded function numGlobalCells(). 2012-08-24 08:18:59 +02:00
Atgeirr Flø Rasmussen
caff665c10 Fixed solveGravity(): now properly modifies surfacevolume.
Also:
  - solveGravity() interface changed to take surface volume as a parameter,
  - gravity vector is now given in initGravity() instead of
    solveGravity(), for consistency with the incompressible solver.
2012-08-23 14:45:23 +02:00
Atgeirr Flø Rasmussen
73949f892e New singularPressure() method propagates singularity information. 2012-08-23 14:03:20 +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
Atgeirr Flø Rasmussen
e96421dbd7 Whitespace cleanup. 2012-08-23 08:59:09 +02:00
Atgeirr Flø Rasmussen
96327164cc Added computeSurfacevol() method.
The method is called by the reordering transport solver after computing
new saturations in order to update the surface volumes.
2012-08-23 08:57:48 +02:00
Atgeirr Flø Rasmussen
010715ad03 Document and check (primitive) for non-miscibility requirement. 2012-08-22 12:31:59 +02:00
Atgeirr Flø Rasmussen
2f03664408 Merge branch 'rock_comp_tpfa' 2012-08-22 11:13:16 +02:00
Xavier Raynaud
9ed0923279 Update surface volume in transport solver. 2012-08-22 10:11:32 +02:00
Xavier Raynaud
660f14df3b Corrected bug (residual should not be divided by dt). 2012-08-21 17:12:07 +02:00
Xavier Raynaud
52ab67201d Changed way to get total number of cells. 2012-08-21 17:10:49 +02:00
Xavier Raynaud
712ccb0309 Corrected typo in comment. 2012-08-21 17:09:19 +02:00
Halvor Møll Nilsen
5743225be2 added writing of reorder iterations for each cell 2012-08-21 15:23:46 +02:00
Xavier Raynaud
7e1e1e7951 Fixed sign error and replaced porevol->porevol0. 2012-08-21 10:20:59 +02:00
Halvor Møll Nilsen
50ff22141d Added writing of timings in param format 2012-08-21 09:57:36 +02:00
Xavier Raynaud
b470ab8d50 Fix initialization bug. 2012-08-20 15:18:24 +02:00
Atgeirr Flø Rasmussen
aa47b1511c Merge branch 'master' into rock_comp_tpfa 2012-08-17 12:55:41 +02:00
Atgeirr Flø Rasmussen
ded1424cc9 Whitespace cleanup. 2012-08-17 12:40:15 +02:00
Atgeirr Flø Rasmussen
61fdf4a8b6 Bugfix: call *comprock* method only if active rock compressibility. 2012-08-17 10:56:27 +02:00
Atgeirr Flø Rasmussen
d67f49bac8 Class CompressibleTpfa now handles rock compressibility. 2012-08-17 10:38:41 +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
Atgeirr Flø Rasmussen
6fb1078cba Merge remote-tracking branch 'upstream/master' 2012-08-14 15:27:30 +02:00
Atgeirr Flø Rasmussen
ec13b11f9d Merge remote-tracking branch 'upstream/master' 2012-08-14 11:31:54 +02:00
Atgeirr Flø Rasmussen
f90f313af6 Gravity segregation column solver for compressible case implemented. 2012-08-14 11:25:59 +02:00
Bård Skaflestad
7cad95c6c7 Restore coding conventions.
Inadvertently lost in commit 064184b.
2012-08-14 11:05:09 +02:00
Halvor Møll Nilsen
1f7ec7fa39 Changed to extrapolation outside tables for pormult. Added facetags to the grid structure. Changed default fluid to Linear. 2012-08-14 09:36:19 +02:00
Atgeirr Flø Rasmussen
497c45b78b Constructors of *FromDeck classes now take an UnstructuredGrid.
This is a change from taking a vector containing the mapping to
deck-consistent logical cartesian indices. The mapping is contained
in the UnstructuredGrid::global_cell member, and may be null. The
change therefore saves the overhead of constructing a vector as a
copy of the data in the grid or (if null) as an identity mapping.
2012-08-10 10:12:45 +02:00
Atgeirr Flø Rasmussen
6ab7487218 Whitespace cleanup. 2012-07-19 15:34:42 +02:00
Atgeirr Flø Rasmussen
937b85e88f Bugfix in CompressibleTpfa for gravity case.
Gravity acceleration should be a factor in the face gravity potential.
2012-07-19 14:45:15 +02:00
Atgeirr Flø Rasmussen
eb7d46accf Transport solver partially complete (segregation solver remains). 2012-07-19 14:02:26 +02:00
Bård Skaflestad
52a5aabf57 Use have_boost_redef.hpp rather than direct override. 2012-07-12 14:36:36 +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
527f2aef52 Initialise all members in default constructor. 2012-07-02 17:44:16 +02:00
Joakim Hove
368e1813a1 Using Datamapper.h in writeVtkData 2012-06-28 13:20:18 +02:00
Bård Skaflestad
0d3b2abc6a Anchor Doxygen comments to current line.
Existing mark-up (/** ... */) would erroneously apply the documentation
of one field to the one below.  Using /**< ... */ avoids this problem.

Found by reading the Doxygen manual more carefully...
2012-06-26 11:44:30 +02:00
Bård Skaflestad
e5e23de0c0 Document the obsolescent well representation.
It is still in use by the hybridised pressure solvers.
2012-06-25 00:55:50 +02:00
Bård Skaflestad
ffb538fce0 Add Doxygen-style documentation to all interfaces. 2012-06-24 03:59:18 +02:00
Bård Skaflestad
b9c9f9fbe8 Reference module headers from canonical location. 2012-06-22 19:39:52 +02:00
Bård Skaflestad
dd67e0c717 Insert another <CODE></CODE> pair that was missing. 2012-06-22 15:44:39 +02:00
Bård Skaflestad
77cd800b0c Merge from upstream. 2012-06-22 15:41:37 +02:00
Bård Skaflestad
1256fb4389 Refine description of csrmatrix_new_elms_pushback()
While here, tighten the distinction between <CODE> and non-<CODE>
mark-up.
2012-06-22 15:37:50 +02:00
Bård Skaflestad
ff96f386dc Use canonical include path to reference header. 2012-06-22 10:17:34 +02:00
Bård Skaflestad
469ddb0468 Re-wrap Doxygen comments introduced in cset 6d9f8b35dd4e. 2012-06-22 02:07:02 +02:00
Bård Skaflestad
3659ca2d68 Document sparse matrix interface. 2012-06-22 02:03:41 +02:00
Halvor M. Nilsen
c7d252f94a Mearge from upstream 2012-06-20 13:11:46 +02:00
Halvor M. Nilsen
ccbc1d83d5 Changed default for relperm to not set. 2012-06-20 13:11:13 +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
ace7ebeed9 Merge from upstream 2012-06-19 13:38:51 +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
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
1795e6b1a7 Document add_well()s "name" parameter.
Forgotten in cset 728302a69229.
2012-06-18 10:18:14 +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
4689dd2af7 Fix output from SimulatorReport. 2012-06-15 10:51:34 +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
Atgeirr Flø Rasmussen
98de826397 Moved SimulatorReport class into its own file, for reusability. 2012-06-14 14:13:03 +02:00
Halvor M. Nilsen
5a055ee933 Fixed one use of wells, when wells=NULL 2012-06-14 09:06:58 +02:00
Atgeirr Flø Rasmussen
ba4ba17736 Merged. 2012-06-13 19:45:32 +02:00
Atgeirr Flø Rasmussen
29a400d622 Enable inheritance from IncompTpfa for limited purposes. 2012-06-13 19:45:23 +02:00
Bård Skaflestad
cc054d474d computeFractionalFlow(): Reuse the output array in all intermediate calculations.
This eliminates a number of free-store operations and data movements.
2012-06-13 17:07:56 +02:00
Atgeirr Flø Rasmussen
e041407c81 Bugfixes: correct sign for pressure increment, initialise rock_comp. 2012-06-13 10:34:15 +02:00
Atgeirr Flø Rasmussen
4e4e652279 Added constructor for incompressible cases.
Also added computeStaticData() helper called by both constructors.
It is still possible to use the other constructor for an incompressible case,
by passing a null pointer for the rock_comp argument.
2012-06-12 15:24:31 +02:00
Atgeirr Flø Rasmussen
c7a9e84be6 Reindent. 2012-06-12 15:22:23 +02:00
Atgeirr Flø Rasmussen
cc1038bcdc Merged. 2012-06-12 11:17:02 +02:00
Atgeirr Flø Rasmussen
88c7b84f4e Removed unused code. 2012-06-12 11:16:43 +02:00
Atgeirr Flø Rasmussen
14f560a295 Major simplification of IncompTpfa interface.
Most significant changes:
     - Single solve() call used for all cases (with or without gravity,
       with or without rock compressibility). This is intentionally
       similar to CompressibleTpfa::solve().
     - Constructor take a property object and computation of necessary total
       mobilities etc. moved inside class.
     - Optional constructor args for rock compressibility, gravity, wells,
       boundary conditions (null pointer accepted) and source terms (empty
       vector accepted).
     - Nonlinear iterations for the compressible rock case now handled inside
       IncompTpfa. This part intentionally made similar to CompressibleTpfa.
2012-06-12 10:27:48 +02:00
Atgeirr Flø Rasmussen
59db0f7ca9 Fix comment. 2012-06-12 10:14:26 +02:00
Bård Skaflestad
3864afe8e2 Constructor: Move common failure mode to end of if-else chain.
While here, add a failure mode pertaining to solvers that are
supported by the system but disabled at configure time.
2012-06-11 17:54:23 +02:00