Commit Graph

330 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
92a9b5fa9b Avoid using legacy stuff for ebos linear solvers. 2018-11-16 12:06:12 +01:00
Arne Morten Kvarving
d3fa23bc2e changed: split legacy VFP test into own file 2018-11-14 09:54:33 +01:00
Arne Morten Kvarving
c5ae3adbbf changed: split VFP classes in base (ebos) and legacy
to get rid of eigen usage in ebos based classes
2018-11-14 09:54:33 +01:00
Atgeirr Flø Rasmussen
58642254e0
Merge pull request #1624 from akva2/split_mpi_func
split mpi function from newtoniterationutilities
2018-11-13 19:21:56 +01:00
Arne Morten Kvarving
e0a9e13a97 split mpi function from newtoniterationutilities 2018-11-13 15:26:44 +01:00
Atgeirr Flø Rasmussen
6e7cc756de Move implementation of gatherConvergenceReport() to cpp file.
No templates involved, no reason to keep it in header. This also makes
building more robust by only invoking HAVE_MPI in the cpp file, after
including config.h.
2018-11-13 14:01:01 +01:00
Andreas Lauser
4cf81c69b1
Merge pull request #1602 from atgeirr/convergence-status
Add convergence status class
2018-10-25 14:16:29 +02:00
Atgeirr Flø Rasmussen
2bf4d15285 Rename ConvergenceStatus -> ConvergenceReport. 2018-10-25 11:57:47 +02:00
Atgeirr Flø Rasmussen
891912b04a Add ConvergenceFailure class and test. 2018-10-23 10:03:13 +02:00
Tor Harald Sandve
df4db9dfbc Add support for MINPVV
The test and code for pinchprocessor is removed since it is no
longer used.
2018-10-15 13:39:47 +02:00
Andreas Lauser
d7efb362a2 make the build of flow fully parallelizable
so far, the actual specializations of the simulator were compiled into
the `libopmsimulators` library and the build of the glue code
(`flow.cpp`) thus needed to be deferred until the library was fully
built. Since the compilation of the glue code requires a full property
hierarchy for handling command line parameters, this arrangement
significantly increases the build time for systems with a sufficient
number of parallel build processes. ("sufficient" here means 8 or more
threads, i.e., a quadcore system with hyperthreading is sufficient
provided that it has enough main memory.)

the new approach is not to include these objects in
`libopmsimulators`, but to directly deal with them in the `flow`
binary. this allows all of them and the glue code to be compiled in
parallel.

