diff --git a/examples/boundary.cc b/examples/boundary.cc index 2c53d45af2aa3658cf43cab2307f78ebadf35871..91ef916e3f0d74ba23754bc80c3d23324cb8e62c 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 9f68a576a434bfa2d74fe927d4031c46803af96f..a26e9ccf229ace431993e1284318162341a0eb57 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 188b6f128296344180ab261d3f8f131918654469..b0af5d2287d55590c7e8c9f7be78e7577585e734 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 885da9cadfa8f07c9461f8ba40b97a1918847a7d..411ef19500b5343088b9b71053dd7c6ad66b6784 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 95d06ab6d2307f2ec144ec232f8eaf92db32437a..9fe769a479bf6c8b75a8fc7dd9b7d34de6cbfd1c 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 4735e5f3fcbb2b495341be394463c56677db9ad6..2d2677b773a13208d44dfbcc207d469ddcdbfb47 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 eb423465080163ec6c75a3567c55c6ff40e78680..20f0710630dd54d9b7c57d35dbc9d1d2d6cd446a 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 2e61afb4a8e16c258d6c6b906342bb6a670fa4cf..02218df1a8db3d8c677f8ac94d56eb9287bab05b 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 6c0bd639e7cd8be16ee7a07ed584e35f54e76dcd..979182b5db666e4d487cc2fb168cd05c82717020 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 13279763961f232d32e8e046cff549ce6cc12689..50581ed63e4adcdbf27fb604a30dc41184e2a6a3 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 2358e900aa68e8f0e7b3be10275a7ae494f06267..80937e8b551e03bd722569bdd6648bf6fc38bc9d 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 ec3d4356f6549f07b89032a30a3727eecc2c8bf7..2cb3a4148be3f847d3e977373cdffe48da175823 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 5965d68b8f4e871b47bf4b9a8e32c0c2e0e2810e..0000000000000000000000000000000000000000 --- 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 30149d545efdc53a6780c024d4fd34d40dce324b..274ff818048b9ba09065422816761d14934f8e73 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 e71e6a6687e44642146ee2eaa6aced8b482d504a..eabe3bfe36a8810782ab1c3a6a587cd9b8b39a7a 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 add28e1de18789f05bfad69ac5dcbddc214c33a6..f5c4074e3b387621beb61d720e18667d0d1c5973 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 eb721da0c6cdd675420c68a6cd8bc4b5c043f0f1..fb596bdc5958f3896f7adda763d3a645ec4cae78 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 d13f729273157a36b29e8265059b81940b22935d..4e00d254a12e8b1e8bf8752b3c160ca8ce163ea6 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 b6f01e9377ea03d15b7f68806fd13ff409db6e21..7376c961132aa6c6118d2df4f1b350eb35a4f90a 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 0000000000000000000000000000000000000000..08cd067c7e43f7df65e394af5dbf79588cf7683e --- /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 0000000000000000000000000000000000000000..28ebeef5f86ad057c61a0837865300603ac3a5bf --- /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 7dfb219c3c9faa134007bf603fe747034c0d5d4f..1bae7e2aa0d17ea14fd1aaed1f8d9737dd3222f8 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 53d91095034f444383aaa77fe20ea623481dede8..39e6ab63469ad429fc13c6150b7177bda921e59e 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 afbf06e06377ed0241700ceefbdf0e16c03aa03d..b98790c083e632b13dc0441649ad62326e5b145f 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 b29242de380707835dbe7833ef9b07136b68d335..cea43009a34e8fe04b493c48944877c4209de9d3 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 fabf702f1661afeacaedd0a3bdc654148f836d0f..d0397978204f5be854d4538fdd6330782e7695c2 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 0c6b5c661854a342a33779710ce7d3ef501b9fd2..5ab580f6f7351dec0730966b04c1ad01436cd45f 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 77fddde1ff17a698900c76b3ea2a08cae41aa3b4..6889d955281bb60c335c57167095f0036b5583ff 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 6a5b28f959390cdc482b3a60f580cee6701a27a1..7b70d1d88d17d2e33a4548894a62729566a82747 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 61721ef05a6c2e1fd3bf95b396b4c35090a5a5db..36e7c0eb27789bac26ac90c8d7fed709c8a931cc 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 2f4e92b2f8393fb63a4f46610ff8f68d6fb773e3..a308cf8a9699e3e52ffa185cee7dedf56ed7ffd1 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 e1b818c7e6d20564419f6a6e81b27c724ee121ba..043fd66c6e4389af09793d6b72b3ade14eed4ac3 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 93b6d39e7add91c4792d1ae5dfa882b03f32d2d1..e330eaaf96ed75ec1ea94920a5a93b10aacba8c0 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 7c2924ab7bb63ecfedfe09522dd585b0a3a66ae4..aa1ecae2532ef3811b80c5e3009d3d5b70470f6f 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 539d870fce5a3ef28bb17b5d4d417138a84bf93f..76fe1570d9c89e4054752f362edb586ce99903e6 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 8448ef9cf4b9b4ab58c1d7d89357eddfd50ed6c3..10dd49289c3f150ec3603ae65dbc570c5f37ab3d 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 dfea8c331c8501204e51fc45e59d2f43653d5ac2..e64b46aa795204633ce0e2bd8a08f74384065cc4 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 b52fb9728e28af961a986034162dff6d5486d9ce..da142e9ac42b80d528d63a25e685960a25b077a6 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; }