The TS-GitLab will have to shut down towards the end of the year — please think about migrating your projects to or GitHub.
(This is still a very early message, meant to keep you informed. There will be more urgent ones in the future.)

Commit 413c30b5 authored by Lukas Riedel's avatar Lukas Riedel
Browse files

Merge branch '1.1-bugfix-prep' into '1.1-stable'

Bugfix update to v1.1.1

See merge request !90
parents a06afc4f fa6182b1
......@@ -2,7 +2,7 @@
# Exclude generated files
......@@ -28,7 +28,8 @@ stages:
setup:dune-env: &setup
stage: setup
- web # activate through 'Run pipeline' only.
- $REBUILD_BASE_IMAGE # must be defined and have non-empty value
- dind
image: docker:stable
......@@ -86,6 +87,7 @@ build:main:
$DUNECONTROL --only=dorie all
- $DUNECONTROL --only=dorie make build_tests
- $DUNECONTROL --only=dorie make doc
name: "$CI_JOB_NAME"
......@@ -128,7 +130,7 @@ test:exec_cmds: &test
name: "$CI_JOB_NAME"
- $CI_PROJECT_DIR/build-cmake/Testing
- $CI_PROJECT_DIR/build-cmake/test
expire_in: 1 day
......@@ -170,6 +172,7 @@ deploy:dockerhub-devel: &deploy
- docker:dind
dependencies: []
......@@ -187,3 +190,26 @@ deploy:dockerhub-stable:
-t dorie/dorie:$CI_COMMIT_TAG .
- docker push dorie/dorie:$CI_COMMIT_TAG
stage: deploy
- tags@dorie/dorie
- build:main
# install the netfly CLI
- apt-get install -y golang-go golang-glide
- go get -d
- cd $HOME/go/src/
- make deps build
- go install
- cd $HOME/go/bin
- ./netlifyctl deploy
-P $CI_PROJECT_DIR/build-cmake/doc/html
name: sphinx-docs
\ No newline at end of file
# DORiE Changelog
## Unreleased
### Added
* DORiE now depends on [`yaml-cpp`](, a
library for reading YAML files. The version required is >=5.2.0.
### Changed
* `Simulation` is renamed `RichardsSimulation` and moved to
* `RichardsSimulation` now has its own `RichardsSimulationTraits` derived from
`BaseTraits`, which defines all its member types. `BaseTraits` now have
reduced content and are intended to be shared between models/simulations.
## 1.1.1 (2018-08-21)
### Added
* Documentation of Docker images and their usage in the CI/CD pipeline.
### Changed
* Rebuilds of the DUNE environment Docker image are now triggered by setting the
CI variable `REBUILD_BASE_IMAGE` to a non-empty value. Previously, the
builds in stage `setup` where triggered by any manual pipeline run.
* The test system folder was renamed from `testing` to [`test`](test).
### Fixed
* Removed VTK output from `dorie_mass_conservation` executable, which would
cause the corresponding test to fail if the designated output directory did
not exist.
* Removed CI artifacts of `test` stage from `deploy` jobs.
* Correctly estimate the number of row entries in the matrix backend based on
the DG discretization and proper static blocking. This can lead to a
performance improvement for large problems.
* VTK output is now written _before_ the grid is adapted. Previously, the output
displayed the adapted grid and not the one the solution was computed on.
* Grid adaptation is skipped after computing the final solution.
* Path to Pipeline artifacts for `test` stage. The artifacts are now correctly
captured and can be viewed and downloaded from the GitLab web interface.
* Fix a bug in the boundary condition evaluation where an `end()` iterator
was dereferenced without error.
* Re-introduced deployment of the documentation which can now be found online
## 1.1.0 (2018-07-27)
### Added
......@@ -49,7 +49,7 @@ add_subdirectory("lib")
# finalize the dune project, e.g. generating config.h etc.
MIT License
Copyright (c) 2018 Lukas Riedel, Dion Häfner, Ole Klein, Felix Riexinger
Copyright (c) 2018
Dion Häfner,
Ole Klein,
Santiago Ospina De Los Ríos,
Lukas Riedel,
Felix Riexinger
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......@@ -165,7 +165,7 @@ The following software packages are cross-platform, so you should be able to fin
## Documentation
The documentation of the current `master` branch can be found [online](
The documentation of the latest release branch can be found [online](
The documentation can be built after DORiE has been properly configured (i.e., by calling `dunecontrol`). Note that you might have to re-configure DORiE once after installing it, because some dependencies are installed at configure time (e.g. by `dunecontrol --only=dorie configure`). To build the documentation, just run
\ No newline at end of file
\ No newline at end of file
# DORiE Docker Images
DORiE uses [Docker]( images for testing and deploying
applications. These images are publicly available from
[Docker Hub]( There are two repositories:
* [`dorie/dorie`]( The DORiE application.
* [`dorie/dune-env`]( The DUNE
environment image.
`dune-env` is used for compiling DORiE in a 'clean' Ubuntu environment where all
dependencies are already installed. The final DORiE application image is the
DUNE image with DORiE installed.
We differentiate between two base images, one where DUNE is compiled with GCC,
and one where it is compiled with Clang.
## GitLab CI configuration
Both images are updated by the GitLab CI/CD Pipeline defined in
The `setup` build stage is builds a new DUNE environment image "from scratch".
It is triggered by running a pipeline with the CI variable `REBUILD_BASE_IMAGE`
set to a non-empty value. This is achieved by manually starting the pipeline
from the GitLab web interface ("CI/CD" - "Pipelines" - "Run Pipeline") and
entering the variable as well as an arbitrary value. This should only be
necessary if dependencies or their required versions change.
The `prep` stage updates all APT and DUNE packages in the DUNE environment image
and is run whenever a pipeline includes the deployment of a new application
The `deploy` stage deploys DORiE application images. It compiles DORiE into the
DUNE environment image. This stage is only run if tags are pushed or commits
are pushed to `master`.
\ No newline at end of file
......@@ -4,7 +4,7 @@
#Name of the module
Module: dorie
Version: 1.1.0
Version: 1.1.1
#depending on
Depends: dune-pdelab dune-uggrid dune-randomfield
......@@ -155,18 +155,23 @@ bool Simulation<Traits>::compute_time_step ()
template<typename Traits>
void Simulation<Traits>::run ()
const auto t_start = controller->getTime();
while(controller->doStep()) {
const auto time = controller->getTime();
const auto dt = controller->getDT();
if(adaptivity->adapt_grid(*grid, gv, *gfs, *param, *fboundary, time+dt, *uold, *unew)){ // reset operators if grid changes
&& adaptivity->adapt_grid(*grid, gv, *gfs, *param, *fboundary,
time+dt, // need "old" boundary condition
*uold, *unew))
operator_setup(); // reset operators if grid changes
......@@ -19,28 +19,22 @@
namespace Dune{
namespace Dorie{
/// Return the estimation of entries per matrix row for the spatial GridOperator.
/// Return the estimation of entries per matrix row for the spatial GridOperator
/** This supposedly decreases matrix assembly time.
* The values are empirical. The actual matrix statistics can be displayed
* by assembling the IGO Jacobian and calling patternStatistics().
* The values specify the *blocks* per row. DG assembles one block for the
* actual element and one for each of its neighbors.
* \param dim Spatial dimension
* \param geo Geometry type of grid entities
* \return Estimated entries per matrix row
* \return Estimated number of blocks per matrix row
template<typename R = std::size_t>
R estimate_mbe_entries (const int dim, const Dune::GeometryType::BasicType geo)
constexpr R estimate_mbe_entries (const int dim, const Dune::GeometryType::BasicType geo)
return 5;
else if(dim==3)
return 7;
if (geo==Dune::GeometryType::BasicType::cube){
return 2*dim + 1;
else if(geo==Dune::GeometryType::BasicType::simplex){
return 13;
else if(dim==3)
return 20;
else if (geo==Dune::GeometryType::BasicType::simplex){
return dim + 2;
std::cerr << "Cannot provide MBE entry estimation for given dimension and/or GeometryType!" << std::endl;
return 1;
......@@ -272,7 +272,7 @@ namespace Dorie{
auto it=bcTimeStamps.begin();
unsigned int n=0;
while(*it<=time && it!=bcTimeStamps.end()){
while(it!=bcTimeStamps.end() && *it<=time){
it++; n++;
return n-1;
......@@ -263,9 +263,6 @@ public:
double run_test()
const auto t_start = this->controller->getTime();
double acc{0.0}; // accumulated deviation
double acc_square{0.0}; // accumulated squared deviation
......@@ -301,8 +298,6 @@ public:
std::cout << "wc_new: " << wc_new << std::endl;
std::cout << "integrated flux: " << flux_int << std::endl;
std::cout << "deviation: " << deviation << std::endl;
std::cout << "total deviation: " << acc << std::endl;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment