Commit Graph

111 Commits

Author SHA1 Message Date
Kristian Flikka
fd942e347d 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
Joakim Hove
0fc56949ef Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2013-12-02 15:02:30 +01:00
Joakim Hove
ae10f3b111 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2013-11-25 15:54:01 +01:00
Roland Kaufmann
3b22d1b8f9 Remove superfluous backing class for share_obj
I originally wanted to make share_obj a class so that I could hide the
helper function, but it turned out that I needed a function after all
since a function template can be inferred from the parameters but the
type cannot from the constructor.

By returning a shared_ptr directly, the compiler can do return object
optimization.
2013-11-25 14:14:48 +01:00
Roland Kaufmann
b6c192fea5 Move shared object hack into more useful generic
The template function share_obj let you pass regular references
as shared pointers, which makes it easy (perhaps too easy) to quick-
fix old code which pass references and have stern warnings about the
lifetime rules of the objects in the documentation section instead.
2013-11-25 14:14:48 +01:00
Roland Kaufmann
f710ff71d1 Provide wrapper which connect simulator and writer
This wrapper class aggregate all the result objects (state, timer
etc.) and register itself for notification with the simulator. At
every timestep the simulator should provide a notification. The
wrapper will receive this and pass all the state objects to the
writer(s) which creates a new timestep.

Currently this doesn't work out-of-the-box because only the
two-phase simulator sends notifications and the writer only
understand the state of blackoil simulators, but these two concepts
should be unified.
2013-11-25 14:14:48 +01:00
Roland Kaufmann
6f32b92f6c Renamed away extraneous verbosity in filenames 2013-11-25 14:14:47 +01:00
Roland Kaufmann
441fd2825b Masquerade the actual output format with an interface
Using an interface allows us to code the simulator to just pass the
necessary state variables to something which implements this, and
then the user can select the actual output format with configuration
values. This allows us to set new formats without having to change
the code being compiled (for instance, we can have a special debug
"format" which prints out things of interest in each timestep)
2013-11-25 14:14:47 +01:00
Joakim Hove
ce8da88764 Added very simple parser test to check a parser can be instantiated and a simple file parsed 2013-11-14 12:52:12 +01:00
Roland Kaufmann
9bb4941a38 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
Atgeirr Flø Rasmussen
86ca995629 Merge pull request #423 from rolk/423_eclbin
Write reservoir state in Eclipse binary format
2013-11-06 02:53:59 -08:00
Andreas Lauser
a9929508a6 write out the reservoir state to the eclipse binary format
most code was shamelessly ripped from opm-core's EclipseGridParser,
but there are some additions (e.g. grids specified using the D[XYZ]V
Eclipse keywords can be used).

The code is located inside the new class "BlackoilEclipseOutputWriter"
(should probably renamed) and hooked up in
SimulatorFullyImplicitBlackoil and sim_fibo_ad.cc.

Also be aware that, to make this code work properly, the newest master
version of ERT is required (i.e. one which includes commit
5e4e9661720). In this context, I would like to thank Joakim Hove for
his support!
2013-11-01 11:36:06 +01:00
Joakim Hove
e7e2f6588b Added test with accompanying data for Blackoilstate::equals() 2013-10-28 17:43:29 +01:00
Roland Kaufmann
afdb330d54 Provide stream that ignores everything written to it
Use this stream when you want a straight code path, but also be able
to disable output at will.
2013-09-26 12:37:02 +02:00
Andreas Lauser
d416ed279b add Exceptions.hpp to the list of public header files 2013-09-19 20:09:16 +02:00
Andreas Lauser
783950060d make sure the header files related to the property system are installed 2013-09-19 20:09:16 +02:00
Andreas Lauser
9733d9c995 add a test for the property system 2013-09-19 20:09:07 +02:00
Atgeirr Flø Rasmussen
86d09115b9 Merge pull request #345 from andlaus/import_splines
Import splines
2013-09-19 10:26:02 -07:00
Andreas Lauser
0d0ab3bd5a refactor the spline code: merge everything into one class 2013-09-19 18:48:54 +02:00
Andreas Lauser
c106385d9e move the new stuff to opm/core/utility 2013-09-18 23:02:16 +02:00
Atgeirr Flø Rasmussen
74cb853072 Remove deleted headers from install list. 2013-09-18 14:01:01 +02:00
Andreas Lauser
8ef3b6e6c7 introduce classes for monotonic, full, periodic and natural cubic splines 2013-09-09 13:29:50 +02:00
Roland Kaufmann
e9bd8464b2 Replace old timestep completed event with new scheme 2013-08-26 13:08:49 +02:00
Roland Kaufmann
3156d0749a Add classes for event-handling
The new classes Event and EventSource can be used as a simple mechanism
for implementing event-based callbacks in the simulators.
2013-08-26 12:52:03 +02:00
Roland Kaufmann
ada41cc792 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
Roland Kaufmann
fa5344ec3e Move old files into the attic
The attic are the place where files which we don't use right now, but
which we acknowledge some amount of valuable time has been spent on and
which may be usable some day in the future, so we don't have the
conscience to right out delete them.

