README.md 7 KB
Newer Older
1
<img src="doc/logo/dumux_logo_hires_whitebg.png" alt="dumux logo" width="400"/>
2
3

What is DuMuX?
4
===============
5
6

[DuMuX][0] is a simulation toolbox mainly aimed at flow and transport
Bernd Flemisch's avatar
Bernd Flemisch committed
7
processes in porous media. DuMuX is based on the [DUNE][1]
8
9
10
framework and aims to provide a multitude of numerical models as well
as flexible discretization methods for complex non-linear phenomena,
such as CO2 sequestration, soil remediation, drug delivery in cancer
11
12
13
therapy and more. Have a look at our publications
(see below: [How to cite](#how-to-cite))
for a more detailed description of the goals and motivations behind DuMuX.
14
15
16


Installation
17
===============
18

Timo Koch's avatar
Timo Koch committed
19
20
Have a look at the [installation guide][3] or use the [DuMuX handbook][4],
Chapter 2.
21

Timo Koch's avatar
Timo Koch committed
22
23
24
25
26
27
28
Documentation
==============

The following resources are useful to get started with DuMux:

* [Handbook](https://dumux.org/handbook), a detailed DuMux manual,
* [DuMux course materials](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/tree/master),
29
* [Examples](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/tree/master/examples), with detailed description of code and results,
Timo Koch's avatar
Timo Koch committed
30
31
32
33
34
* [Class documentation](https://dumux.org/classdocumentation) generated from the source code,
* [Mailing list](https://listserv.uni-stuttgart.de/mailman/listinfo/dumux),
* [Changelog](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/blob/master/CHANGELOG.md), where all changes between different release versions are listed and explained.

Some helpful code snippets are available in the [Wiki](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/wikis/home).
35
36

License
37
========
38
39

DuMuX is licensed under the terms and conditions of the GNU General
40
Public License (GPL) version 3 or - at your option - any later
41
version. The GPL can be [read online][5] or in the [LICENSE.md](LICENSE.md) file
42
43
44
45
46
47
48
49
50
provided in the topmost directory of the DuMuX source code tree.

Please note that DuMuX' license, unlike DUNE's, does *not* feature a
template exception to the GNU General Public License. This means that
you must publish any source code which uses any of the DuMuX header
files if you want to redistribute your program to third parties. If
this is unacceptable to you, please [contact us][6] for a commercial
license.

51
See the file [LICENSE.md](LICENSE.md) for full copying permissions.
52

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
How to cite
============

DuMux is research software and developed at research institutions.
If you are using DuMux in scientific publications and in
the academic context, please cite (at least one)
of our publications:

* [Koch, T., Gläser, D., Weishaupt, K., Ackermann, S., Beck, M., Becker, B.,
  Burbulla, S., Class, H., Coltman, E., Emmert, S., Fetzer, T., Grüninger, C.,
  Heck, K., Hommel, J., Kurz, T., Lipp, M., Mohammadi, F., Scherrer, S.,
  Schneider, M., Seitz, G., Stadler, L., Utz, M., Weinhardt, F.
  & Flemisch, B. (_2020_). __DuMux 3 – an open-source simulator for solving flow
  and transport problems in porous media with a focus on model coupling.__
  _Computers & Mathematics with Applications_,
  https://doi.org/10.1016/j.camwa.2020.02.012][7]

* [Flemisch, B., Darcis, M., Erbertseder, K., Faigle, B., Lauser, A.,
  Mosthaf, K., Müthing, S., Nuske, P., Tatomir, A., Wolff, M.,
  & Helmig, R. (_2011_). __DuMux: DUNE for multi-{phase,component,scale,physics,…}
  flow and transport in porous media__.
  _Advances in Water Resources_, 34(9), 1102–1112.
  https://doi.org/10.1016/j.advwatres.2011.03.007][2]

You can also cite specific releases published on Zenodo:
[![zenodo badge](https://zenodo.org/badge/DOI/10.5281/zenodo.2479594.svg)](https://doi.org/10.5281/zenodo.2479594)



Timo Koch's avatar
Timo Koch committed
82
Automated Testing
83
==================
84
[![buildbot badge](https://git.iws.uni-stuttgart.de/buildbot/badges/dumux-master-dune-latest-gcc.svg)](https://git.iws.uni-stuttgart.de/buildbot/#/builders)
Timo Koch's avatar
Timo Koch committed
85
86
87

DuMuX features many tests (some unit tests and test problems) that can
be run manually. We have experimental support for automated testing with buildbot.
88
Click <a href="https://git.iws.uni-stuttgart.de/buildbot/#/builders" target="_blank">here (buildbot)</a>
Timo Koch's avatar
Timo Koch committed
89
90
91
to see the latest builds (clicking on a build
number will show a detailed overview of the build).

Timo Koch's avatar
Timo Koch committed
92
[![coverage report](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-coverage/badges/master/coverage.svg)](https://pages.iws.uni-stuttgart.de/dumux-repositories/dumux-coverage/)
Timo Koch's avatar
Timo Koch committed
93
94
95
96
97
98

A weekly coverage report of the test suite is created by gcovr/gcov. The report
currently doesn't include non-instantiated code, so the real coverage is likely lower. However,
only a few lines of code are never instatiated in the comprehensive test suite.


99
100
101
102
103
104
105
106
107
Contributing
=============

Contributions are highly welcome. Please ask questions over the [mailing list](mailto:dumux@listserv.uni-stuttgart.de).
Please review the [contribution guidelines](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/blob/master/CONTRIBUTING.md)
before opening issues and merge requests. For bug reports contact us
over the mailing list, or file an [issue](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/issues). For bug fixes,
feature implementations open a [merge request](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/merge_requests)
or send us formatted patches.
Timo Koch's avatar
Timo Koch committed
108

109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Backwards Compatibility
=======================

For a detailed description of the backwards compatibility policy, 
please see [contribution guidelines](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/blob/master/CONTRIBUTING.md).

Dumux Releases are split into major(e.g. 2.0, 3.0) and minor (e.g. 3.1, 3.2, 3.3) releases. 
Major releases are not required to maintain backwards compatibility (see below), 
but would provide a detailed guide on how to update dependent modules. 
For each minor release, maintaining backwards compatibility is strongly encouraged and recommended.

Despite the goal of maintaining backwards compatibility across minor releases,
for more complicated changes, this is decided upon on a case to case basis, due to limited developer resources. 
In the case that implementing full backwards compatibility for an update is not feasible, or would require unreasonable resources, 
the degree of backwards compatibility be decided by a vote in one of the monthly core developer meetings.

125
126
127
128
129
130
Major version update, 2.12 to 3.0
===================================

With the version update to version 3, many features have been added and a lot has been improved in DuMuX. See the
[changelog](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/blob/master/CHANGELOG.md) for a list of changes.
If you decide to update from version 2.12, please have a look at our small
Ned Coltman's avatar
Ned Coltman committed
131
[guide](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/wikis/Hints/Upgrade-to-Dumux-3)
132
133
on how to update an application to the new version.

134
135
136
137
138
139
[0]: https://dumux.org
[1]: https://dune-project.org/
[2]: https://dumux.org/documents/dumux_awrpaper.pdf
[3]: https://dumux.org/installation
[4]: https://dumux.org/documents/dumux-handbook-master.pdf
[5]: https://www.gnu.org/licenses/gpl-3.0.en.html
Ned Coltman's avatar
Ned Coltman committed
140
[6]: https://www.iws.uni-stuttgart.de/en/lh2/
141
[7]: https://doi.org/10.1016/j.camwa.2020.02.012