Simulator programs and utilities for automatic differentiation.
Go to file
Markus Blatt cb396dfac6 Make sure subclass functions are not called before subclass is initialized.
This at least slightly improves the old design. In that design the
subclass had no own constructor but inherited the one of the base class.
That base class constructor called certain subclass
functions (createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_)that would initialize raw pointers of the
subclass. Hence subclasses where not allowed to have non-pod members
and those used later (e.g. deleted in the destructor) had to be
initialized in these functions.

The new (still ugly) design introduces constructors into the
subclasses and skips inheriting constructors. Now one must call a base
class function classImplementationInit which will still call the
functions createGrids_, filterConnections_, updateOutputDir_, and
finalizeInit_, but at least at this point the baseclass is fully
constructed and the subclass is constructed as much as
possible/needed (non-pod types will be initialized now.)
2019-10-14 14:32:22 +02:00
debian changed: rename ewoms to opm-models 2019-08-23 11:27:16 +02:00
doc/doxygen Fix minor issues pointed out by bska. 2013-09-23 13:02:56 +02:00
ebos Make sure subclass functions are not called before subclass is initialized. 2019-10-14 14:32:22 +02:00
examples/mrst remove files 2018-11-16 14:53:37 +01:00
flow Whitespace fixes (tabs->spaces, reformatted new files). 2019-10-11 15:57:51 +02:00
jenkins changed: rename ewoms to opm-models 2019-08-23 11:27:16 +02:00
opm Merge pull request #2034 from totto82/sync_restart 2019-10-14 13:26:57 +02:00
redhat changed: rename ewoms to opm-models 2019-08-23 11:27:16 +02:00
tests Merge pull request #2042 from joakim-hove/remove-gridmanager 2019-10-11 16:34:36 +02:00
.clang-format Add flexible solver and preconditioner infrastructure. 2019-06-03 11:42:30 +02:00
.gitignore Added build directory in the .gitignore 2018-06-04 15:28:44 +02:00
CHANGELOG.md Updated to reflect changes from the last few months. 2018-04-13 14:33:11 +02:00
CMakeLists_files.cmake Compile well_controls as C++ 2019-08-12 10:46:11 +02:00
CMakeLists.txt Do not build the extra Flow variants by default. 2019-10-11 08:46:17 +02:00
compareECLFiles.cmake changed: mark parallel tests for serial execution 2019-08-13 11:54:19 +02:00
CTestConfig.cmake cdash: update dropsite 2015-11-11 16:50:25 +01:00
dune.module changed: rename ewoms to opm-models 2019-08-23 11:27:16 +02:00
opm-simulators-prereqs.cmake changed: rename ewoms to opm-models 2019-08-23 11:27:16 +02:00
README.md Fix a typo. 2018-03-24 21:07:03 +05:00

Open Porous Media Simulators and Automatic Differentiation Library

CONTENT

opm-simulators contains simulator programs for porous media flow. It also contains a small library for automatic differentiation built on the Eigen linear algebra package which is used by many of the simulators to handle the building of Jacobians. The most important (and tested) part is the Flow reservoir simulator, which is a fully implicit black-oil simulator that also supports solvent and polymer options. It is built using automatic differentiation, using the local AD class Evaluation from opm-material.

LICENSE

The library is distributed under the GNU General Public License, version 3 or later (GPLv3+).

PLATFORMS

The opm-simulators module is designed to run on Linux platforms. It is also regularly run on Mac OS X. No efforts have been made to ensure that the code will compile and run on windows platforms.

REQUIREMENTS

opm-simulators requires several other OPM modules, see http://opm-project.org/?page_id=274. In addition, opm-simulators requires the Dune module dune-istl and Eigen, version 3.1 (has not been tested with later versions).

DOWNLOADING

For a read-only download: git clone git://github.com/OPM/opm-simulators.git

If you want to contribute, fork OPM/opm-simulators on github.

BUILDING

See build instructions at http://opm-project.org/?page_id=36

DOCUMENTATION

Efforts have been made to document the code with Doxygen. In order to build the documentation, enter the command

make doc

in the topmost directory. The class AutoDiffBlock is the most important and most well-documented.

REPORTING ISSUES

Issues can be reported in the Git issue tracker online at:

https://github.com/OPM/opm-simulators/issues

To help diagnose build errors, please provide a link to a build log together with the issue description.

You can capture such a log from the build using the `script' utility, e.g.:

LOGFILE=$(date +%Y%m%d-%H%M-)build.log ;
cmake -E cmake_echo_color --cyan --bold "Log file: $LOGFILE" ;
script -q $LOGFILE -c 'cmake ../opm-core -DCMAKE_BUILD_TYPE=Debug' &&
script -q $LOGFILE -a -c 'ionice nice make -j 4 -l 3' ||
cat CMakeCache.txt CMakeFiles/CMake*.log >> $LOGFILE

The resulting file can be uploaded to for instance gist.github.com.