Commit Graph

508 Commits

Author SHA1 Message Date
Andreas Lauser
0d2bcdf610 some smallish parallel ctest improvements
the goal is to make it faster on computers with many cores: The
easiest way to do this is to ensure that the longest running tests are
not taking too much time and that they need about the same time. Thus
this patch contains the following changes which limits the CPU time
taken by each test to about two minutes in debug mode on my machine:

 - the water-air problem using the non-isothermal primary variable
   switching model now uses an 16x16 instead of a 32x32 grid. as a
   compensation it now runs for a year instead of 5000 seconds and the
   global grid refinement is now tested.
 - the end time of the lens problem ctests is now 3000 instead of
   30000 seconds. The binary itself does not change at all.
 - sort the tests in the CMakeLists.txt roughly in the order of their
   required time. (this will cause ctest not having to wait for long
   running test which were started late for too long.)
2014-09-03 13:09:47 +02:00
Andreas Lauser
e9205777fc fix output of tensorial VTK fields in the MPI-parallel case
this implies a few new reference solutions...
2014-08-31 21:11:49 +02:00
Andreas Lauser
1af65c8ba2 ecl grid manager: adapt to slightly changed Dune::CpGrid API 2014-08-25 13:34:32 +02:00
Andreas Lauser
f5baa7d760 test the tensor-vtk-output code a bit by enabling to write the intrinsic perms for the lens problem
this requires new reference solutions...
2014-08-22 21:53:27 +02:00
Andreas Lauser
9c57bfcf3c ECL problem: make it compile with Scalar != double
opm-parser always returns vector<double> as data fields...
2014-08-17 15:12:06 +02:00
Andreas Lauser
b76a77128c adapt to the reference pressure != surface pressure change in opm-material 2014-08-12 15:49:47 +02:00
Andreas Lauser
9d7cac49f5 remove most spurious semicolons
hopefully "most" means "all of them"...
2014-08-11 16:46:09 +02:00
Andreas Lauser
360246401e remove unused typedef, constants and enums
most of them anyway...
2014-08-11 14:24:13 +02:00
Andreas Lauser
9bbcb0d228 remove accidentally left over include
it was used for debugging intersection mappers. to make this include
work, dune-cornerpoint must be available and that the intersection
mapper PR must be merged.
2014-08-07 10:55:58 +02:00
Andreas Lauser
2922a8e3a0 use finishInit() properly for all problems
this means that all code which could potentially throw an exception is
moved to this method(). (In particular FluidSystem::init() proved
troublesome in the past.) Besides avoiding segmentation the faults
which stem from exceptions thrown in constructors, this also has the
advantage that simulations which spend a noticable amount of time to
initialize stop at the "correct" place, i.e. after the "Finish init of
the problem" message was printed by the simulator...
2014-08-06 16:31:48 +02:00
Andreas Lauser
6ff728565b ECL problem: use spline based two-phase material laws
... instead of piece-wise linear ones. This improves convergence rates
slightly.
2014-08-06 13:52:53 +02:00
Andreas Lauser
cb8668ce0a Black Oil model: implement support for multi-region PVT tables
this requires opm-material commit 12a6d1f
2014-08-05 16:52:52 +02:00
Andreas Lauser
35379d7575 ECL problem: fix "unused variable" warnings for optimized builds 2014-08-05 00:21:18 +02:00
Andreas Lauser
2ff8cdacf8 ECL simulator: add a well model based on the Peaceman approach
not yet implemented: group controls, changing well control modes after
a time step. (The latter should be relatively straight-forward.)
2014-08-04 20:29:54 +02:00
Andreas Lauser
8c457f3f78 ECL problem: write the initial solution again
this regressed after time step index of the initial solution was
changed from 0 (actually, this was also 0 for the first time step...)
to -1 in b30af664.
2014-08-04 17:16:48 +02:00
Andreas Lauser
6d6640fc9d use dune-alugrid instead of the old version from dune-grid if the module is available 2014-07-30 12:42:32 +02:00
Andreas Lauser
9e39939e15 ECL problem: set the first time step of the each epsiode to the report step size 2014-07-28 18:26:58 +02:00
Andreas Lauser
6f429d0590 ECL problem: move the code which potentially throws into the finishInit() method
this avoids some segfaults due to half constructed objects if an
exception is thrown on initialization.
2014-07-25 15:31:01 +02:00
Andreas Lauser
d59f32edc4 reservoir problem: update reference solution
this is necessary because of 35b66fb46074b9872126ead6efe78283176978b7...
2014-07-24 18:50:57 +02:00
Andreas Lauser
cad639ec21 adapt to the reworked blackoil fluid system and function tabulation classes
in particular, the density of undersaturated oil is now the one
specified by the PVTO keyword...
2014-07-24 14:59:34 +02:00
Andreas Lauser
4c44c0fa87 use the checkConservativeness() method in all appropriate test problems
"appropriate" basically means "does not use constraints", as
constraints do not care about the conservation quantities...
2014-07-22 12:41:56 +02:00
Andreas Lauser
eefecea33f FV discretizations: add checkConservativeness() debugging method
this method checks that the difference in the storage terms before and
after a time step is the same as the accumulated fluxes over the
domain boundary plus the source terms.
2014-07-21 21:25:27 +02:00
Andreas Lauser
f7982e15ce parallelization: treat off-diagonal matrix entries on the process boundaries properly
this is required so that the element-centered finite volume method
does not handle each partition of the domain separately. (i.e. so that
fluxes accross faces on the process boundaries are considered) mea culpa!

The fix for this is to also include these entries in the matrix which
uses domestic indices. This required some rather extensive changes to
the blacklisting mechanism as for this it must be possible to
translate the index of a blacklisted entity (i.e., an entity in a
ghost or an overlap cell) to a domestic index (i.e., the corresponding
index in the algebraic overlap).

Note that the code for algebraic overlaps is *fun* and the person who
wrote it should be tarred and feathered. (*ouch* ;)) Seriously: Better
approaches than "lets-throw-this-away-and-use-grid-overlaps" are
deeply appreciated. (The grid overlap is not really useful in Dune
because only "Mickey Mouse grids" like Dune::YaspGrid support it.)
2014-07-21 21:25:27 +02:00
Andreas Lauser
99430085bd replace a few now-incorrect "Vcfv" prefixes in the comments 2014-07-21 21:21:42 +02:00
Andreas Lauser
99779a52e8 problems: fix some rename-fallout for the postTimeStep() to endTimeStep() drive 2014-07-17 16:54:05 +02:00
Andreas Lauser
899f25a40a add/rename reference solutions for the parallel lens problem tests 2014-07-12 11:24:30 +02:00
Andreas Lauser
ee8e522db8 lens problem: add an ECFV variant 2014-07-11 20:27:44 +02:00
Andreas Lauser
e0a9f58bfe fix the parallel AMG linear solver
... and actually use it for the lens problems. This seems to have been
disabled for debugging and later it was probably forgotten to turn it
on again. This led to some minor bit-rot in that code...
2014-07-11 20:26:15 +02:00
Andreas Lauser
c309145085 newton method: make the tolerance easily settable at run time
The reason for this is to be able to modify the tolerance according to
grid size: The NewtonTolerance parameter has been renamed to
NewtonRawTolerance and for the porous media models is divided by the
square root of the volume of the smallst finite volume in the grid to
get the final tolerance for the Newton method. This is necessary
because very large grids need to achive a higher volumetric accuracy
in the residual than very small ones...
2014-07-11 15:47:06 +02:00
Andreas Lauser
f6fc258b70 rework the model and problem initialization procedure
basically the init() method was split into a finishInit() method which
fills the data structures allocated in the constructor with meaningful
data and into applyInitialSolution() which does just that (and no
more!)
2014-07-11 20:01:54 +02:00
Andreas Lauser
be54eee3c2 ECL problem: fix the episode handling code
now the report steps specified in the deck are adhered to...
2014-07-09 12:03:50 +02:00
Andreas Lauser
1d9d03e0fd ECL problem: fix up calculation of the initial condition 2014-07-08 10:16:29 +02:00
Andreas Lauser
566c813820 ECL problem: Use Cartesian element indices for more fields from the deck
probably there are still a few missing...
2014-07-08 10:16:17 +02:00
Andreas Lauser
87316b2cdc reservoir test problem: change the reference solution
this became necessary after the recent correction of how the Rs value
is considered...
2014-07-08 10:13:55 +02:00
Andreas Lauser
9704b89036 ECL problem: use logically cartesian cell indices to retrieve data from the deck
Before, it only worked if all cells were active. Also, take the NTG
and MULTPV keywords into account and prepare for permeability
multipliers.
2014-07-03 15:13:10 +02:00
Andreas Lauser
8e0e9e9d31 rename "(Volume|Flux)Variables" to "(In|Ex)tensiveQuantities"
"intensive" means that the value of these quantities at a given
spatial location does not depend on any value of the neighboring
intensive quantities. In contrast, "extensive" quantities depend in
the intensive quantities of the environment of the spatial location.

