Commit Graph

526 Commits

Author SHA1 Message Date
Joakim Hove
ad92edab89 Added opm_init_check to compare OPM and Eclipse. 2014-11-26 14:56:45 +01:00
Andreas Lauser
9e93fa2298 register the transmissibilities at the EcliseWriter
missing: the simulator using dune-cornerpoint. Once again, this is
because there is no good way to convert an intersection to a unique
global index (yet).
2014-11-21 13:20:53 +01:00
Liu Ming
9303e41966 add new polymerInflow constructor, get polymer injection rate from schedule section. 2014-11-20 16:32:02 +08:00
Liu Ming
ac764bd8a8 let sim_poly_fi2p_comp_ad works as the same way as sim_poly_fibo_ad.
- move time iteration to simulator class
 - add EclipseWriter and output Eclipse binaries.
 - add DeckConstPtr for polymer inflow.
2014-10-29 13:23:50 +08:00
Liu Ming
a23e4ca63b remove historical and un-used files. 2014-10-28 14:28:34 +08:00
Liu Ming
5242d6bbf7 move time iterations to Simulator class and pass deck to create polymer inflows.
This should solve the issues: write the final state to eclipse binaries.
2014-10-28 13:14:44 +08:00
Tor Harald Sandve
d0fc3eba77 Remove the check if porv is present in the Eclipsestate
The porv is computed if needed and the Eclipsestate will return false on
this test before it is called.

This commit applies the change to the sim_fibo_ad_cp.cpp
2014-10-27 08:11:27 +01:00
Tor Harald Sandve
0979346430 Remove the check if porv is present in the Eclipsestate.
The porv is computed if needed and the Eclipsestate will return false on
this test before it is called.

Tested on Norne
2014-10-27 08:01:20 +01:00
Liu Ming
ba6fef4fbd pass wells manager from sim_poly_fibo to Simulator class, instead of directly
create it in Simulator class, since polymer inflow need deck and wells.
2014-10-24 14:04:57 +08:00
Liu Ming
61c76c4294 use std::unique_ptr instead of boost::scoped_ptr. 2014-10-20 17:29:59 +08:00
Liu Ming
6b3b90500f Merge remote-tracking branch 'opm/master' into bo_polymer
Conflicts:
	opm/polymer/PolymerProperties.hpp
2014-10-20 13:51:37 +08:00
Liu Ming
6a051b7e4e adapte the API changes of PolymerProperties class. 2014-10-16 10:03:13 +08:00
Liu Ming
ddfb030b57 Merge remote-tracking branch 'opm/master' into bo_polymer 2014-10-16 10:00:37 +08:00
Andreas Lauser
7c122c18d3 use the TLMIXPAR keyword directly
instead of using a table class. This is because the keyword is not a
table...
2014-10-14 12:29:31 +02:00
Liu Ming
6d76151b6d use std::unique_ptr instead of std::shared_ptr for polymerInflowInterface. 2014-10-11 16:38:59 +08:00
Andreas Lauser
4f44cde846 fix the fallout caused by the slightly too premature merge of PR #213
I should have put some message at the end of that PR when the API of
opm-parser changed...
2014-10-10 16:17:41 +02:00
Liu Ming
c2d6347271 make some tricks for initialing polymer_inflow, this maybe wrong, but now no bugs. 2014-10-09 14:23:36 +08:00
Liu Ming
73c2032974 fix some bugs. 2014-10-09 10:04:17 +08:00
Liu Ming
be927741b8 create a blackoil+polymer simulator. 2014-10-08 14:46:43 +08:00
Andreas Lauser
b4f9a49bd6 fixup! sim_fibo_ad*: print the log messages from the parser/EclipseState 2014-10-06 10:12:57 +02:00
Andreas Lauser
566c7c03d7 sim_fibo_ad*: print the log messages from the parser/EclipseState 2014-10-03 15:53:57 +02:00
Liu Ming
979c2dc0f7 use Newton iteration solver interface from opm-autodiff, prepare for CPR supporting. 2014-09-26 14:54:57 +08:00
Liu Ming
8620ce2641 use std::shared_ptr instead of boost::scoped_ptr. 2014-09-26 14:03:55 +08:00
Liu Ming
e22398c098 make Opm::DerivedGeology as a direct arguement for simulator. 2014-09-25 16:40:01 +08:00
Liu Ming
9a41199bd4 Merge remote-tracking branch 'opm/master' into fim
Conflicts:
	cmake/Modules/Findopm-autodiff.cmake
