Commit Graph

1209 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
5d0f654443 Add class NewtonIterationBlackoilInterleaved.
Initially it is just a copy of the NewtonIterationBlackoilCPR class.
Also, add use_interleaved parameter to use the class.
2015-06-19 10:53:32 +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
2d7045b9cd remove shared_ptr. 2015-06-18 13:29:17 +02:00
Robert Kloefkorn
ee47f2887b define preprocessor variables to 1. 2015-06-17 16:34:48 +02:00
Robert Kloefkorn
10725c0b70 Merged main program for flow and flow_cp to avoid code duplication. 2015-06-17 13:00:37 +02:00
chflo
08a079b4ff OPM-212: Added optional cmd parameter override of IOCOnfig Restart setting 2015-06-15 15:36:57 +02:00
Robert Kloefkorn
ff9e5ba4cf adaptation works, needs revision. 2015-06-09 23:59:57 +02:00
Kai Bao
f92459807c adding flags for SHRATE to Model and Simulator. 2015-06-05 15:25:23 +02:00
Kai Bao
cf17dbea38 correct the order of PLYSHLOG and polymer flags.
In flow_polymer.cpp
2015-06-01 14:36:41 +02:00
Kai Bao
c6e240daae Adding the flag for PLYSHLOG keyword. 2015-06-01 10:52:49 +02:00
Atgeirr Flø Rasmussen
79b861db10 Silence multiple warnings. 2015-05-29 16:31:32 +02:00
Andreas Lauser
2b085e0062 fully implicit simulators: various cleanups
these are mostly stylistic: the function bodies of most new methods
have been moved to the _impl.hpp file and the Simulator classes are
now templated on the grid type, so it should be not too hard to switch
them to Dune::CpGrid.
2015-05-29 12:59:40 +02:00
Andreas Lauser
d27fb2bc45 properly use the SimulatorBase class for SimulatorFullyImplicitBlackoilPolymer and SimulatorFullyImplicitCompressiblePolymer 2015-05-28 13:56:07 +02:00
Andreas Lauser
0f1a7a16d7 unify the run() methods and the constructors of the 2p-compressible and the flow_polymer with the one from flow 2015-05-28 13:56:07 +02:00
Andreas Lauser
a816ab9a0c start to use the SimulatorBase class for SimulatorFullyImplicitCompressiblePolymer
since SimulatorFullyImplicitCompressiblePolymer is now a template, the
opaque pointer stuff is also removed and the contents of the .cpp file
basically became _impl.hpp. for SimulatorFullyImplicitBlackoilPolymer,
the opaque pointer stuff was removed for the same reasons as for
SimulatorFullyImplicitBlackoil.

the actual unification of code is not yet done, but this patch points
out the direction of where this will go.

Also note that some synchronization with the ordinary blackoil
simulator (FLOW) was necessary to make it compile.

Finnally, the parser currently likes to throw an exception (also for
the opm-polymer master) when eating the opm-data polymer test
case. This prevented me from properly testing this patch:

```
and@heuristix:~/src/opm-polymer|simplify_simulator > ./bin/flow_polymer deck_filename=/home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA

================    Test program for fully implicit three-phase black-oil flow     ===============

---------------    Reading parameters     ---------------
deck_filename found at /, value is /home/and/src/opm-data/polymer_test_suit/simple2D/2D_THREEPHASE_POLY_HETER.DATA
output not found. Using default value 'true'.
output_dir not found. Using default value 'output'.
Program threw an exception: IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
terminate called after throwing an instance of 'std::runtime_error'
  what():  IOConfig: Reading GRIDFILE keyword from GRID section: Output of GRID file is not supported
Aborted
```
2015-05-28 13:56:07 +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
Atgeirr Flø Rasmussen
98fd744c29 Merge pull request #100 from edbru/OPM-186
Now also flow_polymer.cpp in project opm-polymer takes the NOSIM keyword...
2015-05-18 12:53:10 +02:00
Atgeirr Flø Rasmussen
052cf09495 Merge pull request #378 from blattms/less-verbose-parallel-runs
Prevent printing stats on more than 1 process for CPR.
2015-05-15 15:38:55 +02:00
Markus Blatt
f4ff1ea4c4 Added missing explicite braces around if branch. 2015-05-15 15:10:42 +02:00
Markus Blatt
0cd174f246 Adds spaces to binary operator. 2015-05-15 14:58:06 +02:00
Markus Blatt
f0691504af Prevent printing stats on more than 1 process for CPR. 2015-05-08 13:15:59 +02:00
Markus Blatt
1fbe8e3b6d Distribute the geology information.
As it turns out initializing the Geology on a distributed grid
result in wrong values for e.g. saturation. Therefore with this
commit we resort to initializing the global geology and distribute
it using communication.
2015-05-07 12:21:06 +02:00
Atgeirr Flø Rasmussen
db06fa48f5 Merge pull request #374 from babrodtk/throw_causes_core_dumped
Changed throw in main() to return EXIT_FAILURE
2015-05-06 12:41:39 +02:00
babrodtk
aab8d2a008 Added missing include 2015-05-06 08:38:49 +02:00
babrodtk
fb99528673 Changed OPM_THROW to return EXIT_FAILURE in flow_cp.cpp 2015-05-06 08:38:18 +02:00
babrodtk
9edbf38439 Changed throw in main() to return EXIT_FAILURE 2015-05-05 15:48:58 +02:00
babrodtk
9f23ce7dbc Reformated flow header to fit 80 columns 2015-05-05 15:25:55 +02:00
Markus Blatt
c57a10ff76 [bugfix] Use full set of processes to determine whether to redistribute or not.
Previously we used the size of the communicator within the CpGrid to check
whether we are running in parallel and need to redistribute the grid.
Unfortunately, this is MPI_COMM_SELF until we actually loadbalance and redistribute.
Therefore we now use the size of the MPI_Helper (i.e. MPI_COMM_WORLD) which
gives us the number of all available processes.

Note that the wrong behaviour was provoked with 656e5de331. Before that we
redistributed in any case which luckily included runs with more than 1 process.
2015-04-30 14:02:13 +02:00
Andreas Lauser
216508ef13 use the infrastructural code using its new locations 2015-04-28 13:38:28 +02:00
Edvin Brudevoll
58367e20fd Now also flow_cp.cpp takes the NOSIM keyword into account. 2015-04-28 10:22:36 +02:00
Edvin Brudevoll
7aa8d91f2d New commit, NOSIM keyword 2015-04-28 10:17:44 +02:00
Edvin Brudevoll
0d1cce2f26 Support for the NOSIM keyword. 2015-04-28 10:17:44 +02:00
Atgeirr Flø Rasmussen
2eb06d6d6c Use more appropriate end-of-sim timing output. 2015-04-21 10:42:40 +02:00
Kai Bao
807c528bef Removing a white space. 2015-04-15 16:56:05 +02:00
Kai Bao
fc36bc866a Accept single deck filename as command line argument. 2015-04-15 16:48:36 +02:00
Kai Bao
8c67dddf90 Adding the startup message for flow-polymer.
Three letters wider than flow.
2015-04-15 16:38:56 +02:00
Edvin Brudevoll
d300cb6eb6 Now also flow_polymer.cpp in project opm-polymer takes the NOSIM keyword into account. 2015-04-15 14:17:40 +02:00
Atgeirr Flø Rasmussen
378f5d7319 Make some programs stricter about parameter parsing.
This applies to programs which always require at least one parameter.
2015-04-14 15:32:19 +02:00
Atgeirr Flø Rasmussen
e44ef09212 Accept single deck filename as command line argument.
Any argument that is not handled by the parameter parser will
be assumed to be a deck filename. Only one is accepted, and if
given, it will override any deck_filename=<something> on the
command line or in parameter files.

