Commit d74539ca authored by Christoph Grüninger's avatar Christoph Grüninger
Browse files

Merge branch 'feature/drop-alberta-for-foamgrid' into 'master'

Feature/drop alberta for foamgrid



See merge request !62
parents a7d47a48 5e16b369
...@@ -2,7 +2,11 @@ Differences Between DuMuX 2.8 and DuMuX 2.9 ...@@ -2,7 +2,11 @@ Differences Between DuMuX 2.8 and DuMuX 2.9
=================================================== ===================================================
* IMPORTANT NOTES: * IMPORTANT NOTES:
- - The support for the external grid library ALBERTA was dropped. Instead
we now offically support dune-foamgrid
(https://gitlab.dune-project.org/extensions/dune-foamgrid). Dune-foamgrid
supports 1d and 2d simplex grids embedded in an arbitrary dimension world space.
It features element parametrizations, runtime growth, runtime-movable vertices.
* IMPROVEMENTS and ENHANCEMENTS: * IMPROVEMENTS and ENHANCEMENTS:
- The multidomain models have been restructured. This aims at a reduction in - The multidomain models have been restructured. This aims at a reduction in
......
...@@ -18,8 +18,8 @@ for all possible cases, so \Dumux is build on top of \Dune, the ...@@ -18,8 +18,8 @@ for all possible cases, so \Dumux is build on top of \Dune, the
\textbf{D}istributed and \textbf{U}nified \textbf{N}umerics \textbf{D}istributed and \textbf{U}nified \textbf{N}umerics
\textbf{E}nvironment~\cite{DUNE-HP}. \Dune provides a generic interface \textbf{E}nvironment~\cite{DUNE-HP}. \Dune provides a generic interface
to many existing grid management libraries such as UG~\cite{UG-HP}, to many existing grid management libraries such as UG~\cite{UG-HP},
ALBERTA~\cite{ALBERTA-HP}, ALUGrid~\cite{ALUGRID-HP} and a few ALUGrid~\cite{ALUGRID-HP} and a few more.
more. DUNE also extensively uses template programming in order to DUNE also extensively uses template programming in order to
achieve minimal overhead when accessing the underlying grid achieve minimal overhead when accessing the underlying grid
libraries\footnote{In fact, the performance penalty resulting from the libraries\footnote{In fact, the performance penalty resulting from the
use of \Dune's grid interface is usually negligible~\cite{BURRI2006}.}. use of \Dune's grid interface is usually negligible~\cite{BURRI2006}.}.
......
...@@ -236,15 +236,17 @@ In the following list, you can find some external modules and external libraries ...@@ -236,15 +236,17 @@ In the following list, you can find some external modules and external libraries
and some more libraries and tools which are prerequisites for their use. and some more libraries and tools which are prerequisites for their use.
\begin{itemize} \begin{itemize}
\item \textbf{ALBERTA}: External grid library. Adaptive multi-level grid manager using bisectioning
refinement and error control by residual techniques for scientific Applications. Requires a Fortran
compiler like \texttt{gfortran}. Download: \texttt{\url{http://www.alberta-fem.de}} or for version 3.0
\texttt{\url{http://www.mathematik.uni-stuttgart.de/fak8/ians/lehrstuhl/nmh/downloads/alberta/}}.
\item \textbf{dune-ALUGrid}: Grid library, comes as a \Dune module. \item \textbf{dune-ALUGrid}: Grid library, comes as a \Dune module.
The parallel version needs also a graph partitioner, such as \texttt{ParMETIS}. The parallel version needs also a graph partitioner, such as \texttt{ParMETIS}.
Download: \texttt{\url{https://gitlab.dune-project.org/extensions/dune-alugrid}} Download: \texttt{\url{https://gitlab.dune-project.org/extensions/dune-alugrid}}
\item \textbf{dune-foamgrid}: External grid module. One- and two-dimensional grids
in a physical space of arbitrary dimension; non-manifold grids, growth, element
paramterizations, and movable vertices. This makes FoamGrid the grid data structure
of choice for simulating structures such as foams, discrete fracture networks,
or network flow problems.
Download: \texttt{\url{https://gitlab.dune-project.org/extensions/dune-foamgrid}}
\item \textbf{\Dune-multidomaingrid} and \textbf{\Dune-multidomain}: External modules which offer a meta grid that \item \textbf{\Dune-multidomaingrid} and \textbf{\Dune-multidomain}: External modules which offer a meta grid that
has different sub-domains. Each sub-domain can have a local operator that is coupled by a coupling condition. They are has different sub-domains. Each sub-domain can have a local operator that is coupled by a coupling condition. They are
used for multi-physics approaches or domain decomposition methods. Download: used for multi-physics approaches or domain decomposition methods. Download:
...@@ -279,7 +281,7 @@ depending on which modules of \Dune and which external libraries you use. ...@@ -279,7 +281,7 @@ depending on which modules of \Dune and which external libraries you use.
when they are going to be built for parallel computing. \texttt{OpenMPI} and \texttt{MPICH} in a recent when they are going to be built for parallel computing. \texttt{OpenMPI} and \texttt{MPICH} in a recent
version have been reported to work. version have been reported to work.
\item \textbf{BLAS}: Alberta and SuperLU make use of BLAS. Thus install GotoBLAS2, ATLAS, non-optimized BLAS \item \textbf{BLAS}: SuperLU makes use of BLAS. Thus install GotoBLAS2, ATLAS, non-optimized BLAS
or BLAS provided by a chip manufacturer. Take care that the installation scripts select the intended or BLAS provided by a chip manufacturer. Take care that the installation scripts select the intended
version of BLAS. version of BLAS.
......
...@@ -1371,11 +1371,6 @@ ...@@ -1371,11 +1371,6 @@
url={https://dx.doi.org/10.1021/jp021943g} url={https://dx.doi.org/10.1021/jp021943g}
} }
@MISC{ALBERTA-HP,
title = {{The {ALBERTA} Website: \url{http://www.alberta-fem.de/}}},
key = {ALBERTA}
}
@MISC{ALUGRID-HP, @MISC{ALUGRID-HP,
title = {T{he {ALUG}rid Website: \url{http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/}}}, title = {T{he {ALUG}rid Website: \url{http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/}}},
key = {ALU} key = {ALU}
......
...@@ -28,9 +28,6 @@ ...@@ -28,9 +28,6 @@
#if HAVE_DUNE_ALUGRID #if HAVE_DUNE_ALUGRID
#include <dune/alugrid/grid.hh> #include <dune/alugrid/grid.hh>
#endif #endif
#if HAVE_ALBERTA
#include <dune/grid/albertagrid/agrid.hh>
#endif
#include <dune/grid/common/backuprestore.hh> #include <dune/grid/common/backuprestore.hh>
#if ! DUNE_VERSION_NEWER(DUNE_COMMON, 3, 0) #if ! DUNE_VERSION_NEWER(DUNE_COMMON, 3, 0)
...@@ -60,14 +57,6 @@ struct GridRestartCheck<Dune::ALUGrid<dim, dimworld, elType, refinementType> > ...@@ -60,14 +57,6 @@ struct GridRestartCheck<Dune::ALUGrid<dim, dimworld, elType, refinementType> >
static const bool allowRestart = true; static const bool allowRestart = true;
}; };
#endif #endif
#if HAVE_ALBERTA
template<int dim, int dimworld>
struct GridRestartCheck<Dune::AlbertaGrid<dim, dimworld> >
{
static const bool allowRestart = true;
};
#endif
//! \endcond //! \endcond
......
...@@ -63,12 +63,6 @@ ...@@ -63,12 +63,6 @@
#include <dune/foamgrid/dgffoam.cc> #include <dune/foamgrid/dgffoam.cc>
#endif #endif
// Alberta specific includes
#if HAVE_ALBERTA
#include <dune/grid/albertagrid.hh>
#include <dune/grid/albertagrid/dgfparser.hh>
#endif
#include <dumux/common/propertysystem.hh> #include <dumux/common/propertysystem.hh>
#include <dumux/common/parameters.hh> #include <dumux/common/parameters.hh>
...@@ -1289,59 +1283,6 @@ public: ...@@ -1289,59 +1283,6 @@ public:
#endif // HAVE_DUNE_FOAMGRID #endif // HAVE_DUNE_FOAMGRID
#if HAVE_ALBERTA
/*!
* \brief Provides a grid creator for FoamGrids
* from information in the input file
*
* All keys are expected to be in group GridParameterGroup.
* The following keys are recognized:
* - File : A DGF or gmsh file to load from, type detection by file extension
* - Verbosity : whether the grid construction should output to standard out
*
*/
template<class TypeTag, int dim, int dimworld>
class GridCreatorImpl<TypeTag, Dune::AlbertaGrid<dim, dimworld> >
: public GridCreatorBase<TypeTag, Dune::AlbertaGrid<dim, dimworld> >
{
public:
typedef typename Dune::AlbertaGrid<dim, dimworld> Grid;
typedef GridCreatorBase<TypeTag, Grid> ParentType;
/*!
* \brief Make the grid. This is implemented by specializations of this method.
*/
static void makeGrid()
{
// First try to create it from a DGF or msh file in GridParameterGroup.File
try {
const std::string fileName = GET_RUNTIME_PARAM_FROM_GROUP_CSTRING(TypeTag, std::string, GET_PROP_VALUE(TypeTag, GridParameterGroup).c_str(), File);
ParentType::makeGridFromFile(fileName, "Alberta");
ParentType::maybeRefineGrid();
return;
}
catch (Dumux::ParameterException &e) {}
catch (...) { throw; }
// Then look for the necessary keys to construct a structured grid from the input file
try {
ParentType::template makeStructuredGrid<dim, dimworld>(ParentType::CellType::Simplex);
ParentType::maybeRefineGrid();
}
catch (Dumux::ParameterException &e) {
DUNE_THROW(Dumux::ParameterException, "Please supply the mandatory parameters "
<< GET_PROP_VALUE(TypeTag, GridParameterGroup) << ".UpperRight and "
<< GET_PROP_VALUE(TypeTag, GridParameterGroup) << ".LowerLeft or a grid file in "
<< GET_PROP_VALUE(TypeTag, GridParameterGroup) << ".File.");
}
catch (...) { throw; }
}
};
#endif // HAVE_ALBERTA
// TODO Petrel grids with dune-cornerpoint // TODO Petrel grids with dune-cornerpoint
} // namespace Dumux } // namespace Dumux
......
...@@ -2,5 +2,5 @@ Module: dumux ...@@ -2,5 +2,5 @@ Module: dumux
Version: 2.9-git Version: 2.9-git
Maintainer: dumux@listserv.uni-stuttgart.de Maintainer: dumux@listserv.uni-stuttgart.de
Depends: dune-grid (>= 2.4) dune-localfunctions (>= 2.4) dune-istl (>= 2.4) Depends: dune-grid (>= 2.4) dune-localfunctions (>= 2.4) dune-istl (>= 2.4)
Suggests: dune-alugrid (>=2.4) dune-pdelab (>=2.0) dune-multidomain dune-cornerpoint Suggests: dune-alugrid (>=2.4) dune-pdelab (>=2.0) dune-multidomain dune-cornerpoint dune-foamgrid (>=2.4)
Whitespace-Hook: Yes Whitespace-Hook: Yes
...@@ -82,17 +82,17 @@ NEW_TYPE_TAG(OnePTestCCProblemWithAMG, INHERITS_FROM(OnePTestCCProblem)); ...@@ -82,17 +82,17 @@ NEW_TYPE_TAG(OnePTestCCProblemWithAMG, INHERITS_FROM(OnePTestCCProblem));
SET_TYPE_PROP(OnePTestBoxProblemWithAMG, LinearSolver, Dumux::AMGBackend<TypeTag> ); SET_TYPE_PROP(OnePTestBoxProblemWithAMG, LinearSolver, Dumux::AMGBackend<TypeTag> );
SET_TYPE_PROP(OnePTestCCProblemWithAMG, LinearSolver, Dumux::AMGBackend<TypeTag> ); SET_TYPE_PROP(OnePTestCCProblemWithAMG, LinearSolver, Dumux::AMGBackend<TypeTag> );
// if AlbertaGrid is available, test for dim < dimWorld // if FoamGrid is available, test for dim < dimWorld
#if HAVE_ALBERTA #if HAVE_DUNE_FOAMGRID
NEW_TYPE_TAG(OnePOneDThreeDTestProblem, INHERITS_FROM(OnePTestProblem)); NEW_TYPE_TAG(OnePOneDThreeDTestProblem, INHERITS_FROM(OnePTestProblem));
NEW_TYPE_TAG(OnePOneDThreeDTestBoxProblem, INHERITS_FROM(BoxModel, OnePOneDThreeDTestProblem)); NEW_TYPE_TAG(OnePOneDThreeDTestBoxProblem, INHERITS_FROM(BoxModel, OnePOneDThreeDTestProblem));
NEW_TYPE_TAG(OnePOneDThreeDTestCCProblem, INHERITS_FROM(CCModel, OnePOneDThreeDTestProblem)); NEW_TYPE_TAG(OnePOneDThreeDTestCCProblem, INHERITS_FROM(CCModel, OnePOneDThreeDTestProblem));
SET_TYPE_PROP(OnePOneDThreeDTestProblem, Grid, Dune::AlbertaGrid<1, 3>); SET_TYPE_PROP(OnePOneDThreeDTestProblem, Grid, Dune::FoamGrid<1, 3>);
NEW_TYPE_TAG(OnePTwoDThreeDTestProblem, INHERITS_FROM(OnePTestProblem)); NEW_TYPE_TAG(OnePTwoDThreeDTestProblem, INHERITS_FROM(OnePTestProblem));
NEW_TYPE_TAG(OnePTwoDThreeDTestBoxProblem, INHERITS_FROM(BoxModel, OnePTwoDThreeDTestProblem)); NEW_TYPE_TAG(OnePTwoDThreeDTestBoxProblem, INHERITS_FROM(BoxModel, OnePTwoDThreeDTestProblem));
NEW_TYPE_TAG(OnePTwoDThreeDTestCCProblem, INHERITS_FROM(CCModel, OnePTwoDThreeDTestProblem)); NEW_TYPE_TAG(OnePTwoDThreeDTestCCProblem, INHERITS_FROM(CCModel, OnePTwoDThreeDTestProblem));
SET_TYPE_PROP(OnePTwoDThreeDTestProblem, Grid, Dune::AlbertaGrid<2, 3>); SET_TYPE_PROP(OnePTwoDThreeDTestProblem, Grid, Dune::FoamGrid<2, 3>);
#endif #endif
// Enable gravity // Enable gravity
......
...@@ -63,14 +63,13 @@ add_dumux_test(test_cc1pniconvection test_cc1pniconvection test_cc1pniconvection ...@@ -63,14 +63,13 @@ add_dumux_test(test_cc1pniconvection test_cc1pniconvection test_cc1pniconvection
${CMAKE_CURRENT_BINARY_DIR}/cc1pniconvection-00011.vtu ${CMAKE_CURRENT_BINARY_DIR}/cc1pniconvection-00011.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1pniconvection") --command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1pniconvection")
# dim < dimWorld tests # dim < dimWorld tests with foamgrid
add_dumux_test(test_box1p1d3d test_box1p1d3d test_box1p1d3d.cc add_dumux_test(test_box1p1d3d test_box1p1d3d test_box1p1d3d.cc
python ${CMAKE_SOURCE_DIR}/bin/runtest.py python ${CMAKE_SOURCE_DIR}/bin/runtest.py
--script fuzzy --script fuzzy
--files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox1d3d-reference.vtp --files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox1d3d-reference.vtp
${CMAKE_CURRENT_BINARY_DIR}/1ptestbox1d3d-00002.vtp ${CMAKE_CURRENT_BINARY_DIR}/1ptestbox1d3d-00002.vtp
--command "${CMAKE_CURRENT_BINARY_DIR}/test_box1p1d3d") --command "${CMAKE_CURRENT_BINARY_DIR}/test_box1p1d3d")
add_dune_alberta_flags(test_box1p1d3d GRIDDIM 1 WORLDDIM 3)
add_dumux_test(test_box1p2d3d test_box1p2d3d test_box1p2d3d.cc add_dumux_test(test_box1p2d3d test_box1p2d3d test_box1p2d3d.cc
python ${CMAKE_SOURCE_DIR}/bin/runtest.py python ${CMAKE_SOURCE_DIR}/bin/runtest.py
...@@ -78,7 +77,6 @@ add_dumux_test(test_box1p2d3d test_box1p2d3d test_box1p2d3d.cc ...@@ -78,7 +77,6 @@ add_dumux_test(test_box1p2d3d test_box1p2d3d test_box1p2d3d.cc
--files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox2d3d-reference.vtu --files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox2d3d-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/1ptestbox2d3d-00002.vtu ${CMAKE_CURRENT_BINARY_DIR}/1ptestbox2d3d-00002.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_box1p2d3d") --command "${CMAKE_CURRENT_BINARY_DIR}/test_box1p2d3d")
add_dune_alberta_flags(test_box1p2d3d GRIDDIM 2 WORLDDIM 3)
add_dumux_test(test_cc1p1d3d test_cc1p1d3d test_cc1p1d3d.cc add_dumux_test(test_cc1p1d3d test_cc1p1d3d test_cc1p1d3d.cc
python ${CMAKE_SOURCE_DIR}/bin/runtest.py python ${CMAKE_SOURCE_DIR}/bin/runtest.py
...@@ -86,7 +84,6 @@ add_dumux_test(test_cc1p1d3d test_cc1p1d3d test_cc1p1d3d.cc ...@@ -86,7 +84,6 @@ add_dumux_test(test_cc1p1d3d test_cc1p1d3d test_cc1p1d3d.cc
--files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc1d3d-reference.vtp --files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc1d3d-reference.vtp
${CMAKE_CURRENT_BINARY_DIR}/1ptestcc1d3d-00002.vtp ${CMAKE_CURRENT_BINARY_DIR}/1ptestcc1d3d-00002.vtp
--command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1p1d3d") --command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1p1d3d")
add_dune_alberta_flags(test_cc1p1d3d GRIDDIM 1 WORLDDIM 3)
add_dumux_test(test_cc1p2d3d test_cc1p2d3d test_cc1p2d3d.cc add_dumux_test(test_cc1p2d3d test_cc1p2d3d test_cc1p2d3d.cc
python ${CMAKE_SOURCE_DIR}/bin/runtest.py python ${CMAKE_SOURCE_DIR}/bin/runtest.py
...@@ -94,7 +91,6 @@ add_dumux_test(test_cc1p2d3d test_cc1p2d3d test_cc1p2d3d.cc ...@@ -94,7 +91,6 @@ add_dumux_test(test_cc1p2d3d test_cc1p2d3d test_cc1p2d3d.cc
--files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc2d3d-reference.vtu --files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc2d3d-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/1ptestcc2d3d-00002.vtu ${CMAKE_CURRENT_BINARY_DIR}/1ptestcc2d3d-00002.vtu
--command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1p2d3d") --command "${CMAKE_CURRENT_BINARY_DIR}/test_cc1p2d3d")
add_dune_alberta_flags(test_cc1p2d3d GRIDDIM 2 WORLDDIM 3)
#install sources #install sources
......
...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg) ...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
#if HAVE_ALBERTA #if HAVE_DUNE_FOAMGRID
typedef TTAG(OnePOneDThreeDTestBoxProblem) ProblemTypeTag; typedef TTAG(OnePOneDThreeDTestBoxProblem) ProblemTypeTag;
return Dumux::start<ProblemTypeTag>(argc, argv, usage); return Dumux::start<ProblemTypeTag>(argc, argv, usage);
#else #else
#warning External grid Alberta needed to run this example. #warning External grid module dune-foamgrid needed to run this example.
std::cerr << "Test skipped, it needs Alberta!" << std::endl; std::cerr << "Test skipped, it needs dune-foamgrid!" << std::endl;
return 77; return 77;
#endif #endif
} }
...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg) ...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
#if HAVE_ALBERTA #if HAVE_DUNE_FOAMGRID
typedef TTAG(OnePTwoDThreeDTestBoxProblem) ProblemTypeTag; typedef TTAG(OnePTwoDThreeDTestBoxProblem) ProblemTypeTag;
return Dumux::start<ProblemTypeTag>(argc, argv, usage); return Dumux::start<ProblemTypeTag>(argc, argv, usage);
#else #else
#warning External grid Alberta needed to run this example. #warning External grid module dune-foamgrid needed to run this example.
std::cerr << "Test skipped, it needs Alberta!" << std::endl; std::cerr << "Test skipped, it needs dune-foamgrid!" << std::endl;
return 77; return 77;
#endif #endif
} }
...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg) ...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
#if HAVE_ALBERTA #if HAVE_DUNE_FOAMGRID
typedef TTAG(OnePOneDThreeDTestCCProblem) ProblemTypeTag; typedef TTAG(OnePOneDThreeDTestCCProblem) ProblemTypeTag;
return Dumux::start<ProblemTypeTag>(argc, argv, usage); return Dumux::start<ProblemTypeTag>(argc, argv, usage);
#else #else
#warning External grid Alberta needed to run this example. #warning External grid module dune-foamgrid needed to run this example.
std::cerr << "Test skipped, it needs Alberta!" << std::endl; std::cerr << "Test skipped, it needs dune-foamgrid!" << std::endl;
return 77; return 77;
#endif #endif
} }
...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg) ...@@ -59,12 +59,12 @@ void usage(const char *progName, const std::string &errorMsg)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
#if HAVE_ALBERTA #if HAVE_DUNE_FOAMGRID
typedef TTAG(OnePTwoDThreeDTestCCProblem) ProblemTypeTag; typedef TTAG(OnePTwoDThreeDTestCCProblem) ProblemTypeTag;
return Dumux::start<ProblemTypeTag>(argc, argv, usage); return Dumux::start<ProblemTypeTag>(argc, argv, usage);
#else #else
#warning External grid Alberta needed to run this example. #warning External grid module dune-foamgrid needed to run this example.
std::cerr << "Test skipped, it needs Alberta!" << std::endl; std::cerr << "Test skipped, it needs dune-foamgrid!" << std::endl;
return 77; return 77;
#endif #endif
} }
Supports Markdown
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