Commit Graph

1209 Commits

Author SHA1 Message Date
Joakim Hove
5aa2b97c31 shared_ptr<EclipseGrid> -> const EclipseGrid& 2016-09-03 17:49:46 +02:00
Joakim Hove
6eab1b9954 shared_ptr<EclipseGrid> -> const EclipseGrid& 2016-09-03 17:49:46 +02:00
Joakim Hove
10d76d5bb1 shared_ptr<EclipseGrid> -> const EclipseGrid& 2016-08-31 19:39:39 +02:00
Atgeirr Flø Rasmussen
61af1fa53d Remove unused nnc arg from BlackoilOutputWriter constructor. 2016-08-30 13:18:06 +02:00
Andreas Lauser
2e56597d0e fix Dune 2.3 build issue
this time I tested it.
2016-08-10 15:05:31 +02:00
Andreas Lauser
4b4ecb1145 fix a build issue with dune 2.3
(hopefully)
2016-08-10 14:45:20 +02:00
Andreas Lauser
3027e1f39d flow_ebos: do no longer use the generic FlowMain class
this will allow to boil the code down.
2016-08-09 18:38:23 +02:00
Robert Kloefkorn
3db63b0a22 add flow_ebos, an ebos based simulator
it uses ebos for linearization of the mass balance equations and the
current flow code from opm-simulators for all the rest. currently, the
results match the ones from plain `flow` for SPE1, SPE9 and Norne, but
performance is not optimal: on SPE9, converting from and to the legacy
data structures takes about a third of the time to do the actual mass
balance assembly. nevertheless `flow_ebos` is almost as fast as plain
`flow` for SPE9. (for Norne `flow_ebos` is about 15% slower, even
though the results match quite closely. the reason for this is that it
requires more iterations for some reason.)
2016-08-09 18:38:23 +02:00
Pål Grønås Drange
bd58792714 TransMult, Init, and SimConfig are references, applyModifierDeck takes reference, and EclipseState constructor too 2016-08-08 10:07:09 +02:00
Pål Grønås Drange
9579e4acd8 transmult and initconfig are ref's, use ref for EclipseState constructor 2016-08-08 10:02:53 +02:00
Pål Grønås Drange
7ff2328f3f transmult and initconfig are ref's, use ref for EclipseState constructor 2016-08-08 10:02:53 +02:00
Andreas Lauser
17670977f0 fix the reservoir problem tests with the blackoil model
this broke with 94006531. I actually fixed the reservoir problem
yesterday before pushing 94006531 but forgot to include the fix in my
local branch before pushing. Stupid me!
2016-07-12 19:12:22 +02:00
Atgeirr Flø Rasmussen
7489f15ee9 Add sequential models for black oil.
This commit adds sequential solvers, including a simulator variant
using them (flow_sequential.cpp) with an integration test (running
SPE1, same as for fully implicit).

The sequential code is capable of running several (but not all) test
cases without tuning or special parameters, but reducing ds_max a bit
(from default 0.2 to say 0.1) helps with transport solver
convergence. The Norne model runs fine (esp. with a little tuning). A
parameter iterate_to_fully_implicit (defaults to false) is available,
when set the simulator will iterate with alternating pressure and
transport solves towards the fully implicit solution. Although that
takes a lot extra time it serves as a correctness check.

Performance is not competitive with fully implicit at this point:
essentially both the pressure and transport models inherit the fully
implicit model and do a lot of double (or triple) work. The point has
been to establish a proof of concept and baseline for further
experiments, without disturbing the base model too much (or at all, if
possible).

Changes to existing code has been minimized by merging most such
changes as smaller PRs already, the only remaining such change is to
NewtonIterationBlackoilInterleaved. Admittedly, that code (to solve
the pressure system with AMG) is not ideal because it duplicates
similar code in CPRPreconditioner.hpp and is not parallel. I propose
to address this later by refactoring the "solve elliptic system" code
from CPRPreconditioner into a separate class that can be used also
from here
2016-06-27 10:28:09 +02:00
Jørgen Kvalsvik
dfac3adaea Pass NNC to OutputWriter constructor
Keep up with an interface change in opm-output.
2016-06-16 13:34:29 +02:00
Markus Blatt
9bd2f7c1dc Fix incomplete type error for std::ofstream in examples
On my system I got
```c++
error: variable ‘std::ofstream file’ has initializer but incomplete type
         std::ofstream file(fname.str().c_str());
```
This is fixed with this commit by including fstream. Previously, this include might have happened implicitely.
2016-05-27 09:10:00 +00:00
Markus Blatt
b0b43e97b6 Fix incomplete type error for std::ofstream in examples
On my system I got
```c++
error: variable ‘std::ofstream file’ has initializer but incomplete type
         std::ofstream file(fname.str().c_str());
```
This is fixed with this commit by including fstream. Previously,
this include might have happened implicitely.
2016-05-27 08:59:00 +00:00
Liu Ming
3e3c028581 remove the prefix from raw string, using OpmLog format. 2016-05-19 10:07:36 +08:00
Liu Ming
568101a373 use StreamLog to output messages. 2016-05-19 09:48:12 +08:00
Andreas Lauser
4d37a50c83 remove support for the legacy ALUGrid library provided by dune-grid
now, the dune-alugrid module is required if these tests are to be
run. (note that due to the fact that the OPM build system has not been
detecting the legacy alugrid library for a while, the practical
implications of this patch should be small to non-existant.)
2016-05-04 13:22:51 +02:00
Joakim Hove
db3bbbe65e Removed stale test code 2016-04-26 17:51:11 +02:00
Pål Grønås Drange
938e6119f4 Using getInputGrid API from Parser, changed GridManager to no longer accept Deck in constructor 2016-04-20 08:51:10 +02:00
Pål Grønås Drange
75936c1d9c Using getInputGrid API from Parser, changed GridManager to no longer accept Deck in constructor 2016-04-20 08:51:10 +02:00
Pål Grønås Drange
18f6672df0 Using getInputGrid API from Parser 2016-04-19 17:03:41 +02:00
Andreas Lauser
b31ceff970 adapt to the recent opm-material API change w.r.t. the ParameterCache
this is necessary to allow non-trivial ParameterCache objects with
Local-AD evaluations. So far, the only fluid system in opm-material
which needs this is the Spe5 fluid system (which is unused by eWoms),
but sooner or later this change would have been required anyway.

Note that it is possible that this patch is errornous if Evaluation !=
Scalar for a fluid system that uses a non-trivial ParameterCache
object, but the errors should be relatively easy to fix...
2016-04-15 18:44:14 +02:00
Atgeirr Flø Rasmussen
be67e0f7a5 Update include file locations. 2016-04-14 11:32:08 +02:00
Joakim Hove
6f6f1afb8f Replaced SimulatorState -> SimulationDatacontainer
Have removed the SimulatorState base class, and instead replaced with
the SimulationDatacontainer class from opm-common. The SimulatorState
objects were typcially created with a default constructor, and then
explicitly initialized with a SimulatorState::init() method. For the
SimulationDataContainer RAII is employed; the init( ) has been removed -
and there is no default constructor.
2016-04-14 11:32:08 +02:00
Liu Ming
bfb5a49af1 rename ParseMode in examples folder. 2016-04-14 11:32:08 +02:00
Jørgen Kvalsvik
6ec0594f17 Improve includes from opm-parser
Adopting to opm-parser PR#661, add previously missing includes.

https://github.com/OPM/opm-parser/pull/661
2016-04-14 11:32:08 +02:00
Atgeirr Flø Rasmussen
6d80b5b03f In sim_2p_incomp, avoid running everything twice.
There were loops (over all timesteps) both in the
main() function and the simulator class.

