4#include <Teuchos_ParameterList.hpp>
5#include <Teuchos_XMLParameterListCoreHelpers.hpp>
6#include <Teuchos_YamlParameterListCoreHelpers.hpp>
17 Teuchos::RCP<Teuchos::ParameterList> parseParameterList(
const std::string &fileName,
18 const std::string &type =
"yaml")
20 using std::logic_error;
21 using namespace Teuchos;
23 RCP<ParameterList> parameterList;
25 if (!type.compare(
"yaml"))
27 parameterList = getParametersFromYamlFile(fileName);
29 else if (!type.compare(
"xml"))
31 parameterList = getParametersFromXmlFile(fileName);
35 TEUCHOS_TEST_FOR_EXCEPTION(
true,logic_error,
"File type not supported.");
49 Teuchos::RCP<Teuchos::ParameterList> parseParameterListFiles(Teuchos::RCP<Teuchos::ParameterList> ¶meterList,
50 const std::string &nameName =
"ParameterLists File Names",
51 const std::string &pathName =
"ParameterLists File Paths",
52 const std::string &typeName =
"ParameterLists File Types")
55 using std::logic_error;
58 Array<string> names(1,
""), filePaths(1,
""), fileTypes(1,
"");
59 if (parameterList->isParameter(pathName))
61 filePaths = parameterList->get(pathName,filePaths);
63 if (parameterList->isParameter(nameName))
65 names = parameterList->get(nameName,names);
66 TEUCHOS_TEST_FOR_EXCEPTION(names.size()!=filePaths.size(),logic_error,
"names.size()!=filePaths.size()");
68 TEUCHOS_TEST_FOR_EXCEPTION(
true,logic_error,
"ParameterLists File Names are not specified.");
71 if (parameterList->isParameter(typeName))
73 fileTypes = parameterList->get(typeName,fileTypes);
74 TEUCHOS_TEST_FOR_EXCEPTION(fileTypes.size()!=filePaths.size(),logic_error,
"fileTypes.size()!=filePaths.size()");
76 TEUCHOS_TEST_FOR_EXCEPTION(
true,logic_error,
"ParameterLists File Types are not specified.");
80 for (
auto it = filePaths.begin(); it != filePaths.end(); it++, i++)
82 Teuchos::RCP<Teuchos::ParameterList> parameterListTmp = parseParameterList(filePaths[i],fileTypes[i]);
83 parameterList->set(names[i],*parameterListTmp);
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5