diff --git a/exercises/exercise-basic/2p2cmain.cc b/exercises/exercise-basic/2p2cmain.cc index b6e97d389514584021c0717c511b11860a67b07e..9bac025585fcd464f8ecfd2479890249bf2ba302 100644 --- a/exercises/exercise-basic/2p2cmain.cc +++ b/exercises/exercise-basic/2p2cmain.cc @@ -52,7 +52,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -120,7 +120,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -176,27 +176,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-basic/2pmain.cc b/exercises/exercise-basic/2pmain.cc index be0977059fa3a3d5d40f7db9f0c0cc919b914be2..16d628b5a3b8124915fb9cf7a4c21a3c54509cc7 100644 --- a/exercises/exercise-basic/2pmain.cc +++ b/exercises/exercise-basic/2pmain.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -125,7 +125,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -180,27 +180,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-basic/injection2p2cproblem.hh b/exercises/exercise-basic/injection2p2cproblem.hh index fcf856c80fe542a73c1813ee1b9d614b00622c44..7a4fb23d46b610fae4c5cf61a2731556e0896d83 100644 --- a/exercises/exercise-basic/injection2p2cproblem.hh +++ b/exercises/exercise-basic/injection2p2cproblem.hh @@ -26,6 +26,7 @@ #define DUMUX_EX_BASIC_PROBLEM_2P2C_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> #include <dumux/material/binarycoefficients/h2o_n2.hh> @@ -60,7 +61,7 @@ class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-basic/injection2pniproblem.hh b/exercises/exercise-basic/injection2pniproblem.hh index cddb9195fda5422cccce6e851282f0f7763bca17..a1f45b86b9ce6456ace892c1c2c977bcea493940 100644 --- a/exercises/exercise-basic/injection2pniproblem.hh +++ b/exercises/exercise-basic/injection2pniproblem.hh @@ -26,6 +26,7 @@ #define DUMUX_EX_BASIC_PROBLEM_2PNI_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -59,7 +60,7 @@ class Injection2PNIProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-basic/injection2pproblem.hh b/exercises/exercise-basic/injection2pproblem.hh index 0b37525104c840b9b5ed2997f4c2ab1e9ab979c4..ba30b0a578aca6b369f3a814221ea31c8bc82115 100644 --- a/exercises/exercise-basic/injection2pproblem.hh +++ b/exercises/exercise-basic/injection2pproblem.hh @@ -26,6 +26,7 @@ #define DUMUX_EX_BASIC_PROBLEM_2P_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -59,7 +60,7 @@ class Injection2PProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-biomineralization/biominproblem.hh b/exercises/exercise-biomineralization/biominproblem.hh index 63eadb0c01a5fc6127f5fbda9fae3e8e3752fd32..da6e8daeaa314978eee82e8e4464e5b8f21f8e5c 100644 --- a/exercises/exercise-biomineralization/biominproblem.hh +++ b/exercises/exercise-biomineralization/biominproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_EXERCISE_FOUR_PROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> // TODO: dumux-course-task @@ -46,7 +47,7 @@ class BioMinProblem : public PorousMediumFlowProblem<TypeTag> using SolidSystem = GetPropType<TypeTag, Properties::SolidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; diff --git a/exercises/exercise-biomineralization/fluidsystems/biomin.hh b/exercises/exercise-biomineralization/fluidsystems/biomin.hh index 0509032c26d7c34b74ac5a17c98de5e658f90aab..ae2632fcdeea6997cdab89eed0968449a4ce8996 100644 --- a/exercises/exercise-biomineralization/fluidsystems/biomin.hh +++ b/exercises/exercise-biomineralization/fluidsystems/biomin.hh @@ -332,7 +332,7 @@ public: // assume brine with viscosity effect of Ca for the liquid phase. if (phaseIdx == liquidPhaseIdx) - return Brine::liquidViscosity(temperature, pressure);; + return Brine::liquidViscosity(temperature, pressure); // assume pure CO2 for the gas phase. else if (phaseIdx == gasPhaseIdx) diff --git a/exercises/exercise-biomineralization/main.cc b/exercises/exercise-biomineralization/main.cc index 95dc1a08fca4f7942799dd74140d9b7c458585f4..9aa45302983a3f1de066a4905849e666b6df80e6 100644 --- a/exercises/exercise-biomineralization/main.cc +++ b/exercises/exercise-biomineralization/main.cc @@ -54,7 +54,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -130,7 +130,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -193,27 +193,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-coupling-ff-pm/2pspatialparams.hh b/exercises/exercise-coupling-ff-pm/2pspatialparams.hh index 622e4f59ca7837281111f6a79435d0fb74c1cddb..239308471b1d99a4bf15aa180c9585511b254bf5 100644 --- a/exercises/exercise-coupling-ff-pm/2pspatialparams.hh +++ b/exercises/exercise-coupling-ff-pm/2pspatialparams.hh @@ -27,7 +27,7 @@ #include <dumux/material/spatialparams/fv.hh> #include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh> #include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh> -#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivitysomerton.hh> +#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivity/somerton.hh> namespace Dumux { diff --git a/exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh b/exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh index 41f39a21671bc5ff635b23c4d6650b9d802d2349..be5f6ceeca77381a9707833f2614be8ca53ac8f8 100644 --- a/exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh @@ -25,6 +25,7 @@ #include <dumux/freeflow/navierstokes/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -41,7 +42,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/exercise-coupling-ff-pm/interface/main.cc b/exercises/exercise-coupling-ff-pm/interface/main.cc index 070de66d9404a0df26c9ce58992c829dcb7680d2..aa53262270fdf2580014e99593807f2a557f9e62 100644 --- a/exercises/exercise-coupling-ff-pm/interface/main.cc +++ b/exercises/exercise-coupling-ff-pm/interface/main.cc @@ -48,7 +48,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -238,27 +238,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh b/exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh index 03aaac1ba9bf1b63dfa118ed2615b4442a03650f..17d64e9ffff08da2a51310ccadb40ae7d689a842 100644 --- a/exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh @@ -26,6 +26,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -40,7 +41,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; diff --git a/exercises/exercise-coupling-ff-pm/models/freeflowsubproblem.hh b/exercises/exercise-coupling-ff-pm/models/freeflowsubproblem.hh index 4d7cd3fb4781094e2769e6e60a7b68d833fdbb70..f1d54c4317b40b2f71cda59631c0a4fc05a170d0 100644 --- a/exercises/exercise-coupling-ff-pm/models/freeflowsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/models/freeflowsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_STOKES1P2C_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/freeflow/navierstokes/problem.hh> @@ -45,7 +46,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/exercise-coupling-ff-pm/models/main.cc b/exercises/exercise-coupling-ff-pm/models/main.cc index 6326d83dffbcd32d232bd6984d0f2ffadddd42b7..c19c3f9a6d06b8073be9c06d0a57cf540903a064 100644 --- a/exercises/exercise-coupling-ff-pm/models/main.cc +++ b/exercises/exercise-coupling-ff-pm/models/main.cc @@ -51,7 +51,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -173,7 +173,7 @@ int main(int argc, char** argv) try stokesGridVariables->cellCenterGridVariablesPtr(), darcyGridVariables), couplingManager, - timeLoop); + timeLoop, solOld); // the linear solver using LinearSolver = UMFPackBackend; @@ -236,27 +236,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh b/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh index 6c1372d3aaa7c7fc44990724663c46cf189e6b38..3488b12c1b884725dd133c31abe1145f0a53ee0a 100644 --- a/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_DARCY_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/io/gnuplotinterface.hh> @@ -44,7 +45,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; diff --git a/exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh b/exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh index b7cc8cba50dc03e6fa0f58e65db5d9c628b138db..8d639f550e898b70a0b98f242dc4b0d2bd8ae8ac 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh @@ -24,6 +24,7 @@ #define DUMUX_FREEFLOW1P2C_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh> @@ -46,7 +47,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/exercise-coupling-ff-pm/turbulence/main.cc b/exercises/exercise-coupling-ff-pm/turbulence/main.cc index 72c7ebf0db1d6206aad74c56ac5140ae94693157..006688dc9287e6dd9b399fa17eb5b51677eac7aa 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/main.cc +++ b/exercises/exercise-coupling-ff-pm/turbulence/main.cc @@ -51,7 +51,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -178,7 +178,7 @@ int main(int argc, char** argv) try stokesGridVariables->cellCenterGridVariablesPtr(), darcyGridVariables), couplingManager, - timeLoop); + timeLoop, solOld); // the linear solver using LinearSolver = UMFPackBackend; @@ -241,27 +241,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh b/exercises/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh index 8ef5fee50c734d430739e03792f5793b470dbd8d..54568faa29229fb328994c105d440e71a773d127 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh +++ b/exercises/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_DARCY2P2C_SUBPROBLEM_HH #include <dumux/porousmediumflow/problem.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> #include <dumux/common/timeloop.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh> @@ -42,7 +43,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; diff --git a/exercises/exercise-fluidsystem/2p2cproblem.hh b/exercises/exercise-fluidsystem/2p2cproblem.hh index 76a5f58d7775d557acd329eac49fa5a0e0f5c5cc..5a43a26cdb15e798b275383c60008623136d3b3a 100644 --- a/exercises/exercise-fluidsystem/2p2cproblem.hh +++ b/exercises/exercise-fluidsystem/2p2cproblem.hh @@ -26,6 +26,7 @@ // The base porous media box problem #include <dumux/porousmediumflow/problem.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> namespace Dumux { @@ -52,7 +53,7 @@ class ExerciseFluidsystemProblemTwoPTwoC : public PorousMediumFlowProblem<TypeTa // Dumux specific types using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-fluidsystem/2pproblem.hh b/exercises/exercise-fluidsystem/2pproblem.hh index dc542c848495562fdcf50c444c7066e1b0af8d7d..4786b3e79b62eaf3f3b247d4a519655fe1022855 100644 --- a/exercises/exercise-fluidsystem/2pproblem.hh +++ b/exercises/exercise-fluidsystem/2pproblem.hh @@ -26,6 +26,7 @@ // The porous media base problem #include <dumux/porousmediumflow/problem.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> // The water component @@ -58,7 +59,7 @@ class ExerciseFluidsystemProblemTwoP : public PorousMediumFlowProblem<TypeTag> // Dumux specific types using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-fluidsystem/main.cc b/exercises/exercise-fluidsystem/main.cc index 5266f7eff32a6ff06b0b8c018219e148c43ed85b..ddbb05f6e84c02f7fa71d450dab0849545d03278 100644 --- a/exercises/exercise-fluidsystem/main.cc +++ b/exercises/exercise-fluidsystem/main.cc @@ -56,7 +56,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -128,7 +128,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric, /*implicit?*/true>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -179,27 +179,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-fractures/fractureproblem.hh b/exercises/exercise-fractures/fractureproblem.hh index 318d97c2e94dc606bc5636e48e520b60e0253419..b4b3687c7de9c8484878506d44665fe24397f31f 100644 --- a/exercises/exercise-fractures/fractureproblem.hh +++ b/exercises/exercise-fractures/fractureproblem.hh @@ -29,6 +29,7 @@ // include the base problem and properties we inherit from #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -43,7 +44,7 @@ class FractureSubProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; diff --git a/exercises/exercise-fractures/main.cc b/exercises/exercise-fractures/main.cc index c871fbee3c65d9228dd072b695a3714ef9d32271..12485ac9bb90cebfac354beb7bd8cd3492112e25 100644 --- a/exercises/exercise-fractures/main.cc +++ b/exercises/exercise-fractures/main.cc @@ -70,7 +70,7 @@ struct CouplingManager<TypeTag, TTag::FractureProblem> { using type = TheCouplin } // end namespace Dumux // main program -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -220,7 +220,7 @@ int main(int argc, char** argv) try std::make_tuple(matrixFvGridGeometry, fractureFvGridGeometry), std::make_tuple(matrixGridVariables, fractureGridVariables), couplingManager, - timeLoop); + timeLoop, xOld); // the linear solver using LinearSolver = ILU0BiCGSTABBackend; @@ -270,29 +270,4 @@ int main(int argc, char** argv) try DumuxMessage::print(/*firstCall=*/false); return 0; - -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/exercise-fractures/matrixproblem.hh b/exercises/exercise-fractures/matrixproblem.hh index d7a238c6a9d3d5e86b72b46db0660c0cabd594c9..ca9c07c70278f2df3e29301a18f2338104db51d2 100644 --- a/exercises/exercise-fractures/matrixproblem.hh +++ b/exercises/exercise-fractures/matrixproblem.hh @@ -33,6 +33,7 @@ // include the base problem and properties we inherit from #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -47,7 +48,7 @@ class MatrixSubProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; diff --git a/exercises/exercise-grids/main.cc b/exercises/exercise-grids/main.cc index ee8c938827550623d8fe1c361ffd5a6014437309..ab18bc538e9b9bbcca6f4b57da2b1eca37d0ba20 100644 --- a/exercises/exercise-grids/main.cc +++ b/exercises/exercise-grids/main.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -123,7 +123,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -178,27 +178,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-grids/problem.hh b/exercises/exercise-grids/problem.hh index 759d2fa8a315c18799d4ddd5bcd1de11a05d5e2d..a187cdc8c05b92b98858991236d4d6f32b575ceb 100644 --- a/exercises/exercise-grids/problem.hh +++ b/exercises/exercise-grids/problem.hh @@ -27,6 +27,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -59,7 +60,7 @@ class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-mainfile/1pproblem.hh b/exercises/exercise-mainfile/1pproblem.hh index 9441031522b5e297b700e78958ae9613f8ab0715..81c18c9dced15c21730a35863711e5915b717446 100644 --- a/exercises/exercise-mainfile/1pproblem.hh +++ b/exercises/exercise-mainfile/1pproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_EX_MAINFILE_ONEP_TEST_PROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -45,7 +46,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; static constexpr int dimWorld = GridView::dimensionworld; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/exercise-mainfile/exercise1pamain.cc b/exercises/exercise-mainfile/exercise1pamain.cc index 4888813a6b68e0dd1719afb90605e007d67b1982..d3b3b5d50fe1dd160b2f5b18af2467fea30342a4 100644 --- a/exercises/exercise-mainfile/exercise1pamain.cc +++ b/exercises/exercise-mainfile/exercise1pamain.cc @@ -46,7 +46,7 @@ #include <dumux/io/vtkoutputmodule.hh> #include <dumux/io/grid/gridmanager.hh> -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -153,28 +153,4 @@ int main(int argc, char** argv) try return 0; -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/exercise-mainfile/exercise1pbmain.cc b/exercises/exercise-mainfile/exercise1pbmain.cc index 79f965d7c4c742b35120ca912ce5b44add8ad062..eadf97acfef966d1ece656d823f72afb8664674d 100644 --- a/exercises/exercise-mainfile/exercise1pbmain.cc +++ b/exercises/exercise-mainfile/exercise1pbmain.cc @@ -47,7 +47,7 @@ #include <dumux/io/vtkoutputmodule.hh> #include <dumux/io/grid/gridmanager.hh> -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -143,28 +143,4 @@ int main(int argc, char** argv) try return 0; -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/exercise-mainfile/exercise1pcmain.cc b/exercises/exercise-mainfile/exercise1pcmain.cc index 8f89de6e0532ba746e8434242dac5a2fe65d2b76..003677cb2816118f62c33f98d674a142be530455 100644 --- a/exercises/exercise-mainfile/exercise1pcmain.cc +++ b/exercises/exercise-mainfile/exercise1pcmain.cc @@ -47,7 +47,7 @@ #include <dumux/io/vtkoutputmodule.hh> #include <dumux/io/grid/gridmanager.hh> -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -121,7 +121,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = ILU0BiCGSTABBackend; @@ -174,28 +174,4 @@ int main(int argc, char** argv) try return 0; -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/exercise-properties/main.cc b/exercises/exercise-properties/main.cc index 4194de1a28177624c2f98a43ef1d5de4ad4304ac..2f4b3774e3f611b9c0c017fc0942c3c5695c3ede 100644 --- a/exercises/exercise-properties/main.cc +++ b/exercises/exercise-properties/main.cc @@ -83,7 +83,7 @@ void usage(const char *progName, const std::string &errorMsg) } } -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -151,7 +151,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -206,27 +206,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-properties/problem.hh b/exercises/exercise-properties/problem.hh index 668e76aa3e8e5e5cbd9603be77c16a220e5a083b..b71fb4287382d35b465cb1073f854006d3d0ec33 100644 --- a/exercises/exercise-properties/problem.hh +++ b/exercises/exercise-properties/problem.hh @@ -25,6 +25,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -42,7 +43,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag> using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; diff --git a/exercises/exercise-runtimeparams/main.cc b/exercises/exercise-runtimeparams/main.cc index 21cff5b3f65d66d5a72134918ad0e83d98fc8944..c16c2bd6409b531ac91d766400795730808933fb 100644 --- a/exercises/exercise-runtimeparams/main.cc +++ b/exercises/exercise-runtimeparams/main.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -123,7 +123,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -178,27 +178,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/exercise-runtimeparams/problem.hh b/exercises/exercise-runtimeparams/problem.hh index 940891334eaddf55e37c4a20f422246ed5d5db8e..fb8f501fa49bd30233ad64a983279d1dac45b8d1 100644 --- a/exercises/exercise-runtimeparams/problem.hh +++ b/exercises/exercise-runtimeparams/problem.hh @@ -26,6 +26,7 @@ #define DUMUX_EXRUNTIMEPARAMS_INJECTION_PROBLEM_2P_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -59,7 +60,7 @@ class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-basic/2pnimain.cc b/exercises/solution/exercise-basic/2pnimain.cc index 4a1939651a930dfa77fe1df51483f63339af07bc..df321e505e1177134baea5e013b959ed0f5476c0 100644 --- a/exercises/solution/exercise-basic/2pnimain.cc +++ b/exercises/solution/exercise-basic/2pnimain.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -121,7 +121,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -176,27 +176,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-basic/injection2pniproblem.hh b/exercises/solution/exercise-basic/injection2pniproblem.hh index f022bcc65dfed2490847164d0699cd41d961a4eb..783fd212bb4b3a4319c5f8690478d1eed2bf2c77 100644 --- a/exercises/solution/exercise-basic/injection2pniproblem.hh +++ b/exercises/solution/exercise-basic/injection2pniproblem.hh @@ -26,6 +26,7 @@ #define DUMUX_EX_BASIC_PROBLEM_2PNI_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -58,7 +59,7 @@ class Injection2PNIProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-biomineralization/biominproblem.hh b/exercises/solution/exercise-biomineralization/biominproblem.hh index 6450943dbc7b5def04634a678ffa101e7e2abd8e..8cd46b4c93d1419d8b45d6ba77694f5529fdb617 100644 --- a/exercises/solution/exercise-biomineralization/biominproblem.hh +++ b/exercises/solution/exercise-biomineralization/biominproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_EXERCISE_FOUR_PROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> // TODO: dumux-course-task @@ -48,7 +49,7 @@ class BioMinProblem : public PorousMediumFlowProblem<TypeTag> using SolidSystem = GetPropType<TypeTag, Properties::SolidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; diff --git a/exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh b/exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh index 0509032c26d7c34b74ac5a17c98de5e658f90aab..ae2632fcdeea6997cdab89eed0968449a4ce8996 100644 --- a/exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh +++ b/exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh @@ -332,7 +332,7 @@ public: // assume brine with viscosity effect of Ca for the liquid phase. if (phaseIdx == liquidPhaseIdx) - return Brine::liquidViscosity(temperature, pressure);; + return Brine::liquidViscosity(temperature, pressure); // assume pure CO2 for the gas phase. else if (phaseIdx == gasPhaseIdx) diff --git a/exercises/solution/exercise-biomineralization/main.cc b/exercises/solution/exercise-biomineralization/main.cc index 95dc1a08fca4f7942799dd74140d9b7c458585f4..9aa45302983a3f1de066a4905849e666b6df80e6 100644 --- a/exercises/solution/exercise-biomineralization/main.cc +++ b/exercises/solution/exercise-biomineralization/main.cc @@ -54,7 +54,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -130,7 +130,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -193,27 +193,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-coupling-ff-pm/2pspatialparams.hh b/exercises/solution/exercise-coupling-ff-pm/2pspatialparams.hh index 622e4f59ca7837281111f6a79435d0fb74c1cddb..239308471b1d99a4bf15aa180c9585511b254bf5 100644 --- a/exercises/solution/exercise-coupling-ff-pm/2pspatialparams.hh +++ b/exercises/solution/exercise-coupling-ff-pm/2pspatialparams.hh @@ -27,7 +27,7 @@ #include <dumux/material/spatialparams/fv.hh> #include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh> #include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh> -#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivitysomerton.hh> +#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivity/somerton.hh> namespace Dumux { diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh index e2f31fc21d21f50b13c9fe5833eda77a1e91b0bc..eb0c5e3d1e6de92c4741864a23a492d9b35f08fc 100644 --- a/exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh @@ -24,6 +24,7 @@ #define DUMUX_STOKES_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/freeflow/navierstokes/problem.hh> @@ -42,7 +43,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/main.cc b/exercises/solution/exercise-coupling-ff-pm/interface/main.cc index a752d64c2e5be5209df597742b107cf644d58552..c4ca97b17800968ef5499d5b605936d3015499bd 100644 --- a/exercises/solution/exercise-coupling-ff-pm/interface/main.cc +++ b/exercises/solution/exercise-coupling-ff-pm/interface/main.cc @@ -49,7 +49,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -231,27 +231,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh index dcba507d5117bb1d190a93ba3c766bfc95599efd..8fa3b3aafd78f42a532821215cddce78df8cf20d 100644 --- a/exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh @@ -26,6 +26,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -40,7 +41,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; diff --git a/exercises/solution/exercise-coupling-ff-pm/models/freeflowsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/models/freeflowsubproblem.hh index 5de565277f000aa6ab9265875cfa3f5a579c2c79..6e55501bfa2ab8366ac5a3686a43546cb9332312 100644 --- a/exercises/solution/exercise-coupling-ff-pm/models/freeflowsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/models/freeflowsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_STOKES1P2C_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/freeflow/navierstokes/problem.hh> @@ -45,7 +46,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/solution/exercise-coupling-ff-pm/models/main.cc b/exercises/solution/exercise-coupling-ff-pm/models/main.cc index 8b5a6eca19c33bb4dc2fc16a15a696fa7756371a..7b1adffa52bff3948f0020ef853804b50bd0cc41 100644 --- a/exercises/solution/exercise-coupling-ff-pm/models/main.cc +++ b/exercises/solution/exercise-coupling-ff-pm/models/main.cc @@ -51,7 +51,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -179,7 +179,7 @@ int main(int argc, char** argv) try stokesGridVariables->cellCenterGridVariablesPtr(), darcyGridVariables), couplingManager, - timeLoop); + timeLoop, solOld); // the linear solver using LinearSolver = UMFPackBackend; @@ -242,27 +242,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh index 69f140fcb40170a61cf5c4a049394e3f3f68661b..1554a900394f70c83bdd4b030a890a2ae6dd3f60 100644 --- a/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_DARCY_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/io/gnuplotinterface.hh> @@ -43,7 +44,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; diff --git a/exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh index cfa3224f1858ac8c5a051622d489c17e5492ab46..d6ea8143c56bf5b50a85108f33ae2997c45bf4a8 100644 --- a/exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh @@ -31,6 +31,7 @@ #include <dumux/common/timeloop.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh> namespace Dumux { @@ -53,7 +54,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename FVGridGeometry::LocalView; diff --git a/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc b/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc index 81cf3c55f8cfa58ac73be54a4bbd730dfa72abef..880c3c29ae680767b9b097546156460d8bd48d3b 100644 --- a/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc +++ b/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc @@ -51,7 +51,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -178,7 +178,7 @@ int main(int argc, char** argv) try stokesGridVariables->cellCenterGridVariablesPtr(), darcyGridVariables), couplingManager, - timeLoop); + timeLoop, solOld); // the linear solver using LinearSolver = UMFPackBackend; @@ -243,27 +243,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh index ee8f686d90016a9dfb5217093b8c5abeb12f8c21..16a5606d42706cba3e72444299f7cc83d5bc4b62 100644 --- a/exercises/solution/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh +++ b/exercises/solution/exercise-coupling-ff-pm/turbulence/porousmediumsubproblem.hh @@ -25,6 +25,7 @@ #define DUMUX_DARCY2P2C_SUBPROBLEM_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/common/timeloop.hh> #include <dumux/porousmediumflow/problem.hh> @@ -42,7 +43,7 @@ class PorousMediumSubProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; diff --git a/exercises/solution/exercise-fluidsystem/2p2cproblem.hh b/exercises/solution/exercise-fluidsystem/2p2cproblem.hh index 079beb3d48a7886e349bde1159179387c36b7150..74a6cb4df2b3176ea93ebb0794c256b7fcab77f0 100644 --- a/exercises/solution/exercise-fluidsystem/2p2cproblem.hh +++ b/exercises/solution/exercise-fluidsystem/2p2cproblem.hh @@ -27,6 +27,7 @@ // The base porous media box problem #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -52,7 +53,7 @@ class ExerciseFluidsystemProblemTwoPTwoC : public PorousMediumFlowProblem<TypeTa // Dumux specific types using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-fluidsystem/2pproblem.hh b/exercises/solution/exercise-fluidsystem/2pproblem.hh index f460845573185e9d847167c18178150b98a85350..e34bc3985f4ea70b7f5ab8bac2b4501a8e7f47d7 100644 --- a/exercises/solution/exercise-fluidsystem/2pproblem.hh +++ b/exercises/solution/exercise-fluidsystem/2pproblem.hh @@ -27,6 +27,7 @@ // The porous media base problem #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> // The water component #include <dumux/material/components/tabulatedcomponent.hh> @@ -58,7 +59,7 @@ class ExerciseFluidsystemProblemTwoP : public PorousMediumFlowProblem<TypeTag> // Dumux specific types using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-fluidsystem/main.cc b/exercises/solution/exercise-fluidsystem/main.cc index 9a9bafe6ef2159833aa1ff3a3d14a876c51ca58d..60058a58bfd2986cf8298089a433249d6276499c 100644 --- a/exercises/solution/exercise-fluidsystem/main.cc +++ b/exercises/solution/exercise-fluidsystem/main.cc @@ -55,7 +55,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -125,7 +125,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric, /*implicit?*/true>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -176,27 +176,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-fractures/fractureproblem.hh b/exercises/solution/exercise-fractures/fractureproblem.hh index 41720e961c255f4a6c9ae18cb340da8c1259c035..3a326f28beafa22e33478559299b17c871ce6379 100644 --- a/exercises/solution/exercise-fractures/fractureproblem.hh +++ b/exercises/solution/exercise-fractures/fractureproblem.hh @@ -29,6 +29,7 @@ // include the base problem and properties we inherit from #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -43,7 +44,7 @@ class FractureSubProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; diff --git a/exercises/solution/exercise-fractures/main.cc b/exercises/solution/exercise-fractures/main.cc index c871fbee3c65d9228dd072b695a3714ef9d32271..f3d7e80aaca029edffc919dbd8f2ff723518688b 100644 --- a/exercises/solution/exercise-fractures/main.cc +++ b/exercises/solution/exercise-fractures/main.cc @@ -70,7 +70,7 @@ struct CouplingManager<TypeTag, TTag::FractureProblem> { using type = TheCouplin } // end namespace Dumux // main program -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -220,7 +220,7 @@ int main(int argc, char** argv) try std::make_tuple(matrixFvGridGeometry, fractureFvGridGeometry), std::make_tuple(matrixGridVariables, fractureGridVariables), couplingManager, - timeLoop); + timeLoop, xOld); // the linear solver using LinearSolver = ILU0BiCGSTABBackend; @@ -271,28 +271,4 @@ int main(int argc, char** argv) try return 0; -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/solution/exercise-fractures/matrixproblem.hh b/exercises/solution/exercise-fractures/matrixproblem.hh index 2bbf3cf5a9a6e46ffddd3aa936fdaeec23d41d1f..ef9d5a7bddd2ef9b01a4b7b0faac08769808ad84 100644 --- a/exercises/solution/exercise-fractures/matrixproblem.hh +++ b/exercises/solution/exercise-fractures/matrixproblem.hh @@ -33,6 +33,7 @@ // include the base problem and properties we inherit from #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -47,7 +48,7 @@ class MatrixSubProblem : public PorousMediumFlowProblem<TypeTag> { using ParentType = PorousMediumFlowProblem<TypeTag>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using GridVariables = GetPropType<TypeTag, Properties::GridVariables>; diff --git a/exercises/solution/exercise-grids/main.cc b/exercises/solution/exercise-grids/main.cc index ad6f8f834657bfa6d0ef994a70a6b741c0fcad94..916d1e79b6b92ea7795c261774e410736a118bfe 100644 --- a/exercises/solution/exercise-grids/main.cc +++ b/exercises/solution/exercise-grids/main.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -123,7 +123,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -178,27 +178,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-grids/problem.hh b/exercises/solution/exercise-grids/problem.hh index 3e0635ba2d6c12015bc1104ad44b374afdaa0e4c..1cd5cc456c7b74b1f535b6fe449d5b668c6b9908 100644 --- a/exercises/solution/exercise-grids/problem.hh +++ b/exercises/solution/exercise-grids/problem.hh @@ -27,6 +27,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -59,7 +60,7 @@ class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-mainfile/1pproblem.hh b/exercises/solution/exercise-mainfile/1pproblem.hh index 41a4577352d85070890a159c47bcf63a0bac0186..f5a5bdbb5685766eafd01bae421f26f6931a117b 100644 --- a/exercises/solution/exercise-mainfile/1pproblem.hh +++ b/exercises/solution/exercise-mainfile/1pproblem.hh @@ -26,6 +26,7 @@ #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -45,7 +46,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; static constexpr int dimWorld = GridView::dimensionworld; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; diff --git a/exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc b/exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc index 5959079d97bce58d9ae7c594ba49c7ea4970b61c..fb8cb7280f7dbd82d4ade2d9e5d1ca893ed6c9e4 100644 --- a/exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc +++ b/exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc @@ -48,7 +48,7 @@ #include "properties.hh" -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -155,28 +155,4 @@ int main(int argc, char** argv) try return 0; -} -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} +}// end main diff --git a/exercises/solution/exercise-properties/main.cc b/exercises/solution/exercise-properties/main.cc index f20d3f063fad4d186acd591e2057f465be339a4e..b5616e68b53b26743fe8419c69cd6187a2bdbe6d 100644 --- a/exercises/solution/exercise-properties/main.cc +++ b/exercises/solution/exercise-properties/main.cc @@ -84,7 +84,7 @@ void usage(const char *progName, const std::string &errorMsg) } } -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -152,7 +152,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -207,27 +207,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-properties/problem.hh b/exercises/solution/exercise-properties/problem.hh index b1c107aeab974f5e0c8b967a55795662aa1b3386..ec2b921d93029aeb40df48029b4f2bdc927ddcc0 100644 --- a/exercises/solution/exercise-properties/problem.hh +++ b/exercises/solution/exercise-properties/problem.hh @@ -26,6 +26,7 @@ #include <dumux/material/components/trichloroethene.hh> #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> namespace Dumux { @@ -43,7 +44,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag> using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; diff --git a/exercises/solution/exercise-runtimeparams/main.cc b/exercises/solution/exercise-runtimeparams/main.cc index 21cff5b3f65d66d5a72134918ad0e83d98fc8944..c16c2bd6409b531ac91d766400795730808933fb 100644 --- a/exercises/solution/exercise-runtimeparams/main.cc +++ b/exercises/solution/exercise-runtimeparams/main.cc @@ -53,7 +53,7 @@ //////////////////////// // the main function //////////////////////// -int main(int argc, char** argv) try +int main(int argc, char** argv) { using namespace Dumux; @@ -123,7 +123,7 @@ int main(int argc, char** argv) try // the assembler with time loop for instationary problem using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>; - auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop); + auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop, xOld); // the linear solver using LinearSolver = AMGBiCGSTABBackend<LinearSolverTraits<FVGridGeometry>>; @@ -178,27 +178,3 @@ int main(int argc, char** argv) try return 0; } // end main -catch (Dumux::ParameterException &e) -{ - std::cerr << std::endl << e << " ---> Abort!" << std::endl; - return 1; -} -catch (Dune::DGFException & e) -{ - std::cerr << "DGF exception thrown (" << e << - "). Most likely, the DGF file name is wrong " - "or the DGF file is corrupted, " - "e.g. missing hash at end of file or wrong number (dimensions) of entries." - << " ---> Abort!" << std::endl; - return 2; -} -catch (Dune::Exception &e) -{ - std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl; - return 3; -} -catch (...) -{ - std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl; - return 4; -} diff --git a/exercises/solution/exercise-runtimeparams/problem.hh b/exercises/solution/exercise-runtimeparams/problem.hh index ed97eb727dbcc4d8c4014b6d76ddb47382a7ae26..85aba7c169d1407c4383f4f6f194516ad0227593 100644 --- a/exercises/solution/exercise-runtimeparams/problem.hh +++ b/exercises/solution/exercise-runtimeparams/problem.hh @@ -26,6 +26,7 @@ #define DUMUX_EXRUNTIMEPARAMS_INJECTION_PROBLEM_2P_HH #include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> #include <dumux/porousmediumflow/problem.hh> namespace Dumux { @@ -59,7 +60,7 @@ class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag> using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; - using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView; using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;