FYI:
The parameter parser handles arguments of the following types:
    key=value (note no space around = or in strings)
    parameterfile.xml
    parameterfile.param
2015-04-14 13:37:25 +02:00
Atgeirr Flø Rasmussen
c4655d7c00 Modify startup message, include version number. 2015-04-14 13:31:39 +02:00
Atgeirr Flø Rasmussen
22391ad144 Provide nicer startup message that includes opm-project URL. 2015-04-14 12:53:34 +02:00
Atgeirr Flø Rasmussen
656e5de331 Bugfix: distribute only if comm size is strictly > 1. 2015-04-08 10:16:25 +02:00
Andreas Lauser
ba4fca5a77 Revert "also pass the deck to the output writer"
This reverts commit 88730e855f.
2015-03-31 12:11:45 +02:00
Andreas Lauser
239547e794 Revert "pass the deck to the output writer"
This reverts commit 71987ae3b038c141a673ae1c1037f63ed695e595.
2015-03-31 12:10:16 +02:00
Andreas Lauser
206d7b56e4 pass the deck to the output writer 2015-03-26 17:33:20 +01:00
Andreas Lauser
88730e855f also pass the deck to the output writer 2015-03-26 17:33:13 +01:00
Liu Ming
f23f5fac8e rename sim_poly_fibo_ad to flow_polymer. 2015-03-24 17:06:32 +08:00
Liu Ming
b4d834508c Updates FIBOPOLYMER simulator based on flow simulator.
Rename sim_poly_fibo_ad to flow_polymer.
2015-03-24 15:07:25 +08:00
Atgeirr Flø Rasmussen
04b255a03f Make more use of move semantics in AD code.
This makes some API changes to AutoDiffBlock.
 - Add overload for the constant() constructor taking rvalue ref.
 - Add overload for the variable() constructor taking rvalue ref.
 - Make the function() constructor *require* rvalue refs.
 - Add a swap() function.

The remaining changes in this commit are follow-ups especially
to the third change (adding std::move in many places), and
some removal of unnecessary block pattern arguments from calls to
the constant() static method.
2015-03-16 14:22:32 +01:00
Atgeirr Flø Rasmussen
ae31c034b6 Fix compile error instroduced by merging #275.
Moved output directory code near top again, changed rank query
to use Dune::MPIHelper instead of the grid.
2015-03-09 09:37:16 +01:00
Joakim Hove
9b7d84bd9f ERT-830: Using OpmLog instead of explicit logger 2015-03-09 08:00:13 +01: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
Atgeirr Flø Rasmussen
c6d38f543c Rename sim_fibo_ad[_cp] -> flow[_cp].
In line with the decision we made to use "flow" as name for the
fully implicit black-oil simulators.
2015-02-27 12:35:03 +01:00
Atgeirr Flø Rasmussen
d9ce8625cf Remove unused classes.
After this, the two affected tests fail due to bugs in PVT region
support in BlackoilPropsAdFromDeck.
2015-02-23 13:42:51 +01:00
Atgeirr Flø Rasmussen
eb89236552 Merge pull request #317 from blattms/generic-equil
Modified sim_fibo_ad_cp to also allow running with EQUIL keyword.
2015-02-20 18:24:05 +01:00
Markus Blatt
9517dc08b3 Do not print message about querying output parameter for p>0. 2015-02-20 15:47:57 +01:00
Markus Blatt
4b110fb00b Fixes missing indentation. 2015-02-20 15:44:28 +01:00
Markus Blatt
007acfe018 Modified sim_fibo_ad_cp to also allow running with EQUIL keyword.
With now generic implementation of the initStateEquil in opm-core
we added the necessary grid helper functionlality for CpGrid and activated
the processing if the EQUIL keyword is there.
2015-02-20 12:23:35 +01:00
Markus Blatt
d35d301a4b Print status output only on rank 0 for parallel runs. 2015-02-20 11:35:47 +01:00
Atgeirr Flø Rasmussen
fec50b491a Merge pull request #311 from totto82/fix_verticalscaling
Apply the swatinit scaling to new_props
2015-02-19 11:29:00 +01:00
Markus Blatt
5e72774b89 Remove the unsused grid members from BlackoilPropsDataHandle.
Previously BlackoilPropsDataHandle did hold a grid for sending
and receiving that were either not used or we could prevent their
usage. Therefore this commit removes them from the class and queries
all needed information from the property objects.
2015-02-19 09:35:18 +01:00
Tor Harald Sandve
44e9d2a34e Fix PR comments
1) swatinit() is changed to setSwatInitScaling() to make it obvious that
we are modifying the props.
2) the descriptions of saturation and pc now makes more sense
3) the method is removed from the sibling class and the interface and
the type of new_props is changed from BlackoilPropsAdInterface to
BlackoilPropsAdFromDeck
5) The same modification is added to sim_fibo_ad_cp
2015-02-19 08:34:55 +01:00
Tor Harald Sandve
013d1d3499 Apply the swatinit scaling to new_props
The capillary pressure function in new_props is scaled to match the
capillary pressure function in props.

This is a temporary workaround while the simulator uses two different
property object.
2015-02-19 08:18:39 +01:00
Atgeirr Flø Rasmussen
75d98c7e3b Remove uneeded function argument. 2015-02-17 13:40:09 +01:00
chflo
8870da536d OPM-166: opm-core method thresholdPressures signature has changed 2015-02-17 10:12:37 +01:00
chflo
82839f9580 opm-166: Fix due to signature change in method thresholdPressures 2015-02-17 09:53:57 +01:00
Markus Blatt
684da9aa84 Throw an excpetion if either eclipse or matlab output is activated. 2015-02-16 11:52:50 +01:00
Markus Blatt
f19a83bbda Remove superluous casts. 2015-02-16 11:40:49 +01:00
Markus Blatt
3575fdce6a Removes stackobject_to_heap. 2015-02-16 11:24:05 +01:00
Markus Blatt
60cdc583ae Make right hand passed to the linear solver consistent.
Previously, we had to use two layers of overlap cells such the
innermost layer contains the rightvalues automatically (as it is
surrounded by internal edges). No we use communication to get
the correct values in the whole overlap region and one layer
suffices as it should.
2015-02-12 21:33:41 +01:00
Markus Blatt
01ea7bacba Adds data redistribution capabilities and makes sim_fibo_ad_cp parallel.
With this commit we add the possibility to start with a global representation
of a simulator that is read on each process and afterwards this presentation
is redistributed among the processors together with the properties and
state data needed to initialize the simulation.

There still is no parallel well handling and no parallel output. But with the
equilibrium example of @dr-robertk and deactivated output we can already
perform parallel runs.
2015-02-12 21:33:41 +01:00
Markus Blatt
be7221aa9b Moved output parameters to the end of the list in extractParallelGridInformationToISTL 2015-02-12 10:41:44 +01:00
Markus Blatt
221565f038 Enable the use of parallel dune-istl solvers.
As with opm-core we use boost::any to provide additional
information about a parallel run. It is used to set a
ParallelISTLInformation object and and fill it with the
information obtained from a parallel Cpgrid.

