Commit Graph

3139 Commits

Author SHA1 Message Date
Andreas Lauser
0582ef08d8 explicitly include <iostream>
instead of relying on relying that some header includes it...
2013-09-05 12:28:16 +02:00
Andreas Lauser
8ee63106c5 Replace THROW by OPM_THROW 2013-09-05 12:28:16 +02:00
Andreas Lauser
05af2ab6ff Replace MESSAGE by OPM_MESSAGE 2013-09-03 15:43:58 +02:00
Andreas Lauser
7e8d941a6f Replace THROW by OPM_THROW 2013-09-03 15:43:58 +02:00
Andreas Lauser
6a6d0c9b28 Replace the ASSERT and ASSERT2 macros by assert 2013-09-03 15:43:51 +02:00
Andreas Lauser
a26483b51d Replace the ASSERT and ASSERT2 macros by assert 2013-09-03 15:27:08 +02:00
Roland Kaufmann
b03e238d45 Provide protocol for exchanging state with client
The state that is passed to the simulator object is directly
accessible without any encapsulation towards the client. After
the notification callback was introduced, this allows the client
to observe the state in the middle of a simulation.

However, it may be that the simulator has some internal state
which is not reflected in the state object because there is a
cost associated by flushing it into the TwophaseState format.

The notification is called back on every timestep, not just the
ones that will do reporting. It may even be that reporting is
done dynamically and is not known at the time of setup. (It is
more like a condition variable).

Consequently, flushing the state in every timestep is a bad
idea. This patch sets up a new method sync() which it is expected
that the notification will call if it needs the state for
reporting purposes.

Currently it is a no-op. It just establishes a protocol that
other, compatible implementations can also use.
2013-08-30 15:14:22 +02:00
Roland Kaufmann
c1eadadb72 Replace old timestep completed event with new scheme 2013-08-26 13:08:49 +02:00
Andreas Lauser
2a26964c7d 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
8afc71db57 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
Jens Olav Nygaard
383b88252a Modified according to comments in pull-request discussion. 2013-08-05 09:47:47 +02:00
Jens Olav Nygaard
d3a02e4891 Added ForwardBlock operator* for scalars. 2013-08-02 12:24:12 +02:00
Andreas Lauser
69bf6401b2 fix new 'unused variable' warnings on GCC
that one was due to the fact that the constructor arguments were no
longer used to initialize (unused) private member variables. These
warnings did not appear in CLang for some reason. Again, thanks to
Bård Skaflestad for the review.
2013-07-30 19:07:46 +02:00
Andreas Lauser
5c4c44812d 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
Júlio Hoffimann
43438b2bf8 Remove trailing whitespaces 2013-07-28 08:34:13 -03:00
Bård Skaflestad
a43fe760c1 Use the shared_ptr<> from Boost.
Not all implementations support the TR1, and if they do, the type
might not be in a namespace called std::tr1 .  Favour the
implementation from Boost for reasons of portability.

This is inspired (and necessitated) by commit OPM/opm-core@68eb3fb
which, incidentally, cleaned up some header pollution on which we
inadvertently depended.
2013-07-04 20:59:29 +02:00
Atgeirr Flø Rasmussen
d065a908d3 Fix issue 27, bug in call to viscosity(). 2013-06-10 10:31:18 +02:00
Atgeirr Flø Rasmussen
baf11ec591 Bugfix: perforation parts must be mapped to wells. 2013-06-07 14:03:17 +02:00
Atgeirr Flø Rasmussen
07027d3a09 Added rock compressibility to fully implicit solver. 2013-06-03 14:14:48 +02:00
Atgeirr Flø Rasmussen
20079f763a Merge remote-tracking branch 'bska/fully-implicit' into fully-implicit 2013-06-03 09:01:17 +02:00
Atgeirr Flø Rasmussen
04eb340a3b Fix two bugs in solver.
- Using x/x.abs() instead of a proper sign function led to problems
   when x = 0. Solved by using new sign() utility.
 - Pass pressure instead of rs as parameter to fluidRsMax().
