Commit Graph

44 Commits

Author SHA1 Message Date
Bård Skaflestad
82fc769922 RESV: Add facility for surface-to-reservoir rate conversion
This commit adds a simple facility for converting component rates at
surface conditions to voidage rates at reservoir conditions.  It is
intentionally limited in scope and meant to be employed only in the
context of class FullyImplicitBlackoilSolver<> or something very
similar.  In particular, class SurfaceToReservoirVoidage<> assumes
that it will be used to compute conversion coefficients for
component rates to voidage rates, and that those coefficients will
typically be entered into the coefficient matrix of a linearised
residual.

Add a trivial test just to demonstrate the setup and calling
process.  This is not a feature or correctness test.
2014-08-08 11:40:50 +02:00
Andreas Lauser
faa98b4f74 add a unit test for the implementation of transmissibilty multipliers in DerivedGeology
for the legacy C-style grid the unit test is more or less complete (it
does not test FAULTMULT and NNC, etc, but these could be added with
sufficient determination), for Dune::CpGrid it currently does not
really check anything because I have not found a good way for CpGrid
to produce the "global" intersection index of an intersection...
2014-07-28 11:30:13 +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
Kai Bao
bb22f3572d Adding size function in LinearisedBlackoilResidual.
int sizeNonLinear() const;
To compute the size of the non-linear system.
2014-05-23 13:40:44 +02:00
Atgeirr Flø Rasmussen
c0ce5a13b4 Add preliminary version of CPR preconditioner class.
This version simply does ILU(0) preconditioning.
2014-05-14 15:52:01 +02:00
Atgeirr Flø Rasmussen
46e4ea7736 Add initial skeleton of CPR preconditioning class.
Implementation is identical to NewtonIterationBlackoilSimple for now.
2014-05-12 11:10:06 +02:00
Andreas Lauser
553698a933 remove tests/integration_tests/sim_fibo_ad_test.cpp
this test seems to compare the old and the new parser which does not
make sense anymore once the old parser is no longer available...
2014-05-02 13:59:25 +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
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
a434d39363 Modify for renamed file.
Forgot this for the initial renaming commit.
2014-04-08 15:59:14 +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
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
e7f4637461 Add WellStateFullyImplicitBlackoil class.
This is intended to be used instead of the WellState class in the fully
implicit blackoil simulator. It contains a WellState to reuse the init()
method and to enable users to call functions requiring a WellState.
This is done with containment and an access member function,
basicWellState(), instead of with inheritance to minimize surprises.
2014-03-18 11:23:05 +01:00
Markus Blatt
f4812c21eb Add an example program of FIBOS that uses CpGrid. 2014-03-13 16:33:36 +01:00
Markus Blatt
0a5262b7c3 Added implementation of free function interface grid interface for CpGrid.
This implements a superset of the interface as proposed in pull request
 opm-core#496 for use with CpGrid.
It also adds some additional functionality needed in opm-autodiff.
2014-03-13 15:27:45 +01:00
Atgeirr Flø Rasmussen
8850868f50 Interface and simple implementation of fully implicit system solver.
This is done in preparation for adding a cpr-preconditioning solver
for the fully implicit black-oil system. The existing implementation
that concatenates the whole system and passes it to some linear solver
has been moved from a private function of FullyImplicitBlackoilSolver
to the class FullyImplicitSolverSimple.

To enable this decoupling, the residual struct has been copied out
of the FullyImplicitBlackoilSolver class and is now an independent
struct: FullyImplicitBlackoilResidual. The opportunity has been used
to replace the field mass_balance with material_balance_eq, which is
more precise.
2014-02-10 10:41:18 +01:00
Joakim Hove
0138fc43ef Merged upstream/master 2014-01-29 15:25:21 +01:00
Atgeirr Flø Rasmussen
f9ea03fe67 Renamed SegmentedWellModel->WellDensitySegmented. 2014-01-24 15:54:01 +01:00
Atgeirr Flø Rasmussen
aa5d9d255b Added a test program for SegmentedWellModel.
The only currently tested case is a simple water injector.
2014-01-22 12:56:08 +01:00
Atgeirr Flø Rasmussen
ad81cc6a37 Initial version of segmented well model.
This computes pressure differences with respect to the bottom-hole pressure
for each well perforation, based on the well flows. It is explicit and not
implicit, using the previous time step's flow rates to calculate the necessary
densities.
2014-01-22 12:53:05 +01:00
Kristian Flikka
0465e545ef Commenting the missing data files 2013-11-26 15:15:35 +01:00
Kristian Flikka
bd304c0b5c Fixed indentation to be consistent with rest of file 2013-11-26 15:07:54 +01:00
Kristian Flikka
3f68cbfe1b Fixed some rotten pointer/alloc code. Updated data paths 2013-11-26 14:46:07 +01:00
Kristian Flikka
111c9ee445 Added sim_fibo_ad_test, running two identical simulations with the SPE1 case 2013-11-26 12:55:41 +01: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
Jens Olav Nygaard
23e2034118 Testing workflow with upstream + local repo.
Added template for unit test for new feature.
Updated (CMake's) list of unit tests.
2013-08-01 15:43:21 +02:00
Bård Skaflestad
3e2965a301 Indent file lists using <tab> rather than <space>
This is the common convention throughout all OPM modules' CMake-based
build systems.
2013-06-09 20:40:57 +02:00
Atgeirr Flø Rasmussen
a6dba405dd Merge remote-tracking branch 'totto82/newfluid' into fully-implicit 2013-05-27 15:46:22 +02:00
Tor Harald Sandve
1cf1e3383b Add new interface to BlackoilPropsAdFromDeck
-- not finished --
2013-05-27 14:55:32 +02:00
Atgeirr Flø Rasmussen
937df8869b Added unit test for Span class. 2013-05-24 16:07:51 +02:00
Atgeirr Flø Rasmussen
c569fb2a14 Created fully implicit simulator sim_fibo_ad. 2013-05-24 12:32:28 +02:00
Atgeirr Flø Rasmussen
a94f1921dd Added simulator class for fully implicit blackoil. 2013-05-24 11:40:58 +02:00
Atgeirr Flø Rasmussen
f916153747 Added (empty) implementation file. 2013-05-24 10:52:49 +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
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
27cd7cf19e Added abstract class BlackoilPropsAdInterface.
Also made BlackoilPropsAd (the class wrapping opm-core BlackoilPropertiesInterface)
inherit from it.
2013-05-22 10:56:14 +02:00
Atgeirr Flø Rasmussen
f2f83fee32 Remove unused experimental AD class. 2013-05-22 08:39:09 +02:00
Bård Skaflestad
b46cef383f Build 'test_impestpfa_ad' along with the 'examples' 2013-05-16 09:48:01 +02:00
Bård Skaflestad
d2f412e27a Fix inverted set of automated test cases. 2013-05-15 16:08:56 +02:00
Bård Skaflestad
2500f1ae58 Adopt imported build system to OPM-Autodiff specifics
Updated include statements &c to follow.
2013-05-15 15:49:48 +02:00
Bård Skaflestad
116f39e8ab Import CMake support from OPM-Core 2013-05-15 10:24:52 +02:00