Note:
This simulator cannot properly handle changing
well configurations, and will now use only the
initial configuration (first report step), instead
of possibly crashing later.
2016-04-14 11:32:08 +02:00
Andreas Lauser
29f4be0f6c use the error macros from opm-common 2016-04-14 11:32:08 +02:00
Joakim Hove
d23c4e5518 Updated to use ParseMode. 2016-04-14 11:32:08 +02:00
Atgeirr Flø Rasmussen
03a84a3ac4 Use existing TimeMap, instead of creating new. 2016-04-14 11:32:08 +02:00
Atgeirr Flø Rasmussen
9f587fee21 Bugfix: avoid using TimeMap without deck.
This made the simulator crash when there is no deck involved.
2016-04-14 11:32:07 +02:00
Andreas Lauser
b27aadc083 adapt the the table related API changes of opm-parser 2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
e439084f81 Fix: eclipseState no longer shadowed. 2016-04-14 11:32:07 +02:00
Andreas Lauser
5b5f6e6aa6 Glue in support for the grid property modifier keywords
this basically means using Opm::EclipseState instead of the raw deck
for these keywords.

with this, property modifiers like ADD, MULT, COPY and friends are
supported for at least the PERM* keywords. If additional keywords are
required these can be added relatively easily as well.

no ctest regressions have been observed with this patch on my machine.
2016-04-14 11:32:07 +02:00
Andreas Lauser
12ece55907 rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2016-04-14 11:32:07 +02:00
Andreas Lauser
c89e1ed0b6 convert the examples and the tests to opm-parser 2016-04-14 11:32:07 +02:00
Joakim Hove
9f6d658486 Removed WellsManager constructor which takes an ole Eclipsegridparser instance. 2016-04-14 11:32:07 +02:00
Andreas Lauser
f0e86b98e3 catch all exceptions in all tutorials and examples 2016-04-14 11:32:07 +02:00
Andreas Lauser
e8458e9a23 convert THROW to OPM_THROW 2016-04-14 11:32:07 +02:00
Andreas Lauser
068519bd19 replace boost::scoped_ptr by std::unique_ptr
thanks to Bård Skaflestad, Atgeirr Rasmusen and Roland Kaufmann for
the hint.
2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
fbf938ef91 Changed #ifdef HAVE_... to #if HAVE_... 2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
c1e6c7c778 Fixed conditional compilation issues with UMFPACK.
This should fix the issue reported in #208 introduced in #203.
2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
3ba94c0a68 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
b312dfac6a Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
9aa64340e4 Move GridManager to grid subdir.
Also remove GridAdapter (moved to dune-cornerpoint), and
moved grid.c implementation file to grid subdir.
2016-04-14 11:32:07 +02:00
Atgeirr Flø Rasmussen
01d376deb6 Removed unneeded simulator class, renamed a simulator. 2016-04-14 11:32:07 +02:00
Pål Grønås Drange
fd9f67ae55 Using API get3DProperties() 2016-04-12 14:47:50 +02:00
Pål Grønås Drange
77fc26475b Using new EclipseState API, made ->s into .s 2016-04-12 14:47:50 +02:00
Arne Morten Kvarving
66333051e7 Import the following files from opm-core
opm/core/utility/thresholdPressures.hpp
tests/test_thresholdpressure.cpp
opm/core/simulator/SimulatorCompressibleTwophase.hpp
opm/core/simulator/SimulatorCompressibleTwophase.cpp
opm/core/simulator/SimulatorIncompTwophase.hpp
opm/core/simulator/SimulatorIncompTwophase.cpp
examples/sim_2p_comp_reorder.cpp

the files in opm/core has been put in opm/simulators
2016-04-11 09:59:25 +02:00
Andreas Lauser
8a420748f5 use automatic differentiation for the co2injection_flash_ecfv test
i.e., the simulation for the CO2-injection problem which uses the
flash solver to handle its thermodynamics and element centered finite
volume method as the spatial discretization. The intention is to
ensure that opm-material's NcpFlash constraint solver works with
non-primitive types as Scalars. (or rather: that it will be quickly
detected if it breaks in that case.)
2016-04-08 14:29:26 +02:00
Liu Ming
939085155e refactor relperm diagnostics using OpmLog functions. 2016-04-01 12:27:03 +08:00
Atgeirr Flø Rasmussen
3aa5158842 Merge pull request #619 from kjellkongsvik/Move_OutputWriter_to_opm-output
Refactored to use OutputWriter from opm-output
2016-03-31 09:44:09 +02:00
Joakim Hove
18c07d5d66 Replaced SimulatorState -> SimulationDataContainer 2016-03-29 10:48:36 +02:00
Joakim Hove
38628de09e Replaced SimulatorState -> SimulationDatacontainer
Have removed the SimulatorState base class, and instead replaced with
the SimulationDatacontainer class from opm-common. The SimulatorState
objects were typcially created with a default constructor, and then
explicitly initialized with a SimulatorState::init() method. For the
SimulationDataContainer RAII is employed; the init( ) has been removed -
and there is no default constructor.
2016-03-29 10:44:49 +02:00
Joakim Hove
b42700c6a8 Replaced SimulatorState -> SimulationDatacontainer
Have removed the SimulatorState base class, and instead replaced with
the SimulationDatacontainer class from opm-common. The SimulatorState
objects were typcially created with a default constructor, and then
explicitly initialized with a SimulatorState::init() method. For the
SimulationDataContainer RAII is employed; the init( ) has been removed -
and there is no default constructor.
2016-03-29 10:44:49 +02:00
Joakim Hove
a256dc0e5d Replaced SimulatorState -> SimulationDatacontainer
Have removed the SimulatorState base class, and instead replaced with
the SimulationDatacontainer class from opm-common. The SimulatorState
objects were typcially created with a default constructor, and then
explicitly initialized with a SimulatorState::init() method. For the
SimulationDataContainer RAII is employed; the init( ) has been removed -
and there is no default constructor.
2016-03-29 10:44:49 +02:00
chflo
e63bf7aead Changed includes due to OpmLog moved from parser to common 2016-03-17 16:19:07 +01:00
Kjell W. Kongsvik
ea9e572a65 Refactored to use OutputWriter from opm-output
As OutputWriter has been deleted from opm-core
Only changes in includes
2016-03-17 14:45:30 +01:00
Andreas Lauser
290584dddc clean up the licensing preable of source files
the in-file lists of authors has been removed in favor of a global
list of authors in the LICENSE file. this is done because (a)
maintaining a list of authors at the beginning of a file is a major
pain in the a**, (b) the list of authors was not accurate in about 85%
of all cases where more than one person was involved and (c) this list
is not legally binding in any way (the copyright is at the person who
authored a given change, if these lists had any legal relevance, one
could "aquire" the copyright of the module by forking it and removing
the lists...)

the only exception of this is the eWoms fork of dune-istl's solvers.hh
file. This is beneficial because the authors of that file do not
appear in the global list. Further, carrying the fork of that file is
required because we would like to use a reasonable convergence
criterion for the linear solver. (the solvers from dune-istl do
neither support user-defined convergence criteria not do the
developers want support for it. (my patch was rejected a few years
ago.))
2016-03-17 13:20:20 +01:00
Liu Ming
17e5eb2dee rename ParseMode as ParseContext. 2016-03-17 10:02:50 +08:00
Liu Ming
8cd08728f7 rename ParseMode as ParseContext. 2016-03-17 09:57:59 +08:00
Liu Ming
91a4346a27 rename ParseMode in examples folder. 2016-03-17 09:46:12 +08:00
Liu Ming
b4a9529aed rename ParseMode in examples folder. 2016-03-17 09:46:12 +08:00
Liu Ming
355f349470 make grid as template parameter. 2016-03-04 09:09:38 +08:00
Liu Ming
215a3f24d4 change .LOG to .SATFUNCLOG. 2016-03-02 14:58:37 +08:00
Andreas Lauser
099c958137 fix the deprecation warnings caused by OPM/opm-parser#687 2016-02-21 17:45:56 +01:00
Jørgen Kvalsvik
19e41bd246 Change Deck access methods/types to references
opm-parser#677 changes the return types for the Deck family of classes.
This patch fixes all broken code from that patch set.

