Commit 7f90fcc8 authored by Santiago Ospina De Los Ríos's avatar Santiago Ospina De Los Ríos

Merge branch 'master' into feature/simulation-traits

parents 997e0331 c013eeb5
......@@ -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
......@@ -170,6 +171,7 @@ deploy:dockerhub-devel: &deploy
- docker:dind
dependencies: []
......@@ -3,6 +3,23 @@
## Unreleased
### 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.
### 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.
## 1.1.0 (2018-07-27)
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
# 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
......@@ -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;
......@@ -261,9 +261,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
......@@ -299,8 +296,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