Commit 832c909b authored by Lukas Riedel's avatar Lukas Riedel

Merge branch 'update/dune-v2.5' into feature/parallel-solve

parents 140b26b9 b89548f8
image: dorie/dune-env:2.4
image: dorie/dune-env:2.5
variables:
DUNE_CONTROL_PATH: /opt/dune:$CI_PROJECT_DIR
......@@ -11,6 +11,8 @@ stages:
- deploy
build:main:
tags:
- docker
script:
- MAKE_FLAGS="-j 2" ./dune-common/bin/dunecontrol --only=dorie all
- export PATH=/opt/dune/dorie/build-cmake/bin:$PATH
......@@ -24,19 +26,20 @@ build:main:
expire_in: 1 week
build:python3:
tags:
- docker
script:
- cd /opt/dune/venv
- virtualenv dorie3 --py=/usr/bin/python3
- source /opt/dune/venv/dorie3/bin/activate
- python -m pip install virtualenv
- cd /opt/dune
- ./dune-common/bin/dunecontrol exec "rm -rf build-cmake"
- MAKE_FLAGS="-j 2" ./dune-common/bin/dunecontrol all
- ./dune-common/bin/dunecontrol --only=dune-python exec "rm -rf build-cmake"
- ./dune-common/bin/dunecontrol --only=dune-testtools exec "rm -rf build-cmake"
- ./dune-common/bin/dunecontrol --only=dorie exec "rm -rf build-cmake"
- CMAKE_FLAGS="-DDUNE_FORCE_PYTHON3=True" MAKE_FLAGS="-j 2" ./dune-common/bin/dunecontrol --module=dorie all
- export PATH=/opt/dune/dorie/build-cmake/bin:$PATH
- ARGS="--output-on-failure -j 2" ./dune-common/bin/dunecontrol --only=dorie make test
stage: build
build:update_dune:
tags:
- docker
script:
- ./dune-common/bin/dunecontrol update || true
- ./dune-common/bin/dunecontrol exec "rm -rf build-cmake"
......@@ -46,11 +49,15 @@ build:update_dune:
stage: build
build:debug:
tags:
- docker
script:
- CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=Debug" ./dune-common/bin/dunecontrol --only=dorie all
stage: build
deploy:docs:
tags:
- docker
script:
- cd $CI_PROJECT_DIR && bash .deploy_docs
stage: deploy
......
......@@ -32,6 +32,9 @@ dune_project()
dune_enable_all_packages()
dune_require_cxx_standard(MODULE "dorie" VERSION 14)
# avoid the executables from being 'excluded from all'
set(DUNE_BUILD_TESTS_ON_MAKE_ALL TRUE)
# add subdirectories
add_subdirectory("bin")
add_subdirectory("m4")
......
FROM dorie/dune-env:2.4
FROM dorie/dune-env:2.5
MAINTAINER Dion Häfner
WORKDIR /opt/dune
......
# Welcome to DORiE!
(__D__UNE-__O__perated __Ri__chards equation solving __E__nvironment)
![build status](http://shangrila.iup.uni-heidelberg.de:30000/dorie/dorie-new/badges/master/build.svg)
[![build status](https://zwackelmann.iup.uni-heidelberg.de:10443/dorie/dorie/badges/master/build.svg)](https://zwackelmann.iup.uni-heidelberg.de:10443/dorie/dorie/commits/master)
DORiE is a software suite for solving Richard's Equation. The core feature is a C++ PDE-solver powered by [DUNE](https://dune-project.org/). It implements a Discontinous Galerkin (DG) discretization scheme on structured rectangular / cubic and unstructured simplex grids in two and three spatial dimensions, and makes use of advanced features like adaptive grid refinement.
......@@ -34,10 +34,10 @@ In the section 'Usage' you will find a list of possible commands. Note that inpu
## Docker Installation - Interactive Setup
This setup is intended for advanced users. You will gain access to the DORiE module outside the container, and be able to make changes to the source code.
We have prepared a [DORiE DUNE Environment Image on Dockerhub](https://hub.docker.com/r/dorie/dune-env/), which is a modified image of the Ubuntu OS that has all dependencies readily installed. The current version is 2.4 (referencing the DUNE module version 2.4).
We have prepared a [DORiE DUNE Environment Image on Dockerhub](https://hub.docker.com/r/dorie/dune-env/), which is a modified image of the Ubuntu OS that has all dependencies readily installed. The current version is 2.5 (referencing the DUNE module version 2.5).
Run a new container from this image by calling
docker run -i -t dorie/dune-env:2.4 /bin/bash
docker run -i -t dorie/dune-env:2.5 /bin/bash
Docker will automatically download the image if necessary. Use the `-v` option of the `run` command to mount a local directory into the container:
......@@ -95,7 +95,7 @@ Depending on your system configuration, there will be more packages necessary to
| [dune-istl](https://gitlab.dune-project.org/core/dune-istl) | releases/2.5
| [dune-localfunctions](https://gitlab.dune-project.org/core/dune-localfunctions) | releases/2.5
| [dune-functions](https://gitlab.dune-project.org/staging/dune-functions) | releases/2.5
| [dune-typetree](https://gitlab.dune-project.org/pdelab/dune-typetree) | master
| [dune-typetree](https://gitlab.dune-project.org/staging/dune-typetree) | master
| [dune-pdelab](https://gitlab.dune-project.org/pdelab/dune-pdelab) | releases/2.5
| [dune-python](https://gitlab.dune-project.org/quality/dune-python) | releases/2.5
| [dune-testtools](https://gitlab.dune-project.org/quality/dune-testtools) | releases/2.5
......@@ -120,14 +120,10 @@ These instructions are suitable for a clean **Ubuntu** or **Mac OS X** setup. Th
brew update
brew install automake cmake doxygen gcc libtool libpng open-mpi \
pkg-config superlu
pkg-config python3 superlu
brew install hdf5 --with-mpi
brew install fftw --with-mpi
Install the PyPi package manager pip by downloading the [get_pip.py](https://bootstrap.pypa.io/get-pip.py) script and calling
sudo -H python get_pip.py
2. Install the necessary Python packages using `pip`:
**Ubuntu:**
......@@ -136,7 +132,7 @@ These instructions are suitable for a clean **Ubuntu** or **Mac OS X** setup. Th
**Mac OS X:**
sudo -H python -m pip install virtualenv sphinx==1.3.6 breathe --ignore-installed
sudo -H python3 -m pip install virtualenv sphinx breathe
3. **Mac OS X** only:
The Apple Clang compiler shipped with CMake is not suitable for compiling DUNE and UG. Before proceeding, call
......@@ -147,9 +143,15 @@ These instructions are suitable for a clean **Ubuntu** or **Mac OS X** setup. Th
to enfore the Homebrew'd GCC compiler. Note that this variable export only lasts for your current terminal session. Always make sure that the configuration tool actually finds GCC instead of the Apple Clang.
4. Clone the DUNE modules and DORiE into a suitable folder on your machine. Make sure that you check out the correct branches (see above). Enter the parent folder, and call
**Ubuntu:**
MAKE_FLAGS="-j <N>" ./dune-common/bin/dunecontrol all
**Mac OS X:**
CMAKE_FLAGS="-DDUNE_FORCE_PYTHON3=True" MAKE_FLAGS="-j <N>" ./dune-common/bin/dunecontrol all
to build all DUNE modules in parallel on `N` processes. If you installed software into paths not appended to your `PATH` variable, you will have to add `CMAKE_FLAGS` to the call to make sure that CMake finds all packages. Alternatively, you can add a custom options file. See the [DUNE Installation Instructions](https://dune-project.org/doc/installation/) for details. CMake will throw an error if required packages are not found.
5. To install all DUNE packages into system locations (so you can call `dunecontrol` and `dorie` from anywhere), you can run
......@@ -220,7 +222,7 @@ or
## Troubleshooting
CMake heavily caches the results of its configuration process. In case you encounter errors or strange behavior, especially after an update, you should delete the DORiE build folder (called `build-cmake` by default) and re-install DORiE using `dunecontrol`.
If the problem persists, take a look at the [List of Known Bugs](http://shangrila.iup.uni-heidelberg.de:30000/dorie/dorie-new/issues?assignee_id=&author_id=&label_name=bug&milestone_id=&scope=all&sort=created_desc&state=opened), or create an issue yourself. For problems related to the installation, refer to the sections below.
If the problem persists, take a look at the [List of Known Bugs](https://zwackelmann.iup.uni-heidelberg.de:10443/dorie/dorie/issues), or create an issue yourself. For problems related to the installation, refer to the sections below.
### Debugging
DORiE can be built with debugging flags via CMake. To do so, run
......@@ -250,4 +252,4 @@ You can execute system tests in order to ensure that DORiE is running correctly
You will be informed whether each test has been passed or failed, and you may find additional output in the DORiE build directory.
### Further Help
[Open an issue](http://shangrila.iup.uni-heidelberg.de:30000/dorie/dorie-new/issues/new), or write to the [DORiE developer mailing list](mailto:dorieteam@iup.uni-heidelberg.de).
[Open an issue](https://zwackelmann.iup.uni-heidelberg.de:10443/dorie/dorie/issues/new), or write to the [DORiE developer mailing list](mailto:dorieteam@iup.uni-heidelberg.de).
add_executable("dorie-rfg" dorie-rfg.cc)
target_link_dune_default_libraries("dorie-rfg")
\ No newline at end of file
dune_target_link_libraries(dorie-rfg ${DUNE_LIBS})
\ No newline at end of file
......@@ -6,4 +6,4 @@ add_executable("parallel" parallel.cc)
target_link_dune_default_libraries("parallel")
add_executable("dorie" dorie.cc)
dune_target_link_libraries(dorie doriesim)
\ No newline at end of file
dune_target_link_libraries(dorie dorie-impl ${DUNE_LIBS})
\ No newline at end of file
......@@ -38,6 +38,8 @@
#include <dune/geometry/type.hh>
#include <dune/localfunctions/common/interfaceswitch.hh>
#include <dune/pdelab/adaptivity/adaptivity.hh>
#include <dune/pdelab/backend/istl.hh>
#include <dune/pdelab/backend/interface.hh>
......@@ -50,6 +52,7 @@
#include <dune/pdelab/finiteelementmap/p0fem.hh>
#include <dune/pdelab/finiteelementmap/pkfem.hh>
#include <dune/pdelab/gridfunctionspace/gridfunctionspace.hh>
#include <dune/pdelab/gridfunctionspace/localfunctionspace.hh>
#include <dune/pdelab/gridoperator/gridoperator.hh>
#include <dune/pdelab/gridoperator/onestep.hh>
#include <dune/pdelab/instationary/onestep.hh>
......
dune_add_library(simulations OBJECT
add_library(dorie-impl STATIC
sim_ug_2_1.cc
sim_ug_2_2.cc
sim_ug_2_3.cc
......
......@@ -169,8 +169,8 @@ public:
SolutionContainer kfu_raw = cache_water_content();
std::vector<RF> res(kfu_raw.size());
typedef LocalFunctionSpace<KFGFS> LFS;
typedef LFSIndexCache<LFS> LFSCache;
typedef Dune::PDELab::LocalFunctionSpace<KFGFS> LFS;
typedef Dune::PDELab::LFSIndexCache<LFS> LFSCache;
typedef typename KFU::template ConstLocalView<LFSCache> XView;
typedef FiniteElementInterfaceSwitch<
typename Dune::PDELab::LocalFunctionSpace<KFGFS>::Traits::FiniteElementType
......
......@@ -74,13 +74,13 @@ void Simulation<Traits>::operator_setup ()
pdesolver->setVerbosityLevel(verbose);
// --- Time Step Operators ---
Dune::Dorie::OneStepMethodResult osm_result;
Dune::PDELab::OneStepMethodResult osm_result;
if(osm){
osm_result = osm->result(); // cache old result
}
osm = std::make_unique<OSM>(alex2,*igo,*pdesolver,osm_result);
osm = std::make_unique<OSM>(alex2,*igo,*pdesolver);
osm->setResult(osm_result);
osm->setVerbosityLevel(verbose+1);
osm->setStepNumber(osm_result.successful.timesteps+1);
gfs->update();
......
......@@ -72,7 +72,7 @@ protected:
/// Time stepping scheme
using TimeStepScheme = Dune::PDELab::Alexander2Parameter<RF>;
/// Method computing the time step
using OSM = Dune::Dorie::OneStepMethod<RF,IGO,PDESOLVER,U,U>;
using OSM = Dune::PDELab::OneStepMethod<RF,IGO,PDESOLVER,U,U>;
// -- Utility Class Definitions -- //
/// VTK Output writer base class
......
......@@ -16,6 +16,5 @@
#include <dune/dorie/solver/param_factory.hh>
#include <dune/dorie/solver/operator_DG.hh>
#include <dune/dorie/solver/operator_error_indicator.hh>
#include <dune/dorie/solver/dune_implicitonestep.hh>
#endif // DUNE_DORIE_SOLVER_HH
This diff is collapsed.
dune_add_library(doriesim
_DUNE_TARGET_OBJECTS:simulations_
ADD_LIBS ${DUNE_LIBS})
\ No newline at end of file
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