https://github.com/OPM/opm-parser/pull/677
2016-02-19 11:55:19 +01:00
Liu Ming
d4ac98fb61 use standard filename for output log file. 2016-02-19 09:35:15 +08:00
Liu Ming
dbabffb91a Add more parser mode options. 2016-01-25 11:13:19 +08:00
Andreas Lauser
a128d49a6d lens problem: some small performance improvements
the changes enable the storage cache and the intensive quantity cache
for all simulators of the lens problem and automatic differentiation
for the one which uses the ECFV discretization.

while the performance improvements are not worthwhile for the problem
in its default incarnation (using automatic diffentiation even
slightly degrades performance), it speeds up linearization by about
30% if the grid exhibits 16 times as many elements (e.g. by passing
the --grid-global-refinements=2) parameter.
2016-01-23 20:35:20 +01:00
Jørgen Kvalsvik
50c1bbdc85 Fixes includes wrt opm-parser PR-656
Several files stopped compiling due to relying on opm-parser headers
doing includes. From opm-parser PR-656
https://github.com/OPM/opm-parser/pull/656 this assumption is no longer
valid.
2016-01-21 09:42:51 +01:00
Andreas Lauser
fd387777b5 make all tests and ebos compile when selecting float or quad as Scalar
at least, they compile as far as eWoms is concerned. Some external
libraries (in particular everything which uses SuperLU) still have
issues.

Also, there seem to be issues with the precision that is achievable
by the Newton method when using float.
2016-01-17 21:15:21 +01:00
Andreas Lauser
855abc09fc change the default grid used for the lens problem back to Dune::YaspGrid
this is because the reference solution changes for newer versions of
dune-alugrid and one of the main purposes of the lens problem is to
allow comparison with Dumux relatively easily. (Dumux usese YaspGrid
for its version of the lens problem.)
2016-01-17 21:15:03 +01:00
Robert Kloefkorn
9c38271ea4 FingerProblem: use shared_ptr to avoid mem leak. 2016-01-08 12:27:05 -07:00
Robert Kloefkorn
47c9b39e3b FingerProblem: bug fix, store pointers of MaterialLaw since copying seems not ot work.
LensProblem: use structuredgridmanager from ewoms/io.
2016-01-08 12:08:04 -07:00
Joakim Hove
833f5d053f Avoid using Deck.
Removed incorrect use of Deck for polymer and solvent properties.
2016-01-08 13:57:37 +01:00
Robert Kloefkorn
c10d4905f7 LensProblem and FingerProblem: use StructuredGridManager. 2016-01-07 15:59:31 -07:00
Robert Kloefkorn
9dd0ebff6b FingerGridManager: use DGF Parser. 2016-01-07 14:55:35 -07:00
Robert Kloefkorn
56b6d4a129 FingerProblem: avoid creating of unused empty grid. 2016-01-07 13:57:37 -07:00
Robert Kloefkorn
503b5038f6 FingerProblem: bug fix, don't use ALUGrid's SFC reordering. 2016-01-07 12:04:18 -07:00
Robert Kloefkorn
b9c0368915 FingerProblem: remove warning. 2016-01-07 11:32:54 -07:00
Robert Kloefkorn
c36cba7660 FingerProblem: restore default values. 2016-01-06 16:41:29 -07:00
Robert Kloefkorn
8526c6c0ea Merge remote-tracking branch 'upstream/master' into PR/ewoms-can-use-dune-fem 2016-01-06 16:21:17 -07:00
Andreas Lauser
877eccb4cc reservoir problem: various improvements
- start with an initial "do nothing" episode of 100 days to get
  hydrostatic conditions.
- after that, produce oil and inject water for 900 days. (thereafter
  the reservoir will be empty.)
- make the problem work with element centered FV discretizations. this
  requires to make the width of the injection/production areas at
  least one cell wide. This is achieved by using the new "WellWidth"
  property which specifies the with of wells as a factor of the total
  domain width.
- make the problem work with fully compositional models. This implied
  to calculate the full composition for the fluid states which specify
  the initial condition and the thermodynamic state at the wells.
- add tests and reference solutions for any combination of the {ECFV,
  VCFV} discretizations and the {black-oil, NCP} models.
2016-01-05 11:54:27 +01:00
Andreas Lauser
f6c835298a rewrite the mechanism to enforce constraint degrees of freedom
- the residual now does not consider constraints anymore
- instead, the central place for constraints is the linearizer:
  - it gets a constraintsMap() method which is analogous to residual()
    but it stores (DOF index, constraints vector) pairs because
    typically only very few DOFs need to be constraint.
- the newton method consults the linearizer's constraint map to update
  the error and the current iterative solution. the primary variables
  for constraint degrees of freedom are now directly copied from the
  'Constraints' object to correctly handle pseudo primary variables.
- the abilility to specify partial constraints is removed, i.e., it is
  no longer possible to constrain some equations/primary variables of
  a degree of freedom without having to specify all of them. The
  reason is that is AFAICS with partial constraint DOFs it is
  impossible to specify the pseudo primary variables for models which
  require them (PVS, black-oil).

  because of this, the reference solution for the Navier-Stokes test
  is updated. the test still oscillates like hell, but fixing this
  would require to implement spatial discretizations that are either
  better in general (e.g., DG methods) or adapted to Navier-Stokes
  problems (e.g., staggered grid FV methods). since both of these are
  currently quite low on my list of priorities, let's just accept the
  osscillations for now.