this change is necessary is because the previous nomenclature was very
specific to finite volume discretizations, but the models themselves
were already rather generic. (i.e., "volume variables" are the
intensive quantities of finite volume methods and "flux variables"
are the extensive ones.)
2014-06-24 18:24:09 +02:00
Andreas Lauser
536370fc96 ECL problem: Use Opm::EclipseState instead of the raw deck where possible
this means that property modifiers are now automatically supported...
2014-06-04 18:05:12 +02:00
Andreas Lauser
bec1b8ba96 grid managers: get rid of gridPointer(), make them robust to exceptions during construction 2014-05-30 16:52:58 +02:00
Andreas Lauser
44064ba84f blackoil model test: update reference solution
For some reason, it changed because of the transition to the primary
variable switching approach. Because I trust the new result more than
the old, let's make this the new reference solution.
2014-05-30 13:53:36 +02:00
Andreas Lauser
d00027b55a ECL problem: fix the episode handling
now the episodes seem to match the report steps...
2014-05-30 13:53:36 +02:00
Andreas Lauser
18ee64fe2f clean up the richards model and follow the recent renames of opm-material 2014-05-08 17:18:48 +02:00
Andreas Lauser
69e6fb60a2 rename the tests/grids folder to tests/data
... since the "grids" in that folder are slowly accumulating
information. (e.g. the ART grid for the fracture mapper and ECLIPSE
decks in the future.)
2014-05-08 15:31:32 +02:00
Andreas Lauser
7d7aa7385e add parameter to also write the "mini steps" instead of just the "report steps" 2014-05-02 16:08:22 +02:00
Andreas Lauser
6f09c94d60 test driver: print the full command used for each test
this simplifies analyzing failed tests in the debugger...
2014-05-02 16:06:46 +02:00
Andreas Lauser
f8bcaea67d ECL problem: use the default material law for Eclipse and read the data from the deck
TODO: material laws other than the default one...
2014-04-28 19:12:53 +02:00
Andreas Lauser
f3e2454b4e test driver script: fix off-by-one error when calculating the number of timesteps
(the initial solution also counts but was not counted.)
2014-04-27 21:41:03 +02:00
Andreas Lauser
81ae2566d7 finger grid manager: call the finalizeInit_() method of the base class
this grid manager was forgotten to be adapted and fixes a crash...
2014-04-27 21:38:09 +02:00
Andreas Lauser
42316a824e ECL problem: set the start time to the one specified in the deck 2014-04-27 19:12:32 +02:00
Andreas Lauser
4677e0f98b ECL problem: return the stem of the name of the deck file in the name() method
this causes output files to have the expected names, e.g. "SPE9" or
"NORNE" instead of "ECL"...
2014-04-27 19:12:32 +02:00
Andreas Lauser
c9dae3c663 make the name() method of problems non-static again
this allows to easily specify the problem name at runtime.
2014-04-27 19:12:32 +02:00