Commit Graph

828 Commits

Author SHA1 Message Date
Andreas Lauser
44339935e4 Merge pull request #106 from andlaus/linear_solver_scalar
make it possible to specify a separate floating-point type of the linear solver
2016-12-07 15:05:41 +01:00
Andreas Lauser
b58c1a5ad4 lens_immiscible_ecfv: use "float" values for the linear solver
it seems to work fine and the linear solver gets quite a bit faster.
2016-12-06 22:48:50 +01:00
Andreas Lauser
7d01ce1ed9 Merge pull request #99 from andlaus/fix_build
adapt forgotten #include statement for Unused.hpp
2016-11-30 14:36:05 +01:00
Andreas Lauser
0724855289 adapt forgotten #include statement for Unused.hpp 2016-11-30 14:35:14 +01:00
Andreas Lauser
01326ad3c7 adapt to the move of Unused.hpp from opm-material to opm-common 2016-11-22 14:41:07 +01:00
Arne Morten Kvarving
c66fb747aa Merge pull request #85 from andlaus/install_applications_headers
ebos: also install the headers of the applications subdirectory
2016-11-11 15:12:57 +01:00
Andreas Lauser
923605a427 move all applications into their top-level directory
thanks to [at]akva2 for the suggestion.
2016-11-11 15:04:04 +01:00
Andreas Lauser
fcc0a1f423 Merge pull request #84 from andlaus/fix_signedness_issue
fix a signedness issue when retrieving parameters
2016-11-10 20:20:53 +01:00
Andreas Lauser
6fcb16c0c9 fix a signedness issue when retrieving parameters
the issue only bites if the tests are compiled in debug mode, so it
has only been discovered now.
2016-11-10 20:19:46 +01:00
Andreas Lauser
313175cfd0 Merge pull request #83 from andlaus/fix_pedantic_warnings
fix most pedantic compiler warnings in the basic infrastructure
2016-11-09 15:56:02 +01:00
Andreas Lauser
ec4b6c82dd fix most pedantic compiler warnings in the basic infrastructure
i.e., using clang 3.8 to compile the test suite with the following
flags:

```
-Weverything
-Wno-documentation
-Wno-documentation-unknown-command
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
-Wno-undef
-Wno-padded
-Wno-global-constructors
-Wno-exit-time-destructors
-Wno-weak-vtables
-Wno-float-equal
```

should not produce any warnings anymore. In my opinion the only flag
which would produce beneficial warnings is -Wdocumentation. This has
not been fixed in this patch because writing documentation is left for
another day (or, more likely, year).

note that this patch consists of a heavy dose of the OPM_UNUSED macro
and plenty of static_casts (to fix signedness issues). Fixing the
singedness issues were quite a nightmare and the fact that the Dune
API is quite inconsistent in that regard was not exactly helpful. :/

Finally this patch includes quite a few formatting changes (e.g., all
occurences of 'T &t' should be changed to `T& t`) and some fixes for
minor issues which I've found during the excercise.

I've made sure that all unit tests the test suite still pass
successfully and I've made sure that flow_ebos still works for Norne
and that it did not regress w.r.t. performance.

(Note that this patch does not fix compiler warnings triggered `ebos`
and `flow_ebos` but only those caused by the basic infrastructure or
the unit tests.)

v2: fix the warnings that occur if the dune-localfunctions module is
    not available. thanks to [at]atgeirr for testing.
v3: fix dune 2.3 build issue
2016-11-09 14:54:22 +01:00
Andreas Lauser
9b53930557 add a second reference solution for the test of the adaptive finger problem
for some reason, there are differences between my laptop with
optimizations and my workstation in debug mode. since the results look
_very_ similar in paraview, let's treat them both as equally valid.
2016-11-03 21:26:33 +01:00
Andreas Lauser
79a838e7c8 fix the grid adaptivity functionality
Note that this is rarely tested because it requires the availability
of dune-alugrid and dune-fem.
2016-11-02 17:33:20 +01:00
Andreas Lauser
00a907962b co2injection problem: increase tolerance for conservativeness check
this fixes a few test failures in debug mode with quadruple precision
math enabled.
2016-11-02 16:37:57 +01:00
Andreas Lauser
b31e0c3d2f fix build for the unit tests if dune-alugrid is available
it failed because the stencils now require to specify the DOF-mapper
externally...
2016-11-02 13:33:22 +01:00
Robert Kloefkorn
a6d8748105 [feature] Make mapper inside stencil a reference to avoid re-computation of offsets when ElementContext is created. 2016-10-30 15:33:20 +01:00
Andreas Lauser
aa8aca077d test driver: add hack to only compare the output of the actual help message
it seems like some libraries print some mutable garbage to stdout on
startup or shutdown which causes test failures.
2016-10-28 12:57:02 +02:00
Andreas Lauser
bbd545c358 reservoir problem: reduce the raw tolerance of the newton method to 10^-6
10^-4 lead to sporadic results if the final tolerance of the solution
really was 10^-4. (it currently is usually better because each time
step experiences an additional update after the Newton method deems it
to be converged.)
2016-10-14 18:26:55 +02:00
Andreas Lauser
db073ed7e3 lens problem: set the residual phase saturations again
this makes the results of the lens test problem match with those
obtained using dumux exactly. (if the time step sizes are forced to be
the same.)
2016-10-03 21:04:12 +02:00
Andreas Lauser
4019896b84 Merge pull request #70 from andlaus/optional_dune-localfunctions
make dune-localfunctions optional
2016-09-22 17:19:22 +02:00
Andreas Lauser
f0e5a25126 make the dune-localfunctions dependency optional
as a side effect, two-point gradients are now used by default for the
vertex-centered finite volume discretization. (because P1-FE gradients
require the FE shape functions and those are provided by
dune-localfunctions.)