2016-01-05 11:54:26 +01:00
Andreas Lauser
c0f8fc274d remove partial relinarization
the reasons are the same as for removing linearization recycling but
more so.
2016-01-05 11:54:26 +01:00
Andreas Lauser
5de416e314 remove the linearization recycling
linearization recycling lead to more complex code and -- more
importantly -- frequently caused problems for simulators.
2016-01-05 11:54:26 +01:00
Andreas Lauser
7b2b310131 adapt to the recent blackoil API changes of opm-material 2016-01-04 15:32:55 +01:00
Atgeirr Flø Rasmussen
bfcbd09488 Create and use FlowMainPolymer class. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
b156ce0b55 Create and use FlowMainSolvent class. 2015-12-18 13:58:13 +01:00
Atgeirr Flø Rasmussen
e3ceac44a6 Renamed flowMain.hpp -> FlowMain.hpp. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
abf5443f33 Replace flowMain() function with FlowMain class. 2015-12-18 13:58:12 +01:00
Atgeirr Flø Rasmussen
29d18261c6 Make multisegment flow variants use flowMain(). 2015-12-14 16:11:35 +01:00
Atgeirr Flø Rasmussen
460f0cb451 Use the new flowMain() function.
Also add it to the CMake file list.
2015-12-14 16:11:06 +01:00
Atgeirr Flø Rasmussen
be9b6a3cd2 Unconditionally instantiate the (possibly fake) MPI helper.
This reduces the difference between flow and flow_mpi. For builds
without MPI, the fake helper from Dune is instantiated, which has
the same interface.
2015-12-14 16:07:47 +01:00
Atgeirr Flø Rasmussen
7c5256031c Use GridInit in flow.cpp. 2015-12-14 16:07:47 +01:00
Tor Harald Sandve
e3393c5ee9 Handle combination of threshold_pressure and nnc
The nncs threshold pressures are calculated and appended to the face
threshold pressures
2015-12-08 11:03:05 +01:00
Liu Ming
5ba0742bc9 remove unused object. 2015-12-08 16:02:36 +08:00
Atgeirr Flø Rasmussen
ef07b8daef Update run() calls in polymer fully implicit sims. 2015-12-07 13:45:07 +01:00
Atgeirr Flø Rasmussen
ffc91bc35e Remove unnecessary EclipseState argument from run(). 2015-12-07 13:40:06 +01:00
Arne Morten Kvarving
3ce3b0aac1 move polymer test to tests directory 2015-12-07 10:46:20 +01:00
Arne Morten Kvarving
8808642708 Import examples/ and opm/ from opm-polymer w/ history 2015-12-07 10:45:34 +01:00
Liu Ming
35dff82700 Use OpmLog to output messages.
return messages and opmLog.
2015-12-02 10:58:06 +08:00
Liu Ming
2fc6a037b8 rename variables and remove some unnecessary check and comments. 2015-12-01 13:49:49 +08:00
Kai Bao
38a9dbd9ff parallel running for flow_mutlisegment
SPE9 can be run in parallel now.
2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
fe4f99a94e Minimise differences between flow.cpp and flow_multisegment.cpp. 2015-12-01 00:06:46 +01:00
Kai Bao
a684c390f5 cleaning up SimulatorFullyImplicitBlackoilMultiSegment_impl 2015-12-01 00:06:46 +01:00
Atgeirr Flø Rasmussen
b9e80c1950 Update flow_multisegment to match thresholdPressure() API change. 2015-12-01 00:06:45 +01:00
Kai Bao
c3b4088448 recovering the compilation after updating opm-parser. 2015-12-01 00:06:45 +01:00
Atgeirr Flø Rasmussen
ae512d5c83 Update location of ErrorMacros.hpp header in includes. 2015-12-01 00:06:44 +01:00
Atgeirr Flø Rasmussen
15fd5dad47 Suppress warnings in the multisegment well code. 2015-12-01 00:06:44 +01:00
Kai Bao
d93b27cedd fixing the compilation due to function interface change.
outputWriter function introduced extra arguments.
2015-12-01 00:06:43 +01:00
Kai Bao
ac0fdda48b A WIP version BlackoilMultiSegmentModel
and also a Simulator Class and example for multisegment wells.
2015-12-01 00:06:42 +01:00
Liu Ming
b4b23bfab0 1. Move implemtation to .cpp file.
2. Delete constructors.
3. Add config.h
2015-11-30 10:11:43 +08:00
Andreas Lauser
976d38bf37 implement abililty to change the geology during the simulation run
i.e. it now supports stuff like MULTFLT in the schedule
section. Possibly, the MPI-parallel code paths need some fixes. (but
if the geology is not changed during the simulation, the parallel code
will do the same as before.)

the most fundamental change of this patch is that the
reference/pointer to the DerivedGeology object is made
non-constant. IMO that's okay, though, becase the geology can no
longer assumed to be constant over the whole simulation run.
2015-11-26 13:35:33 +01:00
Andreas Lauser
e0a1abba09 adapt to the "mutable geology" changes from opm-autodiff 2015-11-26 12:20:15 +01:00
Liu Ming
7fa569bc91 add endpoints scaling consistency check. 2015-11-26 15:22:51 +08:00
Liu Ming
bb92612fec use commandline instead of paramGroup. 2015-11-19 16:08:26 +08:00
Liu Ming
bec412793d use more relax ParseMode. 2015-11-19 13:31:19 +08:00
Liu Ming
d9a2fa6f42 initial RelpermDiagnostics. 2015-11-19 09:21:00 +08:00
Andreas Lauser
cd0f14295e Flash model: do not change the flash tolerance in the model, fix the tests
for some reason, fixing "co2injection_flash_ni_ecfv" required to
disable the linearization recycling. I'm puzzled...
2015-11-18 18:10:04 +01:00
Andreas Lauser
2c97e90a79 make most indices unsigned
(instead of using 'int'.) This triggered quite a few compiler warnings
which are also dealt-with by this patch.
2015-11-18 18:09:56 +01:00
Liu Ming
356a35600f use more non-strict ParseMode. 2015-11-18 15:23:12 +08:00
Atgeirr Flø Rasmussen
324cd80cb7 Merge pull request #151 from andlaus/thpress_from_initial
adapt to the threshold pressure related API changes
2015-11-17 09:03:12 +01:00
Atgeirr Flø Rasmussen
9bf79f6974 Merge pull request #506 from andlaus/thpress_from_initial
adapt to the threshold pressure related API changes
2015-11-17 09:03:08 +01:00
Andreas Lauser
70614e2fd6 adapt to the threshold pressure related API changes
to be able to determine the threshold pressure from the initial
condition it needs to be able to access the initial condition, i.e.,
the initial simulator state, material properties object and gravity
constant need to be passed to the thresholdPressure() function.
2015-11-13 16:09:20 +01:00
Andreas Lauser
4f23ef92e3 adapt to the threshold pressure related API changes
to be able to determine the threshold pressure from the initial
condition it needs to be able to access the initial condition, i.e.,
the initial simulator state, material properties object and gravity
constant need to be passed to the thresholdPressure() function.
2015-11-13 15:38:28 +01:00
Markus Blatt
d29a181336 Adapts flow_solvent to change in redistribution interface. 2015-10-29 16:15:30 +01:00
Markus Blatt
4526cce41b Setup a distributed material law manager and copy values.
Since the refactoring to using opm-material a material law  manager for
the global grid was used. This meant that the properties used for
elements of the local grid were wrong. With this commit we set up a
manager that is based on the local grid only.
2015-10-28 16:39:47 +01:00
Atgeirr Flø Rasmussen
7d2b6481a0 Use moduleVersion() in startup message. 2015-10-28 16:26:12 +01:00
Atgeirr Flø Rasmussen
bb7530edc3 Add and use moduleVersion() utility. 2015-10-23 11:25:06 +02:00
Joakim Hove
0a7c778c36 Changes to solver approach configuration:
1. Added new parameter group string: "solver_approach" which can take
    the values {direct, cpr, interleaved}.

 2. Hierarchy:

    i   If a value is set in the parameter group that takes absolute
        presedence.

    ii  If the Eclipse input deck asks for CPR - you get CPR.

    iii You get the flow default - currently interleaved.