2014-09-23 16:04:15 +08:00
Atgeirr Flø Rasmussen
25c9b36d4f Use new location of warning suppression header. 2014-09-20 10:39:34 +02:00
Andreas Lauser
b6aa6c0734 adapt the the table related API changes of opm-parser 2014-09-19 14:40:35 +02:00
Andreas Lauser
0f436e12c9 adapt the the table related API changes of opm-parser 2014-09-18 16:49:29 +02:00
Andreas Lauser
9fbf4b2b3b adapt the the table related API changes of opm-parser 2014-09-17 13:28:39 +02:00
Atgeirr Flø Rasmussen
e597bbeca6 Merge pull request #193 from blattms/fix-176
Makes distinction between functions more clear. (#176)
2014-09-04 08:37:33 +02:00
Andreas Lauser
5f61781afd sim_fibo_ad*: change the default for the use_cpr parameter from false to true
SPE9 and Norne are basically unusable if UMFPack is used as linear solver...
2014-09-03 13:35:28 +02:00
Bård Skaflestad
be589ba5f3 Merge pull request #189 from atgeirr/add-minpv
Add MINPV support to grid creation for fully implicit sims.
2014-08-29 09:16:55 +02:00
Markus Blatt
7127101c1c Makes distinction between functions more clear.
Currently, there are two abstract interface for the grids. One that
usually returns pods and arrays of them that also can be used by C
and is used also in opm-core, and one that returns Eigen datastructures
 needed within opm-autodiff.

This commit adds a postfix ToEigen to those functions (faceCells, and
cellCentroidsZ) one could imagine to also return pods and arrays of them.
This should at least resolve the confusion about the two faceCells functions.

The next step will be issue #192
Fixes #176
2014-08-28 14:44:13 +02:00
Atgeirr Flø Rasmussen
6ba5068928 Make simulator programs actually obtain threshold pressures. 2014-08-27 18:23:11 +02:00
Atgeirr Flø Rasmussen
3fdfeec10c Pass dummy threshold pressures through simulator to solver. 2014-08-27 18:23:10 +02:00
Atgeirr Flø Rasmussen
09eb0d455e Add MINPV support to grid creation for fully implicit sims. 2014-08-25 16:05:42 +02:00
Bård Skaflestad
077b01b767 Merge pull request #188 from OPM/support-resv
Support RESV controls
2014-08-25 13:54:30 +02:00
Atgeirr Flø Rasmussen
e35546070f Use direct deck-using version of grid construction method. 2014-08-21 15:26:07 +02:00
Atgeirr Flø Rasmussen
e644c51750 Merge branch 'master' into support-resv
Conflicts:
	examples/sim_fibo_ad.cpp
	examples/sim_fibo_ad_cp.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-19 09:53:20 +02:00
Atgeirr Flø Rasmussen
1b7e748431 Update sim_fibo_ad_cp to use refactored simulator class.
Also add some other features that have been added to sim_fibo_ad
but not to sim_fibo_ad_cp:
 - (Un)Strict parsing parameter.
 - EQUIL init (currently throws, since initEquil not yet made generic).
2014-08-12 12:54:55 +02:00
Atgeirr Flø Rasmussen
bb118a9a39 Remove superfluous output and use const. 2014-08-12 12:53:11 +02:00
Atgeirr Flø Rasmussen
b85ba1bcc0 Clean up files and streams for timing output.
Total time will be written to walltime.txt, and single step times to
step_timing.txt (changed suffix from param to txt). This did not work
properly before this fix (step_timing file was overwritten each step).
2014-08-12 09:28:28 +02:00
Atgeirr Flø Rasmussen
d170de43cb Merge remote-tracking branch 'GitPaean/New_BLACKOIL_SIMULATOR' into restructure-sim
Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp
2014-08-11 14:01:54 +02:00
Bård Skaflestad
23520be41a RESV: Prepare for dynamic rate distribution calculation
This commit changes the API of class SimulatorFullyImplicitBlackoil<>
in order to support wells controlled by (total) reservoir voidage
volume rates.  Specifically, we switch to holding a mutable Wells
object (backed by a std::shared_ptr<>) in class Impl rather than a
reference to a WellsManager.  This allows dynamically updating rate
distributions and targets of individual well controls.  That, in
turn, is a prerequisite to supporting ECL-style "RESV" control
modes--be it in prediction or history matching capacity.

While in the process of API changes, also prepare for the second
stage of "WCONHIST/RESV" support: Accept a ScheduleConstPtr that
holds the input deck's notion of the history matching vs. prediction
controls.  We need to distinguish the two in order to support the
exact semantics of "WCONHIST/RESV".

Update SimFIBO<> clients accordingly.
2014-08-08 11:40:50 +02:00
osae
8fa34b421a Strict parsing is now the default. 2014-08-07 19:14:36 +02:00
osae
a8d99d0443 Make non-strict parsing the default. 2014-08-07 16:39:41 +02:00
Bård Skaflestad
a612d2c96f Restore gravity effects
The refactorisation of class FullyImplicitBlackoilSolver<Grid> to
defer transmissibility and pore-volume calculation to the client in
order to support multipliers (net-to-gross &c) accidentally ended up
removing all effects of gravity.  This commit restores those effects.
2014-07-29 19:49:50 +02:00
Kai Bao
eb3445e6a1 Finishing compliation. 2014-07-27 17:31:00 +02:00
Kai Bao
1e8d5e65b7 Finishing changing. Testing Later 2014-07-25 19:13:23 +02:00
Andreas Lauser
63eaecf246 DerivedGeology: pass the EclipseState object to its constructor
this is required to implement pore volume and permeability multipliers
as discussed with [at]bska and [at]joakim-hove.

Note that this implies that the DerivedGeology class can't be
instantiated anymore if there is no EclipseState object. Thus all code
paths and tests that don't load a deck are removed by this patch. If
this is undesireable, there are two options: First, don't require
EclipseState for DerivedGeology which would imply to make the about 10
required multiplier functions part of the
BlackoilPropertiesAdInterface, or second, one can copy-and-paste the
DerivedGeology class as it was before this patch, derive from a newly
introduced DerivedGeologyInterface and pass DerivedGeologyInterface
objects to the simulator. IMHO, the second solution would be a bit
better but it would involve substantial overhead to implement and to
maintain it.

Anyway, in the mean time simulators cannot be instantiated without
decks.
2014-07-24 16:37:38 +02:00
Andreas Lauser
543d8d75b6 pass the DerivedGeology to the simulators
this was decided to be a good idea by [at]bska. (If I interpreted him
correctly, obviously.)
2014-07-24 16:37:38 +02:00
Andreas Lauser
8645d2c207 pass the EclipseState and the PhaseUsage objects to EclipseWriter 2014-07-18 11:22:28 +02:00
Andreas Lauser
6727fe28fe adapt construction of to EclipseWriter
i.e., don't pass around the UnstructuredGrid object directly, but use
the "generic" interface which is also used in the case Dune::CpGrid.
2014-07-14 17:55:30 +02:00
osae
24506cc637 Include EQUIL-based inititalisation for 3-phase. 2014-06-26 15:11:34 +02:00
Andreas Lauser
7c767e8686 sim_fibo_ad_cp: make it compile
The constructor for the simulator class changed recently...
2014-06-13 18:07:51 +02:00
Tor Harald Sandve
8a600747fa Read DISGAS and VAPOIL from deck and pass them to the simulator 2014-06-13 14:29:52 +02:00
Andreas Lauser
13ea365c64 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.
2014-06-11 13:48:49 +02:00
Andreas Lauser
0219f83563 glue in support for property modifiers
i.e. reading the grid properties from EclipseState instead of from the
raw deck. This requires that all deck files exhibit a GRID and a
SCHEDULE section or else EclipseState will throw in the constructor.
2014-06-09 12:36:46 +02:00
Andreas Lauser
0dfa8680f7 use the EclipseState instead of the raw deck
this is needed to enable property modifiers...
2014-06-07 18:45:46 +02:00
Atgeirr Flø Rasmussen
4734052d86 Bugfix: local variable shadowed proper variable. 2014-05-21 19:48:48 +02:00
Bård Skaflestad
f0d908d104 Merge pull request #140 from atgeirr/cpr-preconditioning
Cpr preconditioner
2014-05-21 15:36:12 +02:00
Andreas Lauser
8e373c3539 rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2014-05-21 11:22:43 +02:00
Kai Bao
cd50b54ddf Finishing the modification for solver class. 2014-05-16 18:02:55 +02:00
Atgeirr Flø Rasmussen
54c07f3d0c Add choice of solution strategies to simulators.
The following is changed in this commit:
 - The constructor for NewtonIterationBlackoilSimple now takes
   a parameter object instead of a linear solver.
 - The fully implicit black-oil simulators can now use the CPR
   preconditioning strategy (by passing use_cpr=true) or the
   simple strategy (the default).
Note that as of this commit, the CPR preconditioning still has
not been implemented properly, and behaves just like the simple
strategy.
2014-05-12 11:10:59 +02:00
Andreas Lauser
ebb1da0662 replace all boost:: smart pointers by their std:: equivalents
The std variants are part of c++-2011 and it's 2014 now. (they are
also available in GCC 4.4.)
2014-05-02 16:17:54 +02:00
Andreas Lauser
b7f3ee7b79 rename "newParserDeck" to "deck" 2014-05-02 15:48:04 +02:00
Andreas Lauser
dbb19403fc completely remove the EclipseGridParser from the module 2014-05-02 15:47:52 +02:00
Andreas Lauser
3a6d989d5e move the code away from EclipsGridParser to opm-parser 2014-04-26 11:13:59 +02:00
Andreas Lauser
a72595f047 convert the examples and the tests to opm-parser 2014-04-25 14:25:54 +02:00
Joakim Hove
a6ec0bb59c Using the Parser::EclipseGrid to create GridManager 2014-04-24 11:47:01 +02:00
Atgeirr Flø Rasmussen
d7ba3b0fbc Merge branch 'master' into suppress-warnings
Conflicts:
	cmake/Modules/UseWarnings.cmake
