diff --git a/test/common/generalproblem/CMakeLists.txt b/test/common/generalproblem/CMakeLists.txt index 7342b3f52a3df84f2f4c53aa55a6d37aea7bc226..fdf3aeb607c63fa7314092063ea445b832ca3cff 100644 --- a/test/common/generalproblem/CMakeLists.txt +++ b/test/common/generalproblem/CMakeLists.txt @@ -5,21 +5,21 @@ add_dumux_test(test_general_box test_general test_generalproblem2p.cc --script fuzzy --files ${CMAKE_SOURCE_DIR}/test/references/generallens_box-reference.vtu ${CMAKE_CURRENT_BINARY_DIR}/generallens_box-00003.vtu - --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType Box") + --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType box") add_dumux_test(test_general_cc test_general test_generalproblem2p.cc python ${CMAKE_SOURCE_DIR}/bin/runtest.py --script fuzzy --files ${CMAKE_SOURCE_DIR}/test/references/generallens_cc-reference.vtu ${CMAKE_CURRENT_BINARY_DIR}/generallens_cc-00003.vtu - --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType CC") + --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType cc") add_dumux_test(test_general_dec test_general test_generalproblem2p.cc python ${CMAKE_SOURCE_DIR}/bin/runtest.py --script fuzzy --files ${CMAKE_SOURCE_DIR}/test/references/generallens_decoupled-reference.vtu ${CMAKE_CURRENT_BINARY_DIR}/generallens_decoupled-00003.vtu - --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType Decoupled") + --command "${CMAKE_CURRENT_BINARY_DIR}/test_general -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_generalproblem2p_reference.input -ModelType decoupled") #install sources install(FILES diff --git a/test/common/generalproblem/generallensproblem.hh b/test/common/generalproblem/generallensproblem.hh index 7bbc220d8a24fa377a7ffaa3d9fcc3b64ad72831..aff71ccf6dd4f7e70654c077bb70849a43c07500 100644 --- a/test/common/generalproblem/generallensproblem.hh +++ b/test/common/generalproblem/generallensproblem.hh @@ -249,8 +249,7 @@ public: */ const std::string name() const { - try { return GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, std::string, Problem, OutputfileName); } - catch (...) { return "test_generalproblem2p"; } + return "generallens_" + GET_RUNTIME_PARAM(TypeTag, std::string, ModelType); } /*! diff --git a/test/common/generalproblem/test_generalproblem2p.cc b/test/common/generalproblem/test_generalproblem2p.cc index 9c2f2bbd604b8feb5ae54b28be3445b23fbea7f4..889af1db6e1174b6af18311726fd100cf6c1beb5 100644 --- a/test/common/generalproblem/test_generalproblem2p.cc +++ b/test/common/generalproblem/test_generalproblem2p.cc @@ -45,7 +45,7 @@ void usage(const char *progName, const std::string &errorMsg) "\t-Grid.UpperRightX Dimension of the grid [m]\n" "\t-Grid.UpperRightY Dimension of the grid [m]\n"; errorMessageOut += "\n\nThe Optional command line argument:\n" - "\t-ModelType Can be: Box (2p box model), Decoupled (2p impes model),\n"; + "\t-ModelType Can be: box (2p box model), cc (2p cc model), decoupled (2p impes model),\n"; std::cout << errorMessageOut << "\n"; } } @@ -54,76 +54,34 @@ int main(int argc, char** argv) { Dune::ParameterTree paramTree; std::string s(Dumux::readOptions_(argc, argv, paramTree)); - if (s.empty()) + if (s.empty()) // everything was read correctly { - if (paramTree.hasKey("ModelType")) + // default model type is box + const std::string modelType(paramTree.get<std::string>("ModelType", "box")); + if (modelType == "box") { - std::string modelType(paramTree.get<std::string>("ModelType")); - - if (modelType == "Box") - { - typedef TTAG(BoxGeneralLensProblem) ProblemTypeTag; - typedef GET_PROP(ProblemTypeTag, ParameterTree) ParamTree; - Dune::ParameterTree &rt = ParamTree::runTimeParams(); - rt["ModelType"]=modelType; - ParamTree::tree()["Problem.OutputfileName"] = "generallens_box"; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<"Used box 2p model\n"; - return startReturn; - } - else if (modelType == "CC") - { - typedef TTAG(CCGeneralLensProblem) ProblemTypeTag; - typedef GET_PROP(ProblemTypeTag, ParameterTree) ParamTree; - Dune::ParameterTree &rt = ParamTree::runTimeParams(); - rt["ModelType"]=modelType; - ParamTree::tree()["Problem.OutputfileName"] = "generallens_cc"; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<"Used cc 2p model\n"; - return startReturn; - } - else if (modelType == "Decoupled") - { - typedef TTAG(DecoupledGeneralLensProblem) ProblemTypeTag; - typedef GET_PROP(ProblemTypeTag, ParameterTree) ParamTree; - Dune::ParameterTree &rt = ParamTree::runTimeParams(); - rt["ModelType"]=modelType; - ParamTree::tree()["Problem.OutputfileName"] = "generallens_decoupled"; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<"Used decoupled 2p model\n"; - return startReturn; - } - else - { - typedef TTAG(BoxGeneralLensProblem) ProblemTypeTag; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<"Unknwon model type "<<modelType<<" specified\n"; - std::cout<<"Default to box model\n"; - return startReturn; - } + typedef TTAG(BoxGeneralLensProblem) ProblemTypeTag; + GET_PROP(ProblemTypeTag, ParameterTree)::runTimeParams()["ModelType"] = "box"; + return Dumux::start<ProblemTypeTag>(argc, argv, usage); + } + else if (modelType == "cc") + { + typedef TTAG(CCGeneralLensProblem) ProblemTypeTag; + return Dumux::start<ProblemTypeTag>(argc, argv, usage); + } + else if (modelType == "decoupled") + { + typedef TTAG(DecoupledGeneralLensProblem) ProblemTypeTag; + return Dumux::start<ProblemTypeTag>(argc, argv, usage); } else { - typedef TTAG(BoxGeneralLensProblem) ProblemTypeTag; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<"No model type specified\n"; - std::cout<<"Default to box model\n"; - return startReturn; + Dumux::ParameterException e("Unknown ModelType: " + modelType); + std::cerr << e << ". Abort!" << std::endl + << "ModelType can be: box (2p box model), cc (2p cc model), decoupled (2p impes model)" << std::endl; + exit(1); } } else - { - typedef TTAG(BoxGeneralLensProblem) ProblemTypeTag; - int startReturn = Dumux::start<ProblemTypeTag>(argc, argv, usage); - std::cout<<"######################################################\n"; - std::cout<<s<<" is not a valid model type specification!\n"; - std::cout<<"Default to box model\n"; - return startReturn; - } + DUNE_THROW(Dumux::ParameterException, "Unknown command line option " << s); } -