2015-10-21 13:01:44 +02:00
Robert Kloefkorn
5fb9c9e74e ArtGridManager: removed
DgfGridManager: added capability to handle fractures.
2015-10-20 14:40:18 +02:00
Robert Kloefkorn
c58713e92c [bugfix] avoid use of sfc for ALUGrid. 2015-10-20 14:40:18 +02:00
Atgeirr Flø Rasmussen
9cbae76d06 Merge pull request #503 from babrodtk/openpm_experiment
Added/fixed comments
2015-10-20 09:32:30 +02:00
André R. Brodtkorb
d43b88af76 Added/fixed comments 2015-10-20 09:30:06 +02:00
Atgeirr Flø Rasmussen
98a3d1675a Merge pull request #454 from babrodtk/openpm_experiment
Parallel assembly (partial)
2015-10-19 15:32:50 +02:00
André R. Brodtkorb
40d2262f8e Fixed typo 2015-10-19 14:25:45 +02:00
Andreas Lauser
651bd91482 use the error macros from opm-common 2015-10-12 15:24:59 +02:00
Atgeirr Flø Rasmussen
df668cc5e7 Merge pull request #497 from andlaus/error_macros_to_opm_common
Error macros to opm common
2015-10-12 13:31:54 +02:00
Markus Blatt
82a73d969e Renamed flow_cp to flow_mpi 2015-10-12 10:59:01 +02:00
Andreas Lauser
72b0cb2c3e use the error macros from opm-common 2015-10-08 12:08:28 +02:00
Andreas Lauser
13fd63e2b3 use the error macros from opm-common 2015-10-08 11:42:15 +02:00
Andreas Lauser
d41f989a78 use the error macros from opm-common 2015-10-08 11:42:15 +02:00
Andreas Lauser
6b2bf9a100 lens problem: make it easily switchable between ALUGrid and YaspGrid
"easily" is a relative measure and means "easy in the C++ code". it
works by setting the LENS_USE_ALUGRID define in lensproblem.hh.
2015-10-07 18:52:35 +02:00
Joakim Hove
76f674b16b Updated path to warning suppression header. 2015-10-06 12:11:49 +02:00
babrodtk
57c95ecf00 Added missing endline to printout 2015-10-02 10:37:08 +02:00
babrodtk
c991ba8188 Added default setting for number of threads 2015-10-02 10:37:08 +02:00
Bård Skaflestad
13df018745 Follow API update of BlackoilOutputWriter
The constructor of class BlackoilOutputWriter gained a new parameter
in commit OPM/opm-autodiff@299b0aa (OPM/opm-autodiff#484).  Honour
new API requirement.
2015-09-30 11:01:01 +02:00
Andreas Lauser
3720246c7d adapt to the simplifications of the blackoil PVT API in opm-material 2015-09-29 14:47:23 +02:00
Robert Kloefkorn
299b0aa3cf ParallelDebugOutput: fix initialization of wells for the I/O rank. 2015-09-21 14:05:35 +02:00
Robert Kloefkorn
591a6e86fe flow_solvent: create BlackoilWriter after grid has been partitioned. 2015-09-16 12:40:41 +02:00
Robert Kloefkorn
326faa99d7 ParallelDebugOutput: make the output in ecl format work in parallel by communicating
to an io rank and then proceed with serial output.
2015-09-16 09:48:22 +02:00
Atgeirr Flø Rasmussen
72509968b8 Update for changes in SaturationPropsFromDeck. 2015-09-14 15:07:45 +02:00
Atgeirr Flø Rasmussen
23c28201a5 Update for changes in SaturationPropsFromDeck. 2015-09-14 15:05:32 +02:00
Atgeirr Flø Rasmussen
62d633a8ff Update for removed constructor args. 2015-09-14 10:32:07 +02:00
Atgeirr Flø Rasmussen
608ba47823 Update for removed constructor args. 2015-09-14 10:27:58 +02:00
Robert Kloefkorn
dc90cb934b CartesianIndexMapper: use the CartesianIndexMapper to applied the mapping from the
Cartesian coordinate to the flat index and vice versa.
2015-09-10 16:01:53 +02:00
babrodtk
466f1947a3 Fixed Eigen 3.3 compatibility 2015-09-07 13:01:31 +02:00
babrodtk
6a6a1d5280 Fixed warnings 2015-09-07 13:00:41 +02:00
babrodtk
171cbbe3bb Fixed sim_simple.cpp 2015-09-07 13:00:41 +02:00
Tor Harald Sandve
18d429ebff Use CPR as fall back if use_interleaved=false 2015-09-07 06:08:13 +02:00
Tor Harald Sandve
fd48a6e004 Change defaults
Use the more stable interleaved solver instead of CPR as default
Solve well equation initially as default
2015-09-03 12:38:03 +02:00
Atgeirr Flø Rasmussen
59fccb2f86 Merge pull request #422 from andlaus/satfunc_refactoring
add a few missing "#include <Evaluation.hpp>"
2015-09-02 15:23:16 +02:00
Andreas Lauser
5eef205551 only initialize the satfuncs once
this makes the main files more similar to the primary simulator (i.e., flow.cpp)
2015-09-02 14:56:38 +02:00
Andreas Lauser
73710a01d2 move the code which creates a compressed to cartesian cell index map to a separate free function 2015-09-02 14:50:41 +02:00
babrodtk
5b287e0ea8 Fixed warnings 2015-09-02 13:02:27 +02:00
Andreas Lauser
0e5d8da66b adapt to the change of the API due to using compressed instead of cartesian indices 2015-09-02 12:32:41 +02:00
Andreas Lauser
a394af6734 flow: initialize the parameters for the material law only once
this saves some memory and some time at initialization.
2015-09-02 12:32:41 +02:00
Bård Skaflestad
994e342d7b Restore build of flow_polymer
Function Opm::thresholdPressures() gained a new ParseMode parameter
in commit OPM/opm-core@09aa2b7 (PR OPM/opm-core#857).  Chase updated
call interface.
2015-08-25 09:30:44 +02:00
Fredrik Gundersen
6c85751d91 Added suport for new Threshold Pressure behavior 2015-08-24 15:41:32 +02:00
Tor Harald Sandve
cca5410ebb Fix minor comments in PR#425 2015-08-18 07:24:08 +02:00
Tor Harald Sandve
3b99338bd0 Rename Extended to Solvent
- classes and files are renamed to use solvent instead of extended in
their names.
2015-08-18 07:24:08 +02:00
Tor Harald Sandve
7c3f184d43 Rename simulator from flow_extended to flow_solvent 2015-08-18 07:24:08 +02:00
Tor Harald Sandve
86afb1bbf6 Update to new parserMode interface 2015-08-18 07:24:08 +02:00
Tor Harald Sandve
a5f625f541 Add parsermode to EclipseState 2015-08-18 07:24:08 +02:00
Tor Harald Sandve
17cddaf126 Add support for solvent properties
-surface density are specified using the Eclipse keyword SDENSITY
and the pvt properties (viscosity (mu) and formation volume factor (b)
using PVDS
2015-08-18 07:24:08 +02:00
Tor Harald Sandve
971e7e19cb Add simple solvent model
assumes:
- solvent is immiscible in the oil phase
- gas pvt and relperms are used for the solvent
- no initial solvent in the model

Solvent is injected using the WSOLVENT keyword
TODO: Make it possible to change WSOLVENT
2015-08-18 07:24:08 +02:00
Joakim Hove
6680279815 Using new string based ParseMode api. 2015-08-09 22:18:36 +02:00
Robert Kloefkorn
8dc97d54ca RestrictProlong: take problem parameters into account that depend on grid elements. 2015-08-07 19:49:50 +02:00
Robert Kloefkorn
b8b703cc2d FingerProblem: use PersistentContainer to store material laws. 2015-08-07 16:37:06 +02:00
Joakim Hove
796a34bebe Updated to use ParseMode. 2015-08-06 15:56:51 +02:00
Joakim Hove
b94d5a135d Updated to use ParseMode. 2015-08-06 15:56:51 +02:00
Joakim Hove
23b3670c1e Updated to use ParseMode. 2015-08-06 15:56:51 +02:00
Andreas Lauser
4c8b0524f1 finger problem: provide a version that used the ECFV discretization
and some assorted cleanups.
2015-08-06 15:24:56 +02:00
Andreas Lauser
8a6133b1b8 add a unit test for adaptivity that uses the finger problem 2015-08-06 13:48:38 +02:00
Andreas Lauser
5de508135a multiphase adaption criterion: some improvements
now all phases are considered and a potential division by zero (if all
the saturations of a phase are zero) is avoided.
2015-08-06 13:48:38 +02:00
Andreas Lauser
408afe74fe make the tests compile again
they were broken by the grid adaptation/Dune-FEM changes.
2015-08-06 13:48:37 +02:00
Andreas Lauser
4527aca9d3 Merge commit 'refs/pull/23/head' of github.com:OPM/ewoms
* github.com:OPM/ewoms:
  adaptation works, needs revision.
  [dune-fem] using discrete function works.
  some further work on grid adaptivity
  dune.module: add dune-fem as a noptional dependency

Conflicts:
	ewoms/common/start.hh
	ewoms/io/basegridmanager.hh
	ewoms/parallel/mpihelper.hh
2015-08-06 11:15:48 +02:00
Joakim Hove
7bd36a6b65 Addde ParseMode argument to parse and EclipseState 2015-08-05 14:18:05 +02:00
Joakim Hove
71f3cc9c64 Added ParseMode argument 2015-07-27 13:53:11 +02:00
Atgeirr Flø Rasmussen
6494dee820 Pass parallel info to NewtonIteration... classes. 2015-07-16 14:32:36 +02:00
Robert Kloefkorn
bdb30ec023 GeoProps: fix the use_local_perm implementation for flow_cp. The problem that the
faceNormals are scaled differently remains.
2015-07-08 13:15:00 +02:00
Robert Kloefkorn
34429b60f1 [bugfix] CpGrid does not yet work with use_local_perm. 2015-06-30 14:28:01 +02:00
Robert Kloefkorn
5b51a5b7b1 Merge remote-tracking branch 'upstream/master' into PR/merge-flow-and-flow_cp 2015-06-30 13:39:03 +02:00
Andreas Lauser
501db847cd remove our own fork of Dune::MPIHelper
this is not needed anymore because the grid manager is no longer a
singleton and the grid is thus is always destructed before
MPI_Finalize() is called.
2015-06-19 21:01:08 +02:00
Andreas Lauser
438acf34b7 improve the doxygen documentation
the module hierarchy should now even be mildly useful.
2015-06-19 13:20:19 +02:00
Atgeirr Flø Rasmussen
5002fe1e37 Add use_interleaved option to flow_cp. 2015-06-19 10:53:33 +02:00
Atgeirr Flø Rasmussen
5d0f654443 Add class NewtonIterationBlackoilInterleaved.
Initially it is just a copy of the NewtonIterationBlackoilCPR class.
Also, add use_interleaved parameter to use the class.
2015-06-19 10:53:32 +02:00
Andreas Lauser
d9e3a6d919 re-add the emacs and vim modelines to all source files
this makes things easier and IMHO these two lines do not cause any
disturbance.
2015-06-18 13:43:59 +02:00
Robert Kloefkorn
2d7045b9cd remove shared_ptr. 2015-06-18 13:29:17 +02:00
Robert Kloefkorn
ee47f2887b define preprocessor variables to 1. 2015-06-17 16:34:48 +02:00
Robert Kloefkorn
10725c0b70 Merged main program for flow and flow_cp to avoid code duplication. 2015-06-17 13:00:37 +02:00
chflo
08a079b4ff OPM-212: Added optional cmd parameter override of IOCOnfig Restart setting 2015-06-15 15:36:57 +02:00
Robert Kloefkorn
ff9e5ba4cf adaptation works, needs revision. 2015-06-09 23:59:57 +02:00
Kai Bao
f92459807c adding flags for SHRATE to Model and Simulator. 2015-06-05 15:25:23 +02:00
Kai Bao
cf17dbea38 correct the order of PLYSHLOG and polymer flags.
In flow_polymer.cpp
2015-06-01 14:36:41 +02:00
Kai Bao
c6e240daae Adding the flag for PLYSHLOG keyword. 2015-06-01 10:52:49 +02:00
Atgeirr Flø Rasmussen
79b861db10 Silence multiple warnings. 2015-05-29 16:31:32 +02:00
Andreas Lauser
2b085e0062 fully implicit simulators: various cleanups
these are mostly stylistic: the function bodies of most new methods
have been moved to the _impl.hpp file and the Simulator classes are
now templated on the grid type, so it should be not too hard to switch
them to Dune::CpGrid.
2015-05-29 12:59:40 +02:00
Andreas Lauser
d27fb2bc45 properly use the SimulatorBase class for SimulatorFullyImplicitBlackoilPolymer and SimulatorFullyImplicitCompressiblePolymer 2015-05-28 13:56:07 +02:00
Andreas Lauser
0f1a7a16d7 unify the run() methods and the constructors of the 2p-compressible and the flow_polymer with the one from flow 2015-05-28 13:56:07 +02:00
Andreas Lauser
a816ab9a0c start to use the SimulatorBase class for SimulatorFullyImplicitCompressiblePolymer
since SimulatorFullyImplicitCompressiblePolymer is now a template, the
opaque pointer stuff is also removed and the contents of the .cpp file
basically became _impl.hpp. for SimulatorFullyImplicitBlackoilPolymer,
the opaque pointer stuff was removed for the same reasons as for
SimulatorFullyImplicitBlackoil.

the actual unification of code is not yet done, but this patch points
out the direction of where this will go.

Also note that some synchronization with the ordinary blackoil
simulator (FLOW) was necessary to make it compile.

Finnally, the parser currently likes to throw an exception (also for
the opm-polymer master) when eating the opm-data polymer test
case. This prevented me from properly testing this patch:

```
and@heuristix:~/src/opm-polymer|simplify_simulator > ./bin/flow_polymer deck_filename=/home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA

================    Test program for fully implicit three-phase black-oil flow     ===============

---------------    Reading parameters     ---------------
deck_filename found at /, value is /home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA
output not found. Using default value 'true'.
output_dir not found. Using default value 'output'.
Program threw an exception: IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
terminate called after throwing an instance of 'std::runtime_error'
  what():  IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
Aborted
```
2015-05-28 13:56:07 +02:00
Andreas Lauser
2b4d70e3d9 some minor fixes
i.e., removing redundant namespace open- and closings due to the fact
that the property system now resides in the 'Ewoms' namspace instead
of in 'Opm', and making the headercheck work for all headers.
2015-05-21 16:19:13 +02:00
Andreas Lauser
46bd76407d make the ECFV simulator for the Richards-lens problem use AD
for the Richards model we can't use the CO2 injection problem because
this problem cannot be simulated by the Richards model. (Well,
strictly speaking the Richards model *can* simulate it, but it would
only produce garbage because the assumptions of the Richards model are
violated by that problem.)
2015-05-21 16:19:04 +02:00
Andreas Lauser
06700f77d7 make the simulator for the co2injection problem which uses the non-isothermal flash model with ECFV use automatic differentiation 2015-05-21 16:19:00 +02:00
Andreas Lauser
318dc70e77 make the simulator for the co2injection problem which uses the non-isothermal NCP model with ECFV use automatic differentiation 2015-05-21 16:18:56 +02:00
Andreas Lauser
7a01904f9f make the simulator for the co2injection problem which uses the non-isothermal PVS model use automatic differentiation 2015-05-21 16:18:51 +02:00
Andreas Lauser
528c2a8350 make the CO2 injection problem usable with AD
and use automatic differentiation for the simulator of the non-isothermal
immiscible co2 injection problem.
2015-05-21 16:18:40 +02:00
Andreas Lauser
2cef2a54f2 make the common parts of the discretizations AD aware
this works by introducing a splice called "LocalLinearizerSplice". The
the current local linearizer (which is based on the finite difference
method) is the default and can be set explicitly by setting the splice
to "FiniteDifferenceLocalLinearizer", the new linearizer using
automatic differentiation can be selected by setting the splice to
"AutoDiffLocalLinearizer".
2015-05-21 16:18:29 +02:00
Andreas Lauser
beeddb0a05 add a test for the Richards model using the ECFV discretization 2015-05-21 16:18:22 +02:00
Andreas Lauser
8e1d8ff5ea minimal changes which are required to make it compile with the local-AD opm-material module 2015-05-21 16:18:20 +02:00
Atgeirr Flø Rasmussen
98fd744c29 Merge pull request #100 from edbru/OPM-186
Now also flow_polymer.cpp in project opm-polymer takes the NOSIM keyword...
2015-05-18 12:53:10 +02:00
Atgeirr Flø Rasmussen
052cf09495 Merge pull request #378 from blattms/less-verbose-parallel-runs
Prevent printing stats on more than 1 process for CPR.
2015-05-15 15:38:55 +02:00
Markus Blatt
f4ff1ea4c4 Added missing explicite braces around if branch. 2015-05-15 15:10:42 +02:00
Markus Blatt
0cd174f246 Adds spaces to binary operator. 2015-05-15 14:58:06 +02:00
Markus Blatt
f0691504af Prevent printing stats on more than 1 process for CPR. 2015-05-08 13:15:59 +02:00
Markus Blatt
1fbe8e3b6d Distribute the geology information.
As it turns out initializing the Geology on a distributed grid
result in wrong values for e.g. saturation. Therefore with this
commit we resort to initializing the global geology and distribute
it using communication.
2015-05-07 12:21:06 +02:00
Atgeirr Flø Rasmussen
db06fa48f5 Merge pull request #374 from babrodtk/throw_causes_core_dumped
Changed throw in main() to return EXIT_FAILURE
2015-05-06 12:41:39 +02:00
babrodtk
aab8d2a008 Added missing include 2015-05-06 08:38:49 +02:00
babrodtk
fb99528673 Changed OPM_THROW to return EXIT_FAILURE in flow_cp.cpp 2015-05-06 08:38:18 +02:00
babrodtk
9edbf38439 Changed throw in main() to return EXIT_FAILURE 2015-05-05 15:48:58 +02:00
babrodtk
9f23ce7dbc Reformated flow header to fit 80 columns 2015-05-05 15:25:55 +02:00
Markus Blatt
c57a10ff76 [bugfix] Use full set of processes to determine whether to redistribute or not.
Previously we used the size of the communicator within the CpGrid to check
whether we are running in parallel and need to redistribute the grid.
Unfortunately, this is MPI_COMM_SELF until we actually loadbalance and redistribute.
Therefore we now use the size of the MPI_Helper (i.e. MPI_COMM_WORLD) which
gives us the number of all available processes.

Note that the wrong behaviour was provoked with 656e5de331. Before that we
redistributed in any case which luckily included runs with more than 1 process.
2015-04-30 14:02:13 +02:00
Andreas Lauser
216508ef13 use the infrastructural code using its new locations 2015-04-28 13:38:28 +02:00
Edvin Brudevoll
58367e20fd Now also flow_cp.cpp takes the NOSIM keyword into account. 2015-04-28 10:22:36 +02:00
Edvin Brudevoll
7aa8d91f2d New commit, NOSIM keyword 2015-04-28 10:17:44 +02:00
Edvin Brudevoll
0d1cce2f26 Support for the NOSIM keyword. 2015-04-28 10:17:44 +02:00
Atgeirr Flø Rasmussen
2eb06d6d6c Use more appropriate end-of-sim timing output. 2015-04-21 10:42:40 +02:00
Kai Bao
807c528bef Removing a white space. 2015-04-15 16:56:05 +02:00
Kai Bao
fc36bc866a Accept single deck filename as command line argument. 2015-04-15 16:48:36 +02:00
Kai Bao
8c67dddf90 Adding the startup message for flow-polymer.
Three letters wider than flow.
2015-04-15 16:38:56 +02:00
Edvin Brudevoll
d300cb6eb6 Now also flow_polymer.cpp in project opm-polymer takes the NOSIM keyword into account. 2015-04-15 14:17:40 +02:00
Atgeirr Flø Rasmussen
378f5d7319 Make some programs stricter about parameter parsing.
This applies to programs which always require at least one parameter.
2015-04-14 15:32:19 +02:00
Atgeirr Flø Rasmussen
e44ef09212 Accept single deck filename as command line argument.
Any argument that is not handled by the parameter parser will
be assumed to be a deck filename. Only one is accepted, and if
given, it will override any deck_filename=<something> on the
command line or in parameter files.

FYI:
The parameter parser handles arguments of the following types:
    key=value (note no space around = or in strings)
    parameterfile.xml
    parameterfile.param
2015-04-14 13:37:25 +02:00
Atgeirr Flø Rasmussen
c4655d7c00 Modify startup message, include version number. 2015-04-14 13:31:39 +02:00
Atgeirr Flø Rasmussen
22391ad144 Provide nicer startup message that includes opm-project URL. 2015-04-14 12:53:34 +02:00
Atgeirr Flø Rasmussen
656e5de331 Bugfix: distribute only if comm size is strictly > 1. 2015-04-08 10:16:25 +02:00
Andreas Lauser
ba4fca5a77 Revert "also pass the deck to the output writer"
This reverts commit 88730e855f.
2015-03-31 12:11:45 +02:00
Andreas Lauser
239547e794 Revert "pass the deck to the output writer"
This reverts commit 71987ae3b038c141a673ae1c1037f63ed695e595.
2015-03-31 12:10:16 +02:00
Andreas Lauser
206d7b56e4 pass the deck to the output writer 2015-03-26 17:33:20 +01:00
Andreas Lauser
88730e855f also pass the deck to the output writer 2015-03-26 17:33:13 +01:00
Liu Ming
f23f5fac8e rename sim_poly_fibo_ad to flow_polymer. 2015-03-24 17:06:32 +08:00
Liu Ming
b4d834508c Updates FIBOPOLYMER simulator based on flow simulator.
Rename sim_poly_fibo_ad to flow_polymer.
2015-03-24 15:07:25 +08:00
Atgeirr Flø Rasmussen
04b255a03f Make more use of move semantics in AD code.
This makes some API changes to AutoDiffBlock.
 - Add overload for the constant() constructor taking rvalue ref.
 - Add overload for the variable() constructor taking rvalue ref.
 - Make the function() constructor *require* rvalue refs.
 - Add a swap() function.

The remaining changes in this commit are follow-ups especially
to the third change (adding std::move in many places), and
some removal of unnecessary block pattern arguments from calls to
the constant() static method.
2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen
ae31c034b6 Fix compile error instroduced by merging #275.
Moved output directory code near top again, changed rank query
to use Dune::MPIHelper instead of the grid.
2015-03-09 09:37:16 +01:00
Joakim Hove
9b7d84bd9f ERT-830: Using OpmLog instead of explicit logger 2015-03-09 08:00:13 +01:00
Andreas Lauser
d80fed167f Newton method: reduce extent of copy and paste programming
now the generic part of the update of the solution vector is done in
the base class and the derived classes can chose to only do the update
of the primary variables of the individual DOFs.
2015-03-01 15:51:04 +01:00
Atgeirr Flø Rasmussen
c6d38f543c Rename sim_fibo_ad[_cp] -> flow[_cp].
In line with the decision we made to use "flow" as name for the
fully implicit black-oil simulators.
2015-02-27 12:35:03 +01:00
Atgeirr Flø Rasmussen
d9ce8625cf Remove unused classes.
After this, the two affected tests fail due to bugs in PVT region
support in BlackoilPropsAdFromDeck.
2015-02-23 13:42:51 +01:00
Atgeirr Flø Rasmussen
eb89236552 Merge pull request #317 from blattms/generic-equil
Modified sim_fibo_ad_cp to also allow running with EQUIL keyword.
2015-02-20 18:24:05 +01:00
Markus Blatt
9517dc08b3 Do not print message about querying output parameter for p>0. 2015-02-20 15:47:57 +01:00
Markus Blatt
4b110fb00b Fixes missing indentation. 2015-02-20 15:44:28 +01:00
Markus Blatt
007acfe018 Modified sim_fibo_ad_cp to also allow running with EQUIL keyword.
With now generic implementation of the initStateEquil in opm-core
we added the necessary grid helper functionlality for CpGrid and activated
the processing if the EQUIL keyword is there.
2015-02-20 12:23:35 +01:00
Markus Blatt
d35d301a4b Print status output only on rank 0 for parallel runs. 2015-02-20 11:35:47 +01:00
Atgeirr Flø Rasmussen
fec50b491a Merge pull request #311 from totto82/fix_verticalscaling
Apply the swatinit scaling to new_props
2015-02-19 11:29:00 +01:00
Markus Blatt
5e72774b89 Remove the unsused grid members from BlackoilPropsDataHandle.
Previously BlackoilPropsDataHandle did hold a grid for sending
and receiving that were either not used or we could prevent their
usage. Therefore this commit removes them from the class and queries
all needed information from the property objects.
2015-02-19 09:35:18 +01:00
Tor Harald Sandve
44e9d2a34e Fix PR comments
1) swatinit() is changed to setSwatInitScaling() to make it obvious that
we are modifying the props.
2) the descriptions of saturation and pc now makes more sense
3) the method is removed from the sibling class and the interface and
the type of new_props is changed from BlackoilPropsAdInterface to
BlackoilPropsAdFromDeck
5) The same modification is added to sim_fibo_ad_cp
2015-02-19 08:34:55 +01:00
Tor Harald Sandve
013d1d3499 Apply the swatinit scaling to new_props
The capillary pressure function in new_props is scaled to match the
capillary pressure function in props.

