From c3dc225d3cf2055344934deb70142748dcc3e183 Mon Sep 17 00:00:00 2001 From: Simon Praetorius <simon.praetorius@tu-dresden.de> Date: Fri, 26 Apr 2019 13:01:20 +0200 Subject: [PATCH] added Environment for MPI initialization --- examples/boundary.cc | 3 +- examples/cahn_hilliard.cc | 3 +- examples/convection_diffusion.cc | 3 +- examples/ellipt.cc | 3 +- examples/heat.cc | 3 +- examples/navier_stokes.cc | 3 +- examples/neumann.cc | 3 +- examples/periodic.cc | 3 +- examples/stokes0.cc | 3 +- examples/stokes1.cc | 3 +- examples/stokes3.cc | 3 +- examples/vecellipt.cc | 3 +- src/amdis/AMDiS.cpp | 31 ----------- src/amdis/AMDiS.hpp | 21 +++----- src/amdis/AdaptInfo.cpp | 4 ++ src/amdis/AdaptInstationary.cpp | 4 ++ src/amdis/AdaptStationary.cpp | 4 ++ src/amdis/CMakeLists.txt | 3 +- src/amdis/DataTransfer.inc.hpp | 1 + src/amdis/Environment.cpp | 37 +++++++++++++ src/amdis/Environment.hpp | 72 ++++++++++++++++++++++++++ src/amdis/Initfile.cpp | 6 ++- src/amdis/InitfileParser.cpp | 6 ++- src/amdis/ProblemInstat.cpp | 5 +- src/amdis/ProblemInstatBase.cpp | 4 ++ src/amdis/ProblemStat.cpp | 5 +- src/amdis/StandardProblemIteration.cpp | 4 ++ src/amdis/common/Filesystem.cpp | 4 ++ src/amdis/common/String.cpp | 4 ++ test/DOFVectorTest.cpp | 3 +- test/DataTransferTest2d.cpp | 5 +- test/DataTransferTest3d.cpp | 5 +- test/DiscreteFunctionTest.cpp | 3 +- test/ExpressionsTest.cpp | 3 +- test/IntegrateTest.cpp | 3 +- test/MarkerTest.cpp | 4 +- test/OperationsTest.cpp | 3 +- test/OperatorsTest.cpp | 3 +- 38 files changed, 192 insertions(+), 91 deletions(-) delete mode 100644 src/amdis/AMDiS.cpp create mode 100644 src/amdis/Environment.cpp create mode 100644 src/amdis/Environment.hpp diff --git a/examples/boundary.cc b/examples/boundary.cc index 2c53d45a..91ef916e 100644 --- a/examples/boundary.cc +++ b/examples/boundary.cc @@ -95,7 +95,7 @@ void run_periodic() int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); auto b = [](auto const& x){ return x[0] < 1.e-8 || x[1] < 1.e-8 || x[0] > 1.0-1.e-8 || x[1] > 1.0-1.e-8; }; @@ -119,6 +119,5 @@ int main(int argc, char** argv) run_periodic(); - AMDiS::finalize(); return 0; } diff --git a/examples/cahn_hilliard.cc b/examples/cahn_hilliard.cc index 9f68a576..a26e9ccf 100644 --- a/examples/cahn_hilliard.cc +++ b/examples/cahn_hilliard.cc @@ -13,7 +13,7 @@ using Param = LagrangeBasis<Grid, 1, 1>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); ProblemStat<Param> prob("ch"); prob.initialize(INIT_ALL); @@ -68,6 +68,5 @@ int main(int argc, char** argv) AdaptInstationary adapt("adapt", prob, adaptInfo, probInstat, adaptInfo); adapt.adapt(); - AMDiS::finalize(); return 0; } diff --git a/examples/convection_diffusion.cc b/examples/convection_diffusion.cc index 188b6f12..b0af5d22 100644 --- a/examples/convection_diffusion.cc +++ b/examples/convection_diffusion.cc @@ -17,7 +17,7 @@ using ElliptProblem = ProblemStat<ElliptParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); using namespace Dune::Indices; @@ -39,6 +39,5 @@ int main(int argc, char** argv) prob.solve(adaptInfo); prob.writeFiles(adaptInfo, true); - AMDiS::finalize(); return 0; } diff --git a/examples/ellipt.cc b/examples/ellipt.cc index 885da9ca..411ef195 100644 --- a/examples/ellipt.cc +++ b/examples/ellipt.cc @@ -18,7 +18,7 @@ using ElliptProblem = ProblemStat<Param>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); int numLevels = GRIDDIM == 2 ? 8 : 5; if (argc > 2) @@ -92,6 +92,5 @@ int main(int argc, char** argv) msg("{:<5} | {:<12} | {:<12} | {:<12} | {:<12} | {:<12}", i+1, widths[i], errL2[i], errH1[i], eocL2[i], eocH1[i]); - AMDiS::finalize(); return 0; } diff --git a/examples/heat.cc b/examples/heat.cc index 95d06ab6..9fe769a4 100644 --- a/examples/heat.cc +++ b/examples/heat.cc @@ -21,7 +21,7 @@ using HeatProblemInstat = ProblemInstat<HeatParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); HeatProblem prob("heat"); prob.initialize(INIT_ALL); @@ -55,6 +55,5 @@ int main(int argc, char** argv) AdaptInstationary adapt("adapt", prob, adaptInfo, probInstat, adaptInfo); adapt.adapt(); - AMDiS::finalize(); return 0; } diff --git a/examples/navier_stokes.cc b/examples/navier_stokes.cc index 4735e5f3..2d2677b7 100644 --- a/examples/navier_stokes.cc +++ b/examples/navier_stokes.cc @@ -12,7 +12,7 @@ using Basis = TaylorHoodBasis<Grid>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); ProblemStat<Basis> prob("stokes"); prob.initialize(INIT_ALL); @@ -89,6 +89,5 @@ int main(int argc, char** argv) // output solution prob.writeFiles(adaptInfo); - AMDiS::finalize(); return 0; } diff --git a/examples/neumann.cc b/examples/neumann.cc index eb423465..20f07106 100644 --- a/examples/neumann.cc +++ b/examples/neumann.cc @@ -51,7 +51,7 @@ void run(Grid& grid) int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); // 2d grids @@ -85,6 +85,5 @@ int main(int argc, char** argv) Dune::YaspGrid<3> grid4({1.0,1.0,1.0},{2,2,2}); run(grid4); - AMDiS::finalize(); return 0; } diff --git a/examples/periodic.cc b/examples/periodic.cc index 2e61afb4..02218df1 100644 --- a/examples/periodic.cc +++ b/examples/periodic.cc @@ -79,7 +79,7 @@ void run(Grid& grid) int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); #if HAVE_DUNE_SPGRID Dune::SPCube<double,2> cube({0.0,0.0},{1.0,1.0}); @@ -92,6 +92,5 @@ int main(int argc, char** argv) Dune::YaspGrid<2> grid2({1.0,1.0}, {2,2}); run(grid2); - AMDiS::finalize(); return 0; } diff --git a/examples/stokes0.cc b/examples/stokes0.cc index 6c0bd639..979182b5 100644 --- a/examples/stokes0.cc +++ b/examples/stokes0.cc @@ -10,7 +10,7 @@ using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); StokesProblem prob("stokes"); prob.initialize(INIT_ALL); @@ -58,6 +58,5 @@ int main(int argc, char** argv) // output solution prob.writeFiles(adaptInfo); - AMDiS::finalize(); return 0; } diff --git a/examples/stokes1.cc b/examples/stokes1.cc index 13279763..50581ed6 100644 --- a/examples/stokes1.cc +++ b/examples/stokes1.cc @@ -10,7 +10,7 @@ using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); StokesProblem prob("stokes"); prob.initialize(INIT_ALL); @@ -58,6 +58,5 @@ int main(int argc, char** argv) // output solution prob.writeFiles(adaptInfo); - AMDiS::finalize(); return 0; } diff --git a/examples/stokes3.cc b/examples/stokes3.cc index 2358e900..80937e8b 100644 --- a/examples/stokes3.cc +++ b/examples/stokes3.cc @@ -11,7 +11,7 @@ using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); StokesProblem prob("stokes"); prob.initialize(INIT_ALL); @@ -48,6 +48,5 @@ int main(int argc, char** argv) // output solution prob.writeFiles(adaptInfo); - AMDiS::finalize(); return 0; } diff --git a/examples/vecellipt.cc b/examples/vecellipt.cc index ec3d4356..2cb3a414 100644 --- a/examples/vecellipt.cc +++ b/examples/vecellipt.cc @@ -15,7 +15,7 @@ using ElliptProblem = ProblemStat<ElliptParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); ElliptProblem prob("ellipt"); prob.initialize(INIT_ALL); @@ -53,6 +53,5 @@ int main(int argc, char** argv) prob.solve(adaptInfo); prob.writeFiles(adaptInfo, true); - AMDiS::finalize(); return 0; } diff --git a/src/amdis/AMDiS.cpp b/src/amdis/AMDiS.cpp deleted file mode 100644 index 5965d68b..00000000 --- a/src/amdis/AMDiS.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "AMDiS.hpp" - -// AMDiS includes -#include <amdis/Initfile.hpp> -#include <amdis/Output.hpp> - -namespace AMDiS -{ - Dune::MPIHelper& init(int& argc, char**& argv, std::string const& initFileName) - { - // Maybe initialize MPI - static Dune::MPIHelper& mpiHelper = Dune::MPIHelper::instance(argc, argv); - - Parameters::clearData(); - - if (initFileName.empty() && argc > 1) { - Parameters::init(argv[1]); - } else if (!initFileName.empty()) { - Parameters::init(initFileName); - } else { - warning("No initfile specified. Using default values for all parameters."); - } - - return mpiHelper; - } - - - void finalize() - {} - -} // end namespace AMDiS diff --git a/src/amdis/AMDiS.hpp b/src/amdis/AMDiS.hpp index 30149d54..274ff818 100644 --- a/src/amdis/AMDiS.hpp +++ b/src/amdis/AMDiS.hpp @@ -4,16 +4,11 @@ # include "config.h" #endif -// std c++ headers -#include <string> - -#include <dune/common/exceptions.hh> // We use exceptions -#include <dune/common/parallel/mpihelper.hh> - -namespace AMDiS -{ - Dune::MPIHelper& init(int& argc, char**& argv, std::string const& initFileName = ""); - - void finalize(); - -} // end namespace AMDiS +#include <amdis/AdaptInfo.hpp> +#include <amdis/Environment.hpp> +#include <amdis/Initfile.hpp> +#include <amdis/LinearAlgebra.hpp> +#include <amdis/Output.hpp> +#include <amdis/ProblemStat.hpp> + +namespace AMDiS {} // end namespace AMDiS diff --git a/src/amdis/AdaptInfo.cpp b/src/amdis/AdaptInfo.cpp index e71e6a66..eabe3bfe 100644 --- a/src/amdis/AdaptInfo.cpp +++ b/src/amdis/AdaptInfo.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "AdaptInfo.hpp" // std c++ headers diff --git a/src/amdis/AdaptInstationary.cpp b/src/amdis/AdaptInstationary.cpp index add28e1d..f5c4074e 100644 --- a/src/amdis/AdaptInstationary.cpp +++ b/src/amdis/AdaptInstationary.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "AdaptInstationary.hpp" // AMDiS includes diff --git a/src/amdis/AdaptStationary.cpp b/src/amdis/AdaptStationary.cpp index eb721da0..fb596bdc 100644 --- a/src/amdis/AdaptStationary.cpp +++ b/src/amdis/AdaptStationary.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "AdaptStationary.hpp" // AMDiS includes diff --git a/src/amdis/CMakeLists.txt b/src/amdis/CMakeLists.txt index d13f7292..4e00d254 100644 --- a/src/amdis/CMakeLists.txt +++ b/src/amdis/CMakeLists.txt @@ -4,7 +4,7 @@ dune_library_add_sources(amdis SOURCES AdaptInfo.cpp AdaptInstationary.cpp AdaptStationary.cpp - AMDiS.cpp + Environment.cpp Initfile.cpp InitfileParser.cpp ProblemInstatBase.cpp @@ -31,6 +31,7 @@ install(FILES DataTransfer.inc.hpp DirichletBC.hpp DirichletBC.inc.hpp + Environment.hpp FileWriter.hpp FileWriterInterface.hpp Flag.hpp diff --git a/src/amdis/DataTransfer.inc.hpp b/src/amdis/DataTransfer.inc.hpp index b6f01e93..7376c961 100644 --- a/src/amdis/DataTransfer.inc.hpp +++ b/src/amdis/DataTransfer.inc.hpp @@ -14,6 +14,7 @@ #include <dune/common/fvector.hh> #include <dune/common/hash.hh> +#include <dune/grid/common/geometry.hh> #include <dune/grid/common/mcmgmapper.hh> #include <dune/grid/common/rangegenerators.hh> diff --git a/src/amdis/Environment.cpp b/src/amdis/Environment.cpp new file mode 100644 index 00000000..08cd067c --- /dev/null +++ b/src/amdis/Environment.cpp @@ -0,0 +1,37 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "Environment.hpp" + +// AMDiS includes +#include <amdis/Initfile.hpp> +#include <amdis/Output.hpp> + +namespace AMDiS +{ + Environment::Environment(std::string const& initFileName) + { + Parameters::clearData(); + if (!initFileName.empty()) + Parameters::init(initFileName); + } + + Environment::Environment(int& argc, char**& argv, std::string const& initFileName) + : Environment(initFileName) + { + auto& helper = Dune::MPIHelper::instance(argc, argv); + + auto& mpi = Mpi::instance(); + mpi.registerMpiHelper(helper); + + Parameters::clearData(); + if (initFileName.empty()) { + if (argc > 1) + Parameters::init(argv[1]); + else + warning("No initfile specified. Using default values for all parameters."); + } + } + +} // end namespace AMDiS diff --git a/src/amdis/Environment.hpp b/src/amdis/Environment.hpp new file mode 100644 index 00000000..28ebeef5 --- /dev/null +++ b/src/amdis/Environment.hpp @@ -0,0 +1,72 @@ +#pragma once + +// std c++ headers +#include <cassert> +#include <string> + +#include <dune/common/parallel/mpihelper.hh> + +namespace AMDiS +{ + /// Establishes an environemnt for sequential and parallel AMDiS programs + /** + * This object initializes the MPI environement, parses initfiles and may + * initialize other external libraries. It is constructed with the program + * commandline arguments. In its destruction, the MPI environemnt is finalized. + * In the vast majority of AMDiS programs, an instance of Environemnt should + * be desclared at the very beginning of the main function. + **/ + class Environment + { + // insternal static container holding a pointer to the Dune::MPIHelper. + struct Mpi + { + static Mpi& instance() + { + static Mpi mpi; + return mpi; + } + + void registerMpiHelper(Dune::MPIHelper& mpiHelper) + { + mpiHelper_ = &mpiHelper; + } + + int rank() + { + assert(mpiHelper_ != nullptr); + return mpiHelper_->rank(); + } + + int size() + { + assert(mpiHelper_ != nullptr); + return mpiHelper_->size(); + } + + private: + Dune::MPIHelper* mpiHelper_ = nullptr; + }; + + public: + /// Create an environment without mpi initialization, with a fixed initfile given as string + Environment(std::string const& initFileName = ""); + + /// Create an environemtn with initialization of MPI and initifiles from commandline arguments + /// or the provided initfile filename. + Environment(int& argc, char**& argv, std::string const& initFileName = ""); + + /// Return the MPI_Rank of the current processor. + static int mpiRank() + { + return Mpi::instance().rank(); + } + + /// Return the MPI_Size if the group created by Dune::MPIHelper. + static int mpiSize() + { + return Mpi::instance().size(); + } + }; + +} // end namespace AMDiS diff --git a/src/amdis/Initfile.cpp b/src/amdis/Initfile.cpp index 7dfb219c..1bae7e2a 100644 --- a/src/amdis/Initfile.cpp +++ b/src/amdis/Initfile.cpp @@ -1,4 +1,8 @@ -#include <amdis/Initfile.hpp> +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "Initfile.hpp" #include <amdis/InitfileParser.hpp> diff --git a/src/amdis/InitfileParser.cpp b/src/amdis/InitfileParser.cpp index 53d91095..39e6ab63 100644 --- a/src/amdis/InitfileParser.cpp +++ b/src/amdis/InitfileParser.cpp @@ -1,4 +1,8 @@ -#include <amdis/InitfileParser.hpp> +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "InitfileParser.hpp" #include <amdis/Output.hpp> #include <amdis/common/Filesystem.hpp> diff --git a/src/amdis/ProblemInstat.cpp b/src/amdis/ProblemInstat.cpp index afbf06e0..b98790c0 100644 --- a/src/amdis/ProblemInstat.cpp +++ b/src/amdis/ProblemInstat.cpp @@ -1,4 +1,7 @@ -#include "config.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "ProblemInstat.hpp" namespace AMDiS diff --git a/src/amdis/ProblemInstatBase.cpp b/src/amdis/ProblemInstatBase.cpp index b29242de..cea43009 100644 --- a/src/amdis/ProblemInstatBase.cpp +++ b/src/amdis/ProblemInstatBase.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "ProblemInstatBase.hpp" #include "AdaptInfo.hpp" diff --git a/src/amdis/ProblemStat.cpp b/src/amdis/ProblemStat.cpp index fabf702f..d0397978 100644 --- a/src/amdis/ProblemStat.cpp +++ b/src/amdis/ProblemStat.cpp @@ -1,4 +1,7 @@ -#include "config.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "ProblemStat.hpp" namespace AMDiS diff --git a/src/amdis/StandardProblemIteration.cpp b/src/amdis/StandardProblemIteration.cpp index 0c6b5c66..5ab580f6 100644 --- a/src/amdis/StandardProblemIteration.cpp +++ b/src/amdis/StandardProblemIteration.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "StandardProblemIteration.hpp" #include <amdis/AdaptInfo.hpp> diff --git a/src/amdis/common/Filesystem.cpp b/src/amdis/common/Filesystem.cpp index 77fddde1..6889d955 100644 --- a/src/amdis/common/Filesystem.cpp +++ b/src/amdis/common/Filesystem.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "Filesystem.hpp" #ifdef _WIN32 diff --git a/src/amdis/common/String.cpp b/src/amdis/common/String.cpp index 6a5b28f9..7b70d1d8 100644 --- a/src/amdis/common/String.cpp +++ b/src/amdis/common/String.cpp @@ -1,3 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "String.hpp" namespace AMDiS diff --git a/test/DOFVectorTest.cpp b/test/DOFVectorTest.cpp index 61721ef0..36e7c0eb 100644 --- a/test/DOFVectorTest.cpp +++ b/test/DOFVectorTest.cpp @@ -7,6 +7,7 @@ #include <dune/functions/functionspacebases/powerbasis.hh> #include <dune/functions/functionspacebases/lagrangebasis.hh> +#include <amdis/AMDiS.hpp> #include <amdis/GridTransferManager.hpp> #include <amdis/LinearAlgebra.hpp> @@ -36,7 +37,7 @@ void test_dofvector(B const& basis, DOFVector<B,T>& vec) int main(int argc, char** argv) { - Dune::MPIHelper::instance(argc, argv); + Environment env(argc, argv); // create grid Dune::FieldVector<double, 2> L; L = 1.0; diff --git a/test/DataTransferTest2d.cpp b/test/DataTransferTest2d.cpp index 2f4e92b2..a308cf8a 100644 --- a/test/DataTransferTest2d.cpp +++ b/test/DataTransferTest2d.cpp @@ -1,16 +1,17 @@ +#include <amdis/AMDiS.hpp> #include "DataTransferTest.hpp" int main(int argc, char** argv) { + Environment env(argc, argv); + #ifdef HAVE_DUNE_UGGRID using Grid = Dune::UGGrid<2>; #else using Grid = Dune::YaspGrid<2>; #endif - Dune::MPIHelper::instance(argc, argv); - using Domain = typename Dune::FieldVector<double, 2>; // polynomial of order 1 diff --git a/test/DataTransferTest3d.cpp b/test/DataTransferTest3d.cpp index e1b818c7..043fd66c 100644 --- a/test/DataTransferTest3d.cpp +++ b/test/DataTransferTest3d.cpp @@ -1,16 +1,17 @@ +#include <amdis/AMDiS.hpp> #include "DataTransferTest.hpp" int main(int argc, char** argv) { + Environment env(argc, argv); + #ifdef HAVE_DUNE_UGGRID using Grid = Dune::UGGrid<3>; #else using Grid = Dune::YaspGrid<3>; #endif - Dune::MPIHelper::instance(argc, argv); - using Domain = typename Dune::FieldVector<double, 3>; // polynomial of order 1 diff --git a/test/DiscreteFunctionTest.cpp b/test/DiscreteFunctionTest.cpp index 93b6d39e..e330eaaf 100644 --- a/test/DiscreteFunctionTest.cpp +++ b/test/DiscreteFunctionTest.cpp @@ -33,7 +33,7 @@ bool comp(DOFVector<GB,T> const& U, DOFVector<GB,T> const& V) int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); using namespace Dune::Indices; @@ -129,6 +129,5 @@ int main(int argc, char** argv) AMDIS_TEST( comp(W3, W5) ); AMDIS_TEST( comp(W3, W6) ); - AMDiS::finalize(); return 0; } diff --git a/test/ExpressionsTest.cpp b/test/ExpressionsTest.cpp index 7c2924ab..aa1ecae2 100644 --- a/test/ExpressionsTest.cpp +++ b/test/ExpressionsTest.cpp @@ -18,7 +18,7 @@ using ElliptProblem = ProblemStat<ElliptParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); using namespace Dune::Indices; @@ -103,6 +103,5 @@ int main(int argc, char** argv) DUNE_UNUSED auto int5 = integrate(op5, gv, 5); DUNE_UNUSED auto int6 = integrate(op6, gv, 5); - AMDiS::finalize(); return 0; } diff --git a/test/IntegrateTest.cpp b/test/IntegrateTest.cpp index 539d870f..76fe1570 100644 --- a/test/IntegrateTest.cpp +++ b/test/IntegrateTest.cpp @@ -18,7 +18,7 @@ using ElliptProblem = ProblemStat<ElliptParam>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); ElliptProblem prob("ellipt"); prob.initialize(INIT_ALL); @@ -40,6 +40,5 @@ int main(int argc, char** argv) AMDIS_TEST(i4 == 1.0); - AMDiS::finalize(); return 0; } diff --git a/test/MarkerTest.cpp b/test/MarkerTest.cpp index 8448ef9c..10dd4928 100644 --- a/test/MarkerTest.cpp +++ b/test/MarkerTest.cpp @@ -14,7 +14,7 @@ using DomainType = typename Dune::FieldVector<double,d>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); DomainType lowerLeft; lowerLeft = 0.0; // lower left grid corner DomainType upperRight; upperRight = 1.0; // upper right grid corner @@ -53,7 +53,5 @@ int main(int argc, char** argv) prob.solution().interpolate(markerFunc); prob.writeFiles(adaptInfo); - AMDiS::finalize(); - return report_errors(); } diff --git a/test/OperationsTest.cpp b/test/OperationsTest.cpp index dfea8c33..e64b46aa 100644 --- a/test/OperationsTest.cpp +++ b/test/OperationsTest.cpp @@ -11,7 +11,7 @@ using namespace AMDiS; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); constexpr Operation::StaticConstant<int,0> op0a; constexpr Operation::Zero op0b; @@ -77,6 +77,5 @@ int main(int argc, char** argv) AMDIS_TEST_EQ(erg8, 2); // constexpr int order8 = order(op8,2,3); // no order() for divides - AMDiS::finalize(); return report_errors(); } diff --git a/test/OperatorsTest.cpp b/test/OperatorsTest.cpp index b52fb972..da142e9a 100644 --- a/test/OperatorsTest.cpp +++ b/test/OperatorsTest.cpp @@ -15,7 +15,7 @@ using Problem = ProblemStat<Param>; int main(int argc, char** argv) { - AMDiS::init(argc, argv); + Environment env(argc, argv); using namespace Dune::Indices; @@ -109,6 +109,5 @@ int main(int argc, char** argv) prob.addMatrixOperator(opCDb, _p, _p); prob.addVectorOperator(opCDb, _p); - AMDiS::finalize(); return 0; } -- GitLab