as a consequence, this triggered an update of quite a few reference
solutions: the differences are measurable, but as far as I can see,
the results are compareable. also, this commit regresses the
performance of the test for the reservoir problem with the vertex
centered finite volume scheme a bit. While I would not bet a house on
the reason, I'm pretty sure that this is caused by the switch from P1
FE gradients to two-point ones.

Note that even though I'm the author of this patch, it shamelessly
rips off substantial parts of the @dr-robertk's patch:
https://github.com/OPM/ewoms/pull/69
2016-09-22 15:23:14 +02:00
Andreas Lauser
f90d1058a2 remove the navier-stokes test problem
this problem did not work properly anyway: it oscillated like hell
(very likely to the spatial discretization used being inappropriate)
and it did not even converge if more than a single iteration was
required.
2016-09-22 14:58:19 +02:00
Andreas Lauser
50e63422ba some minor cleanups
these are:

- remove the unused methods "baseEpsilon()" and "numericEpsilon()"
  from FvBaseAdLocalLinearizer. (they are only meaningful in the
  context of finite differences.)
- correct/update some comments
- replace most occurences of Toolbox::createConstant() with
  assignments to floating point values to unclutter the code a bit.
2016-09-06 18:22:13 +02:00
Andreas Lauser
c4b3864bca VTK output: start writing at sequence number 0
i.e., in most cases the initial solution will be written into file
$SIM_NAME-00000.vtu and each time step will be written to the file
with the same number as the one printed during the simulation. (note
that this statement does not apply if the visualization files are not
written for all time steps.)
2016-08-13 12:41:59 +02:00
Andreas Lauser
17670977f0 fix the reservoir problem tests with the blackoil model
this broke with 94006531. I actually fixed the reservoir problem
yesterday before pushing 94006531 but forgot to include the fix in my
local branch before pushing. Stupid me!
2016-07-12 19:12:22 +02:00
Andreas Lauser
344d3adf1a Merge pull request #58 from andlaus/localad_to_densead
Localad to densead
2016-06-06 14:03:23 +02:00
Andreas Lauser
82b8335b6e rename "local AD" to "dense AD" 2016-06-04 23:56:47 +02:00
Andreas Lauser
4d37a50c83 remove support for the legacy ALUGrid library provided by dune-grid
now, the dune-alugrid module is required if these tests are to be
run. (note that due to the fact that the OPM build system has not been
detecting the legacy alugrid library for a while, the practical
implications of this patch should be small to non-existant.)
2016-05-04 13:22:51 +02:00
Andreas Lauser
1d38555f92 adapt to the removal of the tags for local-AD evaluations 2016-04-16 23:23:44 +02:00
Andreas Lauser
b31ceff970 adapt to the recent opm-material API change w.r.t. the ParameterCache
this is necessary to allow non-trivial ParameterCache objects with
Local-AD evaluations. So far, the only fluid system in opm-material
which needs this is the Spe5 fluid system (which is unused by eWoms),
but sooner or later this change would have been required anyway.

Note that it is possible that this patch is errornous if Evaluation !=
Scalar for a fluid system that uses a non-trivial ParameterCache
object, but the errors should be relatively easy to fix...
2016-04-15 18:44:14 +02:00
Andreas Lauser
8a420748f5 use automatic differentiation for the co2injection_flash_ecfv test
i.e., the simulation for the CO2-injection problem which uses the
flash solver to handle its thermodynamics and element centered finite
volume method as the spatial discretization. The intention is to
ensure that opm-material's NcpFlash constraint solver works with
non-primitive types as Scalars. (or rather: that it will be quickly
detected if it breaks in that case.)
2016-04-08 14:29:26 +02:00
Andreas Lauser
290584dddc clean up the licensing preable of source files
the in-file lists of authors has been removed in favor of a global
list of authors in the LICENSE file. this is done because (a)
maintaining a list of authors at the beginning of a file is a major
pain in the a**, (b) the list of authors was not accurate in about 85%
of all cases where more than one person was involved and (c) this list
is not legally binding in any way (the copyright is at the person who
authored a given change, if these lists had any legal relevance, one
could "aquire" the copyright of the module by forking it and removing
the lists...)