This is a temporary workaround while the simulator uses two different
property object.
2015-02-19 08:18:39 +01:00
Atgeirr Flø Rasmussen
75d98c7e3b Remove uneeded function argument. 2015-02-17 13:40:09 +01:00
chflo
8870da536d OPM-166: opm-core method thresholdPressures signature has changed 2015-02-17 10:12:37 +01:00
chflo
82839f9580 opm-166: Fix due to signature change in method thresholdPressures 2015-02-17 09:53:57 +01:00
Markus Blatt
684da9aa84 Throw an excpetion if either eclipse or matlab output is activated. 2015-02-16 11:52:50 +01:00
Markus Blatt
f19a83bbda Remove superluous casts. 2015-02-16 11:40:49 +01:00
Markus Blatt
3575fdce6a Removes stackobject_to_heap. 2015-02-16 11:24:05 +01:00
Markus Blatt
60cdc583ae Make right hand passed to the linear solver consistent.
Previously, we had to use two layers of overlap cells such the
innermost layer contains the rightvalues automatically (as it is
surrounded by internal edges). No we use communication to get
the correct values in the whole overlap region and one layer
suffices as it should.
2015-02-12 21:33:41 +01:00
Markus Blatt
01ea7bacba Adds data redistribution capabilities and makes sim_fibo_ad_cp parallel.
With this commit we add the possibility to start with a global representation
of a simulator that is read on each process and afterwards this presentation
is redistributed among the processors together with the properties and
state data needed to initialize the simulation.