Note that the simulator currently compiles sucessfully. Still,
we have to test the runs and do debugging.
2015-02-12 10:41:43 +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
Robert K
2068b7ea16 Revision of black oil output. Put everything into a class following the OutputWriter
interface.
2015-02-05 14:39:47 +01:00
Atgeirr Flø Rasmussen
9cb9ec50b1 Rename directory opm/core/tof -> opm/core/flowdiagnostics. 2015-02-03 21:44:24 +01:00
Liu Ming
74332085dc change PolymerInflow constructor interface due to commit 6628941c9c9d781db9ec8e3ac05a3a8dc49dcf21 in opm-parser. 2015-01-27 12:24:26 +08: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
Atgeirr Flø Rasmussen
b54f4f0e2a Add a utility for actually running the eikonal solver. 2014-12-29 12:28:30 +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
Atgeirr Flø Rasmussen
e52af158fc Fix call to DerivedGeology constructor.
New argument to constructor was not provided, still compiled
due to default argument.
2014-12-17 11:32:20 +01:00
Atgeirr Flø Rasmussen
5ae5525209 Revert "register the transmissibilities at the EcliseWriter" 2014-12-17 10:18:23 +01:00
Atgeirr Flø Rasmussen
1348658507 Merge pull request #249 from totto82/locTrans
Compute half transmissibilities based on local coordinate system
2014-12-17 00:20:11 +01:00
Atgeirr Flø Rasmussen
f8ad85d83e Merge pull request #241 from andlaus/write_transmissibilities
register the transmissibilities at the EcliseWriter
2014-12-16 23:35:26 +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
Robert K
0b5db84085 DGFParser: avoid SGrid deprecation warning. 2014-12-16 10:39:35 +01:00
Joakim Hove
78ba6760da ERT-747: Renamed ParserLog -> Logger 2014-12-15 12:23:09 +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
Atgeirr Flø Rasmussen
a20f0291a1 Merge pull request #81 from qilicun/wpolymer_schedule
add new polymerInflow constructor, get polymer injection rate from schedule section
2014-12-12 09:38:34 +01:00
Tor Harald Sandve
02724b7f7a Implement comments for PR#249
1) Add the possibility for the user to chose between local and global
coordinate permeability in the transmissibility calculations.
2) Trow for CpGrid
3) Add default for switch
2014-12-10 07:29:05 +01:00
Andreas Lauser
47fe10e8fb adapt to the removal of the "strict parsing" concept 2014-12-09 14:20:26 +01:00
Andreas Lauser
69c4a6d591 adapt to the removal of the "strict parsing" concept 2014-12-09 14:18:42 +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
Bård Skaflestad
c69b2fd8ed Include <config.h> to fix build on GCC 4.8
GCC 4.8 provides 'nullptr' in C++11 mode.  That capability is
detected at configuration time and stored in <config.h> and we need
it when targeting Dune 2.2.1 to avoid diagnostics of the form

  [...]/dune/common/nullptr.hh:27:1:
  error: expected ‘;’ after class definition
   } nullptr = {};              // and whose name is nullptr
    ^

  [...]/dune/common/nullptr.hh:27:1:
  error: qualifiers can only be specified for objects and functions
  [...]/dune/common/nullptr.hh:27:3:
  error: expected unqualified-id before ‘nullptr’
   } nullptr = {};              // and whose name is nullptr
2014-11-27 15:12:56 +01:00
Joakim Hove
29a0c723ef Python class TransGraph to load json from opm_init_check 2014-11-26 14:56:45 +01:00
Joakim Hove
ad92edab89 Added opm_init_check to compare OPM and Eclipse. 2014-11-26 14:56:45 +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
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
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
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
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
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
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
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
b4fe4e3667 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
5ca84d208f adapt the the table related API changes of opm-parser 2014-09-17 13:43:47 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
99430085bd replace a few now-incorrect "Vcfv" prefixes in the comments 2014-07-21 21:21:42 +02:00
Andreas Lauser
8645d2c207 pass the EclipseState and the PhaseUsage objects to EclipseWriter 2014-07-18 11:22:28 +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
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
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
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
osae
24506cc637 Include EQUIL-based inititalisation for 3-phase. 2014-06-26 15:11:34 +02:00
osae
c1732b0b32 Make use of EclipseState for EQLNUM and SWATINIT. 2014-06-26 14:46:57 +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
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
db8b68b1d1 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
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
05775a0b36 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
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
d00027b55a ECL problem: fix the episode handling
now the episodes seem to match the report steps...
2014-05-30 13:53:36 +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
bd81627dd3 rename all "newParserDeck" objects to "deck"
The "new" parser is now "the" parser...
2014-05-21 11:22:43 +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
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
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
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
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
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
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
Andreas Lauser
20e03577a9 ECL simulator: use the report steps from the deck 2014-04-27 19:12:32 +02:00
Andreas Lauser
87f30dad6f refactoring: rename GridCreator to GridManager
because "manager" sounds less religious than "creator" and the
GridCreators did all kinds of other stuff besides creating the grid.

this patch also gets rid of the static function inside these classes,
which should make them easier to understand...
2014-04-27 19:12:32 +02:00
Andreas Lauser
4c7a2d2ca0 add a simulator which uses Eclipse data files and the blackoil model 2014-04-27 19:12:32 +02:00
Andreas Lauser
a76b64bc56 refactoring: extend the TimeManager to become the Simulator
this also comes with moving responsibilities around and some smaller
cleanups for the grid creation. (although grid creation could be
possibly done by the simulator now, the GridCreator concept has not
been abandoned, yet...)
2014-04-27 19:12:32 +02:00
Andreas Lauser
3a6d989d5e move the code away from EclipsGridParser to opm-parser 2014-04-26 11:13:59 +02:00
Andreas Lauser
8cdde5de31 black oil: adapt to some renames in opm-material 2014-04-25 17:14:55 +02:00
Andreas Lauser
a72595f047 convert the examples and the tests to opm-parser 2014-04-25 14:25:54 +02:00
Andreas Lauser
2dacfc8c15 convert the examples and the tests to opm-parser 2014-04-25 14:25:54 +02:00
Andreas Lauser
112e96d7e6 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
Andreas Lauser
9e6a81e8f0 fix the headercheck 2014-04-08 17:23:39 +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
7b41447b04 adapt to the recent renames of the phase indices in opm-material 2014-04-03 17:30:43 +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
Andreas Lauser
acde984a5a diffusion module: fix some small compilation problems
no guarantees that it works correctly, though...
2014-03-31 15:05:28 +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
Andreas Lauser
a7d6bf72c9 rename "partial reassembly" to "partial relinearization" 2014-03-30 13:38:36 +02:00
osae
b86fa0af86 New parser included. 2014-03-28 17:35:43 +01: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
Andreas Lauser
2910a7542e adapt to the recent three-phase material law cleanups in opm-material 2014-03-27 18:58:58 +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
Andreas Lauser
9b5a5d7d6c flash model: enable volume variable caching and thermodynamic hints in the generic code
These used to be needed to be enabled by the problem, but doing it in
the generic code is more fool proof and thus better.