compilation time on my machine before this change:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
Scanning dependencies of target opmsimulators
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_gasoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_blackoil.cpp.o
[  2%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_solvent.cpp.o
[  4%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_polymer.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_energy.cpp.o
[  6%] Building CXX object CMakeFiles/opmsimulators.dir/opm/simulators/flow_ebos_oilwater_polymer.cpp.o
[  6%] Linking CXX static library lib/libopmsimulators.a
[ 97%] Built target opmsimulators
Scanning dependencies of target flow
[100%] Building CXX object CMakeFiles/flow.dir/examples/flow.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m45.692s
user    8m47.195s
sys     0m11.533s
```

after:

```
> touch ../opm/autodiff/BlackoilModelEbos.hpp; time make -j32 flow 2> /dev/null
[ 91%] Built target opmsimulators
Scanning dependencies of target flow
[ 93%] Building CXX object CMakeFiles/flow.dir/flow/flow.cpp.o
[ 95%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_gasoil.cpp.o
[ 97%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_polymer.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_oilwater.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_solvent.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_blackoil.cpp.o
[100%] Building CXX object CMakeFiles/flow.dir/flow/flow_ebos_energy.cpp.o
[100%] Linking CXX executable bin/flow
[100%] Built target flow

real    1m21.597s
user    8m49.476s
sys     0m10.973s
```

(this corresponds to a ~20% reduction of the time spend on waiting for
the compiler.)
2018-09-26 11:49:12 +02:00
Andreas Lauser
b5cddef928 flow: switch it to use the eWoms parameter system
this has several advanges:

- a consistent and complete help message is now printed by passing the
  -h or --help command line parameters. most notably this allows to
  generically implement tab completion of parameters for bash
- the full list of runtime parameters can now be printed before the simulator
  has been run.
- all runtime parameters understood by ebos can be specified
- no hacks to marry the two parameter systems anymore
- command parameters now follow the standard unix convention, i.e.,
  `--param-name=value` instead of `param_name=value`

on the negative side, some parameters have been renamed and the syntax
has changed so calls to `flow` that specify parameters must adapted.
2018-08-15 23:34:32 +02:00
Andreas Lauser
976ab03f68 fork ISTLSolver into a legacy and non-legacy version
this is necessary because only the latter can use the property system.
2018-08-15 23:33:50 +02:00
Markus Blatt
a1650a58f4 Added Welsh Powell graph coloring 2018-07-20 14:43:40 +02:00
Markus Blatt
e1e289dc1e Added MILU0 decomposition 2018-07-20 14:42:46 +02:00
Atgeirr Flø Rasmussen
ad2f157554 Add forgotten new headers to file list for installation. 2018-06-08 15:01:59 +02:00
Andreas Lauser
37b6a540af remove BlackoilOutputEbos
after the actual output writing code has been moved to core ebos, this
was just a unnecessary glue layer for API compatibility.
2018-06-06 10:59:41 +02:00
Tor Harald Sandve
ee88790dea Add a flow specialization for blackoil with energy conservation
The energy conservation is enabled by specifying either TEMP or
THERMAL in the deck. The deck also needs to contatin relevant fluid and rock
heat properties.

The blackoil + energy equations are solved fully implicit.
2018-04-30 13:45:18 +02:00
Kai Bao
7eaaae3906 removing FlowMainPolymer.hpp 2018-04-03 11:08:25 +02:00
Andreas Lauser
71d353326a move the old "ThreadHandle" mechanism back to opm-simulators
this class is only used by the legacy simulators, `flow` uses the
`EclWriter` class provided by eWoms. In turn, this class uses the
new-and-shiny "tasklet" mechanism.
2018-03-12 15:17:39 +01:00
Atgeirr Flø Rasmussen
8070e9d229
Merge pull request #1397 from blattms/system-amg-rebased
Add support for CPR (and variants) for flow_ebos
2018-03-09 12:46:27 +01:00
Kai Bao
635f6c7db2 trying to add the functionality to handle oil/water polymer 2018-02-28 08:39:38 +01:00
Markus Blatt
247241c037 Added test for multMatrixTransposed. 2018-02-26 16:11:53 +01:00
Markus Blatt
d0fcd1a8e9 Add non neighboring connections induced by well perforations to matrix sparsity pattern
This is only done upon request and uses the auxiliary module approach
provided by ewoms.
2018-02-26 14:32:50 +01:00
Atgeirr Flø Rasmussen
1b33769922
Merge pull request #1399 from totto82/MoveWell
Some more cleaning in the output code in opm-output, ewoms and opm-simulator
2018-02-19 15:05:20 +01:00
Arne Morten Kvarving
371ae786ca changed: only add conditionally built files if they are to be built
instead of unconditionally adding, and then conditionally removing
again.
2018-02-13 12:35:39 +01:00
Tor Harald Sandve
a89a6af854 Some more cleaning in the output code in opm-output, ewoms and opm-
simulator

1) Don't depend on legacy code for communicating the data::wells
2) Bugfix. Store globalIdx instead localIdx in data::wells::complitions
3) Move ThreadHandle to ebos
2018-02-12 08:44:43 +01:00
Markus Blatt
6d21214fa7 Switch to ParallelOverlappingILU0 for CPRPreconditioner.
This seems to have been forgotten previously. Now the code int CPRPreconditioner.hpp
uses ParallelOverlappingILU0 instead of SeqILU[0n]/BlockPreconditioner which
makes the code more slim.
2018-02-05 22:37:01 +01:00
Markus Blatt
f5d81513da First version of a AMG for the Blackoil equations.
The approach is inspired by Geiger's system-amg but we use dune-istl
aggregation AMG for it. On the fine level all unknowns attached to a cell
form a matrix block and are treated fully coupled. To form the first
coarse level system we use only the pressure component to guide the aggregation
and neglect all other unknowns on the fine level. All other level are formed
in the usual way by scalar aggregation.

Currently,it has to be requested for flow_ebos manually by passing
"linear_solver_use_amg=true amg_blackoil_system=true" to it.
2018-02-05 22:37:01 +01:00
Andreas Lauser
bb788a976b add comment to CMakeLists_files.cmake why the flow_ebos*.cpp files are on top 2018-02-05 10:53:40 +01:00
Andreas Lauser
9693e0b33d move the flow_ebos_*.cpp files to the beginning of the source list
these files take the longest to compile. moving them to the beginning
speeds things up forn parallel builds because the remaining compile
can be compiled while dealing with the flow_ebos files while the build
stalls if these files are at the bottom of the list because they are
required for the library.
2018-02-05 10:14:51 +01:00
Arne Morten Kvarving
093d8bb134 rename tutorialx.cpp sim_tutorialx.cpp 2018-01-19 14:50:43 +01:00
Arne Morten Kvarving
0aca27ab52 changed: rename test_equil test_equil_legacy 2018-01-19 14:48:40 +01:00
Arne Morten Kvarving
5b86d8b13b add files imported from opm-core to build system 2018-01-17 18:27:19 +01:00
Andreas Lauser
f34cfafc22
Merge pull request #1377 from totto82/useEbosEclOutput
Start using ecl output from Ebos
2018-01-10 15:01:27 +01:00
Atgeirr Flø Rasmussen
8ad9c979f8 Remove old 2p simulator. 2018-01-08 17:22:50 +01:00
Tor Harald Sandve
0e6fe26a61 Start using ecl output from Ebos
The wells, FIP and initial output of NNCs is still handled
by code in opm-simulators. The plan is to move more of the
functionality to ebos.

All tests pass and MPI restart works
2018-01-04 09:29:58 +01:00
Arne Morten Kvarving
efce6ef3da add imported tutorials to build system 2017-12-06 12:06:49 +01:00
Arne Morten Kvarving
933fc4a089 add files imported from opm-core to build system 2017-12-04 16:30:59 +01:00
Atgeirr Flø Rasmussen
369e9f5a06
Merge pull request #1344 from atgeirr/remove-legacy-polymer
Remove legacy fully implicit polymer simulator.
2017-11-27 07:19:01 +01:00
Kai Bao
f87e6d35db removing more legacy Multisegment Wells related. 2017-11-24 12:27:43 +01:00
Atgeirr Flø Rasmussen
32c7d822ec Remove legacy fully implicit polymer simulator.
It has been replaced with the faster local-ad-based code, that is now
part of the integrated flow.cpp application.

We do not remove the old sequential implicit polymer simulators.
2017-11-24 11:41:34 +01:00
Atgeirr Flø Rasmussen
6e8adbbd7d Remove old "backup-restore" functionality.
Was no longer working and would require some maintenance to work again.
2017-11-20 14:31:13 +01:00
Arne Morten Kvarving
e0907ddc49 remove 'flow_solvent' and associated files
use 'flow'
2017-11-13 14:21:10 +01:00
Arne Morten Kvarving
ad23d98726 remove 'flow_multisegment' and associated files
use 'flow' with use_multisegment_well=true
2017-11-13 14:20:47 +01:00
Arne Morten Kvarving
c95354d3c2 remove 'flow_ebos_solvent' application
use 'flow'
2017-11-13 13:59:56 +01:00
Arne Morten Kvarving
1538067fa0 remove 'flow_ebos_polymer' application
use 'flow'
2017-11-13 13:59:25 +01:00
Arne Morten Kvarving
28e26c0d30 remove 'flow_ebos_2p' application
use 'flow'
2017-11-13 13:59:25 +01:00
Arne Morten Kvarving
027d004c24 remove 'flow_ebos' application
use 'flow'
2017-11-13 13:59:25 +01:00
Joakim Hove
63f4b6d734 Removed stale init check. 2017-10-30 10:00:47 +01:00
Kai Bao
ad964210e5 move invDX to MSWellHelpers.hpp. 2017-10-12 13:39:58 +02:00
Kai Bao
fc06923c50 changing StandardWellsDense to BlackoilModelEbos
for a better naming.
2017-10-12 13:39:58 +02:00
Kai Bao
d694a72b53 adding initMSWell() to handle MS well related WellState. 2017-10-12 13:37:05 +02:00
Kai Bao
b5323b1b79 begin the class WellStateMSWell
it will be for each individual MS well.
it is kind of the start of the refactoring of the WellState.
2017-10-12 13:36:27 +02:00
Kai Bao
359de15f2b begining MultisegmentWell.hpp 2017-10-12 13:36:27 +02:00
Atgeirr Flø Rasmussen
d770e16abf Merge pull request #1289 from totto82/removeWellStateFullyImplicitBlackoilDense.hpp
Remove WellStateFullyImplicitBlackoilDense
2017-10-11 18:59:53 +02:00
Tor Harald Sandve
dc8f811cbe Remove WellStateFullyImplicitBlackoilDense
After the restructuring of of the well model, keeping an extra class for
the "Dense" model is not needed. The only thing still left in
WellStateFullyImplicitBlackoilDense was some solvent related stuff, this
PR moves this to WellStateFullyImplicitBlackoil and removes
WellStateFullyImplicitBlackoilDense.

In addition to a cleaning code this PR fixes missing solvent well output.
2017-10-11 10:54:59 +02:00
Andreas Lauser
cede806bd5 flow: refactor the specializations
The motivation for this PR is that currently the build fails on my
Ubuntu 17.10 laptop with two processes because that machine "only" has
8 GB of RAM (granted, the optimization options may have been a bit too
excessive). under the new scheme, each specialization of the simulator
is put into a separate compile unit which is part of
libopmsimulators. this has the advantages that the specialized
simulators and the main binary automatically stay consistent, the
compilation is faster (2m25s vs 4m16s on my machine) because all
compile units can be built in parallel and that compilation takes up
less RAM because there is no need to instantiate all specializations
in a single compile unit.

on the minus side, all specializations must now always be compiled,
the approach means slightly more work for the maintainers and the
flow_* startup code gets even more complicated.
2017-10-06 15:35:00 +02:00
Atgeirr Flø Rasmussen
77f3bdaeda Merge pull request #1257 from totto82/add_invert4x4
Add invert4x4 specialization for invertMatrix()
2017-09-04 09:08:32 +02:00
Tor Harald Sandve
210f1edf25 Add test for invert 4x4 matrix specialization 2017-08-29 11:01:20 +02:00
Kai Bao
9accb56c86 adding a test for well model.
It is just test for StandardWell.
2017-08-25 14:09:26 +02:00
Kai Bao
f9b7094075 fixing of some comments
no functional change.
2017-08-25 14:09:26 +02:00
Kai Bao
a04d1a9393 correcting a typo in CMakeLists_files.cmake. 2017-08-25 14:09:26 +02:00
Kai Bao
358d4c2a00 cleaning up more things from StandardWellsDense 2017-08-25 14:09:26 +02:00
Kai Bao
1a4ceeec66 makding the StandardWell and WellInterface templated
with the template parameter TypeTag.
2017-08-25 14:09:26 +02:00
Kai Bao
2d02503091 more or less getting the old implementation in
and compile now.
2017-08-25 14:09:26 +02:00
Kai Bao
0cf6699591 adding StandardWell class
copied from the old implementation, which is the starting point for the
new refactoring
2017-08-25 14:09:26 +02:00
Kai Bao
910fe0318c adding the WellInteface
will be the base class for different well models.
2017-08-25 14:09:26 +02:00
Robert Kloefkorn
07e0d71906 [feature][flow] Add a common executable for all flow variants, i.e.
flow_ebos, flow_ebos_polymer, flow_ebos_solvent, flow_ebos_2p.
2017-08-23 16:21:15 +02:00
Robert Kloefkorn
ce7f3f46a1 [feature] Added two-phase executable for numEq = 2. 2017-06-29 12:56:37 +02:00
Atgeirr Flø Rasmussen
4590481686 Added flow_reorder. 2017-06-28 07:47:15 +02:00
Atgeirr Flø Rasmussen
293a7abfa2 Add skeleton of reordering transport solver. 2017-06-28 07:47:15 +02:00
Tor Harald Sandve
0068c175a7 Add polymer option to flow_ebos
No extra equation is added for polymer in the well equation.

Seperate executables are added for polymer: flow_ebos_polymer
and solvent: flow_ebos_solvent

Tested and verified on the test cases in polymer_test_suite

This PR should not effect the performance and results of the blackoil
simulator
2017-06-26 08:03:54 +02:00
Atgeirr Flø Rasmussen
699b0678a0 Remove unused simulator program.
This stand-alone simulator is no longer needed since
flow_polymer supports two-phase runs.
2017-06-14 14:15:13 +02:00
Atgeirr Flø Rasmussen
5f66a8ff4f Add DebugTimeReport utility. 2017-06-02 13:48:24 +02:00
Atgeirr Flø Rasmussen
37cbdbced2 Merge pull request #1199 from atgeirr/multiphase-upwind-refactor
Multiphase upwind refactor
2017-06-02 11:13:14 +02:00
Atgeirr Flø Rasmussen
f707abae36 Add unit test for connectionMultiPhaseUpwind(). 2017-06-01 13:55:11 +02:00
Atgeirr Flø Rasmussen
80c38d5a1a Add connectionMultiPhaseUpwind() free function. 2017-06-01 11:01:25 +02:00
Tor Harald Sandve
50c1a1404a Remove BlackoilSolventState
The solvent saturation is added to BlackoilState and the
BlackoilSolventState is thus redundant.
2017-05-30 14:22:19 +02:00
Atgeirr Flø Rasmussen
d267c1a77d Create ensureDirectoryExists() free function. 2017-04-06 12:14:06 +02:00
Atgeirr Flø Rasmussen
260944cfb0 Split Compat.hpp in header and implementation.
Avoids tedious recompiles of legacy sims when changing certain
ebos-specific classes.
2017-02-23 10:19:21 +01:00
Robert Kloefkorn
4c118c6455 Merge remote-tracking branch 'upstream/master' into PR/cleanup-output-writers 2017-02-13 21:28:54 +01:00
Arne Morten Kvarving
86fbb36fd2 adjustments for imported files
- adjust include paths
- add new test to build system
- add new example to build system
2017-02-10 13:02:00 +01:00
Robert Kloefkorn
82658c92d0 Removal of SimulatorFullyImplicitBlackoilOutputEbos.{h,c}pp.
All simulators now use SimulationDataContainer to store intermediate data that
is passed to the output Solution container. This is in cases not the most
efficient way, but it's unified to avoid errors from code duplication.
2017-02-09 16:57:45 +01:00
Andreas Lauser
ef731672c9 remove the BlackoilPropsAdInterface abstraction layer
instead, directly use BlackoilPropsAdFromDeck.
2017-01-02 13:19:23 +01:00
Andreas Lauser
f29dae5409 BlackoilDetails: split it in two
now we have BlackoilDetails.hpp which contains all stuff that is used
by flow_ebos as well as flow and which does not include anything from
Eigen, and we have BlackoilLegacyDetails.hpp which contains all stuff
that depends on Eigen (and is thus not required by flow_ebos)
2016-12-19 11:03:34 +01:00
Atgeirr Flø Rasmussen
14ab6b6810 Add writeVtkData(), including version for UnstructuredGrid. 2016-12-06 09:26:45 +01:00
Atgeirr Flø Rasmussen
f9deaadcd1 Removed tabs. 2016-12-05 14:58:47 +01:00
Andreas Lauser
a82ec08cfa adjust the list of files in CMakeLists_files
some files (e.g., thresholdPressures.hpp) are already missing in the
master version of this file, but most of them were specific to the
`frankenstein` branch.

thanks to [at]atgeirr for noticing this.
2016-11-18 11:34:16 +01:00
Andreas Lauser
53462e6fcf add flow_ebos to the programs which are going to be installed 2016-11-14 11:17:48 +01:00
Andreas Lauser
d989c1e2fc Merge remote-tracking branch 'origin/master' into frankenstein
* origin/master:
  Do not throw for unrecognized file when merging log files.
  Do not populate cellData but issue a warning in parallel.
  Removed ternary operator in inline initialization.
  Correctly mark transfer of ownership for ouptut writer
  Indent nested #if
  Remove Solution.sdc assignment
  Cater variable name change in BCRSMatrix of DUNE 2.5
  Fix using local active cells for writing eclipse files in parallel.
  add restart test for SPE1CASE2_ACTNUM
  rename the 'flow' binary to 'flow_legacy' and set a symbolic link
  Added ctest for restart files
2016-11-11 18:29:46 +01:00
Andreas Lauser
511a9039ab rename the 'flow' binary to 'flow_legacy' and set a symbolic link
this is a precursor of merging flow_ebos into the master
branch. hopefully, this won't break any existing setups...
2016-11-04 16:19:15 +01:00
Robert Kloefkorn
4ff23191eb [feature] make flow and flow_ebos use the same linear solver setup. 2016-11-02 16:41:11 +01:00
Tor Harald Sandve
362968c315 New WellStateFullyImplicitBlackoilDense
The WellStateFullyImplicitBlackoil is reverted to master and all
extentions moved to WellStateFullyImplicitBlackoilDense
2016-11-01 13:44:38 +01:00
Andreas Lauser
44d3d5b536 Merge branch 'master' into frankenstein
* master: (42 commits)
  Let only one rank write to step_timing.txt
  Do not refer users to issue tracker if multiple procs log.
  Remove unused variable.
  Use vector instead of VLA, also add missing includes.
  changed: bundle eigen3 in the original tarball for debian
  update redhat6 packaging
  Bugfix parallel computation of weighted pressure etc.
  Fixed uninitialized bug, and added logging/comment
  Removed superfluous std::move
  Refactoring
  Initial version of summary data
  Do not store collective communication in the wells object.
  Make sure that updateWellControls is called on each process.
  Make WellSwitchingLogger work with DUNE 2.3
  Schedule::getGroup returns reference, not pointer
  Removed warning in WellSwitchLogger::calculateMessageSize
  Correctly initialize MPI for multisegment wells test
  Changed some names in WellSwitchingLogger
  Use speaking name for bool in getCellData
  Whitespace and other formatting changes
  ...
2016-10-14 19:31:56 +02:00
Markus Blatt
bfb7ccfa8b Moved ParallelFileMerger to its own file. 2016-10-05 11:39:06 +02:00
Markus Blatt
07318edfa1 Added a parallel aware logger for switching wells.
It will collect all the switches. Afterwards they are collect on
the root process and logged there.

This commit includes a small test program.
2016-10-05 10:33:15 +02:00
Andreas Lauser
6722c67534 Merge remote-tracking branch 'origin/master' into frankenstein_merge_master_v2 2016-09-29 18:38:39 +02:00
Tor Harald Sandve
45eae4bbc8 Output solvent saturation
-- Compat.hpp is moved to opm-simulators
-- add SSOL if solvent is present
2016-09-27 08:40:04 +02:00
Andreas Lauser
4ecd6ca64a fix some serious screw-ups
almost all of them were caused by recent changes in the master
branch:

- there were methods added which depend on the types `V` and
`DataBlock`. these do not make much sense in the context of the
frankenstein simulator. Also, these types are defined globally for the
whole Opm namespace in `BlackoilModelBase_impl.hpp` (which should be
prosecuted as a fellony IMO)! Besides this, their names are useless;
'V' is the letter which comes after `U` in the alphabet and when it
comes to computers basically everything can be seen as a chunk of data
(i.e., a `DataBlock`).
- it seems like the new and shiny dense-AD based well model was never
compiled with assertations enabled, at least some asserts referenced
non-existing variables.
- the recent output-related API changes were pretty unfortunate
because they had the effect of tying the (sub-optimal, IMO) internal
structure of the model even closer to the output code: as far as I can
see, `rq` does only make sense if the model works *exactly* like
BlackoilModelBase and friends. (for flow_ebos, this could be
replicated, but first it would be another unnecessary conversion step
and second, most of the quantities in `rq` are of type `ADB` and much
of the "frankenstein" excercise is devoted to getting rid of these.) I
thus reverted back to an old version of the output code and created a
`frankenstein` branch in my personal `opm-output` github fork.
2016-09-13 23:58:59 +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
Liu Ming
7b81724e27 fix indentation. 2016-07-07 15:37:38 +08:00
Liu Ming
064f512893 Diagnostics keywords that not supported by flow. 2016-07-07 10:38:29 +08: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
Kai Bao
f5fcbb03b5 adding test_multisegmentwells 2016-05-09 10:33:53 +02:00
Kai Bao
edf29c322c adding several wells related _impl.hpp files to CMakeLists_files
StandardWells_impl.hpp
MultisegmentWells_impl.hpp
StandardWellsSolvent_impl.hpp
2016-05-09 10:33:53 +02:00
Kai Bao
aa6065a70c introducing a new class MultisegmentWells
which will handle the multi-segment wells related.
2016-05-09 10:33:52 +02:00
Kai Bao
14d774e08f removing blank lines in CMakeLists_files
Not sure how the lines happened, probably from the rebase process.
2016-04-14 16:05:19 +02:00
Kai Bao
5da57973fe adding updateWellState and updateWellControls to StandardWells 2016-04-14 16:05:18 +02:00
Kai Bao
5d99fac207 adding StandardWellsSolvent for Solvent model. 2016-04-14 16:05:18 +02:00
Kai Bao
3bcfc905bd makding StandardWells a template based on SolutionState and WellState
may need to be adjusted later.
2016-04-14 16:05:18 +02:00
Atgeirr Flø Rasmussen
4d2cc114b7 Add imported files to Cmake list. 2016-04-14 11:32:08 +02:00
Arne Morten Kvarving
ec84849361 add files imported from opm-core to build system
change include path for thresholdPressures.hpp in test.
note that the test is currently disabled (it was not enabled in
opm-core and does not build).
2016-04-11 10:01:01 +02:00
Robert Kloefkorn
e80ad5a9fe Merge remote-tracking branch 'upstream/master' into PR/async-output 2016-04-08 13:07:44 +02:00
Kai Bao
624516ed3c creating separate files for class StandardWells 2016-04-06 16:42:04 +02:00
Robert Kloefkorn
ec45b5547d cleanup. 2016-04-06 15:39:57 +02:00
Robert Kloefkorn
54ea243c5f SimulatorFullyImplicitBlackoilOutput: added threaded asynchronous output. 2016-04-06 11:10:01 +02:00
Tor Harald Sandve
a02a07289e Implement pressure effects in the Todd-Longstaff mixing parameter
The Todd-Longstaff model is extended to incorporate pressure effects
The solvent viscosity is then caculated as

mu_eff = mu_s^(1-\alpha * \omega) * mu_mix^(\alpha * \omega)

where \omega accounts for the porous media effects and \alpha =
\alpha(pressure) accounts for the miscibility of the solvent and oil
when contacted.
The \alpha values can be given using the TLPMIXPA keyword

If no entries are given to TLPMIXPA the table specified using PMISC will
be used as default.
IF TLPMIXPA does not appear in the grid \alpha = 1 and the pressure
effect is neglected.
This is tested in test_solventprops_ad.cpp
2016-04-01 15:55:56 +02:00
Joakim Hove
18c07d5d66 Replaced SimulatorState -> SimulationDataContainer 2016-03-29 10:48:36 +02:00
Robert Kloefkorn
4df4c9147a fastSparseProduct.hpp --> fastSparseOperations.hpp 2016-02-16 10:25:57 +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
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
af980ed93c Creates GridInit template class. 2015-12-14 16:07:46 +01:00
Arne Morten Kvarving
2df335b05c add polymer to buildsystem 2015-12-07 11:28:40 +01:00
dr-robertk
bd8586b477 Merge pull request #541 from GitPaean/support_segment_well_rebased
Support multi-segment wells
2015-12-02 11:18:33 -07:00
Markus Blatt
dc1d7c526f Moved ParallelOverlappingILU0 to its own file. 2015-12-01 14:41:06 +01:00
Kai Bao
c5252ae1ce make compilation of flow_multisegment_mpi conditional
if(DUNE_CORNERPOINT_FOUND OR dune-cornerpoint_FOUND)
2015-12-01 00:06:46 +01:00
Kai Bao
38a9dbd9ff parallel running for flow_mutlisegment
SPE9 can be run in parallel now.
2015-12-01 00:06:46 +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
Kai Bao
60dd7743c3 WIP of the WellMultiSegment and WellStateMultiSegment 2015-12-01 00:06:42 +01:00
Markus Blatt
dd77556252 Added restricted parallel schwarz and overlapping ILU0 preconditioner 2015-11-25 08:43:46 +00:00
Atgeirr Flø Rasmussen
7c21a630e5 Rename NewtonSolver -> NonlinearSolver. 2015-11-12 17:42:47 +01:00
Atgeirr Flø Rasmussen
7c620f11fd Add flow_solvent to list of programs to be installed. 2015-11-05 08:33:14 +01:00
Atgeirr Flø Rasmussen
0ffcaeb9f0 Merge pull request #513 from atgeirr/add-moduleversion
Add moduleVersion() utility and update dune.version.
2015-10-23 13:10:38 +02:00
Atgeirr Flø Rasmussen
bb7530edc3 Add and use moduleVersion() utility. 2015-10-23 11:25:06 +02:00
Joakim Hove
8302db443b Try to find opm-data and run flow on SPE1 case. 2015-10-21 18:43:08 +02:00
Joakim Hove
a879e9cd41 Removed cmake setting : NON_PUBLIC_TEST 2015-10-21 16:56:10 +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
babrodtk
54137c742b Added remaining files to CMakeLists_files.cmake 2015-09-07 13:00:41 +02:00
babrodtk
171cbbe3bb Fixed sim_simple.cpp 2015-09-07 13:00:41 +02:00
babrodtk
95e9ca6d2a Fixed SolventPropsAdFromDeck.cpp 2015-09-07 13:00:41 +02:00
babrodtk
51b85276ec Fixed TransportSolverThophaseAd.cpp 2015-09-07 13:00:41 +02:00
babrodtk
6deb3e2c4a Fixed IpmesTPFAAD.cpp 2015-09-07 13:00:41 +02:00
Atgeirr Flø Rasmussen
c795113ce3 Changes to make flow compile with AutoDiffMatrix. 2015-09-07 13:00:02 +02:00
Atgeirr Flø Rasmussen
6a5a48e728 Work in progress on AutoDiffMatrix (not compiling). 2015-09-07 12:58:51 +02:00
Markus Blatt
b91fb70e92 Adds new header to CMakeLists_files.cmake
The new header 	opm/autodiff/AdditionalObjectDeleter.hpp
was not there yet.
2015-09-07 11:03:08 +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