diff --git a/AMDiS/CMakeLists.txt b/AMDiS/CMakeLists.txt index 4427d078a0793cdf001c2c9620c6ad343d2fc71b..cdadf256d00190ef97abbd5456f064d59979bec7 100644 --- a/AMDiS/CMakeLists.txt +++ b/AMDiS/CMakeLists.txt @@ -110,7 +110,6 @@ SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc ${SOURCE_DIR}/MeshStructure.cc ${SOURCE_DIR}/Operator.cc ${SOURCE_DIR}/OperatorTerm.cc - ${SOURCE_DIR}/Parameters.cc ${SOURCE_DIR}/Parametric.cc ${SOURCE_DIR}/PeriodicBC.cc ${SOURCE_DIR}/ProblemImplicit.cc diff --git a/AMDiS/src/AMDiS.h b/AMDiS/src/AMDiS.h index a33921472fd35e0fc0b3c14d99c79b40ce2ed07c..b950d31a3f8f09f77f3408152b58c4dd5559e7d7 100644 --- a/AMDiS/src/AMDiS.h +++ b/AMDiS/src/AMDiS.h @@ -63,6 +63,7 @@ #include "FixVec.h" #include "Flag.h" #include "Global.h" +#include "Initfile.h" // replacement for Parameters.h #include "ITL_Preconditioner.h" #include "ITL_Solver.h" #include "Lagrange.h" @@ -78,7 +79,6 @@ #include "OEMSolver.h" #include "Operator.h" #include "OperatorTerm.h" -#include "Parameters.h" #include "Parametric.h" #include "PeriodicMap.h" #include "PeriodicBC.h" diff --git a/AMDiS/src/AdaptInfo.h b/AMDiS/src/AdaptInfo.h index 7ef68b226e8b4ff35831ba83e08ef2fab3eec9e5..24e01a68f7bc2fc5165f31f4a6ae5e5631038a5a 100644 --- a/AMDiS/src/AdaptInfo.h +++ b/AMDiS/src/AdaptInfo.h @@ -24,7 +24,7 @@ #define AMDIS_ADAPTINFO_H #include "MatrixVector.h" -#include "Parameters.h" +#include "Initfile.h" #include "Serializable.h" namespace AMDiS { diff --git a/AMDiS/src/AdaptInstationary.cc b/AMDiS/src/AdaptInstationary.cc index 0306a206ffdff9ee008f5b61808d5f3617260d6f..23dde58e1fda904e7d7ce2125a06d45d9b558b73 100644 --- a/AMDiS/src/AdaptInstationary.cc +++ b/AMDiS/src/AdaptInstationary.cc @@ -11,7 +11,7 @@ #include "AdaptInstationary.h" -#include "Parameters.h" +#include "Initfile.h" #include "Estimator.h" #include "ProblemIterationInterface.h" #include "ProblemTimeInterface.h" diff --git a/AMDiS/src/AdaptStationary.cc b/AMDiS/src/AdaptStationary.cc index a95c7184bc04e302e04a1bb4ad12e20cb67e7bd2..964babed0fd76770492846d734c16f58eda7259a 100644 --- a/AMDiS/src/AdaptStationary.cc +++ b/AMDiS/src/AdaptStationary.cc @@ -11,7 +11,7 @@ #include "AdaptStationary.h" -#include "Parameters.h" +#include "Initfile.h" #include "Estimator.h" #include "ProblemIterationInterface.h" #include diff --git a/AMDiS/src/Boundary.cc b/AMDiS/src/Boundary.cc index e12d795589570fbcc781dfffb46f5098518948f7..a251bcfcdbfc09c5c06572c58ca289b33c13f45a 100644 --- a/AMDiS/src/Boundary.cc +++ b/AMDiS/src/Boundary.cc @@ -12,7 +12,7 @@ #include "Boundary.h" #include "FixVec.h" -#include "Parameters.h" +#include "Initfile.h" namespace AMDiS { diff --git a/AMDiS/src/DOFVector.hh b/AMDiS/src/DOFVector.hh index 474b34b07bedf855953c901f0525d96ecb1d6a34..e133c474cbd1ae9eb120bf8d44f1e51fc804d66a 100644 --- a/AMDiS/src/DOFVector.hh +++ b/AMDiS/src/DOFVector.hh @@ -32,7 +32,7 @@ #include "BoundaryManager.h" #include "Assembler.h" #include "Operator.h" -#include "Parameters.h" +#include "Initfile.h" #include "Traverse.h" // Defining the interface for MTL4 diff --git a/AMDiS/src/Estimator.cc b/AMDiS/src/Estimator.cc index 97c12bb1e613750bdff6bbfa83add5d0cfdff362..6bb33f49d05c2b65e9c5d5b2de729c51fe99ef8d 100644 --- a/AMDiS/src/Estimator.cc +++ b/AMDiS/src/Estimator.cc @@ -12,7 +12,7 @@ #include "Estimator.h" #include "Traverse.h" -#include "Parameters.h" +#include "Initfile.h" #include "DualTraverse.h" namespace AMDiS { @@ -27,7 +27,7 @@ namespace AMDiS { { FUNCNAME("Estimator::Estimator()"); - Parameters::get(name + "->error norm", norm); + Parameters::get(name + "->error norm", norm); } diff --git a/AMDiS/src/Global.cc b/AMDiS/src/Global.cc index 34eae6a38305a92af5833e9e1f133f7c49f17c69..c18e9013b9dc4519910a21ae317ccc7846190a32 100644 --- a/AMDiS/src/Global.cc +++ b/AMDiS/src/Global.cc @@ -15,7 +15,7 @@ #include #include "Global.h" -#include "Parameters.h" +#include "Initfile.h" #include "Element.h" #include "Line.h" #include "Triangle.h" @@ -268,7 +268,7 @@ namespace AMDiS { // get dimension TEST_EXIT(Parameters::initialized())("Parameters not initialized!\n"); - Parameters::getGlobalParameter(0, "dimension of world","%d",&d); + Parameters::get("dimension of world",d,0); TEST_EXIT(d > 0)("Cannot initialize dimension!\n"); TEST_EXIT((d == 1) || (d == 2) || (d == 3))("Invalid world dimension %d!\n",d); @@ -304,8 +304,7 @@ namespace AMDiS { } // set msgWait - Parameters::getGlobalParameter(0, "WAIT", "%d", &d); - Msg::setMsgWait(!(d == 0)); + Msg::setMsgWait(!(Parameters::getMsgWait() == 0)); } diff --git a/AMDiS/src/Initfile.h b/AMDiS/src/Initfile.h index 70b30b1a900c3fbdde7c2a1e17fea45d8abb5464..71c80a1a3f94356cf50a8e0b74c6d829ab884667 100644 --- a/AMDiS/src/Initfile.h +++ b/AMDiS/src/Initfile.h @@ -15,6 +15,7 @@ #include #include +#include namespace AMDiS { @@ -118,15 +119,32 @@ namespace AMDiS { } /// convert string to intrinsic type - template< typename T > - inline void convert(const std::string valStr, T& value) { + template< typename T > + inline void convert(const std::string valStr, T& value , + typename boost::enable_if< boost::is_pod< T > >::type* p = NULL , + typename boost::disable_if< boost::is_enum< T > >::type* p2 = NULL ) { using boost::lexical_cast; + try { value = lexical_cast< T >(trim(valStr)); }catch(boost::bad_lexical_cast e) { throw WrongValueFormat< T >(valStr); } } + + template< typename T > + inline void convert(const std::string valStr, T& value, + typename boost::enable_if< boost::is_enum< T > >::type* p = NULL) { + + unsigned int swap= 0; + try { + swap = boost::lexical_cast< unsigned int >(trim(valStr)); + }catch(boost::bad_lexical_cast e) { + throw WrongValueFormat< T >(valStr); + } + value = static_cast< T >(swap); + } + /// convert string to WorldVector template< typename T > inline void convert(const std::string valStr, WorldVector& c) { @@ -378,5 +396,7 @@ protected: }; +typedef Initfile Parameters; + } // end namespace AMDiS #endif diff --git a/AMDiS/src/Mesh.cc b/AMDiS/src/Mesh.cc index b54f9ea28315606b82aa0d20ae3a6305ea7ace6f..0b15134351fb767ad239b64581073b23267a79c6 100644 --- a/AMDiS/src/Mesh.cc +++ b/AMDiS/src/Mesh.cc @@ -28,7 +28,7 @@ #include "MacroElement.h" #include "Mesh.h" #include "Traverse.h" -#include "Parameters.h" +#include "Initfile.h" #include "FixVec.h" #include "DOFVector.h" #include "CoarseningManager.h" diff --git a/AMDiS/src/OEMSolver.h b/AMDiS/src/OEMSolver.h index ef7fb8950a7ce79e82e8fdf854146ceccf300092..8d30802b570ff1c0f266ee6f1cac9bac6e529eb3 100644 --- a/AMDiS/src/OEMSolver.h +++ b/AMDiS/src/OEMSolver.h @@ -34,7 +34,7 @@ #include "Global.h" #include "AMDiS_fwd.h" -#include "Parameters.h" +#include "Initfile.h" #include "SolverMatrix.h" #include "DOFVector.h" #include "SystemVector.h" diff --git a/AMDiS/src/ProblemStat.h b/AMDiS/src/ProblemStat.h index 1f579610de175deeb529fc240fffa0aea781759e..6e870973311e641670b9b9d24e0aeffef2a543ec 100644 --- a/AMDiS/src/ProblemStat.h +++ b/AMDiS/src/ProblemStat.h @@ -27,7 +27,7 @@ #include #include "AMDiS_fwd.h" #include "ProblemStatBase.h" -#include "Parameters.h" +#include "Initfile.h" #include "Boundary.h" #include "MatrixVector.h" #include "StandardProblemIteration.h" diff --git a/AMDiS/src/RecoveryEstimator.cc b/AMDiS/src/RecoveryEstimator.cc index 61445bcb917bab17653c630f611a3a6050485914..7fd9b63f3cb42ef55b872e13f341ef3224f50e80 100644 --- a/AMDiS/src/RecoveryEstimator.cc +++ b/AMDiS/src/RecoveryEstimator.cc @@ -11,7 +11,7 @@ #include "RecoveryEstimator.h" -#include "Parameters.h" +#include "Initfile.h" namespace AMDiS { diff --git a/AMDiS/src/ResidualEstimator.cc b/AMDiS/src/ResidualEstimator.cc index e8a06efea38ba28bceeac93ae81294eb62846325..703b22aef4b9603e8d2a62ad84435903aea22112 100644 --- a/AMDiS/src/ResidualEstimator.cc +++ b/AMDiS/src/ResidualEstimator.cc @@ -16,7 +16,7 @@ #include "DOFVector.h" #include "Assembler.h" #include "Traverse.h" -#include "Parameters.h" +#include "Initfile.h" #ifdef HAVE_PARALLEL_DOMAIN_AMDIS #include diff --git a/AMDiS/src/Serializer.h b/AMDiS/src/Serializer.h index 4862dd407ab7d92d4d7cd380c0226ed25455d97f..aac826f297574654a36096f9464fb932459d81e2 100644 --- a/AMDiS/src/Serializer.h +++ b/AMDiS/src/Serializer.h @@ -31,7 +31,7 @@ #include #include "Global.h" -#include "Parameters.h" +#include "Initfile.h" #include "AdaptInfo.h" #include "io/FileWriter.h" diff --git a/AMDiS/src/SolutionDataStorage.h b/AMDiS/src/SolutionDataStorage.h index b0ed65641759d3e45068d02cb66f5cb27f821348..65d90622614de9839e00abd7fc33bf0a52ed66d0 100644 --- a/AMDiS/src/SolutionDataStorage.h +++ b/AMDiS/src/SolutionDataStorage.h @@ -29,7 +29,7 @@ #include #include "DOFVector.h" #include "SystemVector.h" -#include "Parameters.h" +#include "Initfile.h" namespace AMDiS { diff --git a/AMDiS/src/compositeFEM/CompositeFEMMethods.cc b/AMDiS/src/compositeFEM/CompositeFEMMethods.cc index 4c92d9286dc5ac4a48675293e21fdc58654e93d3..a6df47aa38489034dcc3d6d0df88b1e9a22ee534 100644 --- a/AMDiS/src/compositeFEM/CompositeFEMMethods.cc +++ b/AMDiS/src/compositeFEM/CompositeFEMMethods.cc @@ -17,7 +17,7 @@ #include "FiniteElemSpace.h" #include "Global.h" #include "Mesh.h" -#include "Parameters.h" +#include "Initfile.h" #include "Traverse.h" #include "CompositeFEMMethods.h" diff --git a/AMDiS/src/compositeFEM/ElementLevelSet.h b/AMDiS/src/compositeFEM/ElementLevelSet.h index b293803dacc1c1fd5b02d1b7fc583003c1874621..4fd0fa78d4e2d8478aa90f0ffbe60ed1ac0af2fa 100644 --- a/AMDiS/src/compositeFEM/ElementLevelSet.h +++ b/AMDiS/src/compositeFEM/ElementLevelSet.h @@ -25,7 +25,7 @@ #include "ElementFunction.h" #include "FixVec.h" -#include "Parameters.h" +#include "Initfile.h" namespace AMDiS { class Element; diff --git a/AMDiS/src/io/ElementFileWriter.cc b/AMDiS/src/io/ElementFileWriter.cc index dfbfc0490741ec59dcdc70b8aec5d16c58b313ac..b8f202702ce7c2e37745991192fd93cdd9019f9d 100644 --- a/AMDiS/src/io/ElementFileWriter.cc +++ b/AMDiS/src/io/ElementFileWriter.cc @@ -17,7 +17,7 @@ #include "ElementFileWriter.h" #include "BasisFunction.h" -#include "Parameters.h" +#include "Initfile.h" #include "Traverse.h" #include "AdaptInfo.h" diff --git a/AMDiS/src/io/FileWriter.cc b/AMDiS/src/io/FileWriter.cc index d75be90098d26303151ec46207f32e2f88bdf684..2b1feedcb638dd852008e018474042ff63f4af56 100644 --- a/AMDiS/src/io/FileWriter.cc +++ b/AMDiS/src/io/FileWriter.cc @@ -13,7 +13,7 @@ #include "boost/lexical_cast.hpp" #include "FileWriter.h" #include "SystemVector.h" -#include "Parameters.h" +#include "Initfile.h" #include "ValueWriter.h" #include "MacroWriter.h" #include "VtkWriter.h" diff --git a/AMDiS/src/io/MacroReader.cc b/AMDiS/src/io/MacroReader.cc index 484c64671ec1d51e39e7740798f6e22076781a6d..80343b35c1cb711ba8ed770b1ebf3c3edd924f9d 100644 --- a/AMDiS/src/io/MacroReader.cc +++ b/AMDiS/src/io/MacroReader.cc @@ -21,7 +21,7 @@ #include "FixVec.h" #include "PeriodicMap.h" #include "ElInfo.h" -#include "Parameters.h" +#include "Initfile.h" #include "DOFIterator.h" #include "LeafData.h" #include "VertexVector.h" diff --git a/AMDiS/src/parallel/PetscSolver.h b/AMDiS/src/parallel/PetscSolver.h index d5f344f09c707780e2b3cca373526bfa8eb0d389..a0d28124b0ddcb09743b9c648b09e191224b8523 100644 --- a/AMDiS/src/parallel/PetscSolver.h +++ b/AMDiS/src/parallel/PetscSolver.h @@ -29,7 +29,7 @@ #include "AMDiS_fwd.h" #include "Global.h" -#include "Parameters.h" +#include "Initfile.h" #include "DOFMatrix.h" #include "parallel/MeshDistributor.h" diff --git a/AMDiS/src/reinit/ElementLevelSet.h b/AMDiS/src/reinit/ElementLevelSet.h index d2169d5333ae10ae400bb1a575cbe28b141a681c..0a45ca5cc3c8d72e54ce7a29555ba80003cb1f05 100644 --- a/AMDiS/src/reinit/ElementLevelSet.h +++ b/AMDiS/src/reinit/ElementLevelSet.h @@ -25,7 +25,7 @@ #include "AMDiS_fwd.h" #include "ElementFunction.h" #include "FixVec.h" -#include "Parameters.h" +#include "Initfile.h" using namespace AMDiS; using namespace std; diff --git a/AMDiS/src/reinit/HL_SignedDist.h b/AMDiS/src/reinit/HL_SignedDist.h index 04b4fbbec5423de06804d879f597183c4c2c46d9..014c1db926fff89b32ce373c84278fece9c35359 100644 --- a/AMDiS/src/reinit/HL_SignedDist.h +++ b/AMDiS/src/reinit/HL_SignedDist.h @@ -29,7 +29,7 @@ #include "io/FileWriter.h" #include "FixVec.h" #include "Flag.h" -#include "Parameters.h" +#include "Initfile.h" #include "ElementLevelSet.h" #include "BoundaryElementDist.h" #include "BoundaryElementLevelSetDist.h" diff --git a/AMDiS/src/reinit/NormEps.h b/AMDiS/src/reinit/NormEps.h index 392b74e2ad3b8692cef21b2cbc6d97aee98aad13..dd03fbd575c433a5cda1a44f994f402d4c832086 100644 --- a/AMDiS/src/reinit/NormEps.h +++ b/AMDiS/src/reinit/NormEps.h @@ -24,7 +24,7 @@ #include "FixVec.h" #include "Global.h" -#include "Parameters.h" +#include "Initfile.h" using namespace AMDiS;