These files are not expected to compile, and certainly not to run and
produce sensible results, anymore. However, with some work they can
possibly be converted into proper unit tests or examples.
2013-08-02 20:31:06 +02:00
Roland Kaufmann
5180f9faf0 Graduate testing of metric unit to a proper unit test
Notice the confusing naming.
2013-08-01 10:40:55 +02:00
Roland Kaufmann
67baa6b8e2 Cartesian grid test is now a proper unit test 2013-08-01 10:40:55 +02:00
Roland Kaufmann
47f0b97fcc Graduate these tests to unit tests
Although they don't use Boost::UnitTest, they can at least pass, so we
can use them to detect simple compilation and runtime errors, although
we miss the semantic check.

(If you have time, please make them proper unit tests)
2013-08-01 10:40:55 +02:00
Bård Skaflestad
3e803a4780 Merge pull request #290 from rolk/290_version
Embed version string into the library
2013-07-31 04:57:55 -07:00
Roland Kaufmann
155bb2fc9c Include version information in the library
This version information can be queried programmatically by using the
expored opm_core_version symbol.
2013-07-31 12:22:18 +02:00
Roland Kaufmann
26b2d2794c 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
Bård Skaflestad
fdf8a0ddcb Indent lists using <tab> rather than <space>.
This is the convention used throughout the .cmake files of OPM-Core.
2013-06-05 12:18:21 +02:00
Tor Harald Sandve
a89b081ac0 A test that compares the blackoil fluid based on the [p,r] interface
with the blackoil fluid based on the [p,z] interface
2013-06-05 11:21:47 +02:00
Bård Skaflestad
278a054019 Don't build/run "test_newfluidinterface.cpp" during "make test"
The executable is not written as a unit test (e.g., using Boost.Test)
and furthermore requires external data (in a very specific location).
This makes it inappropriate for use during "make test", but it could
(and should) be cleaned up and incorporated into the test portfolio at
a later time.
2013-06-03 17:07:53 +02:00
Bård Skaflestad
481c3a4e00 Merge pull request #250 from atgeirr/combined
A collection of various updates
2013-06-03 00:58:50 -07:00
totto82
1c904aa451 Add new fluid interface
- in progress
2013-05-22 12:57:18 +02:00
Roland Kaufmann
5644611dfd Provide template functions in separate header
Template functions must be defined in the header since the library
cannot contain generic code. To keep only the interface in the main
header, all such function bodies are put in a separate _impl file.
2013-05-15 21:32:32 +02:00
Atgeirr Flø Rasmussen
83c93a1e3b Added test for class UniformTableLinear.
Moved from opm-porsol.
2013-03-22 21:39:32 +01:00
Atgeirr Flø Rasmussen
c26b40702f Added test for class NonuniformTableLinear.
Formerly lived in opm-porsol.
2013-03-22 16:24:52 +01:00
Atgeirr Flø Rasmussen
7a6707f9b5 Remove linInt.hpp from header list. 2013-03-22 15:53:14 +01:00
Atgeirr Flø Rasmussen
bce34c1168 Add sim_* programs to be installed. 2013-03-21 13:11:14 +01:00
Atgeirr Flø Rasmussen
b32674f3ea Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
d7353145c1 Update to follow previous moves and deletes. 2013-03-18 12:40:34 +01:00
Atgeirr Flø Rasmussen
2405758e2d Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2013-03-18 10:33:34 +01:00
Atgeirr Flø Rasmussen
1e6e733bb7 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
0a935774d2 Move GridManager to grid subdir.
Also remove GridAdapter (moved to dune-cornerpoint), and
moved grid.c implementation file to grid subdir.
2013-03-18 10:16:46 +01:00
Atgeirr Flø Rasmussen
6cdcff0ae3 Removed unused example applications.
Actually, the program spu_2p is the only place the class GravityColumnSolver
is currently used, and it is also the only program capable of doing an operator
splitting with gravity segregation being solved by full Newton-Raphson (not by
columns). These features should be made available by refactoring the transport
solvers: making the segregation solvers inherit TransportSolverTwophaseInterface
and creating a general composite solver.
2013-03-15 15:13:01 +01:00
Atgeirr Flø Rasmussen
8c47ad970f Removed unneeded simulator class, renamed a simulator. 2013-03-15 14:22:26 +01:00
Atgeirr Flø Rasmussen
e532250867 Rename ImplicitTwoPhaseTransportSolver -> TransportSolverTwophaseImplicit. 2013-03-14 22:39:08 +01:00