2014-04-22 14:50:15 +02:00
Atgeirr Flø Rasmussen
de695f3cd5 Avoid warning by not storing MPIHelper instance reference. 2014-04-15 20:47:37 +02:00
Atgeirr Flø Rasmussen
1e75efd097 Add generation and use of warning-suppressing headers. 2014-04-15 20:46:45 +02:00
Atgeirr Flø Rasmussen
5acb27f506 Update CpGrid version to use new classes. 2014-04-15 12:11:13 +02:00
Atgeirr Flø Rasmussen
9ae24f9380 Merge branch 'master' into cpr-preconditioning-again
Conflicts:
	CMakeLists_files.cmake
	examples/test_implicit_ad.cpp
2014-04-15 11:48:36 +02:00
Atgeirr Flø Rasmussen
55f5b0a10e Merge pull request #52 from qilicun/read_plyshear
make PolymerProperties handle PLYSHEAR keyword.
2014-04-15 08:18:49 +02:00
Bård Skaflestad
1cbffa09de Fix memory leak
Function GridManager::createGrdecl() generally allocates memory
(using std::malloc()) for the MAPAXES keyword data output of the
'grdecl' structure.  Release those resources before leaving the
scope to prevent memory leak introduced in commit fdca540.
2014-04-10 12:25:28 +02:00
Bård Skaflestad
fdca5404b7 Use new parser for all deck information
This commit switches to using the convenience method

    GridManager::createGrdecl()

to construct a "struct grdecl" that can be passed directly into
CpGrid::processEclipseFormat().  The practical benefit is that we
get to leverage the opm-parser that's in active development rather
than the calcifying "EclipseGridParser" that will only become less
relevant in the future.  We also don't parse the data twice.

Note: This is mostly compile tested.  In the few actual tests I ran,
I got into trouble with internal assertions in processEclipseFormat.
That problem is not yet analysed.
2014-04-10 01:01:55 +02:00
Bård Skaflestad
897a33c788 Support older versions of Dune
Retrieving the "mpihelper.hh" from <dune/common> rather than
<dune/common/parallel> means we can still support (e.g.,) Dune 2.2.1
if needed.
2014-04-10 00:59:31 +02:00
Bård Skaflestad
0f98ce7d6c Restore missing constructor argument
The 'grav' argument (gravity vector) was apparently lost in a
mis-merge.  This commit restores the missing argument.
2014-04-09 16:46:51 +02:00
Markus Blatt
b3ce9bd730 Updated examples/sim_fibo_ad_cp.cpp according to latest changes in examples/sim_fibo_ad.cpp 2014-04-09 14:40:56 +02:00
Markus Blatt
327f1b003d Merge branch 'tester' into master-refactor-for-cpgrid-support
Resolved conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-04-09 14:39:19 +02:00
Markus Blatt
3329e48c57 Adapted sim_fibo_ad_cp with latest changes for sim_fibo_ad 2014-04-09 13:18:28 +02:00
Bård Skaflestad
a784d50f1e Merge branch 'master' into blattms-master-refactor-for-cpgrid-support
Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp

This brings the "CpGrid support" branch up to date with respect to
recent changes in opm-autodiff master.
2014-04-08 16:31:17 +02:00
Atgeirr Flø Rasmussen
bd44127bd6 Renamed more classes.
FullyImplicitSystemSolver{Interface, Simple} -> NewtonIterationBlackoil{Interface, Simple}.
Change suggested by B. Skaflestad.
2014-04-08 16:11:08 +02:00
Atgeirr Flø Rasmussen
f1956f05f9 Merge branch 'cpr-preconditioning' into cpr-preconditioning-again
Conflicts:
	examples/sim_fibo_ad.cpp
	examples/test_implicit_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.cpp
	opm/autodiff/SimulatorFullyImplicitBlackoil.hpp
2014-04-08 15:06:01 +02:00
Andreas Lauser
8437051416 make everything compile with the newly refactored EclipseWriter
the states needed to be removed from the call to writeInit()...
2014-04-02 17:06:20 +02:00
Andreas Lauser
5e7064b337 sim_fibo_ad: remove compatibility code for old parser
this makes the simulator quite a bit more maintainable: setting
USE_NEW_PARSER to 0 did not even compile after the the constructor for
the wells manager which took the old deck was removed last
week. Since, according to Atgeirr, SPE-1 is now producing exactly the
same results as before, it also does no longer make too much sense to
keep that code on life support...
2014-03-31 16:39:17 +02:00
Markus Blatt
46f3607641 Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Resolved conflicts:
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-03-31 11:39:37 +02:00
Atgeirr Flø Rasmussen
4b53f88685 Fix timer usage.
This makes the simulator produce proper summary output again.
2014-03-28 14:31:30 +01:00
Markus Blatt
b279a174db Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Conflicts:
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
2014-03-27 16:17:44 +01:00
Kai Bao
0914841823 A small fixing to make the sim_fibo_ad using the new timer. 2014-03-27 11:15:55 +01:00
Joakim Hove
2f23e72bea Removed calls to WellsManager() constructor which uses old EclipseGridParser. 2014-03-25 19:36:42 +01:00
Joakim Hove
b398ce3b3d Removed Wellsmanager constructor which used old EclipseGridParser instance. 2014-03-25 19:12:19 +01:00
Joakim Hove
dd66aa80e8 Removed WellsManager constructor which takes an ole Eclipsegridparser instance. 2014-03-25 18:57:58 +01:00
Andreas Lauser
168b4379d5 don't pass the eclipsewriter to the simulator anymore
i.e., the simulator does not deal with any output operations
anymore. This makes sense because report steps are handled by
Opm::TimeMap and the constructor for the simulator already needs more
arguments than appropriate even without this...
2014-03-25 13:17:30 +01:00
Markus Blatt
8df314e90f Merge remote-tracking branch 'upstream/master' into master-refactor-for-cpgrid-support
Manually resolved conficts in the following files
	examples/sim_fibo_ad.cpp
	opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp
	opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp

In additions examples/sim_fibo_ad_cp.cpp was adapted to compile again.
2014-03-25 11:11:08 +01:00
Atgeirr Flø Rasmussen
cdeac8eed8 Merge pull request #105 from andlaus/sim_fibo_ad_dont_instantiate_old_parser
sim_fibo_ad: don't instantiate an old parser object if USE_NEW_PARSER is set anymore
2014-03-21 09:03:20 +01:00
Andreas Lauser
79c93953f8 sim_fibo_ad: don't instantiate an old parser object if USE_NEW_PARSER is set anymore
I thought I included this in a previous PR. Seems like I was wrong...
2014-03-20 15:44:53 +01:00
Andreas Lauser
dee6f683cb sim_fibo_ad: re-add ouputting of the current report step when using opm-parser
in the old parser, this was called 'epoch'...
2014-03-20 13:14:34 +01:00
Andreas Lauser
49a5b67137 sim_fibo_ad: fix writing
the initial condition was written multiple times. We now fix this by
not writing anything in the simulator and moving this logic to the
main loop..
2014-03-19 17:40:51 +01:00
Andreas Lauser
66d73083b2 sim_fibo_ad: convert to the new-style wells manager
i.e. it now uses Opm::EclipseState. This change required to re-add the
the epoch concept in some sense, but the loop variables now call it
"episode" which sounds less ethernal IMO.
2014-03-19 17:40:38 +01:00
Atgeirr Flø Rasmussen
295677c8c1 Use WellStateFullyImplicitBlackoil class instead of WellState. 2014-03-18 11:27:40 +01:00
Liu Ming
1e41e58ce7 makd PolymerProperties handle PLYSHEAR keyword. 2014-03-18 13:25:52 +08:00
Markus Blatt
ec32758822 Removed last occurence of the grid adapter in the EclipseOutputWriter. 2014-03-13 16:33:36 +01:00
Markus Blatt
f4812c21eb Add an example program of FIBOS that uses CpGrid. 2014-03-13 16:33:36 +01:00
Andreas Lauser
5de11630d5 use the SimulatorTimer which is based on opm-parser's TimeMap
at least if the USE_NEW_PARSER preprocessor macro in sim_fibo_ad.cpp
is set to 1. (if it is false, nothing changes.)
2014-02-27 11:56:33 +01:00
Andreas Lauser
c23b38f60b re-add the epoch stuff
this is required until the new time step handling code lands...
2014-02-14 17:57:08 +01:00
Andreas Lauser
d7d25253f3 adapt to the changes in the APIs of the parser-integrate branch in opm-core
Since the SimulationTimer, EclipseWriter and WellsManager stuff has
not (yet?) been merged, the old parser is required to be around. Use
my parser-integrate-hacks_for_norne branches to test your stuff on the
Norne deck...
2014-02-14 17:57:08 +01:00
Andreas Lauser
09f56b416f sim_fibo_ad: add macro to easily switch between the old and the new parser 2014-02-14 17:56:25 +01:00
Andreas Lauser
6b0e1d4562 sim_fibo_ad: completely replace the old eclipse parser by the new one
this required to abandon the "Epoch" stuff which the new parser does
not have (as well as the ECLIPSE file format knows nothing about
epochs). Handling well controls properly thus has to wait until Joakim
and Kristian finish refurbishing the WellsManager, so as a stop-gap
measure, only the first "epoch" is run.
2014-02-14 17:56:20 +01:00
Andreas Lauser
2deeeef4e4 really use the new parser
in the previous commit this was #if 0'ed...
2014-02-14 17:56:08 +01:00
Andreas Lauser
7f485626a2 use the new parser to read the PVT and grid data from the deck
the old code has not yet been removed, but in the long term, this is
probably the way to go.
2014-02-14 17:56:07 +01:00
Andreas Lauser
627b1f3906 make the deck from opm-parser available to the black-oil PVT property classes 2014-02-14 17:56:07 +01:00
Atgeirr Flø Rasmussen
a14cff7834 Use new linear solver interface in fully implicit solver.
This includes:
 - Using the class FullyImplicitBlackoilResidual instead of
   in-class definition for the residual object.
 - Changing residual field name mass_balance to material_balance_eq.
 - Letting the simulator and solver classes accept a
   FullyImplicitSystemSolverInterface instead of a LinearSolverInterface.
 - In sim_fibo_ad and test_implicit_ad, instantiate class
   FullyImplicitSystemSolverSimple, replicating existing behaviour.