There still is no parallel well handling and no parallel output. But with the
equilibrium example of @dr-robertk and deactivated output we can already
perform parallel runs.
2015-02-12 21:33:41 +01:00
Markus Blatt
be7221aa9b Moved output parameters to the end of the list in extractParallelGridInformationToISTL 2015-02-12 10:41:44 +01:00
Markus Blatt
221565f038 Enable the use of parallel dune-istl solvers.
As with opm-core we use boost::any to provide additional
information about a parallel run. It is used to set a
ParallelISTLInformation object and and fill it with the
information obtained from a parallel Cpgrid.

Note that the simulator currently compiles sucessfully. Still,
we have to test the runs and do debugging.
2015-02-12 10:41:43 +01:00
Andreas Lauser
f66fcbde46 adapt to the new PVT API of the black oil fluid system 2015-02-05 16:14:07 +01:00
Robert K
2068b7ea16 Revision of black oil output. Put everything into a class following the OutputWriter
interface.
2015-02-05 14:39:47 +01:00
Atgeirr Flø Rasmussen
9cb9ec50b1 Rename directory opm/core/tof -> opm/core/flowdiagnostics. 2015-02-03 21:44:24 +01:00
Liu Ming
74332085dc change PolymerInflow constructor interface due to commit 6628941c9c9d781db9ec8e3ac05a3a8dc49dcf21 in opm-parser. 2015-01-27 12:24:26 +08:00
Andreas Lauser
1d01fa1c8a reservoir problem: adapt for the setWaterViscosity() -> setWaterReferenceViscosity() rename 2015-01-26 12:55:37 +01:00
Andreas Lauser
18a582a88c Revert "rename {gil,gas}FormationVolumeFactor to \1FormationFactor"
This reverts commit c6c271f3ee. After a
more thorough investigation, the cannonical name of these quantities
turned out to be "* formation volume factor"...
2015-01-26 11:55:37 +01:00
Andreas Lauser
c6c271f3ee rename {gil,gas}FormationVolumeFactor to \1FormationFactor
this is the eWoms part of the rename...
2015-01-25 18:22:42 +01:00
Andreas Lauser
09cf9dc93b fix the quadruple precision stuff
this also fixes the SuperLU backend with __float128 on Dune 2.4. The
problem is that due to some hacks within dune-istl, the AMG solver
can't be used because it calls the direct solver directly without an
option to disable this. (This could be fixed in a similar fashion as
the SuperLU backend by copying everything into data structures which
use 'double' before calling into ISTL, but this is a thing for another
time.)
2015-01-06 13:45:33 +01:00
Andreas Lauser
506d14b2e4 rename "velocity modules" to "flux modules"
that's because these modules do not necessarily use a velocity to
calculate fluxes...
2015-01-05 15:25:19 +01:00
Atgeirr Flø Rasmussen
b54f4f0e2a Add a utility for actually running the eikonal solver. 2014-12-29 12:28:30 +01:00
Andreas Lauser
5389c9fdfb use BiCGStab-ILU0 as the linear solver for the lens problem
... and use the parallel AMG solver for the CO2 injection problem.