On my laptop, volume variable caching caused the linearization time
for first time step of the isothermal vertex-centered CO2 injection
problem using the flash model go from 33.7 to 15.7 seconds, and
enabling thermodynamic hints in addition yielded a linearization time
of "only" 9.5 seconds. (that is for a debug build compiled with clang
3.3.)
2014-03-25 22:44:40 +01:00
Andreas Lauser
6e3f6834ef introduce a mechanism to cache the volume variables
this is implemented by extending the existing functionality for hints
and leads to a significant reduction of the volume variables updates
required. unfortunately, the performance with cached volume variables
is basically identical to the non-cached case, so they are disabled by
default...

anyway, this makes the thermodynamic hints code more robust and
cleaner, so it does not hurt to add it...
2014-03-25 19:46:13 +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
Joakim Hove
a845cfdfd7 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
6b3b2ad281 do the rename job properly, remove the smooth upwinding stuff and central differences for the test of the Richards model 2014-03-07 17:15:39 +01:00
Andreas Lauser
61b177aef4 fix remaining valgrind complaints
now valgrind should work cleanly for all tests. *yay*
2014-03-07 15:24:26 +01:00
Andreas Lauser
55bb38118c problems: make the name() methods static
this allows to retrieve the name of the problem before it is
instantiated. this is required to be able to print the "Initializing
problem" message at the correct point (i.e., before instantiating the
problem).
2014-03-07 12:38:19 +01:00
Andreas Lauser
a9ad8f1cba add more flushs for output
this should make output less confusing if the stream caches some data...
2014-03-06 19:32:04 +01:00
Andreas Lauser
61de18739e remove the remnants of line search
and some other minor changes. (if you need line search the issue is
probably caused a different problem and line search would be just a
work-around anyway.)
2014-03-05 14:22:36 +01:00
Andreas Lauser
eac638d21a parallel iterative solvers: doc update, add missing solvers and precoditioners 2014-03-04 18:06:56 +01:00
Andreas Lauser
59a82a0a40 Always use the reduction of the maximum of the weighted residual as convergence criterion
This should make things a much more robust, partially because now the
linear and the non-linear solvers use the same convergence criterion.

Also, this patch includes some collateral indentation improvements.
2014-03-04 18:06:56 +01:00
Atgeirr Flø Rasmussen
200b5372dd Added simple program example for initialisation. 2014-02-27 13:55:15 +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
Andreas Lauser
b39910eb34 shorten all lines to at most 100 characters
well, if there is no good way to do so, accept a slightly larger
number. Anyway, the longest line is now at 104 characters...
2014-02-11 00:46:17 +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
Andreas Lauser
e876e32c36 remove all vim and emacs modelines
for emacs, add a toplevel .dir-locals.el file instead...
2014-01-16 17:58:10 +01: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
Andreas Lauser
d98dd5a309 remove some unused typedefs and constant, some indentation fixes 2013-12-27 19:13:15 +01:00
Andreas Lauser
29926a7d06 rename "bbox" to "boundingBox" 2013-12-27 18:55:46 +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
Andreas Lauser
46fca5437c fix lonely DUNE 2.3 deprecation warning
now akvarium should be fully happy build-wise...
2013-12-14 11:32:50 +01:00
Andreas Lauser
bf32eb0010 Implement the element centered finite volume spatial discretization
This makes eWoms multi-discretization capable. Along the way, this
fixes some bugs and does a medium sized reorganization of the source tree.

This is a squashed patch of the following commits:

--------
1st commit message:

add initial version of the element centered finite volume discretization

currently, it is a misnomer as it is just a copy of the vertex
centered discretization plus some renames...

--------
2nd commit message:

rename [VE]cfvModel -> [VE]cfvDiscretization

--------
3rd commit message:

ecfv: prelimary changes required to make it compile

but not work yet...

--------
4th commit message:

Rename *FvElementGeometry to *Stencil

"Stencil" seems to be the standard expression for this concept...

(also, it is not specific to finite volume methods and is shorter.)

--------
5th commit message:

refactor the stencil class for the element centered finite volume discretization

--------
6th commit message:

ECFV: some work on the stencil class

--------
7th commit message:

ECFV: make the boundary handling code compile

--------
8th commit message:

rename elemContext() to elementContext()

--------
9th commit message:

ECFV: make the VTK output modules compile

--------
10th commit message:

stencil: introduce the concept of primary DOFs

also save an vector of all element pointers in the stencil.

--------
11th commit message:

ECFV: try to fix assembly; add missing timeIdx arguments to the num*() methods

--------
12th commit message:

ECFV: fix stupid mistake in the assembler

--------
13th commit message:

ECFV: remove a few implicit DOF == vertex assumptions

the black-oil example now runs without valgrind complaints until it encounters
a negative oil mole fraction.

--------
14th commit message:

VCFV: make everything compile again

all vertex centered FV examples should now work again...

--------
15th commit message:

rename [ev]cfvmodel.hh to [ev]cfvdiscretization.hh

the classes have already been renamed.

--------
16th commit message:

ECFV: make it work to the point where it can write out the initial solution.

--------
17th commit message:

ECFV: make it work

the local residual/jacobian needed some work in distinguishing primary
and secondary DOFs and there was an minor issue with the serialization
code.

for some reason, it seems still not correct. (-> convergence is too slow.)

--------
18th commit message:

VCFV: make it compile for the black oil model again

--------
19th commit message:

VCFV: make it compile with the remaining models again

--------
20th commit message:

flash model: make it work with ECFV

although this breaks its compatibility with VCFV. (-> next commit)

--------
21st commit message:

adapt the VCFV to make it compatible with the flash model again

--------
22nd commit message:

make all models compile with VCFV again

--------
23rd commit message:

VCFV: more cleanups of the stencil

VcfvStencil now does not have any public attributes anymore. TODO: do
not export attributes in the SubControlVolume and SubControlVolumeFace
classes.

--------
24th commit message:

VCFV: actually update the element pointer

--------
25th commit message:

change the blackoil model back to ECFV

--------
26th commit message:

immiscible model: make it compatible with the ECFV discretization

--------
27th commit message:

PVS model: make it work with ECFV

--------
28th commit message:

NCP model: make it work with ECFV

--------
29th commit message:

rename Vcfv*VelocityModule to *VelocityModule

--------
30th commit message:

richards model: make it work with ECFV

--------
31st commit message:

unify the ECFV and the VCFV VTK output modules

and other cleanups

--------
32nd commit message:

unify the common code of the VCFV and the ECFV disctretizations

--------
33rd commit message:

unify the element contexts between element and vertex centered finite volumes

--------
34th commit message:

unify the local jacobian class of the finite volume discretizations

--------
35th commit message:

replace [VE]vcf(LocalResidual|ElementContext|BoundaryContext|ConstraintsContext) by generic code

--------
36th commit message:

replace the [EV]cfvLocalResidual by generic code

--------
37th commit message:

unify the MultiPhaseProblem and Problem classes, introduce NullBorderListCreator

--------
38th commit message:

remove the discretization specific boundary context

--------
39th commit message:

unify the [EV]cfvDiscretization classes

--------
40th commit message:

Unify [EV]cfvMultiPhaseFluxVariables

--------
41st commit message:

Unify the [EC]cfvNewton* classes

--------
42nd commit message:

Unify [EV]cfvVolumeVariables

--------
43rd commit message:

unify [EV]cfvAssembler

--------
44th commit message:

unified flux variables: fix stupid mistake when calculating pressure gradients

--------
45th commit message:

unify what's to unify for the [EV]CFV properties

--------
46th commit message:

make the method to calculate gradients and values at flux approximation points changeable

Currently, this is used by the vertex centered finite volume method to
be able to use P1-finite element gradients instead of two-point
ones...

--------
47th commit message:

make the restart code work correctly, use the correct DofMapper for VCFV

--------
48th commit message:

actually use the gradient calculator in a model

the immiscible model in this case

--------
49th commit message:

move some files around to where they belong, use the new gradient calculation code in all models

TODO: proper handling of boundary gradients

--------
50th commit message:

fix the stokes model

currently it only works with the vertex centered finite volume
discretization, but the plan is to soon move it to a staggered grid
scheme anyway...

--------
51st commit message:

move all models back to using the vertex centered finite volume discretization by default

--------
52nd commit message:

models: some variable renames and documentation fixes

- scv -> dof
- vert -> dof
- vertex -> dof
- replace 'VCFV'
- fix some typos

--------
53rd commit message:

don't expect UG anymore

since it is quite non-free and hard to get. we now use ALUGrid instead!

--------
54th commit message:

temporarily disable jacobian recycling

--------
55th commit message:

fix writing/reading restart files using the generic code

--------
56th commit message:

fix bug where fluxes were only counted once in the stencil

this only affected the vertex centered finite volumes discretization...

--------
57th commit message:

boundary gradients: use the center of the sub-control volume adjacent to a boundary segment

--------
58th commit message:

make it compile on GCC

--------
59th commit message:

get rid of most hacks

for this, partial reassemble and jacobian recycling was brought
back. For the this and the remaining stuff the main trick is the
introduction of the GridCommHandleFactory concept which constructs
communication handles suited for the respective spatial
discretization...

--------
60th commit message:

fix a few annoying bugs

first, default the convergence criterion for the linear solver did not
honor the initial residual which lead to linear solver breakdowns,
then some debugging code was left in the discrete fracture model and
then there was a bug in the TP gradient approximation class...

this has the consequence that we need a new reference solution for the
discrete fracture problem...

--------
61st commit message:

iterative linear solver: remove the code for the non-default convergence criteria

--------
62nd commit message:

provide the FE cache instead of the local FE

this fixes a segfault in the stokes model caused by the fact that the
local FE was not initialized at this point.

--------
63rd commit message:

(Navier-)Stokes: fix bug due to the transition to unit normals

now, all tests pass for this branch. The only things which need to be
fixed are some annoying performance regressions compared to master and
some bug in the splices feature of the property system...

--------
64th commit message:

some fix for the local residual of the immiscible model

--------
65th commit message:

Navier-Stokes: implement SCV center gradients

There seems to be a bug in the previous implementation (the jacobian
inverse transposed is evaluated using the local, not the global
geometry), so the reference solution for the stokes2c test problem has
also been updated...

--------
66th commit message:

remove the ALUGrid specialization of the LensGridCreator and the YaspGrid one for the fingerproblem

using different grid seems to sometimes cause a different vertex
order, which in turn causes the respective test to fail if the
reference solution was computed using the other grid...

--------
67th commit message:

VCFV: use the correct BorderListCreator

this makes MPI parallel computations work again. apart from
performance regressions, this branch does not exhibit any known
regressions compared to master anymore...

--------
68th commit message:

make verything compile with the element centered finite volume discretization

except the Navier-Stokes and the two-phase DFM models, of course...

--------
69th commit message:

minor fixes

- make the navier-stokes model slighly more generic by using the
  proper (in,ex)teriorIndex() methods on sub-control volumes
- make the signature of the calculateValue() template method of the
  common two-point gradient approximator match the one of the vertex
  centered finite volume one

--------
70th commit message:

fix fallout from the Big Rebase

--------
71st commit message:

ECFV: some bugs in the boundary

--------
72nd commit message:

make computeFlux() compute area-specific quantities

--------
73rd commit message:

fix more bugs in the element centered FV discretization

now eWoms should match Dumux pretty closely...

--------
74th commit message:

coalesce the common code of the multi phase porous medium models into "MultiPhaseBaseModel"

--------
75th commit message:

update reference solutions

these were changed because of the screw-up with the area of boundary
segments...

--------
76th commit message:

rename "ImplicitBase" to "FvBase"

because in eWoms, everything is implicit and these are currently the
base classes for all finite volume discretizations.

--------
77th commit message:

make the spatial discretization selectable using a splice

This requires an opm-core with a the patches from
https://github.com/OPM/opm-core/pull/446 merged...

--------
78th commit message:

rename the properties used for splices to *Splice

--------
79th commit message:

move the files in 'tests/models' to 'tests'

since 'tests' was empty except for the 'models' subdirectory...

--------
80th commit message:

improve and fix the tutorial

--------
81st commit message:

remove the -fno-strict-aliasing flag from the provided option files

seems like recent versions of Dune have been adapted...

--------
82nd commit message:

also compile all CO2 injection simulations using the element centered finite volume discretization

--------
83rd commit message:

PVS model: make it work properly with the element-centered finite volume discretiation