2014-02-10 10:47:21 +01:00
Atgeirr Flø Rasmussen
0de82f3172 Remove more unused code. 2014-01-31 12:29:15 +01:00
Liu Ming
12318fe754 output watercut by using utilities.cpp/computeInjectedProduced function. 2014-01-22 14:17:04 +08:00
Joakim Hove
37274035bc Changed direct access to struct WellControls to rather use well_controls_get_xxx() api. 2014-01-09 09:39:08 +01:00
Liu Ming
cf28164a5a new simulator for fully implicit compressible twophase
polymer works.
2013-12-27 15:48:04 +08:00
Liu Ming
c37539b3ab add well controls for polymer, but rate control just for
water phase and oil phase.
2013-12-24 17:31:11 +08:00
Liu Ming
2985dc7cce make the simulator read from deckfile
make it much more gerenal.
2013-12-17 23:49:09 +08:00
Liu Ming
970fe665d8 add the bhp well controls. 2013-12-17 17:36:43 +08:00
Liu Ming
11ea882ed8 remove some output commits.
get values from command line for exapmes.
2013-12-11 18:27:05 +08:00
Liu Ming
a358da7afa fix the polymer source bug,
warnning: water initial saturation should not bt zero when
running this simulator.
2013-12-10 20:36:30 +08:00
Liu Ming
6fc24236df fix FullyImplicitTwophasePolymersolver constructor problem.
add some input commits for debugging.
2013-12-09 22:57:44 +08:00
Andreas Lauser
2cf32b6f4f Use EclipseWriter from opm-core
Note: The interface here requires opm/opm-core#424.
2013-11-27 15:45:45 +01:00
Andreas Lauser
1c62934034 fix some clang 3.3 warnings
The most severe change probably is the removal of the AutoDiff
debugging helper functions which were useful from within a debugger
but unfortunately had to rely on a presumed linker bug in order not to
be removed in the final binary.

Also, some private attributes were unused. These have been removed and
the constructors of their respective classes have been adapted. Once
their intended functionality is actually implemented, they should be
brought back on an as-needed basis.

Thanks to @bska for the review!
2013-11-14 14:33:38 +01:00
Atgeirr Flø Rasmussen
cc58bc3cef Fix minor issues pointed out by bska. 2013-09-23 13:02:56 +02:00
Atgeirr Flø Rasmussen
a10eb61b66 Require deck and remove simple source term in fully implicit sim. 2013-09-20 14:32:29 +02:00
Atgeirr Flø Rasmussen
9337a6227b Renamed misleading adfi -> fi.
Some classes and a program were renamed since they were not fully implicit
solvers despite their names indicating it.
2013-09-19 14:52:39 +02:00
Atgeirr Flø Rasmussen
85f79c0e84 Rename AutoDiff::ForwardBlock -> Opm::AutoDiffBlock.
Also moved AutoDiffHelpers.hpp content to Opm namespace, and modified other
files as required by these two changes.
2013-09-19 12:53:28 +02:00
Atgeirr Flø Rasmussen
e9b933bf4f Rename AutoDiff::Forward -> Opm::AutoDiff. 2013-09-19 11:32:47 +02:00
Atgeirr Flø Rasmussen
a33f7e964b Let sim_2p_comp_ad throw if not given an input deck.
There is some code in place now to create wells for the no-deck case,
but since it does not work correctly yet, the simulator intercepts this
and throws.
2013-09-19 10:09:53 +02:00
Andreas Lauser
4e96915af1 catch all exceptions in all tutorials and examples 2013-09-05 13:04:38 +02:00
Andreas Lauser
1605b88d66 convert THROW to OPM_THROW 2013-09-05 13:04:37 +02:00
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
51cb4f2cb8 Add exception handlers to all tutorials and examples 2013-09-05 12:28:04 +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
8ce809c400 Add exception handlers to all unit tests, tutorials and examples 2013-09-03 15:43:51 +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
Bård Skaflestad
a9b90b34f8 Use UMFPACK solver if available in sim_simple.cpp.
Fall back to Eigen's BiCGSTAB solver if UMFPACK is not available.  The
BiCGSTAB is built into Eigen and consequently always available when
Eigen is found.
2013-07-09 14:39:44 +02:00
Andreas Lauser
7139f4addf do use eigen's umfpack support anymore
use BiCGStab instead. it might be slower, but at least it is always
available...
2013-07-09 13:33:57 +02:00
Atgeirr Flø Rasmussen
07027d3a09 Added rock compressibility to fully implicit solver. 2013-06-03 14:14:48 +02:00
Atgeirr Flø Rasmussen
62d0ad85b8 Use BlackoilPropsAdFromDeck in fully implicit simulator. 2013-05-27 22:28:17 +02:00
Atgeirr Flø Rasmussen
6f6979e173 Now initialize with new code (for gas-oil ratio). 2013-05-27 22:00:34 +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
Bård Skaflestad
26e965e858 Add an operator<< for outputting vector results.
Use it out print reservoir and well pressures at end of solution.
2013-05-24 19:15:14 +02:00
Bård Skaflestad
c5ad446a0a Include well support in FIBOSolver interface.
Update callers accordingly.
2013-05-24 15:27:19 +02:00
Atgeirr Flø Rasmussen
c569fb2a14 Created fully implicit simulator sim_fibo_ad. 2013-05-24 12:32:28 +02:00
Atgeirr Flø Rasmussen
3d008c033d Class FullyImplicitBlackoilSolver is no longer a template. 2013-05-24 11:00:55 +02:00
Atgeirr Flø Rasmussen
57a3bd2113 Renamed ImplicitBOStep -> FullyImplicitBlackoilSolver. 2013-05-24 10:49:59 +02:00
Bård Skaflestad
12e4557b08 Add first cut at fully implicit system assembly.
Compile-tested only.