this makes performance comparisions with Dumux much easier as the
solver performance should be more similar.
2014-12-21 18:40:59 +01:00
Andreas Lauser
29a2123642 rename *JacobianAssembler to *Linearizer
because this describes better what this class is doing...
2014-12-20 00:15:59 +01:00
Atgeirr Flø Rasmussen
e52af158fc Fix call to DerivedGeology constructor.
New argument to constructor was not provided, still compiled
due to default argument.
2014-12-17 11:32:20 +01:00
Atgeirr Flø Rasmussen
5ae5525209 Revert "register the transmissibilities at the EcliseWriter" 2014-12-17 10:18:23 +01:00
Atgeirr Flø Rasmussen
1348658507 Merge pull request #249 from totto82/locTrans
Compute half transmissibilities based on local coordinate system
2014-12-17 00:20:11 +01:00
Atgeirr Flø Rasmussen
f8ad85d83e Merge pull request #241 from andlaus/write_transmissibilities
register the transmissibilities at the EcliseWriter
2014-12-16 23:35:26 +01:00
Andreas Lauser
df60eecb2c fix build by always including the DGF parser for a given grid 2014-12-16 12:39:32 +01:00
Robert K
0b5db84085 DGFParser: avoid SGrid deprecation warning. 2014-12-16 10:39:35 +01:00
Joakim Hove
78ba6760da ERT-747: Renamed ParserLog -> Logger 2014-12-15 12:23:09 +01:00