the only exception of this is the eWoms fork of dune-istl's solvers.hh
file. This is beneficial because the authors of that file do not
appear in the global list. Further, carrying the fork of that file is
required because we would like to use a reasonable convergence
criterion for the linear solver. (the solvers from dune-istl do
neither support user-defined convergence criteria not do the
developers want support for it. (my patch was rejected a few years
ago.))
2016-03-17 13:20:20 +01:00
Andreas Lauser
4b3d2edad1 remove support for Dune 2.2
this has slowly become a hassle to support (i.e., it cluttered the
source with many #if's and in particularly the code was not tested
with Dune 2.2 on a regular basis). Also, Dune 2.3 has been out since
more than two years, so IMO it is not asked too much to ask people who
want to use the latest and greatest version of ewoms to upgrade their
Dune.
2016-02-28 00:36:08 +01:00
Andreas Lauser
7b223ebef1 add a unit test for the blackoil fluidstate
this requires that the meat of the unit test for fluid states in
opm-material is moved to a publicly accessible place...
2016-02-01 17:25:14 +01:00
Andreas Lauser
a128d49a6d lens problem: some small performance improvements
the changes enable the storage cache and the intensive quantity cache
for all simulators of the lens problem and automatic differentiation
for the one which uses the ECFV discretization.

while the performance improvements are not worthwhile for the problem
in its default incarnation (using automatic diffentiation even
slightly degrades performance), it speeds up linearization by about
30% if the grid exhibits 16 times as many elements (e.g. by passing
the --grid-global-refinements=2) parameter.
2016-01-23 20:35:20 +01:00
Andreas Lauser
fd387777b5 make all tests and ebos compile when selecting float or quad as Scalar
at least, they compile as far as eWoms is concerned. Some external
libraries (in particular everything which uses SuperLU) still have
issues.

Also, there seem to be issues with the precision that is achievable
by the Newton method when using float.
2016-01-17 21:15:21 +01:00
Andreas Lauser
855abc09fc change the default grid used for the lens problem back to Dune::YaspGrid
this is because the reference solution changes for newer versions of
dune-alugrid and one of the main purposes of the lens problem is to
allow comparison with Dumux relatively easily. (Dumux usese YaspGrid
for its version of the lens problem.)
2016-01-17 21:15:03 +01:00
Andreas Lauser
3e58df254b add alternative reference solutions for problems that use dune-alugrid
dune-alugrid >= 2.4 changed the element ordering changed from
lexicographical ordering to one defined by a space filling curve. the
old reference solutions are still valid (and obtained if older
versions of dune-alugrid are used) and are thus retained.
2016-01-17 21:15:01 +01:00
Andreas Lauser
0980cc5ef7 Merge pull request #26 from dr-robertk/PR/ewoms-can-use-dune-fem
Ewoms can use dune fem.
2016-01-09 12:26:26 +01:00
Robert Kloefkorn
9c38271ea4 FingerProblem: use shared_ptr to avoid mem leak. 2016-01-08 12:27:05 -07:00
Robert Kloefkorn
47c9b39e3b FingerProblem: bug fix, store pointers of MaterialLaw since copying seems not ot work.
LensProblem: use structuredgridmanager from ewoms/io.
2016-01-08 12:08:04 -07:00
Robert Kloefkorn
c10d4905f7 LensProblem and FingerProblem: use StructuredGridManager. 2016-01-07 15:59:31 -07:00
Robert Kloefkorn
9dd0ebff6b FingerGridManager: use DGF Parser. 2016-01-07 14:55:35 -07:00
Robert Kloefkorn
56b6d4a129 FingerProblem: avoid creating of unused empty grid. 2016-01-07 13:57:37 -07:00
Robert Kloefkorn
7369f2d3b4 FingerProblem: fix wrong heuristix file. 2016-01-07 12:51:31 -07:00
Robert Kloefkorn
503b5038f6 FingerProblem: bug fix, don't use ALUGrid's SFC reordering. 2016-01-07 12:04:18 -07:00
Robert Kloefkorn
b9c0368915 FingerProblem: remove warning. 2016-01-07 11:32:54 -07:00
Robert Kloefkorn
c36cba7660 FingerProblem: restore default values. 2016-01-06 16:41:29 -07:00
Robert Kloefkorn
8526c6c0ea Merge remote-tracking branch 'upstream/master' into PR/ewoms-can-use-dune-fem 2016-01-06 16:21:17 -07:00
Andreas Lauser
877eccb4cc reservoir problem: various improvements
- start with an initial "do nothing" episode of 100 days to get
  hydrostatic conditions.
- after that, produce oil and inject water for 900 days. (thereafter
  the reservoir will be empty.)
- make the problem work with element centered FV discretizations. this
  requires to make the width of the injection/production areas at
  least one cell wide. This is achieved by using the new "WellWidth"
  property which specifies the with of wells as a factor of the total
  domain width.
- make the problem work with fully compositional models. This implied
  to calculate the full composition for the fluid states which specify
  the initial condition and the thermodynamic state at the wells.
- add tests and reference solutions for any combination of the {ECFV,
  VCFV} discretizations and the {black-oil, NCP} models.
2016-01-05 11:54:27 +01:00