At this point, we only include reservoir effects--i.e., we don't
consider wells.
2013-05-23 18:28:50 +02:00
Atgeirr Flø Rasmussen
d171f043e5 Added simulator class and program using ImpesTPFAAD.
This copies similar code from opm-core and replaces
CompressibleTpfa with ImpesTPFAAD. Produces same results
for initial simple test cases.
2013-05-22 22:53:40 +02:00
Atgeirr Flø Rasmussen
3e8bb53730 Moved implementation of class ImpesTPFAAD to separate file.
Also cleaned up header usage in ImpesTPFAAD.hpp, making some
new inclusions necessary in test program.
2013-05-22 15:49:55 +02:00
Atgeirr Flø Rasmussen
abc23b8009 ImpesTPFAAD is no longer a template class. 2013-05-22 15:27:16 +02:00
Atgeirr Flø Rasmussen
e86aa3324c Moved DerivedGeology class to GeoProps.hpp.
Also, it is no longer a template (but its constructor is).
2013-05-22 15:16:24 +02:00
Atgeirr Flø Rasmussen
511ab37dc4 Fix error in testcase specifying well prod. factors.
Also switch back to surface volume controls.
2013-05-22 12:33:40 +02:00
Atgeirr Flø Rasmussen
8cc16466a9 Make ImpesTPFAAD use abstract fluid interface instead of template.
Follow-up changes to test program. Also while there, input correct
number of perforations to add_well() calls.
2013-05-22 11:13:14 +02:00
Atgeirr Flø Rasmussen
476220c84b Refined test to have multi-perforation wells. 2013-05-22 08:34:50 +02:00
Atgeirr Flø Rasmussen
c6b640d3db Change example to use a surface rate constraint for one well. 2013-05-22 00:10:16 +02:00
Atgeirr Flø Rasmussen
9aea3b4589 Removed extra init that is no longer necessary. 2013-05-21 23:35:28 +02:00
Atgeirr Flø Rasmussen
73ba67ec13 Make the test run a simple bhp-controlled case. 2013-05-21 15:42:10 +02:00
Atgeirr Flø Rasmussen
cc1f8ed21a Refactored ImpesTPFAAD to use BlackoilPropsAd interface.
Not yet tested, but compiles and runs. Stops on error message
due to lack of viscosity derivatives.
2013-05-16 16:05:47 +02:00
Atgeirr Flø Rasmussen
37677fe032 Print face fluxes after solve.
Also define the HACK_INCOMPRESSIBLE_GRAVITY symbol, since test case
is meaningless without it.
2013-05-16 14:49:12 +02:00
Bård Skaflestad
8bc5f66d8d Promote 'test_impestpfa_ad' to an 'example'
This was the original intention, but the file was misplaced during
the module reorganisation.
2013-05-16 09:33:58 +02:00
Bård Skaflestad
e0c85a2fdb Adapt to CMake-based build system.
Specifically,

  - #include <config.h> where appropriate (all .cpp files)
  - Adjust include statements to account for sub-directory locations
    of .hpp files.