because DOF != number of vertices
2013-12-12 12:52:44 +01: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
3c8229586f update the in-file copyright holder statements
this patch is quite large as there were various bug fixes to the
script which generates these statements
2013-12-02 17:20:09 +01:00
Andreas Lauser
10d80f01f9 replace in-file copyright notices by OPM the standard one 2013-12-02 15:53:54 +01:00
Andreas Lauser
98c5b8fba7 reformat the source code
this was done semi-automatically. The line length has been set to 80
characters, but with a quite low penalty for crossing this limit.
2013-12-01 20:47:02 +01:00
Andreas Lauser
d47687be5d fix some dune 2.3 deprecation warnings
also use the actual grid headers for grids, not the corresponding DGF
parser header.
2013-12-01 11:51:05 +01: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
Andreas Lauser
531d287eda adapt to the changes in opm-material 2013-11-12 18:36:42 +01:00
Andreas Lauser
921540d001 fix the end of namespace comments
this was done semi-automatically by a python script
2013-11-04 14:17:32 +01:00
Andreas Lauser
ea30ffc7be rename fluidmatrixinteractions/mp/* to fluidmatrixinteractions/* 2013-11-04 13:58:43 +01:00
Bård Skaflestad
8159104218 Fix null-pointer dereference during well construction
The three-argument WellsManager constructor needs access to the real
permeability field lest a null-pointer dereference result when the
problem actually contains any wells.
2013-09-25 15:11:14 +02:00
Andreas Lauser
3d0a4c0e17 adapt the tutorial and the handbook to the brave new world
we do not have a decoupled tutorial anymore since, well, the decoupled
models have been removed. Also since the move to the Opm CMake based
build system, the "How to create a new folder" section in the handbook
was obsolete.
2013-09-23 20:38:20 +02:00
Andreas Lauser
c906d5931d use opm property system, improvments to the parameter system 2013-09-23 20:37:11 +02:00
Andreas Lauser
e50fe7715f adapt to the new opm-material file names 2013-09-23 15:09:51 +02: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
aa62980fbf catch all exceptions in all tutorials and examples 2013-09-05 13:04:38 +02:00
Andreas Lauser
4e96915af1 catch all exceptions in all tutorials and examples 2013-09-05 13:04:38 +02:00
Andreas Lauser
a224122d84 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
cb76a0fd7f 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
b3a687c83b use the opm-material module instead of using an internal material framework 2013-08-28 17:28:26 +02:00
Andreas Lauser
74c3290296 remove the autotools based build system 2013-08-28 17:28:26 +02:00
Andreas Lauser
d566001dd8 replace the custom cmake based build system by the one from OPM 2013-08-28 17:24:05 +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
Andreas Lauser
e6a2f2655a 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
Andreas Lauser
84becd65d2 remove the code of the IMPET ("decoupled") models
there was no interest in using them and the maintainance burden grew
pretty large as the Dumux and eWoms code-bases continued to diverge.
2013-07-08 20:36:22 +02:00
Atgeirr Flø Rasmussen
07027d3a09 Added rock compressibility to fully implicit solver. 2013-06-03 14:14:48 +02:00
Bernd Flemisch
ccdf1c742b decoupled: renaming according to refined naming rules, this time for local variables.
Reviewed by Benjamin.

Dumux-Svn-Revison: 10776
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2013-06-02 16:43:43 +02:00
Bernd Flemisch
20f514984c Perform changes resulting from our refined naming rules, see FS#180.
Only public member names have been treated so far. Local variables
will be done shortly, classes maybe not before the next release
cycle. Everything old could be marked deprecated.

Reviewed by Benjamin and Christoph.

Dumux-Svn-Revison: 10761
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2013-06-02 16:43:43 +02:00
Bernd Flemisch
99cc53ca66 Partially implements FS#180 - Inconsistent naming
- special status of saturation. In particular, it deals with the
  capitalized "S"-indices:
   S0Idx -> s0Idx
   SnIdx -> snIdx
   SwIdx -> swIdx
   SOrX1Idx -> sOrX1Idx
   SOrX2Idx -> sOrX2Idx
   SnOrXidx -> snOrXIdx
   SwOrXIdx -> swOrXIdx

Reviewed by Christoph.

Dumux-Svn-Revison: 10756
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2013-06-02 16:43:43 +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
Markus Wolff
475b50fb31 Extended the IMPES scheme to allow for local time-stepping for each flux face of the finite-volume transport model
- time steps for the pressure model can be choosen larger than for the
     transport model
   - locally small time steps of the std::explicit scheme are less
     restrictive

   - reviewed by Bernd

Dumux-Svn-Revison: 10700
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2013-05-19 00:02:22 +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
5401baf533 Add call to DG tracer computations if user requests.
Used to throw with an 'unimplemented' message.
2013-04-24 10:40:56 +02:00
Atgeirr Flø Rasmussen
f0ba716b3a Minor fix: do not read tracer heads unless compute_tracer is true. 2013-04-23 09:54:52 +02:00
Atgeirr Flø Rasmussen
b82a41df18 Work in progress on tracers.
- Changed interface.
 - Read tracerheads (tracer start locations) from file in compute_tof_from_files.
 - Initialize tracerheads from wells in compute_tof.
2013-04-22 14:02:45 +02:00
Atgeirr Flø Rasmussen
5578400e72 Removed experimental multi-cell solver code.
Since the Gauss-Seidel approach seems to be both simplest and
fastest, all parts dealing with assembling multicell systems
have been removed.
2013-04-22 11:22:23 +02:00
Atgeirr Flø Rasmussen
25a2c3d00b Implement solveMultiCell() properly.
Interface change: solver now requires a linear solver (for the multi-cell blocks only).

Implementation uses new private method assembleSingleCell(), that is a modified copy
of solveSingleCell(). Should refactor.
2013-04-17 12:58:15 +02:00
Andreas Lauser
a2065b4101 make config.h the first header to be included in any compile unit
this is required for consistency amongst the compile units which are
linked into the same library and seems to be forgotten quite
frequently.
2013-04-10 12:56:14 +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
f3ec8e1634 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
f9f5cbf321 Moved ColumnExtract and initState.
ColumnExtract -> opm/core/grid/ and initState -> opm/core/simulator/.
2013-03-18 12:47:23 +01:00
Atgeirr Flø Rasmussen
2d876925b7 Update to follow previous moves and deletes. 2013-03-18 12:40:34 +01:00
Atgeirr Flø Rasmussen
bfa9997dd2 Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2013-03-18 10:33:34 +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
c78b7de680 Renamed newwells.h -> wells.h.
Also moved implementation file to subdir.
2013-03-18 10:33:34 +01:00
Atgeirr Flø Rasmussen
5fc63031ed 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
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
507b756dac 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
Andreas Lauser
cf74236d32 fix headercheck and compile
they failed because of the new MpiHelper...
2013-03-15 15:05:11 +01:00
Atgeirr Flø Rasmussen
87c8d0dc28 Modified for added files and changed class names. 2013-03-14 21:43:21 +01:00
Atgeirr Flø Rasmussen
864cce5f5e Adapt to moved opm-core headers. 2013-03-14 13:59:31 +01:00
Atgeirr Flø Rasmussen
e83057e0ea Adapt include statements to moved headers. 2013-03-14 10:29:42 +01:00
Atgeirr Flø Rasmussen
6127afc1c6 Adapt include statements to moved headers. 2013-03-14 10:29:42 +01:00
Atgeirr Flø Rasmussen
b73a33f4af Adapt include statements to moved headers. 2013-03-14 10:29:42 +01:00
Atgeirr Flø Rasmussen
ddd41bfcd7 Moved opm/core/eclipse/* to opm/core/io/eclipse/*. 2013-03-07 22:59:06 +01:00
Roland Kaufmann
f5e19e9b87 Remove remnants of the Autotools build system 2013-02-22 23:34:21 +01:00
Andreas Lauser
f5d6db8bc8 improvements to the CMake build system
- it now can generate and install the API documentation ('make install-html')
- the information of the dune.module file is now used much more extensively
- presence of the valgrind headers is tested
- tests which cannot be run for a configuration will now appear as
  'skipped' in CDash
- adding tests does not require modifying the toplevel CMakeList.txt anymore
- introduction of the 'EwomsAddTest' cmake macro which removes quite a bit of the
  copy-and-paste from the CMakeLists.txt.
- various small loose ends have been fixed
2013-01-27 00:07:12 +01:00
Atgeirr Flø Rasmussen
862c489cc3 Complete separation of basis func classes.
Also:
 - Add use_tensorial_basis parameter allowing run-time choice of basis.
 - Remove degree argument from solveTof() method, degree is instead obtained
   from parameters in constructors. Modified compute_tof* programs to match.
2013-01-16 15:13:45 +01:00
Atgeirr Flø Rasmussen
a0827ab02d Change constructor to take ParameterGroup argument.
Also make tof to limit against >= 0.0, for case when upstream cell values go
below zero.

Disabled some debug output.
2013-01-08 13:14:26 +01:00
Atgeirr Flø Rasmussen
76868ebc1c Added parameter compute_tracer. Defaults to false.
Triggers tracer computation and output, in addition to time-of-flight.
2013-01-03 14:08:09 +01:00
Andreas Lauser
47d4e8dec8 janitorial: update copyright notices in files, remove unused typedefs and enums 2012-12-26 23:35:17 +01:00
Andreas Lauser
7d497e9fc9 janitorial work: include appropriate headers if a class was used 2012-12-23 20:22:52 +01:00
Andreas Lauser
7391faec45 move all grid creators in ewoms/io
and adapt all code to the new location. this reflects commit r9916 of
the dumux trunk.
2012-12-21 15:13:29 +01:00
Atgeirr Flø Rasmussen
3e723bc965 Added limiter for DG1, parameter 'use_limiter'.
The limiter is experimental and unfinished, untested work in progress.
Limiter is therefore inactive by default.

Also fixed a minor bug: use_cvi_ was not initialized.
2012-12-18 14:15:31 +01:00
Andreas Lauser
5acce6b68e restructure the directory structure of the implicit models
this is somewhat similar to what is currently done in the 'implicit'
branch of dumux, but it takes things further:

- ewoms/boxmodels/common -> ewoms/disc/vcfv
  (vcfv == vertex centered finite volumes)
- ewoms/boxmodels/vtk -> ewoms/vtk
  (possibly this will move to ewoms/io/vtk, TBD)
- ewoms/boxmodels -> ewoms/models
- test/boxmodels -> test/implicit
- the files for the common VCFV code have been renamed from "box*" to
  "vcfv\1" and the classes they contain have been renamed accordingly.

The rationale is to reflect the fact that multiple discretizations may
be chosen for any physical model. (Once these discretizations are
implemented, obviously.) All tests still compile for the autotools and
cmake build systems
2012-11-28 16:04:43 +01:00
Andreas Lauser
a299e29f02 non-recursive automake: add shortcut targets
instead of typing 'make test/common/propertysystem/test_propertysystem'
in the toplevel build directory, one can now just type
'make test_propertysystem'
2012-11-21 23:28:15 +01:00
Andreas Lauser
896f0ed23d make the autotools build system non-recusive
this allows much better build time parallelism.
2012-11-19 15:25:01 +01:00
Andreas Lauser
3e55945ce5 change namespace from Dumux to Ewoms
eWoms hereby declares full independence. Humor aside, the main
technical advantage of this is, that it is now possible to easily
install both, Dumux and eWoms on a system using a package management
system without bad tricks.
2012-11-18 16:58:22 +01:00
Andreas Lauser
834b79a8dd consistently use \copydoc $CLASSNAME to document files 2012-11-02 15:28:08 +01:00
Andreas Lauser
510fa48526 handbook: language improvements 2012-11-01 16:43:15 +01:00
Atgeirr Flø Rasmussen
1272575f1f Add use_multidim_upwind parameter. 2012-10-30 10:32:29 +01:00
Atgeirr Flø Rasmussen
43162d7d99 Increased number of digits in output. 2012-10-29 08:27:59 +01:00
Andreas Lauser
71c758a505 remove all trailing white space and replace all tabs by four spaces 2012-10-28 21:46:37 +01:00
Atgeirr Flø Rasmussen
29b2bcad45 Added new tof computation utility.
This program assumes that grid, porosity, flux field and sources are
available to read from files. It does not compute any flux field itself.
2012-10-25 14:47:26 +02:00
Andreas Lauser
0d5099da19 fix another bunch of tests 2012-10-22 17:19:04 +02:00
Andreas Lauser
95ae6949d8 fix the CMake build
also, fix and simplify the CTest system
2012-10-19 19:39:53 +02:00
Andreas Lauser
9aad4c3a7e handbook: finish update for the 2.2 release
at least content-wise. there are still quite a few language issues
left to be dealt with...
2012-10-17 16:24:38 +02:00
Andreas Lauser
eaf7d9cea5 remove the *reference.vtu and *.input from EXTRA_DIST
these are non-existant in eWoms anyways.
2012-10-16 20:38:00 +02:00
Andreas Lauser
0c1a15c2de handbook: cleanups, update the tutorial for the fully implicit models
- there are no LaTeX files with capital letters anymore
- there are no more "dangling" references
2012-10-16 18:16:19 +02: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
Andreas Lauser
421650fef1 update copyright notices
in addition to last time, don't add authors that are responsible than
5 lines in a file. This mainly makes a difference for very short files
like the .cc files...
2012-09-26 15:55:36 +02:00
Andreas Lauser
1436f8cbc5 start(): remove the callback to a custom usage function
since all parameters are now printed if something goes wrong the all
custom usage functions in the repository were worse than the default
one...
2012-09-25 14:21:38 +02:00
Andreas Lauser
4c2885cc82 tutorial: add defaults so that they run without parameters, make handbook compile again 2012-09-24 20:13:29 +02:00
Andreas Lauser
5371f08ac1 remove all remaining parameter files
after commit 345b78c they are not necessary anymore. deleting them was
just forgotten...
2012-09-24 19:52:27 +02:00
Andreas Lauser
bb09d3438a documentation: bring the method documentation of the box problems up to speed
finally, the documentation builds without any warnings from
doxygen. This does not mean that the documentation is correct, though:
Quite a bit of prose is still required for the model and problem
descriptions...
2012-09-24 17:45:25 +02:00
Andreas Lauser
345b78c723 parameter system: major overhaul
"runtime" parameters are gone now, as are groups. both where flawed
concepts: parameters can be overwritten at runtime by definition, and
a parameter that has no compile-time fallback just degrades
performance and is a hassle to deal with because it has to be
specified in a parameter file. The other killed feature, parameter
groups, just made it harder to figure out what the correct command
line argument was to change the parameter (was it
--linear.solver-tolerance, --linear-solver.tolerance or
--linear-solver-tolerance?) and did not provide much value otherwise.

as a consequence all parameters now have compile-time defaults which
allows us to remove the auto-loading of a parameter file at
startup. (These files became quite obnoxious in eWoms when problems
declared their independence from models.)

Finally all parameters must now be registered before they can be used
which allows to properly include them in the usage message.
2012-09-24 17:45:16 +02:00
Andreas Lauser
cb5b5d4761 one more update to the copyright holders
this time we ignore the commits 024955b5, f34d3482, 292c0084,
153374e8, 54c9450f, 6bc12abc, ee0eb46b, a1f3edc6, 5858986f and
0c4b9162 because these are huge commits that either dealt with white
space clean ups or just moved some files around. Also for the total
lines in a source file we only account for the non-ignored lines.
2012-09-19 15:46:53 +02:00
Andreas Lauser
b44f8a236b correct copyright headers
This time hopfully for good. There were a few bugs in the script to
update them, and the metric was slightly chanted: Now, only authors
that contributed more than 5% of the lines of a file are listed. We
now also properly ignore the copyright headers and the changes made in
commit 024955b5 as the latter just moved a lot of files around.
2012-09-19 14:57:08 +02:00
Benjamin Faigle
41c74beb04 corrected minor inconsistency of decoupled tutorial with its docu (output interval too small). reviewed by Philipp
Dumux-Svn-Revison: 9072
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2012-09-11 16:59:19 +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
Andreas Lauser
c3e0f4f492 update copyright notices, this time with the author date instead of the commit date
the commit date is significantly off for (ancient) commits before the dumux SVN
repository was split into -devel and -stable.
2012-08-31 14:41:47 +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
Andreas Lauser
d987ac7fdf replace Javadoc notation by c++-style doxygen commands
this basically means to replace '@' by '\' e.g. @brief becomes \brief
2012-08-29 11:26:29 +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
Andreas Lauser
79789f6ca0 update authors in the individual files
this time, we don't follow renames as this leads to too much jitter.
2012-08-24 17:32:58 +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
Andreas Lauser
5e101756a6 update copyright holders in individual files according to the git history
while the git history might be not entirely accurate, it is certainly
much better what is currently there. the authors are sorted by the
number of lines changed in the file.
2012-08-23 13:26:23 +02:00
Andreas Lauser
9e3563f799 remove the affiliations of the copyright holders
these will be documented separately in the toplevel file "COPYING"
2012-08-23 12:36:47 +02:00
Markus Wolff
9c51221df8 more consistent naming of components
- the prefix "simple" should only be used if a more complex version of
     the same component is available
   - deprecated Oil and SimpleDNAPL

   approved by coffee break

Dumux-Svn-Revison: 8943
Ported-By: Andreas Lauser <andreas.lauser@iws.uni-stuttgart.de>
2012-08-22 13:35:01 +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
Andreas Lauser
f24608011b make end time of the coupled tutorial match the ones of the decoupled one
also increase the initial time step size to 1000 seconds since 10
seconds is way too small
2012-08-19 23:28:35 +02:00
Bård Skaflestad
0c0ea6863f Chase interface change of Opm::IncompPropertiesFromDeck constructor. 2012-08-10 12:27:41 +02:00
Atgeirr Flø Rasmussen
158c33eb53 Constructors of *FromDeck classes now take an UnstructuredGrid.
This is a change from taking a vector containing the mapping to
deck-consistent logical cartesian indices. The mapping is contained
in the UnstructuredGrid::global_cell member, and may be null. The
change therefore saves the overhead of constructing a vector as a
copy of the data in the grid or (if null) as an identity mapping.
2012-08-10 10:12:45 +02:00
Atgeirr Flø Rasmussen
ffdf7ed4f7 Adapt to possibility for Cartesian grids from deck input.
Now we may have a grid generated from deck input using the
keywords DXV, DYV, DZV, which will have a null pointer for
the global_cell mapping. We check if this pointer is null,
and create an identity mapping in this case. The mapping is
needed by the *PropertiesFromDeck classes (and helpers).
2012-08-09 14:35:00 +02:00
Andreas Lauser
2416905f45 rename GridSize -> DomainSize, Grid\.?Cells -> Cells
this hopefully reduces confusion about what which parameter means. the
Domain* parameters specify the physical size of the simulated domain,
the Cells* specify how many cells the grid has into the direction of
each axis.
2012-07-12 21:27:42 +02:00
Andreas Lauser
a8c039bb8b remove unused typedefs and enums 2012-07-12 21:25:24 +02:00
Andreas Lauser
4a0aaecead replace the 1p and 2p(ni) box models by the immiscible(ni) model
the immiscible(ni) model is a model that is independent on the number
of phases and assumes immiscibility. this change is along the lines of
the previous commit for the compositional primary variable switching
model.
2012-07-12 21:25:23 +02:00
Andreas Lauser
e52f2d72f8 rename parameters TEnd and DtInitial
to make them self-descriptive and consistent with the other parameters
and properties "TEnd" is renamed to "EndTime" and "DtInitial" to
"InitialTimeStepSize".
2012-07-12 21:25:22 +02:00
Andreas Lauser
88636f077b implement the remaining Dumux naming conventions for the non-decoupled models
Tensor -> DimMatrix
refElem -> refElement
gv -> gridView
remove "AtIP" suffix
*Index -> *Idx for variables
remove ${MODEL_NAME}Index property
consistent argument names for compute(Storage|Flux|Source) in the local residuals

also remove the "MassUpwindWeight" and "UpwindWeight" properties as
they were not really useful.
2012-07-12 21:25:18 +02:00
Andreas Lauser
f1b3a3d3e6 tutorial: fix Makefile.am 2012-07-12 21:25:17 +02:00
Andreas Lauser
13d9867500 decoupled: finish the SpatialParameters -> SpatialParams frenzy
I also removed the deprecation stuff, as IMO it is more confusing than
helpful. (Ever tried to set the
SpatialParameters instead of SpatialParams in your problem?)

Also move the decoupled spatial parameters from dumux/material to
dumux/decoupled because they are specific to the decoupled models.
2012-07-12 21:25:16 +02:00
Markus Wolff
ed2bf12c5f changed naming in decoupled tutorial
Cherry picked from Dumux SVN trunk (revision 8135)
2012-07-12 21:25:16 +02:00
Andreas Lauser
20875b5a6c tutorial_coupled: impose boundary conditions weakly 2012-07-12 21:25:15 +02:00
Andreas Lauser
7b3c8f18bb fix includes
most includes are now sorted by abstraction levels, with the most
abstract header first. also some system headers like <string> are now
explicitly included in every file where some of their classes are
used.
2012-07-12 21:25:12 +02:00
Andreas Lauser
7df261d46a fix -pedantic warnings, make the 'generalproblem' decoupled only
the last point is necessarry because the box models are pretty much
decoupled from trunk by now...
2012-07-12 21:25:08 +02:00
Andreas Lauser
3882013f1c remove unnecessary typedefs and enums 2012-07-12 21:25:08 +02:00
Andreas Lauser
d7db90476e box models: fold the spatial parameters directly into the problems 2012-07-12 21:25:06 +02:00
Andreas Lauser
591334ac82 box models: introduce BaseProblem property
that's the base class from which the actual problems are derived from
2012-07-12 21:25:06 +02:00
Andreas Lauser
9131de9074 fix various hiccups in the non-test problems after the recebt switches
the switches are the introduction of "smart primary variables", rate
vectors, and changing the capillary pressure API for the multi-phase
models to the one previously used by the MpNc model.
2012-07-12 21:25:06 +02:00
Andreas Lauser
f4f7190c72 change the 2p(ni) and 2p2c(ni) models to the generic capillary pressure laws
also change the 2p model to "smart primary variables" and rate vectors and
make the 2p and 2p2c test problems model agnostic
2012-07-12 21:25:06 +02:00
Andreas Lauser
57e9f74f3a consistently make the time index available
- this renames historyIdx to timeIdx (I think it expresses what it is meant for better)
- rename localIdx to "spaceIdx" in the problems/spatial parameters
- add a "timeIdx" argument to the problem's methods
2012-07-12 21:25:06 +02:00
Andreas Lauser
2591f9cca0 tests, tutorials, lecture problems: make them all compile 2012-07-12 21:25:05 +02:00
Andreas Lauser
dc920d9030 Improve the startup and parameter routines. 2012-07-12 21:25:04 +02:00
Christoph Grueninger
fdcd099b40 Provide *.input in tarball. 2012-07-12 21:25:02 +02:00
Andreas Lauser
4f3eaf0101 parameter files: partially fix formating
as requested by the PFP
2012-07-12 21:25:01 +02:00
Klaus Mosthaf
e8323070d0 corrections in the coupled tutorial, spell check & beautification 2012-07-12 21:25:01 +02:00
Klaus Mosthaf
8ad532feba Fixed some typos and linebreaks (for the handbook) 2012-07-12 21:25:01 +02:00
Benjamin Faigle
e2953d8eca correct spelling mistakes and other minor issues in tutorial introduces breaks to get all documentation in the code on a page in the handbook. 2012-07-12 21:25:00 +02:00
Markus Wolff
2578c26c5a Changed decoupled tutorial to use the start() routine
- we decided to keep the tutorials similar and to change them to
     start from a parameter file
2012-07-12 21:25:00 +02:00
Philipp Nuske
70fb80746e - added a tiny exercise to the coupled tutorial: change from cubes to simplex 2012-07-12 21:24:55 +02:00