Commit Graph

608 Commits

Author SHA1 Message Date
Andreas Lauser
8fbf0ed060 update the reference solution for the reservoir problem
the solution itself did not change, but yesterday's change of the
phase indices of the black-oil fluid system caused the fields to be
outputted in different order.
2015-09-03 00:34:20 +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
Robert Kloefkorn
227bfadce9 Merge remote-tracking branch 'andlaus/grid_adaptivity_fixes' into PR/ewoms-can-use-dune-fem 2015-08-06 18:07:35 +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
Robert Kloefkorn
565c10683d Merge branch 'PR/ewoms-can-use-dune-fem' into HEAD 2015-08-06 12:42:54 +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
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
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
ff9e5ba4cf adaptation works, needs revision. 2015-06-09 23:59:57 +02:00
Andreas Lauser
7f942c7100 fix the regressions caused by PR#20
The most important issue was that PR#20 removed the possibility to use
a test driver script. In eWoms, this script is responsible for
(fuzzily) comparing the results of the test runs with reference
solutions, to test the simulators in parallel and compare the results,
and to make sure that the --help command continues to work as
intended.

the approach taken to bring this functionality back is to specify the
test driver script and its parameters using the new macro
'opm_set_test_driver(${DRIVER_COMMAND} ${DRIVER_DEFAULT_ARGUMENTS})'
before the first call to 'opm_add_test'. If no test driver is
specified, the binary is run 'naked', so nothing should change in this
case.

this patch requires the changes for opm-cmake to be merged first.
2015-05-27 16:38:24 +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
Andreas Lauser
216508ef13 use the infrastructural code using its new locations 2015-04-28 13:38:28 +02: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
Andreas Lauser
a58fd3186e update the reference solution for the reservoir problem
seems like the changes for vaporized oil caused it to be
different. Since SPE1 and SPE9 still deliver the same result and the
new reference solution is closer to what one would expect, the new
result is probably the correct one...
2015-02-12 11:40:56 +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
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
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
Andreas Lauser
df60eecb2c fix build by always including the DGF parser for a given grid 2014-12-16 12:39:32 +01:00
Andreas Lauser
d1e8bbd36b Merge pull request #11 from dr-robertk/PR/remove-stupid-sgrid-warning
DGFParser: avoid SGrid deprecation warning.
2014-12-16 11:54:53 +01:00
Robert K
0b5db84085 DGFParser: avoid SGrid deprecation warning. 2014-12-16 10:39:35 +01:00
Andreas Lauser
a74a4d2f6e fix the dune 2.4 deprecation warnings
mainly this boils down to mapper.map(e) -> mapper.index(e)
2014-12-12 14:32:29 +01:00
Andreas Lauser
a8d5c72248 move everything which is ECL specific to applications/ebos
this helps to keep the core blackoil model code lean and mean and it
is also less confusing for newbies because the ECL blackoil simulator
is not a "test" anymore.

in case somebody wonders, "ebos" stands for "&eWoms &Black-&Oil
&Simulator". I picked this name because it is short, a syllable, has
not been taken by anything else (as far as I know) and "descriptive"
names are rare for programs anyway: everyone who does not yet know
about 'git' or 'emacs' and tells me that based on their names they
must be a source-code managment system and an editor gets a crate of
beer sponsored by me!
2014-11-28 13:01:32 +01:00
Andreas Lauser
1c35bb702f ECL problem: set the connate water saturation 2014-11-27 18:59:40 +01:00
Andreas Lauser
6496824546 ECL problem: make the code which converts gas to oil saturations a bit easier to read
This code is required in the first place because opm-material always
specifies all parameters in terms of the wetting saturations while the
gas is the non-wetting phase in a gas-oil system.
2014-11-27 18:42:19 +01:00
Andreas Lauser
a6d5223113 write ECL summary files for wells
so far, the units of the values written to disk are always what
Eclipse calls METRIC and the number of supported quantities is
somewhat limited...
2014-11-25 17:03:20 +01:00
Andreas Lauser
d0c14f7406 add the general framework for specifying auxiliary equations.
this does not disrupt the block nature of the linearized matrix
(i.e. Dune::BCRSMatrix is still used), but if the number of auxiliary
equations is smaller than that of the "main" discretization, the
superfluous equations are padded. if the number of additional
equations are larger than that of the equation, additional DOFs are
added.
2014-11-18 17:51:38 +01:00
Andreas Lauser
3a892ff896 improve the ECL well model
the biggest change is that it is now based on a new approach: the well
model now always calculates the bottom hole pressure for the full well
when asked for a source term. This change makes it possible to
implement cross flow within wells properly and should also make the
well model physically correct.

Also, the well model now uses the connection transmissibility factor
which makes it possible to use this quantity if it is specified by the
deck...
2014-11-18 17:51:38 +01:00
Andreas Lauser
935de71a18 ECL: move the grid manager to ewoms/io/
this class is probably useful for problems other than EclProblem and
the EclWellsManager already is at a generic place...
2014-10-06 12:24:17 +02:00
Andreas Lauser
e9ef352d80 powerinjection problem: make it work for 2D and 3D grids
and some minor variable renames in the base gradient calculator so
that a delta won't be mistaken for a derivative...
2014-10-01 13:37:55 +02:00
Joakim Hove
1c60dd2ec9 Merge pull request #7 from andlaus/table_improvements
adapt the the table related API changes of opm-parser
2014-09-19 15:27:46 +02:00
Andreas Lauser
5ca84d208f adapt the the table related API changes of opm-parser 2014-09-17 13:43:47 +02:00
Andreas Lauser
fa2f2cf9ed TPFA: change the way how gradients are calculated
before this, gradients had the direction of the face between two
finite volumes, now they exhibit the direction of the two
FV-centers.

For axis-aligned grids the result is identical for interior faces, but
it is different for boundary faces or if faces are not
axis-aligned. This patch fixes the SPE9 troubles with anisotropic
permeabilities on tilted grids...
2014-09-03 17:01:22 +02:00