2013-05-15 16:10:20 +02:00
Bård Skaflestad
57f73517c0 Move MRST example closer to actual example 2013-05-15 10:37:50 +02:00
Bård Skaflestad
9309024d1e First partitioning into source/examples/tests
Reorganisations are likely.
2013-05-15 10:35:39 +02:00
Atgeirr Flø Rasmussen
7d5d314fc0 Update to match opm-core changes. 2013-03-18 13:10:32 +01:00
Atgeirr Flø Rasmussen
4fc8f52fb2 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
e319fd1e38 Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2013-03-18 10:33:34 +01:00
Atgeirr Flø Rasmussen
c7789d7e52 Move GridManager to grid subdir.
Also remove GridAdapter (moved to dune-cornerpoint), and
moved grid.c implementation file to grid subdir.
2013-03-18 10:16:46 +01:00
Atgeirr Flø Rasmussen
c16cb6987b Renames classes in line with opm-core changes. 2013-03-15 18:33:41 +01:00
Atgeirr Flø Rasmussen
864cce5f5e Adapt to moved opm-core headers. 2013-03-14 13:59:31 +01:00
Atgeirr Flø Rasmussen
6127afc1c6 Adapt include statements to moved headers. 2013-03-14 10:29:42 +01:00
Roland Kaufmann
f5e19e9b87 Remove remnants of the Autotools build system 2013-02-22 23:34:21 +01:00
Atgeirr Flø Rasmussen
2b292108ad Added well management to SimulatorCompressiblePolymer.
Another polymer-specific overload of computeFractionalFlow()
has been added in support of this (this overload deals with
compressible properties.

Also added pressure normalization for situations with arbitrary
absolute pressure.
2012-10-15 14:23:13 +02:00
Atgeirr Flø Rasmussen
f5861f0cc8 Added well management to SimulatorPolymer.
A polymer-specific overload of computeFractionalFlow()
has been added in support of this.

Also added a minor feature: pressure normalization for
situations with arbitrary absolute pressure.
2012-10-10 23:19:35 +02:00
Atgeirr Flø Rasmussen
e13e77a7bb Simulators handle WPOLYMER keyword.
They do this by using the class PolymerInflowFromDeck
instead of PolymerInflowBasic if there is a WPOLYMER
keyword somewhere in the deck epochs. If there is no
WPOLYMER, the parameters 'poly_start_days' etc. will
be used to construct an instance of PolymerInflowBasic
instead.
2012-10-04 16:00:33 +02:00
Atgeirr Flø Rasmussen
6033e5ca69 Make polymer inflow specification by cell.
Before, it was a single number for the whole domain. It could vary
with time, though.

Simulator behaviour should be identical before and after this commit.

This touches the classes TransportModel*Polymer, Simulator*Polymer,
and the computeInjectedProduced() functions. The PolymerInflow class
and its usage has been replaced with PolymerInflowInterface, and
a subclass PolymerInflowBasic has been created which provides the
old behaviour (using parameters poly_start_days, poly_end_days and
poly_amount).
2012-10-04 13:38:22 +02:00
Atgeirr Flø Rasmussen
f5eb116410 Removed unused program.
Use sim_poly2p_incomp_reorder instead. It should have all features of
the older program, and supports scheduling in addition.
2012-10-04 13:36:39 +02:00
Xavier Raynaud
7f1a1d7e24 Merge remote-tracking branch 'upstream/master' 2012-09-05 13:35:48 +02:00
Atgeirr Flø Rasmussen
a6d3e2eef4 Merge branch 'master' into nonuniform_fluid_tables
Conflicts:
	Makefile.am
	opm/core/fluid/BlackoilPropertiesFromDeck.hpp
	opm/core/fluid/SaturationPropsFromDeck.cpp
	opm/core/fluid/SaturationPropsFromDeck.hpp
	opm/core/fluid/blackoil/BlackoilPvtProperties.cpp
	opm/core/fluid/blackoil/BlackoilPvtProperties.hpp
	opm/core/fluid/blackoil/SinglePvtDead.cpp

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

Interfaces have changed, the most top-level one being
that BlackoilPropertiesFromDeck::init() now also takes
a ParameterGroup argument.
2012-09-04 11:42:31 +02:00
Xavier Raynaud
8752f14015 Added executable example for compressible with polymer. 2012-09-03 13:52:59 +02:00
Xavier Raynaud
e1a5c1dc94 Removed redundant header file include. 2012-09-03 12:55:10 +02:00
Xavier Raynaud
becf485795 Changes to avoid compilator warning. 2012-08-29 13:48:19 +02:00
Xavier Raynaud
a13f3cf43b Fixed examples/Makefile.am. 2012-08-29 13:47:05 +02:00
Xavier Raynaud
a9456704e1 Removed private configuration options. 2012-08-28 15:29:27 +02:00
Atgeirr Flø Rasmussen
77270f4a25 Added class SinglePvtDead, add parameter 'props_use_spline' to simulators.
Recall that the class that used to be called SinglePvtDead has
been renamed to SinglePvtDeadSpline. If 'props_use_spline' is true,
that class is used (this is the default), which makes a monotone
spline that is uniformly, densely sampled. The new class simply
uses linear interpolation in the input tables.
2012-08-27 16:48:21 +02:00
Xavier Raynaud
9a271a6038 Added (fluid) compressible pressure solver for polymer. 2012-08-27 13:16:10 +02:00
Atgeirr Flø Rasmussen
ba042c7241 Minor revision, mostly whitespace cleanup and comments. 2012-08-27 09:48:06 +02:00
Xavier Raynaud
51e0512989 Removed non-used members in class ResidualEquation. 2012-08-23 16:51:51 +02:00
Xavier Raynaud
52a19192cb Added PROFILING preprocessor flag. 2012-08-23 14:58:26 +02:00
Atgeirr Flø Rasmussen
638eee501b Added compressible 2-phase simulator, to replace sim_wateroil.cpp. 2012-08-23 14:07:11 +02:00
Atgeirr Flø Rasmussen
2ade3eff60 Add missing header. 2012-08-20 16:40:28 +02:00
Atgeirr Flø Rasmussen
21a893c70a Improved treatment of parameters, uniformity with non-polymer sim. 2012-08-20 16:39:28 +02:00
Bård Skaflestad
0c0ea6863f Chase interface change of Opm::IncompPropertiesFromDeck constructor. 2012-08-10 12:27:41 +02:00
Atgeirr Flø Rasmussen
2864b99057 Added test program for investigating single-cell solver performance.
Note that due to a design constraint in the transport solver, namely
that inflowing fluid must consist of only water (possibly with polymer),
and no oil, the program fails unless the comment on lines 186-- is
heeded.
2012-07-03 15:48:36 +02:00
Halvor M. Nilsen
497822b893 Added posibility to use eclipse fluid for 1D case. Corrected bug in guess for newton solver 2012-07-03 11:05:51 +02:00
Halvor M. Nilsen
07f5c353e0 Changed initailizing of table for visc_mult_vals so one can set c_max and c_max_ciscmult 2012-06-26 08:40:26 +02:00
Halvor M. Nilsen
b13416be86 Made new single cell solvers. 2012-06-15 14:40:07 +02:00
Atgeirr Flø Rasmussen
92bc55385d Update porosities before calling transport solver. 2012-06-14 21:53:56 +02:00
Atgeirr Flø Rasmussen
8acd441149 Added simulator program handling scheduling. 2012-06-14 14:26:54 +02:00
Atgeirr Flø Rasmussen
cd9be1030a Adapt to moved SimulatorTimer class, and use common SimulatorReport class. 2012-06-14 14:26:29 +02:00
Xavier Raynaud
03c93ec9e5 fixed examples/Makefile.am 2012-06-14 12:48:49 +02:00
Xavier Raynaud
ee89824e0d Added gradient method option in polymer reorder. 2012-06-14 08:54:24 +02:00
Xavier Raynaud
87c68cf783 Added forgotten argument to function. 2012-06-14 08:44:09 +02:00
Xavier Raynaud
6620a1b5cd In profiling branch: merged last default branch. 2012-06-14 08:38:01 +02:00
Atgeirr Flø Rasmussen
7a40153e51 Added IncompTpfaPolymer class. 2012-06-13 19:56:44 +02:00
Xavier Raynaud
4c7c439dd7 merge. 2012-06-13 15:56:09 +02:00
Xavier Raynaud
cab3652c49 Added corey fluid class. 2012-06-13 15:48:09 +02:00
Atgeirr Flø Rasmussen
bc963a2333 Removed class PolymerInflow (moved to PolymerUtilities.hpp). 2012-06-13 15:45:27 +02:00
Xavier Raynaud
ce6e21c0d6 updated polymer_reorder (profiling branch). 2012-06-13 15:44:34 +02:00
Xavier Raynaud
6033527a82 Added pure Newton single cell method. Correction of Jacobi. sc formulation. 2012-06-13 15:11:30 +02:00
Atgeirr Flø Rasmussen
9766b36cf2 Removed more unused code. 2012-06-13 14:51:53 +02:00
Atgeirr Flø Rasmussen
a795166ee8 Remove unused code (wdp data now lives within IncompTpfa). 2012-06-13 14:46:19 +02:00
Atgeirr Flø Rasmussen
ffd33be55d Changed interface of TransportModelPolymer to expect full saturation, not just water. 2012-06-13 14:18:32 +02:00
Atgeirr Flø Rasmussen
c4b81d8da5 Removed two unnecessary arguments from TransportModelPolymer constructor. 2012-06-13 12:46:57 +02:00
Atgeirr Flø Rasmussen
07130c55f7 Updated to match change in IncompTpfa interface. 2012-06-13 10:54:00 +02:00
Xavier Raynaud
c583f4b4cd Added corey relative permeabilities. 2012-06-12 14:07:31 +02:00
Xavier Raynaud
37657d9feb Added comment.x 2012-06-11 16:23:33 +02:00
Xavier Raynaud
022b1ccb11 Small changes in Newton/Gradient method. 2012-06-11 15:59:33 +02:00
Xavier Raynaud
02c5935865 Added profiling branch. Compute number of residual evaluations. 2012-06-11 14:44:21 +02:00
Xavier Raynaud
9eb9ba372d merge 2012-06-11 14:40:55 +02:00
Xavier Raynaud
74b499f7be input parameter for injection is given by volume per day. 2012-06-06 17:04:17 +02:00
Atgeirr Flø Rasmussen
3660ec8e8c Follow headers that were moved in opm-core. 2012-06-05 15:45:41 +02:00
Atgeirr Flø Rasmussen
3b8ed65764 Bugfix in computation of injected and produced volumes.
- Use correct function (from polymerUtilities.hpp).
 - Use correct input src term (equal to transport src).
 - Call at the correct point (after advective transport).
2012-05-25 11:39:50 +02:00
Atgeirr Flø Rasmussen
00a628fa87 Removed orphan backslash. 2012-05-24 09:16:45 +02:00
Xavier Raynaud
68434429ac Removed changes in Makefile.am which should not have been committed. 2012-05-24 08:34:47 +02:00
Xavier Raynaud
91fe1c5d63 Removed useless commented regions. 2012-05-23 16:24:08 +02:00
Xavier Raynaud
4b805c191e Added bound checks to Newton column solver. 2012-05-23 16:22:48 +02:00
Xavier Raynaud
f8461eeec7 Added initialization of max concentration. 2012-05-22 11:15:40 +02:00
Xavier Raynaud
48adf98b5a Corrected some mistakes in Gauss Seidel gravitation transport solver. 2012-05-21 16:41:29 +02:00
Atgeirr Flø Rasmussen
c115ba2c28 Adapt to renaming and other small modifications of state and initialization. 2012-05-16 15:59:37 +02:00
Xavier Raynaud
60599b9dbf Implemented Gauss-Seidel solver for polymer. Not tested! 2012-05-16 15:06:14 +02:00
Atgeirr Flø Rasmussen
7d54d1f31b Adapt to changed interface of computePorevolume(). 2012-05-14 21:47:46 +02:00
Atgeirr Flø Rasmussen
bcb4c1bf2c Use simpler data structure for columns. 2012-05-14 11:06:30 +02:00
Xavier Raynaud
49948e07b9 merge 2012-05-14 10:50:26 +02:00
Atgeirr Flø Rasmussen
67a6674495 Update for simplified column data structure. 2012-05-11 09:41:01 +02:00
Xavier Raynaud
898eb655d5 added warning if use_gauss_seidel_gravity is used for gravitation solver. 2012-05-10 17:53:01 +02:00
Xavier Raynaud
1eb75314e6 Make polymer_reorder.cpp compliant with well management. Not tested! 2012-05-10 14:42:08 +02:00
Atgeirr Flø Rasmussen
9806f78a77 Update call to computeTransportSource() to match interface change. 2012-04-25 08:32:35 +02:00
Xavier Raynaud
81d90b28e2 merge 2012-04-23 14:06:44 +02:00
Xavier Raynaud
e867c53722 polymerUtilities uses now PolymerProperties to compute effective mobilities. 2012-04-23 11:49:05 +02:00
Atgeirr Flø Rasmussen
4ae1339460 Catch exceptions from boost::create_directories() to give useful error message. 2012-04-23 11:09:09 +02:00
Atgeirr Flø Rasmussen
e02429f5dc Using LinearSolverFactory now. 2012-04-23 11:07:43 +02:00
Xavier Raynaud
a0794117c9 Cleaned code for computation of residual, many changes, not tested! 2012-04-19 17:21:08 +02:00
Atgeirr Flø Rasmussen
4d3a5ccfad Adapted to IncompTpfa needing well input/output. 2012-04-18 13:35:15 +02:00