2013-06-03 00:33:05 +02:00
Atgeirr Flø Rasmussen
90f3886d20 Add sign() utility function. 2013-06-03 00:32:44 +02:00
Bård Skaflestad
8bab9f9ff8 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-06-03 00:16:04 +02:00
Bård Skaflestad
a67ca87fd3 Encapsulate DUMP contents in "do { ... } while (0)"
This makes the macro more function-like and easier to read.
2013-06-03 00:15:40 +02:00
Atgeirr Flø Rasmussen
0376cb0fff Initialize and update qs primary variable. 2013-06-02 23:50:21 +02:00
Atgeirr Flø Rasmussen
b23e622a61 Remove accidentally added file. 2013-06-02 08:59:00 +02:00
Atgeirr Flø Rasmussen
765ce23c3e Work in progress on well flux equations. 2013-06-02 08:58:30 +02:00
Atgeirr Flø Rasmussen
74a5e10f7b Renames variables dtpv->pvdt and Rs->rs. 2013-06-02 08:19:21 +02:00
Atgeirr Flø Rasmussen
adf291a30c Work in progress on well flux equations. 2013-06-02 08:17:13 +02:00
Bård Skaflestad
2606d94935 Merge remote-tracking branch 'atgeirr/fully-implicit' into fully-implicit 2013-05-31 16:07:12 +02:00
Bård Skaflestad
7a44eb8254 Remove blank lines at EOF 2013-05-31 16:07:03 +02:00
Atgeirr Flø Rasmussen
9a3bad000a Do not evaluate properties at well perforation pressures.
Always use quantities derived from cell properties.
2013-05-31 16:03:00 +02:00
Atgeirr Flø Rasmussen
adbbebeeea Properly compute well pressure differentials.
Properly here means using a simple algorithm like
in CompressibleTpfa and ImpesTPFAAD.
2013-05-31 15:02:03 +02:00
Atgeirr Flø Rasmussen
514c48aa31 Use DUMP macro in useful places. 2013-05-31 15:01:28 +02:00
Atgeirr Flø Rasmussen
d49be41cae Corrected fluidDensity() function to account for dissolved gas. 2013-05-31 14:59:56 +02:00
Atgeirr Flø Rasmussen
59e36f72b3 Add DUMP macro for debugging. 2013-05-31 14:59:24 +02:00
Atgeirr Flø Rasmussen
526b4d26e3 Actually initialize densities_ member. 2013-05-31 14:57:04 +02:00
Bård Skaflestad
bac1a3a364 Add a couple of debugging aids to assist in FIBO development. 2013-05-30 18:43:11 +02:00
Bård Skaflestad
d23a1c3066 Coalesce two adjacent '!NDEBUG' sections into one. 2013-05-30 17:56:49 +02:00
Atgeirr Flø Rasmussen
932660a18c New updateState() method, changes to fluid interfaces.
- updateState() is a new method that modifies the state object after solution,
   this was formerly done in solveJacobianSystem().
 - Implemented Appleyard chop (not verified yet) for handling variable switching.
 - Added rs as input to fluid interfaces to include rs-derivatives.
2013-05-30 14:43:32 +02:00
Atgeirr Flø Rasmussen
62d0ad85b8 Use BlackoilPropsAdFromDeck in fully implicit simulator. 2013-05-27 22:28:17 +02:00
Atgeirr Flø Rasmussen
e3f39504f4 Fixed error in include guard macros.
Header file started life as a copy of another header, but include
guard macro was not changed. Time to go for #pragma once?
2013-05-27 22:26:52 +02:00
Atgeirr Flø Rasmussen
f26207d430 Fixes in BlackoilPropsAdFromDeck. Now compiles. 2013-05-27 22:01:20 +02:00
Atgeirr Flø Rasmussen
a6dba405dd Merge remote-tracking branch 'totto82/newfluid' into fully-implicit 2013-05-27 15:46:22 +02:00
Tor Harald Sandve
1cf1e3383b Add new interface to BlackoilPropsAdFromDeck
-- not finished --
2013-05-27 14:55:32 +02:00
Atgeirr Flø Rasmussen
2c206e0cd4 Finished initial attempt at miscibility support.
Not yet tested. Also, no way to initialize gas-oil ratio yet.
2013-05-27 11:32:35 +02:00
Atgeirr Flø Rasmussen
cbb7b07496 Added method fluidRsMax(), added rs as a primary variable.
Also increased amount of whitespace between methods for readability.
2013-05-27 10:29:04 +02:00
Atgeirr Flø Rasmussen
5f4167d800 New interface methods rsMax() in BlackoilPropsAdInterface.
Notes:
 - Interface was already present, just disabled.
 - Class BlackoilPropsAd cannot properly implement rsMax() with derivatives,
   and implements only a throw statement.
2013-05-27 10:26:41 +02:00
Atgeirr Flø Rasmussen
78fa581417 Fix some bugs: referring to the wrong phase in two places. 2013-05-27 00:24:38 +02:00
Atgeirr Flø Rasmussen
09c4362e3c Added solveJacobianSystem() method, finished step().
Code is now functionally complete apart from lacking miscibility,
not writing to all promised output variables and not writing the
promised output to disk. Initial testing has been unsuccessful,
so there are bugs in the code.
2013-05-26 11:49:44 +02:00