...
 
Commits (7)
......@@ -2,6 +2,7 @@
module = "dune-alugrid"
group = ["grid"]
requires = ["dune-common", "dune-geometry", "dune-grid"]
suggests = ["dune-python"]
maintainers = "Martin Alkämper, Andreas Dedner, Robert Klöfkorn, Martin Nolte"
git = "https://gitlab.dune-project.org/extensions/dune-alugrid"
short = "ALUGrid is an adaptive, loadbalancing, unstructured implementation of the DUNE grid interface supporting either simplices or cubes."
......
......@@ -2,6 +2,7 @@
module = "dune-polygongrid"
group = ["grid"]
requires = ["dune-grid"]
suggests = ["dune-python"]
maintainers = "Martin Nolte"
git = "https://gitlab.dune-project.org/martin.nolte/dune-polygongrid"
short = "PolygonGrid implements a DUNE grid consisting of polygons."
......
......@@ -21,15 +21,61 @@ git = "https://gitlab.dune-project.org/staging/dune-python.git"
short = "Python bindings for the DUNE core modules"
+++
This module provides python binding for all the dune core modules. This
makes it possible to use Python to perform pre and post processing steps
and to test new algorithms using Python before transferring the code
to C++. The modular structure of DUNE and its interface based approach
are maintained as far as possible. We use just in time compilation to
dynamically add interface realizations found in any installed DUNE
module and to compile additional C++ functions on demand.
We have attempted to export all DUNE C++ classes to Python with an
identical interface while also providing additional the functionality which
would be expected by Python users. The aim was to make the transition from
C++ to Python and vice versa as painless as possible.
### Introduction
This module provides Python bindings for all
<span style="font-variant: small-caps">Dune</span> core modules.
The aim of this module is to firstly provide the general infrastructure for
exporting realizations of statically polymorphic interfaces based on
just-in-time compilation and secondly to provide bindings for the central
interfaces of the <span style="font-variant: small-caps">Dune</span> core
modules.
This makes it possible to use Python to perform pre and post processing steps
and to test new algorithms before transferring the code to C++.
Staying true to the <span style="font-variant: small-caps">Dune</span>
philosophy, we only introduce a thin layer when passing objects into Python,
which can be removed when the object is passed back into a C++ algorithm.
This retains the efficiency of C++ algorithms and little maintenance cost is
incurred. Also the modular structure of
<span style="font-variant: small-caps">Dune</span>
is maintained so that adding bindings for additional modules is straightforward.
This module provides a good entry point for getting started with
<span style="font-variant: small-caps">Dune</span>
due to the flexibility of the Python environment. To facilitate the
transition to the C++ development all
the Python classes have a very similar interface to their C++ counterparts.
This makes rapid prototyping in Python and then transferring the resulting
code to C++ to increase efficiency straightforward. Furthermore, the Python
interfaces will be very familiar to experienced
<span style="font-variant: small-caps">Dune</span>
users and developers, leading to no issues when switching between C++ and
Python. Combining C++ code and Python code is straightforward since free
standing C++ functions can be easily called in a Python script and
in addition, vectorized versions of many interfaces allow for more efficient
code on the Python side.
A description of the mechanisms behind dune-python and a detailed introduction
to its use can be found in the accompanying article
[Dedner, Nolte. The DUNE-Python Module][dune-python paper].
### Download
<table>
<tr>
<th>Version</th>
<th>Source</th>
<th>Signature</th>
</tr>
<tr>
<td>2.6.0</td>
<td><a href="/download/2.6.0/dune-python-2.6.0.tar.gz" download>dune-python-2.6.0.tar.gz</a></td>
<td><a href="/download/2.6.0/dune-python-2.6.0.tar.gz.asc" download>dune-python-2.6.0.tar.gz.asc</a></td>
</tr>
</table>
[dune-python paper]: https://arxiv.org/abs/1807.05252
......@@ -2,6 +2,7 @@
module = "dune-spgrid"
group = ["grid"]
requires = ["dune-grid"]
suggests = ["dune-python"]
maintainers = "Martin Nolte"
git = "https://gitlab.dune-project.org/extensions/dune-spgrid"
short = "SPGrid is an efficient structured, parallel implementation of the DUNE grid interface."
......
+++
date = "2018-07-17"
title = "dune-python 2.6.0 released"
+++
The first release of the new [dune-python][] has finally
arrived!
This module provides the general infrastructure for exporting realizations
of statically polymorphic interfaces to Python based on just-in-time
compilation as well as bindings for the central interfaces of the
<span style="font-variant: small-caps">Dune</span> [core modules][].
This makes it possible to use Python to perform pre and post processing steps
and to test new algorithms before transferring the code to C++. Adding
Python bindings for additional modules and importing
free standing C++ template functions is straightforward.
In this first release, we focus on the grid interface.
Some grid implementations residing in external
<span style="font-variant: small-caps">Dune</span> modules, like
[ALUGrid][dune-alugrid], [SPGrid][dune-spgrid], and the new
[PolygonGrid][dune-polygongrid], are provide Python bindings in the presence
of dune-python.
This release is accompanied by a recently finished
[article][dune-python paper] describing the mechanisms behind dune-python and
providing a detailed introduction into its use.
You can get the code by cloning the [git repository][dune-python git] and
checking out the `v2.6.0` tag or by downloading the [source archive][archive].
[dune-python]: /modules/dune-python
[dune-python git]: https://gitlab.dune-project.org/staging/dune-python
[dune-python paper]: https://arxiv.org/abs/1807.05252
[archive]: /download/2.6.0/dune-python-2.6.0.tar.gz
[core modules]: /groups/core
[dune-alugrid]: /modules/dune-alugrid
[dune-spgrid]: /modules/dune-spgrid
[dune-polygongrid]: /modules/dune-polygongrid
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE+msDwt+7qUJ6PAk7PwhltmCmRdUFAltNtBAACgkQPwhltmCm
RdW7RQ/+MDJcq7hfXQC5zls/HHMk+eg1xi3iF4XDKP7DJ6tmsyVVABnsHZKypijS
hw6+XqgGg4kFaYYGlE5BzpEXqwzSkpf4WDYJRfii1iEyhhKTD0O7se9cjmtD7yEg
FAWHUG8kmEK6Lvko/Ck2RJlRLT1pOt4W8EfTNfGW72VcT6fEZD5HOHQMNJtMtRDc
gXEqZ4F2Kst0hooa4Wd/0qsFc2Vt4oS220aJlXIp4CVPNsUToyhBVd19nWMeUdzR
wVbp0w5nWiVjIcwUA4Ea3bUIGfddWKyrcrfaow0/WuwAwfDcY9F6NLZz17YbsiSa
suWqx407PL+kKEMDPBGT8w0pihUurrBZav9DAQD/K0Qg0mCjBWfXK4sn9cFlefGZ
9s8KIhuadCqdJc3PsRSlGOZLGv5l0vP9LdW2dbV6jJ1vAB65PVQrWR8RnRkHq7N2
H9PvS/OCm2KhGdPOSgxu8Vc4RwWv0kRVolAg0jtA2LwIanLRC72xjI3vHcqIs9W8
v7ZnPuOeM2ugH2tcWnGv+FmOyvrlMVJTUFvhzz8UL/6ixEvXnGq1zGhGlOK2fqdU
iWaQdzxZ+vT52rLtRgNKsYeNtNhkAkPkz5XdayD0qw8qlrt7KxCdW4BQdmBmye8L
mfGTs4Q3QellesTR8ayGmQptDMtz9e9QKQdXRzSGh/a7tOmCtzo=
=L/pw
-----END PGP SIGNATURE-----