diff --git a/Fit/Adapter/MinimizerAdapter.cpp b/Fit/Adapter/MinimizerAdapter.cpp index 85ba581a05dc7dd8bdfbad196f0043ecd1d6d7be..0351277cae6363b956559dfcce43aa5903292003 100644 --- a/Fit/Adapter/MinimizerAdapter.cpp +++ b/Fit/Adapter/MinimizerAdapter.cpp @@ -15,8 +15,8 @@ #include "Fit/Adapter/MinimizerAdapter.h" #include "Fit/Adapter/ObjectiveFunctionAdapter.h" #include "Fit/Adapter/Report.h" -#include "Fit/Adapter/RootResidualFunction.h" -#include "Fit/Adapter/RootScalarFunction.h" +#include "Fit/Residual/RootResidualFunction.h" +#include "Fit/Residual/RootScalarFunction.h" #include "Fit/Tools/StringUtil.h" #include <Math/Minimizer.h> diff --git a/Fit/Adapter/MinimizerAdapter.h b/Fit/Adapter/MinimizerAdapter.h index 89a71b225bb17d4637985eaafa4a7d895b5e5844..5f5fd74db886800d83616dbbc4052f1fcdf91c90 100644 --- a/Fit/Adapter/MinimizerAdapter.h +++ b/Fit/Adapter/MinimizerAdapter.h @@ -20,7 +20,7 @@ #include "Fit/Minimizer/IMinimizer.h" #include "Fit/Minimizer/MinimizerInfo.h" -#include "Fit/Minimizer/MinimizerOptions.h" +#include "Fit/Option/MinimizerOptions.h" #include <memory> #include <string> diff --git a/Fit/Adapter/ObjectiveFunctionAdapter.cpp b/Fit/Adapter/ObjectiveFunctionAdapter.cpp index 34a13b8c1297d32a96b9c0bd745df7817c06097f..d7e7b7f9d33152d193a688263f90041ea963b64f 100644 --- a/Fit/Adapter/ObjectiveFunctionAdapter.cpp +++ b/Fit/Adapter/ObjectiveFunctionAdapter.cpp @@ -13,10 +13,10 @@ // ************************************************************************************************ #include "Fit/Adapter/ObjectiveFunctionAdapter.h" -#include "Fit/Adapter/ResidualFunctionAdapter.h" -#include "Fit/Adapter/RootResidualFunction.h" -#include "Fit/Adapter/RootScalarFunction.h" -#include "Fit/Adapter/ScalarFunctionAdapter.h" +#include "Fit/Residual/ResidualFunctionAdapter.h" +#include "Fit/Residual/RootResidualFunction.h" +#include "Fit/Residual/RootScalarFunction.h" +#include "Fit/Residual/ScalarFunctionAdapter.h" using namespace mumufit; diff --git a/Fit/Kernel/MinimizerFactory.cpp b/Fit/Kernel/MinimizerFactory.cpp index 564187c2225ee205df9841d0545013246e0b46c1..37a19626a8dfd677780fb0906f0cf79401ab09f9 100644 --- a/Fit/Kernel/MinimizerFactory.cpp +++ b/Fit/Kernel/MinimizerFactory.cpp @@ -13,11 +13,11 @@ // ************************************************************************************************ #include "Fit/Kernel/MinimizerFactory.h" -#include "Fit/Adapter/GSLLevenbergMarquardtMinimizer.h" -#include "Fit/Adapter/GSLMultiMinimizer.h" -#include "Fit/Adapter/GeneticMinimizer.h" -#include "Fit/Adapter/Minuit2Minimizer.h" -#include "Fit/Adapter/SimAnMinimizer.h" +#include "Fit/Suite/GSLLevenbergMarquardtMinimizer.h" +#include "Fit/Suite/GSLMultiMinimizer.h" +#include "Fit/Suite/GeneticMinimizer.h" +#include "Fit/Suite/Minuit2Minimizer.h" +#include "Fit/Suite/SimAnMinimizer.h" #include <boost/format.hpp> #include <iomanip> #include <iostream> diff --git a/Fit/Minimizer/MinimizerOptions.cpp b/Fit/Option/MinimizerOptions.cpp similarity index 95% rename from Fit/Minimizer/MinimizerOptions.cpp rename to Fit/Option/MinimizerOptions.cpp index d9cec8d94662cb0c99d61a49a907dcdf9a333f0e..028f292f0fd4e5c07b2a42a16650f95d45f6fe93 100644 --- a/Fit/Minimizer/MinimizerOptions.cpp +++ b/Fit/Option/MinimizerOptions.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Minimizer/MinimizerOptions.cpp +//! @file Fit/Option/MinimizerOptions.cpp //! @brief Implements class MinimizerOptions. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Minimizer/MinimizerOptions.h" +#include "Fit/Option/MinimizerOptions.h" #include "Fit/Tools/StringUtil.h" #include <iostream> #include <sstream> diff --git a/Fit/Minimizer/MinimizerOptions.h b/Fit/Option/MinimizerOptions.h similarity index 81% rename from Fit/Minimizer/MinimizerOptions.h rename to Fit/Option/MinimizerOptions.h index 8839f47db13b9d508b8548ad48aa35d13a1e862b..4476cc4e7c76d71356709281050ebfb1a88be43d 100644 --- a/Fit/Minimizer/MinimizerOptions.h +++ b/Fit/Option/MinimizerOptions.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Minimizer/MinimizerOptions.h +//! @file Fit/Option/MinimizerOptions.h //! @brief Declares class MinimizerOptions. //! //! @homepage http://www.bornagainproject.org @@ -15,10 +15,10 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_MINIMIZER_MINIMIZEROPTIONS_H -#define BORNAGAIN_FIT_MINIMIZER_MINIMIZEROPTIONS_H +#ifndef BORNAGAIN_FIT_OPTION_MINIMIZEROPTIONS_H +#define BORNAGAIN_FIT_OPTION_MINIMIZEROPTIONS_H -#include "Fit/Tools/OptionContainer.h" +#include "Fit/Option/OptionContainer.h" //! Collection of internal minimizer settings. @@ -34,4 +34,4 @@ private: void processCommand(const std::string& command); }; -#endif // BORNAGAIN_FIT_MINIMIZER_MINIMIZEROPTIONS_H +#endif // BORNAGAIN_FIT_OPTION_MINIMIZEROPTIONS_H diff --git a/Fit/Tools/MultiOption.cpp b/Fit/Option/MultiOption.cpp similarity index 95% rename from Fit/Tools/MultiOption.cpp rename to Fit/Option/MultiOption.cpp index 3a807ecffbf00163e00578badacbce826397dbe1..3734a4dc9425344ff46934f49ecec8b2bdb53ff9 100644 --- a/Fit/Tools/MultiOption.cpp +++ b/Fit/Option/MultiOption.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Tools/MultiOption.cpp +//! @file Fit/Option/MultiOption.cpp //! @brief Implements class MultiOption //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Tools/MultiOption.h" +#include "Fit/Option/MultiOption.h" #include <string> #include <utility> diff --git a/Fit/Tools/MultiOption.h b/Fit/Option/MultiOption.h similarity index 92% rename from Fit/Tools/MultiOption.h rename to Fit/Option/MultiOption.h index 4709f57c8aca256722966b3004f4ec4fe2ae15c9..9a682d77afe488248a3fb043b7f734475ed4dc38 100644 --- a/Fit/Tools/MultiOption.h +++ b/Fit/Option/MultiOption.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Tools/MultiOption.h +//! @file Fit/Option/MultiOption.h //! @brief Declares class MultiOption //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_TOOLS_MULTIOPTION_H -#define BORNAGAIN_FIT_TOOLS_MULTIOPTION_H +#ifndef BORNAGAIN_FIT_OPTION_MULTIOPTION_H +#define BORNAGAIN_FIT_OPTION_MULTIOPTION_H #include <string> #include <variant> @@ -81,4 +81,4 @@ T MultiOption::getDefault() const return std::get<T>(m_default_value); } -#endif // BORNAGAIN_FIT_TOOLS_MULTIOPTION_H +#endif // BORNAGAIN_FIT_OPTION_MULTIOPTION_H diff --git a/Fit/Tools/OptionContainer.cpp b/Fit/Option/OptionContainer.cpp similarity index 95% rename from Fit/Tools/OptionContainer.cpp rename to Fit/Option/OptionContainer.cpp index 5bb9f0607198beaf52ed17274a8a02fcad979531..4895e76b23aeb61a407d18c97bfeb79fbc9d1b5d 100644 --- a/Fit/Tools/OptionContainer.cpp +++ b/Fit/Option/OptionContainer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Tools/OptionContainer.cpp +//! @file Fit/Option/OptionContainer.cpp //! @brief Implements class OptionContainer. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Tools/OptionContainer.h" +#include "Fit/Option/OptionContainer.h" #include <sstream> //! Returns true if option with such name already exists. diff --git a/Fit/Tools/OptionContainer.h b/Fit/Option/OptionContainer.h similarity index 93% rename from Fit/Tools/OptionContainer.h rename to Fit/Option/OptionContainer.h index 4e300b795ecc8a3f2eb9fb169e57bf3478b3bc9e..6ed264fe10d53ace05cfff2778bed60805329708 100644 --- a/Fit/Tools/OptionContainer.h +++ b/Fit/Option/OptionContainer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Tools/OptionContainer.h +//! @file Fit/Option/OptionContainer.h //! @brief Declares class OptionContainer. //! //! @homepage http://www.bornagainproject.org @@ -15,10 +15,10 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_TOOLS_OPTIONCONTAINER_H -#define BORNAGAIN_FIT_TOOLS_OPTIONCONTAINER_H +#ifndef BORNAGAIN_FIT_OPTION_OPTIONCONTAINER_H +#define BORNAGAIN_FIT_OPTION_OPTIONCONTAINER_H -#include "Fit/Tools/MultiOption.h" +#include "Fit/Option/MultiOption.h" #include <map> #include <memory> #include <stdexcept> @@ -95,4 +95,4 @@ void OptionContainer::setOptionValue(const std::string& optionName, T value) + optionName + "'"); } -#endif // BORNAGAIN_FIT_TOOLS_OPTIONCONTAINER_H +#endif // BORNAGAIN_FIT_OPTION_OPTIONCONTAINER_H diff --git a/Fit/Adapter/IFunctionAdapter.cpp b/Fit/Residual/IFunctionAdapter.cpp similarity index 90% rename from Fit/Adapter/IFunctionAdapter.cpp rename to Fit/Residual/IFunctionAdapter.cpp index 9283126edbcb8bb5ca11f0c0b72a03d04577a52f..425ed12d73ac59e02fe395a981a3b83ccdc043e1 100644 --- a/Fit/Adapter/IFunctionAdapter.cpp +++ b/Fit/Residual/IFunctionAdapter.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/IFunctionAdapter.cpp +//! @file Fit/Residual/IFunctionAdapter.cpp //! @brief Implements interface IFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/IFunctionAdapter.h" +#include "Fit/Residual/IFunctionAdapter.h" using namespace mumufit; diff --git a/Fit/Adapter/IFunctionAdapter.h b/Fit/Residual/IFunctionAdapter.h similarity index 84% rename from Fit/Adapter/IFunctionAdapter.h rename to Fit/Residual/IFunctionAdapter.h index db9dd0289cf6f980e47f25618df73fde168f8ad9..017fbc3ab7723a43c9d4b770ca0543c6e151e3f7 100644 --- a/Fit/Adapter/IFunctionAdapter.h +++ b/Fit/Residual/IFunctionAdapter.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/IFunctionAdapter.h +//! @file Fit/Residual/IFunctionAdapter.h //! @brief Defines interface IFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_IFUNCTIONADAPTER_H -#define BORNAGAIN_FIT_ADAPTER_IFUNCTIONADAPTER_H +#ifndef BORNAGAIN_FIT_RESIDUAL_IFUNCTIONADAPTER_H +#define BORNAGAIN_FIT_RESIDUAL_IFUNCTIONADAPTER_H namespace mumufit { @@ -38,4 +38,4 @@ protected: } // namespace mumufit -#endif // BORNAGAIN_FIT_ADAPTER_IFUNCTIONADAPTER_H +#endif // BORNAGAIN_FIT_RESIDUAL_IFUNCTIONADAPTER_H diff --git a/Fit/Adapter/ResidualFunctionAdapter.cpp b/Fit/Residual/ResidualFunctionAdapter.cpp similarity index 96% rename from Fit/Adapter/ResidualFunctionAdapter.cpp rename to Fit/Residual/ResidualFunctionAdapter.cpp index 2b30e761c2669ee4a6168897bac8a9c334c68c15..461b6644f6f838dad9bdca26ed7a9c67b72315c5 100644 --- a/Fit/Adapter/ResidualFunctionAdapter.cpp +++ b/Fit/Residual/ResidualFunctionAdapter.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/ResidualFunctionAdapter.cpp +//! @file Fit/Residual/ResidualFunctionAdapter.cpp //! @brief Implements class ResidualFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -12,8 +12,8 @@ // // ************************************************************************************************ -#include "Fit/Adapter/ResidualFunctionAdapter.h" -#include "Fit/Adapter/RootResidualFunction.h" +#include "Fit/Residual/ResidualFunctionAdapter.h" +#include "Fit/Residual/RootResidualFunction.h" #include <cassert> #include <memory> #include <sstream> diff --git a/Fit/Adapter/ResidualFunctionAdapter.h b/Fit/Residual/ResidualFunctionAdapter.h similarity index 88% rename from Fit/Adapter/ResidualFunctionAdapter.h rename to Fit/Residual/ResidualFunctionAdapter.h index d47a8bec4b63ffb88ab946f75ffb6402d92f356e..f62b764b6cadd0175c391363cb4ecda2389fdfd2 100644 --- a/Fit/Adapter/ResidualFunctionAdapter.h +++ b/Fit/Residual/ResidualFunctionAdapter.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/ResidualFunctionAdapter.h +//! @file Fit/Residual/ResidualFunctionAdapter.h //! @brief Defines class ResidualFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -15,12 +15,12 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_RESIDUALFUNCTIONADAPTER_H -#define BORNAGAIN_FIT_ADAPTER_RESIDUALFUNCTIONADAPTER_H +#ifndef BORNAGAIN_FIT_RESIDUAL_RESIDUALFUNCTIONADAPTER_H +#define BORNAGAIN_FIT_RESIDUAL_RESIDUALFUNCTIONADAPTER_H -#include "Fit/Adapter/IFunctionAdapter.h" #include "Fit/Minimizer/Types.h" #include "Fit/Param/Parameters.h" +#include "Fit/Residual/IFunctionAdapter.h" #include <functional> #include <memory> #include <vector> @@ -59,4 +59,4 @@ private: } // namespace mumufit -#endif // BORNAGAIN_FIT_ADAPTER_RESIDUALFUNCTIONADAPTER_H +#endif // BORNAGAIN_FIT_RESIDUAL_RESIDUALFUNCTIONADAPTER_H diff --git a/Fit/Adapter/RootResidualFunction.cpp b/Fit/Residual/RootResidualFunction.cpp similarity index 96% rename from Fit/Adapter/RootResidualFunction.cpp rename to Fit/Residual/RootResidualFunction.cpp index 054f30b3ac416bd352b4d6f3a7401c7ae2f1aa54..4c849c737ac13e52a9494a365aa390cb988a3f52 100644 --- a/Fit/Adapter/RootResidualFunction.cpp +++ b/Fit/Residual/RootResidualFunction.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/RootResidualFunction.cpp +//! @file Fit/Residual/RootResidualFunction.cpp //! @brief Implements class RootResidualFunction. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/RootResidualFunction.h" +#include "Fit/Residual/RootResidualFunction.h" #include <utility> diff --git a/Fit/Adapter/RootResidualFunction.h b/Fit/Residual/RootResidualFunction.h similarity index 90% rename from Fit/Adapter/RootResidualFunction.h rename to Fit/Residual/RootResidualFunction.h index 65af33fdbf49a4c5a778cb54f8956a34a17697b1..9496b65d1cacdb0564850c24fe5d6673ea7e0c49 100644 --- a/Fit/Adapter/RootResidualFunction.h +++ b/Fit/Residual/RootResidualFunction.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/RootResidualFunction.h +//! @file Fit/Residual/RootResidualFunction.h //! @brief Declares class RootResidualFunction. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_ROOTRESIDUALFUNCTION_H -#define BORNAGAIN_FIT_ADAPTER_ROOTRESIDUALFUNCTION_H +#ifndef BORNAGAIN_FIT_RESIDUAL_ROOTRESIDUALFUNCTION_H +#define BORNAGAIN_FIT_RESIDUAL_ROOTRESIDUALFUNCTION_H #include "Fit/Minimizer/Types.h" @@ -58,4 +58,4 @@ private: size_t m_datasize; }; -#endif // BORNAGAIN_FIT_ADAPTER_ROOTRESIDUALFUNCTION_H +#endif // BORNAGAIN_FIT_RESIDUAL_ROOTRESIDUALFUNCTION_H diff --git a/Fit/Adapter/RootScalarFunction.cpp b/Fit/Residual/RootScalarFunction.cpp similarity index 88% rename from Fit/Adapter/RootScalarFunction.cpp rename to Fit/Residual/RootScalarFunction.cpp index a9c3ed8cc14aca790e4e35b4fda84a0569149d81..02719293b6a22a443d05ca88a35c37dc437393fa 100644 --- a/Fit/Adapter/RootScalarFunction.cpp +++ b/Fit/Residual/RootScalarFunction.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/RootScalarFunction.cpp +//! @file Fit/Residual/RootScalarFunction.cpp //! @brief Implements class RootScalarFunction //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/RootScalarFunction.h" +#include "Fit/Residual/RootScalarFunction.h" RootScalarFunction::RootScalarFunction(root_scalar_t fcn, int ndims) : ROOT::Math::Functor(fcn, static_cast<unsigned int>(ndims)) diff --git a/Fit/Adapter/RootScalarFunction.h b/Fit/Residual/RootScalarFunction.h similarity index 83% rename from Fit/Adapter/RootScalarFunction.h rename to Fit/Residual/RootScalarFunction.h index 4399bd8d8ade1e5fb2ace8b16ffee92f040ad1b0..9bd1fe0ced74db23f8bde584af95ced921a2695b 100644 --- a/Fit/Adapter/RootScalarFunction.h +++ b/Fit/Residual/RootScalarFunction.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/RootScalarFunction.h +//! @file Fit/Residual/RootScalarFunction.h //! @brief Defines classes RootScalarFunction //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_ROOTSCALARFUNCTION_H -#define BORNAGAIN_FIT_ADAPTER_ROOTSCALARFUNCTION_H +#ifndef BORNAGAIN_FIT_RESIDUAL_ROOTSCALARFUNCTION_H +#define BORNAGAIN_FIT_RESIDUAL_ROOTSCALARFUNCTION_H #include "Fit/Minimizer/Types.h" @@ -36,4 +36,4 @@ public: RootScalarFunction(root_scalar_t fcn, int ndims); }; -#endif // BORNAGAIN_FIT_ADAPTER_ROOTSCALARFUNCTION_H +#endif // BORNAGAIN_FIT_RESIDUAL_ROOTSCALARFUNCTION_H diff --git a/Fit/Adapter/ScalarFunctionAdapter.cpp b/Fit/Residual/ScalarFunctionAdapter.cpp similarity index 89% rename from Fit/Adapter/ScalarFunctionAdapter.cpp rename to Fit/Residual/ScalarFunctionAdapter.cpp index a5b030cec202a953036cf0f2f4c52146f2b95169..fa88a7cea19ec8d40bb24529bae09ed3e2815e1d 100644 --- a/Fit/Adapter/ScalarFunctionAdapter.cpp +++ b/Fit/Residual/ScalarFunctionAdapter.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/ScalarFunctionAdapter.cpp +//! @file Fit/Residual/ScalarFunctionAdapter.cpp //! @brief Defines class ScalarFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -12,9 +12,9 @@ // // ************************************************************************************************ -#include "Fit/Adapter/ScalarFunctionAdapter.h" +#include "Fit/Residual/ScalarFunctionAdapter.h" -#include "Fit/Adapter/RootScalarFunction.h" +#include "Fit/Residual/RootScalarFunction.h" #include <utility> using namespace mumufit; diff --git a/Fit/Adapter/ScalarFunctionAdapter.h b/Fit/Residual/ScalarFunctionAdapter.h similarity index 85% rename from Fit/Adapter/ScalarFunctionAdapter.h rename to Fit/Residual/ScalarFunctionAdapter.h index 0894995ec5d1bec8ed793ede2105168d6696644a..779c2fa6babec3b599528816eb3d80ded28b110e 100644 --- a/Fit/Adapter/ScalarFunctionAdapter.h +++ b/Fit/Residual/ScalarFunctionAdapter.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/ScalarFunctionAdapter.h +//! @file Fit/Residual/ScalarFunctionAdapter.h //! @brief Defines class ScalarFunctionAdapter. //! //! @homepage http://www.bornagainproject.org @@ -15,12 +15,12 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_SCALARFUNCTIONADAPTER_H -#define BORNAGAIN_FIT_ADAPTER_SCALARFUNCTIONADAPTER_H +#ifndef BORNAGAIN_FIT_RESIDUAL_SCALARFUNCTIONADAPTER_H +#define BORNAGAIN_FIT_RESIDUAL_SCALARFUNCTIONADAPTER_H -#include "Fit/Adapter/IFunctionAdapter.h" #include "Fit/Minimizer/Types.h" #include "Fit/Param/Parameters.h" +#include "Fit/Residual/IFunctionAdapter.h" #include <functional> #include <memory> #include <vector> @@ -49,4 +49,4 @@ private: } // namespace mumufit -#endif // BORNAGAIN_FIT_ADAPTER_SCALARFUNCTIONADAPTER_H +#endif // BORNAGAIN_FIT_RESIDUAL_SCALARFUNCTIONADAPTER_H diff --git a/Fit/Adapter/GSLLevenbergMarquardtMinimizer.cpp b/Fit/Suite/GSLLevenbergMarquardtMinimizer.cpp similarity index 95% rename from Fit/Adapter/GSLLevenbergMarquardtMinimizer.cpp rename to Fit/Suite/GSLLevenbergMarquardtMinimizer.cpp index b5528434723cf21c124f89f8a2c38d48f558cfd0..5fb21a1226b996ccaf635cb55fed0440a40030d2 100644 --- a/Fit/Adapter/GSLLevenbergMarquardtMinimizer.cpp +++ b/Fit/Suite/GSLLevenbergMarquardtMinimizer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GSLLevenbergMarquardtMinimizer.cpp +//! @file Fit/Suite/GSLLevenbergMarquardtMinimizer.cpp //! @brief Implements class GSLLevenbergMarquardtMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -12,8 +12,8 @@ // // ************************************************************************************************ -#include "Fit/Adapter/GSLLevenbergMarquardtMinimizer.h" -#include "Fit/Adapter/GSLMultiMinimizer.h" +#include "Fit/Suite/GSLLevenbergMarquardtMinimizer.h" +#include "Fit/Suite/GSLMultiMinimizer.h" #include "Fit/Tools/MinimizerUtil.h" #include "Fit/Tools/StringUtil.h" #include <stdexcept> diff --git a/Fit/Adapter/GSLLevenbergMarquardtMinimizer.h b/Fit/Suite/GSLLevenbergMarquardtMinimizer.h similarity index 89% rename from Fit/Adapter/GSLLevenbergMarquardtMinimizer.h rename to Fit/Suite/GSLLevenbergMarquardtMinimizer.h index 2092e52305b0533b7c7b3bcdcb9f905f71ffb21e..80cca3613cfc2988e23b424aeb543ee7067281ea 100644 --- a/Fit/Adapter/GSLLevenbergMarquardtMinimizer.h +++ b/Fit/Suite/GSLLevenbergMarquardtMinimizer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GSLLevenbergMarquardtMinimizer.h +//! @file Fit/Suite/GSLLevenbergMarquardtMinimizer.h //! @brief Declares class GSLLevenbergMarquardtMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_GSLLEVENBERGMARQUARDTMINIMIZER_H -#define BORNAGAIN_FIT_ADAPTER_GSLLEVENBERGMARQUARDTMINIMIZER_H +#ifndef BORNAGAIN_FIT_SUITE_GSLLEVENBERGMARQUARDTMINIMIZER_H +#define BORNAGAIN_FIT_SUITE_GSLLEVENBERGMARQUARDTMINIMIZER_H #include "Fit/Adapter/MinimizerAdapter.h" @@ -62,4 +62,4 @@ private: std::unique_ptr<ROOT::Math::GSLNLSMinimizer> m_gsl_minimizer; }; -#endif // BORNAGAIN_FIT_ADAPTER_GSLLEVENBERGMARQUARDTMINIMIZER_H +#endif // BORNAGAIN_FIT_SUITE_GSLLEVENBERGMARQUARDTMINIMIZER_H diff --git a/Fit/Adapter/GSLMultiMinimizer.cpp b/Fit/Suite/GSLMultiMinimizer.cpp similarity index 95% rename from Fit/Adapter/GSLMultiMinimizer.cpp rename to Fit/Suite/GSLMultiMinimizer.cpp index 1eb0680cffabf929615a244e8b4797c565d8da86..42e89c6e8b959ee4557180f07cc57c40b9d02693 100644 --- a/Fit/Adapter/GSLMultiMinimizer.cpp +++ b/Fit/Suite/GSLMultiMinimizer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GSLMultiMinimizer.cpp +//! @file Fit/Suite/GSLMultiMinimizer.cpp //! @brief Implements class GSLMultiMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/GSLMultiMinimizer.h" +#include "Fit/Suite/GSLMultiMinimizer.h" #include "Fit/Tools/MinimizerUtil.h" #include <string> diff --git a/Fit/Adapter/GSLMultiMinimizer.h b/Fit/Suite/GSLMultiMinimizer.h similarity index 89% rename from Fit/Adapter/GSLMultiMinimizer.h rename to Fit/Suite/GSLMultiMinimizer.h index 3dd78265ec74efaa24a25d3ea9f59ec2067d9a3a..6b3fbd717ccc8a90208b34b1339681c0a381a48c 100644 --- a/Fit/Adapter/GSLMultiMinimizer.h +++ b/Fit/Suite/GSLMultiMinimizer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GSLMultiMinimizer.h +//! @file Fit/Suite/GSLMultiMinimizer.h //! @brief Declares class GSLMultiMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_GSLMULTIMINIMIZER_H -#define BORNAGAIN_FIT_ADAPTER_GSLMULTIMINIMIZER_H +#ifndef BORNAGAIN_FIT_SUITE_GSLMULTIMINIMIZER_H +#define BORNAGAIN_FIT_SUITE_GSLMULTIMINIMIZER_H #include "Fit/Adapter/MinimizerAdapter.h" @@ -52,4 +52,4 @@ private: std::unique_ptr<ROOT::Math::GSLMinimizer> m_gsl_minimizer; }; -#endif // BORNAGAIN_FIT_ADAPTER_GSLMULTIMINIMIZER_H +#endif // BORNAGAIN_FIT_SUITE_GSLMULTIMINIMIZER_H diff --git a/Fit/Adapter/GeneticMinimizer.cpp b/Fit/Suite/GeneticMinimizer.cpp similarity index 97% rename from Fit/Adapter/GeneticMinimizer.cpp rename to Fit/Suite/GeneticMinimizer.cpp index a97733e081a3a78c845a6e44ee8eb03928c2fba9..beba0a7e3e8da0287d82fcf8f8278dcc90d61f0f 100644 --- a/Fit/Adapter/GeneticMinimizer.cpp +++ b/Fit/Suite/GeneticMinimizer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GeneticMinimizer.cpp +//! @file Fit/Suite/GeneticMinimizer.cpp //! @brief Implements class GeneticMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/GeneticMinimizer.h" +#include "Fit/Suite/GeneticMinimizer.h" #include <Math/GeneticMinimizer.h> namespace { diff --git a/Fit/Adapter/GeneticMinimizer.h b/Fit/Suite/GeneticMinimizer.h similarity index 91% rename from Fit/Adapter/GeneticMinimizer.h rename to Fit/Suite/GeneticMinimizer.h index b4b9390a70fe9d0180c916cf5264cef3d8a75f1c..a488cb587127d05ed8c8fbd9074445a7aa0fcaab 100644 --- a/Fit/Adapter/GeneticMinimizer.h +++ b/Fit/Suite/GeneticMinimizer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/GeneticMinimizer.h +//! @file Fit/Suite/GeneticMinimizer.h //! @brief Declares class GeneticMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_GENETICMINIMIZER_H -#define BORNAGAIN_FIT_ADAPTER_GENETICMINIMIZER_H +#ifndef BORNAGAIN_FIT_SUITE_GENETICMINIMIZER_H +#define BORNAGAIN_FIT_SUITE_GENETICMINIMIZER_H #include "Fit/Adapter/MinimizerAdapter.h" @@ -69,4 +69,4 @@ private: std::unique_ptr<ROOT::Math::GeneticMinimizer> m_genetic_minimizer; }; -#endif // BORNAGAIN_FIT_ADAPTER_GENETICMINIMIZER_H +#endif // BORNAGAIN_FIT_SUITE_GENETICMINIMIZER_H diff --git a/Fit/Adapter/Minuit2Minimizer.cpp b/Fit/Suite/Minuit2Minimizer.cpp similarity index 98% rename from Fit/Adapter/Minuit2Minimizer.cpp rename to Fit/Suite/Minuit2Minimizer.cpp index dc7047c8519823af059088bed9796a0d04aa9c3b..1500c8253c6756e6eed4d9763a98de4651990c98 100644 --- a/Fit/Adapter/Minuit2Minimizer.cpp +++ b/Fit/Suite/Minuit2Minimizer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/Minuit2Minimizer.cpp +//! @file Fit/Suite/Minuit2Minimizer.cpp //! @brief Declares class Minuit2Minimizer. //! //! @homepage http://www.bornagainproject.org @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Fit/Adapter/Minuit2Minimizer.h" +#include "Fit/Suite/Minuit2Minimizer.h" #include "Fit/Tools/StringUtil.h" #include <Minuit2/Minuit2Minimizer.h> diff --git a/Fit/Adapter/Minuit2Minimizer.h b/Fit/Suite/Minuit2Minimizer.h similarity index 94% rename from Fit/Adapter/Minuit2Minimizer.h rename to Fit/Suite/Minuit2Minimizer.h index 16cea376be5365c0b74cf43eea0247c9630fea1d..a2457cbd2371b74750f6e76f1637915317ee0c8a 100644 --- a/Fit/Adapter/Minuit2Minimizer.h +++ b/Fit/Suite/Minuit2Minimizer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/Minuit2Minimizer.h +//! @file Fit/Suite/Minuit2Minimizer.h //! @brief Declares class Minuit2Minimizer. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_MINUIT2MINIMIZER_H -#define BORNAGAIN_FIT_ADAPTER_MINUIT2MINIMIZER_H +#ifndef BORNAGAIN_FIT_SUITE_MINUIT2MINIMIZER_H +#define BORNAGAIN_FIT_SUITE_MINUIT2MINIMIZER_H #include "Fit/Adapter/MinimizerAdapter.h" #include <memory> @@ -82,4 +82,4 @@ private: std::unique_ptr<ROOT::Minuit2::Minuit2Minimizer> m_minuit2_minimizer; }; -#endif // BORNAGAIN_FIT_ADAPTER_MINUIT2MINIMIZER_H +#endif // BORNAGAIN_FIT_SUITE_MINUIT2MINIMIZER_H diff --git a/Fit/Adapter/SimAnMinimizer.cpp b/Fit/Suite/SimAnMinimizer.cpp similarity index 96% rename from Fit/Adapter/SimAnMinimizer.cpp rename to Fit/Suite/SimAnMinimizer.cpp index d33c259a1a795e2db3f445ea1821bbb716b5ff42..b7c1ed616f116c47c95572d96cfd17dd57dd4672 100644 --- a/Fit/Adapter/SimAnMinimizer.cpp +++ b/Fit/Suite/SimAnMinimizer.cpp @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/SimAnMinimizer.cpp +//! @file Fit/Suite/SimAnMinimizer.cpp //! @brief Implements class SimAnMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -12,8 +12,8 @@ // // ************************************************************************************************ -#include "Fit/Adapter/SimAnMinimizer.h" -#include "Fit/Adapter/GSLMultiMinimizer.h" +#include "Fit/Suite/SimAnMinimizer.h" +#include "Fit/Suite/GSLMultiMinimizer.h" #ifdef _WIN32 #pragma warning(push) diff --git a/Fit/Adapter/SimAnMinimizer.h b/Fit/Suite/SimAnMinimizer.h similarity index 92% rename from Fit/Adapter/SimAnMinimizer.h rename to Fit/Suite/SimAnMinimizer.h index 0cd96315eddf7954aa64a13aae2f6f527dbac788..51dba37a7825f74534c15fe45ca13ebc1612f850 100644 --- a/Fit/Adapter/SimAnMinimizer.h +++ b/Fit/Suite/SimAnMinimizer.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Fit/Adapter/SimAnMinimizer.h +//! @file Fit/Suite/SimAnMinimizer.h //! @brief Declares class SimAnMinimizer. //! //! @homepage http://www.bornagainproject.org @@ -15,8 +15,8 @@ #ifdef SWIG #error no need to expose this header to Swig #endif // SWIG -#ifndef BORNAGAIN_FIT_ADAPTER_SIMANMINIMIZER_H -#define BORNAGAIN_FIT_ADAPTER_SIMANMINIMIZER_H +#ifndef BORNAGAIN_FIT_SUITE_SIMANMINIMIZER_H +#define BORNAGAIN_FIT_SUITE_SIMANMINIMIZER_H #include "Fit/Adapter/MinimizerAdapter.h" @@ -75,4 +75,4 @@ private: std::unique_ptr<ROOT::Math::GSLSimAnMinimizer> m_siman_minimizer; }; -#endif // BORNAGAIN_FIT_ADAPTER_SIMANMINIMIZER_H +#endif // BORNAGAIN_FIT_SUITE_SIMANMINIMIZER_H diff --git a/GUI/Model/Job/MinimizerItem.cpp b/GUI/Model/Job/MinimizerItem.cpp index 83e5444bc99c8cd6df54f5e2b02253b6c5c1b2ac..28e506f69af08e53c7c03268072485a441379edd 100644 --- a/GUI/Model/Job/MinimizerItem.cpp +++ b/GUI/Model/Job/MinimizerItem.cpp @@ -14,11 +14,11 @@ #include "GUI/Model/Job/MinimizerItem.h" #include "Base/Util/Assert.h" -#include "Fit/Adapter/GSLLevenbergMarquardtMinimizer.h" -#include "Fit/Adapter/GSLMultiMinimizer.h" -#include "Fit/Adapter/GeneticMinimizer.h" -#include "Fit/Adapter/Minuit2Minimizer.h" -#include "Fit/Adapter/SimAnMinimizer.h" +#include "Fit/Suite/GSLLevenbergMarquardtMinimizer.h" +#include "Fit/Suite/GSLMultiMinimizer.h" +#include "Fit/Suite/GeneticMinimizer.h" +#include "Fit/Suite/Minuit2Minimizer.h" +#include "Fit/Suite/SimAnMinimizer.h" #include "GUI/Model/Job/MinimizerItemCatalog.h" #include "GUI/Support/XML/UtilXML.h" #include "Sim/Fitting/ObjectiveMetric.h" diff --git a/Sim/Fitting/FitObjective.cpp b/Sim/Fitting/FitObjective.cpp index 48c5761ff84241953c2672c35fc14263b151cebd..8de498271eec2448d86dadc8b99a3cf0c3c1460a 100644 --- a/Sim/Fitting/FitObjective.cpp +++ b/Sim/Fitting/FitObjective.cpp @@ -373,12 +373,6 @@ bool FitObjective::allPairsHaveUncertainties() const return result; } -//! Returns available metrics and norms -std::string FitObjective::availableMetricOptions() -{ - return ObjectiveMetricUtil::availableMetricOptions(); -} - std::vector<double> FitObjective::composeArray(DataPairAccessor getter) const { const size_t n_objs = m_fit_objects.size(); diff --git a/Sim/Fitting/FitObjective.h b/Sim/Fitting/FitObjective.h index ec148ef86bcab5853514f15265a6fe702336c4fa..274bb6e44384d4cc468e12b411774f2fda47e965 100644 --- a/Sim/Fitting/FitObjective.h +++ b/Sim/Fitting/FitObjective.h @@ -27,11 +27,10 @@ class PyBuilderCallback; class PyObserverCallback; class SimDataPair; class SimulationResult; -namespace mumufit { +namespace mumufit { class MinimizerResult; class Parameters; - } // namespace mumufit //! Holds vector of SimDataPair%s (experimental data and simulation results) for use in fitting. @@ -112,8 +111,6 @@ public: bool containsUncertainties(size_t i_item) const; bool allPairsHaveUncertainties() const; - static std::string availableMetricOptions(); - #ifndef SWIG //! Returns a reference to i-th SimDataPair. const SimDataPair& dataPair(size_t i_item = 0) const; diff --git a/Sim/Fitting/FitPrintService.cpp b/Sim/Fitting/FitPrintService.cpp index 3b68dd508f85b99e04c85e61f4f0a45aec4d0246..bd04f4c5554439fd43462e9dd3f75ac748b4d988 100644 --- a/Sim/Fitting/FitPrintService.cpp +++ b/Sim/Fitting/FitPrintService.cpp @@ -21,22 +21,6 @@ #include <iostream> #include <sstream> -namespace { - -size_t length_of_longest_name(const mumufit::Parameters& params) -{ - size_t result(0); - for (const auto& par : params) { - if (par.name().size() > result) - result = par.name().size(); - } - return result; -} - -} // namespace - -FitPrintService::FitPrintService() = default; - void FitPrintService::print(const FitObjective& objective) { std::ostringstream ostr; @@ -47,7 +31,6 @@ void FitPrintService::print(const FitObjective& objective) } ostr << iterationHeaderString(objective); - ostr << wallTimeString(); ostr << parameterString(objective); if (objective.isCompleted()) @@ -60,19 +43,9 @@ std::string FitPrintService::iterationHeaderString(const FitObjective& objective { std::ostringstream result; - result << "FitPrintService::update -> Info." - << " NCall:" << objective.iterationInfo().iterationCount() << " Chi2:" << std::scientific - << std::setprecision(8) << objective.iterationInfo().chi2() << "\n"; - - return result.str(); -} - -std::string FitPrintService::wallTimeString() -{ - std::ostringstream result; - m_last_call_time.stop(); - result << "Wall time since last call:" << std::fixed << std::setprecision(2) + result << "Fit iteration " << objective.iterationInfo().iterationCount() << " Chi2 " + << std::scientific << std::setprecision(8) << objective.iterationInfo().chi2() << " dt " << m_last_call_time.runTime() << "\n"; m_last_call_time.start(); @@ -83,14 +56,10 @@ std::string FitPrintService::parameterString(const FitObjective& objective) { std::ostringstream result; - const auto params = objective.iterationInfo().parameters(); - const auto length = length_of_longest_name(params); - - for (const auto& par : params) { - result << Base::String::padRight(par.name(), length) << std::scientific - << std::setprecision(6) << " " << par.startValue() << " " << par.limits().toString() - << " " << par.value() << "\n"; - } + result << "P"; + for (const auto& par : objective.iterationInfo().parameters()) + result << " " << std::scientific << std::setprecision(6) << par.value(); + result << "\n"; return result.str(); } diff --git a/Sim/Fitting/FitPrintService.h b/Sim/Fitting/FitPrintService.h index c8493e9503cd0031f8a2181bf8e2f1106600c193..7555a6b80da542b7968159197fc40e21853aec0e 100644 --- a/Sim/Fitting/FitPrintService.h +++ b/Sim/Fitting/FitPrintService.h @@ -27,13 +27,10 @@ class FitObjective; class FitPrintService { public: - FitPrintService(); - void print(const FitObjective& objective); private: std::string iterationHeaderString(const FitObjective& objective); - std::string wallTimeString(); std::string parameterString(const FitObjective& objective); std::string fitResultString(const FitObjective& objective); diff --git a/Sim/Fitting/FitStatus.h b/Sim/Fitting/FitStatus.h index a726b4bd2ed2ef09f351a832e2c14cdc88f6cf52..88efcc979db99bd5f7bab02e84f816e05c85930d 100644 --- a/Sim/Fitting/FitStatus.h +++ b/Sim/Fitting/FitStatus.h @@ -23,12 +23,11 @@ #include <functional> #include <vector> +class FitObjective; +class FitPrintService; namespace mumufit { - class MinimizerResult; } -class FitObjective; -class FitPrintService; //! Contains status of the fitting (running, interupted etc) and all intermediate //! information which has to be collected during the fit. diff --git a/Sim/Fitting/FitTypes.h b/Sim/Fitting/FitTypes.h index 9d252fc9974373b0a33636f5c7deac20a7ad4e0c..21ca33557dfc4ff58dbd80f97ad58640c0f17370 100644 --- a/Sim/Fitting/FitTypes.h +++ b/Sim/Fitting/FitTypes.h @@ -22,11 +22,11 @@ #include <memory> class ISimulation; -namespace mumufit { +class FitObjective; +namespace mumufit { class Parameters; } -class FitObjective; using simulation_builder_t = std::function<std::unique_ptr<ISimulation>(const mumufit::Parameters&)>; diff --git a/Tests/Examples/CMakeLists.txt b/Tests/Examples/CMakeLists.txt index 0e7ce06bf7ba7f61ce9aaf5bafff0ce2813bd1bd..695b7ec09f9883c452f487e6a524b7ccde8508b9 100644 --- a/Tests/Examples/CMakeLists.txt +++ b/Tests/Examples/CMakeLists.txt @@ -201,7 +201,7 @@ run_example(varia/MaterialProfileWithParticles) run_plotless(fit/algo/fit_rosenbrock) run_plotless(fit/scatter2d/fit2d) run_plotless(fit/scatter2d/custom_objective_function) -run_example(fit/specular/FitSpecularBasics) +run_example(fit/specular/Specular1Par) run_manually(fit/specular/Pt_layer_fit) run_manually(fit/specular/Honeycomb_fit) # TODO restore (needs ParameterDistribution) # run_plotless(fit/scatter2d/expfit_galaxi) diff --git a/Tests/Unit/Fit/MinimizerOptionsTest.cpp b/Tests/Unit/Fit/MinimizerOptionsTest.cpp index 65c8db931ea84b3e32a325d73148b1cd1422b166..175d0499d2351e2cc7fd4c10a1c0fab7ba1b1a3c 100644 --- a/Tests/Unit/Fit/MinimizerOptionsTest.cpp +++ b/Tests/Unit/Fit/MinimizerOptionsTest.cpp @@ -1,4 +1,4 @@ -#include "Fit/Minimizer/MinimizerOptions.h" +#include "Fit/Option/MinimizerOptions.h" #include "Tests/GTestWrapper/google_test.h" #include <exception> diff --git a/Tests/Unit/Fit/MultiOptionTest.cpp b/Tests/Unit/Fit/MultiOptionTest.cpp index b8fcf9d4f20885b6bc04f2ab762b6b737350cabf..35c670cb5e02242493d8aeb78bf65e588aa88460 100644 --- a/Tests/Unit/Fit/MultiOptionTest.cpp +++ b/Tests/Unit/Fit/MultiOptionTest.cpp @@ -1,4 +1,4 @@ -#include "Fit/Tools/MultiOption.h" +#include "Fit/Option/MultiOption.h" #include "Tests/GTestWrapper/google_test.h" #include <string> diff --git a/Tests/Unit/Fit/OptionContainerTest.cpp b/Tests/Unit/Fit/OptionContainerTest.cpp index b8f630567936a87dcb39b8314c654af6bbab2823..878a6ba8b5fcb47eef06e4b004e8881f0000b645 100644 --- a/Tests/Unit/Fit/OptionContainerTest.cpp +++ b/Tests/Unit/Fit/OptionContainerTest.cpp @@ -1,4 +1,4 @@ -#include "Fit/Tools/OptionContainer.h" +#include "Fit/Option/OptionContainer.h" #include "Tests/GTestWrapper/google_test.h" #include <exception> diff --git a/Wrap/Python/ba_fitmonitor.py b/Wrap/Python/ba_fitmonitor.py index e479b4d66faadbb7969a10e3dc39710e9fefb647..2c2c92fd053d42f432f8451b649962063eb341aa 100644 --- a/Wrap/Python/ba_fitmonitor.py +++ b/Wrap/Python/ba_fitmonitor.py @@ -145,8 +145,9 @@ class PlotterSpecular: Draws fit progress, for specular simulation. """ - def __init__(self, units=ba.Coords_UNDEFINED): + def __init__(self, units=ba.Coords_UNDEFINED, pause=0.0): self.units = units + self.pause = pause self._fig = plt.figure(figsize=(10, 7)) self._fig.canvas.draw() @@ -191,4 +192,8 @@ class PlotterSpecular: plt.xlabel(xlabel, fontdict=font) plt.ylabel("Intensity", fontdict=font) if bp.do_show: - plt.pause(0.3) + plt.pause(self.pause) + + def show(self): + if bp.do_show: + plt.show() diff --git a/auto/Examples/fit/specular/FitSpecularBasics.py b/auto/Examples/fit/specular/Specular1Par.py similarity index 77% rename from auto/Examples/fit/specular/FitSpecularBasics.py rename to auto/Examples/fit/specular/Specular1Par.py index 92077530a8e5651e71d5fa740dce1b5f6a8aabc7..a9347c473d1299f95601b31402a96f43c4afbaba 100755 --- a/auto/Examples/fit/specular/FitSpecularBasics.py +++ b/auto/Examples/fit/specular/Specular1Par.py @@ -14,22 +14,33 @@ import bornagain as ba from bornagain import angstrom, ba_fitmonitor +def load_data(): + datadir = os.getenv('BA_DATA_DIR', '') + data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") + + expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) + # convert double incident angle (degs) to incident angle (radians) + expdata[:, 0] *= np.pi/360 + + return (expdata[:, 0], expdata[:, 1]) + + def get_sample(P): # Materials vacuum = ba.MaterialBySLD() - material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) material_Ti = ba.MaterialBySLD("Ti", -1.9493e-06, 0) - material_Si = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0) + material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) + material_Si = ba.MaterialBySLD("Si", 2.0704e-06, 0) # Multilayer - ni_layer = ba.Layer(material_Ni, 70*angstrom) - ti_layer = ba.Layer(material_Ti, P["ti_thickness"]) + layer_Ti = ba.Layer(material_Ti, P["thickness_Ti"]) + layer_Ni = ba.Layer(material_Ni, 70*angstrom) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) for _ in range(10): - sample.addLayer(ti_layer) - sample.addLayer(ni_layer) + sample.addLayer(layer_Ti) + sample.addLayer(layer_Ni) sample.addLayer(ba.Layer(material_Si)) return sample @@ -44,31 +55,22 @@ def get_simulation(P): if __name__ == '__main__': - datadir = os.getenv('BA_DATA_DIR', '') - data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") - - expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) - # convert double incident angle (degs) to incident angle (radians) - expdata[:, 0] *= np.pi/360 - global exp_x - exp_x = expdata[:, 0] - exp_y = expdata[:, 1] + exp_x, exp_y = load_data() fit_objective = ba.FitObjective() fit_objective.addSimulationAndData(get_simulation, exp_y, 1) - plot_observer = ba_fitmonitor.PlotterSpecular() + plot_observer = ba_fitmonitor.PlotterSpecular(pause=0.5) fit_objective.initPrint(10) fit_objective.initPlot(10, plot_observer) P = ba.Parameters() - P.add("ti_thickness", 50*angstrom, min=10*angstrom, max=60*angstrom) + P.add("thickness_Ti", 50*angstrom, min=10*angstrom, max=60*angstrom) minimizer = ba.Minimizer() result = minimizer.minimize(fit_objective.evaluate, P) fit_objective.finalize(result) - if ba.ba_plot.do_show: - plt.show() + plot_observer.show() diff --git a/auto/MiniExamples/fit/specular/FitSpecularBasics.py b/auto/MiniExamples/fit/specular/Specular1Par.py similarity index 77% rename from auto/MiniExamples/fit/specular/FitSpecularBasics.py rename to auto/MiniExamples/fit/specular/Specular1Par.py index 92077530a8e5651e71d5fa740dce1b5f6a8aabc7..a9347c473d1299f95601b31402a96f43c4afbaba 100755 --- a/auto/MiniExamples/fit/specular/FitSpecularBasics.py +++ b/auto/MiniExamples/fit/specular/Specular1Par.py @@ -14,22 +14,33 @@ import bornagain as ba from bornagain import angstrom, ba_fitmonitor +def load_data(): + datadir = os.getenv('BA_DATA_DIR', '') + data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") + + expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) + # convert double incident angle (degs) to incident angle (radians) + expdata[:, 0] *= np.pi/360 + + return (expdata[:, 0], expdata[:, 1]) + + def get_sample(P): # Materials vacuum = ba.MaterialBySLD() - material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) material_Ti = ba.MaterialBySLD("Ti", -1.9493e-06, 0) - material_Si = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0) + material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) + material_Si = ba.MaterialBySLD("Si", 2.0704e-06, 0) # Multilayer - ni_layer = ba.Layer(material_Ni, 70*angstrom) - ti_layer = ba.Layer(material_Ti, P["ti_thickness"]) + layer_Ti = ba.Layer(material_Ti, P["thickness_Ti"]) + layer_Ni = ba.Layer(material_Ni, 70*angstrom) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) for _ in range(10): - sample.addLayer(ti_layer) - sample.addLayer(ni_layer) + sample.addLayer(layer_Ti) + sample.addLayer(layer_Ni) sample.addLayer(ba.Layer(material_Si)) return sample @@ -44,31 +55,22 @@ def get_simulation(P): if __name__ == '__main__': - datadir = os.getenv('BA_DATA_DIR', '') - data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") - - expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) - # convert double incident angle (degs) to incident angle (radians) - expdata[:, 0] *= np.pi/360 - global exp_x - exp_x = expdata[:, 0] - exp_y = expdata[:, 1] + exp_x, exp_y = load_data() fit_objective = ba.FitObjective() fit_objective.addSimulationAndData(get_simulation, exp_y, 1) - plot_observer = ba_fitmonitor.PlotterSpecular() + plot_observer = ba_fitmonitor.PlotterSpecular(pause=0.5) fit_objective.initPrint(10) fit_objective.initPlot(10, plot_observer) P = ba.Parameters() - P.add("ti_thickness", 50*angstrom, min=10*angstrom, max=60*angstrom) + P.add("thickness_Ti", 50*angstrom, min=10*angstrom, max=60*angstrom) minimizer = ba.Minimizer() result = minimizer.minimize(fit_objective.evaluate, P) fit_objective.finalize(result) - if ba.ba_plot.do_show: - plt.show() + plot_observer.show() diff --git a/auto/Wrap/libBornAgainSim.py b/auto/Wrap/libBornAgainSim.py index 13bd329ffdc6584268e18a696a39b5f92c12b793..0ed39a6320fb8947cc0463446fa154abdde7ec7f 100644 --- a/auto/Wrap/libBornAgainSim.py +++ b/auto/Wrap/libBornAgainSim.py @@ -2434,11 +2434,6 @@ class FitObjective(object): r"""allPairsHaveUncertainties_cpp(FitObjective self) -> bool""" return _libBornAgainSim.FitObjective_allPairsHaveUncertainties_cpp(self) - @staticmethod - def availableMetricOptions(): - r"""availableMetricOptions() -> std::string""" - return _libBornAgainSim.FitObjective_availableMetricOptions() - def addSimulationAndData(self, callback, data, *args, **kwargs): """ Sets simulation and experimental data to the fit objective. diff --git a/auto/Wrap/libBornAgainSim_wrap.cpp b/auto/Wrap/libBornAgainSim_wrap.cpp index 1c66c8dbf1ac7ea7e0b8e10be7223c413d03536a..3bc782622b103b6733f0819bb2471920f16d233d 100644 --- a/auto/Wrap/libBornAgainSim_wrap.cpp +++ b/auto/Wrap/libBornAgainSim_wrap.cpp @@ -31856,19 +31856,6 @@ fail: } -SWIGINTERN PyObject *_wrap_FitObjective_availableMetricOptions(PyObject *self, PyObject *args) { - PyObject *resultobj = 0; - std::string result; - - if (!SWIG_Python_UnpackTuple(args, "FitObjective_availableMetricOptions", 0, 0, 0)) SWIG_fail; - result = FitObjective::availableMetricOptions(); - resultobj = SWIG_From_std_string(static_cast< std::string >(result)); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_disown_FitObjective(PyObject *self, PyObject *args) { PyObject *resultobj = 0; FitObjective *arg1 = (FitObjective *) 0 ; @@ -36295,7 +36282,6 @@ static PyMethodDef SwigMethods[] = { ""}, { "FitObjective_containsUncertainties_cpp", _wrap_FitObjective_containsUncertainties_cpp, METH_VARARGS, "FitObjective_containsUncertainties_cpp(FitObjective self, size_t i_item) -> bool"}, { "FitObjective_allPairsHaveUncertainties_cpp", _wrap_FitObjective_allPairsHaveUncertainties_cpp, METH_O, "FitObjective_allPairsHaveUncertainties_cpp(FitObjective self) -> bool"}, - { "FitObjective_availableMetricOptions", _wrap_FitObjective_availableMetricOptions, METH_NOARGS, "FitObjective_availableMetricOptions() -> std::string"}, { "disown_FitObjective", _wrap_disown_FitObjective, METH_O, NULL}, { "FitObjective_swigregister", FitObjective_swigregister, METH_O, NULL}, { "FitObjective_swiginit", FitObjective_swiginit, METH_VARARGS, NULL}, diff --git a/hugo/content/py/fit/extended/fit-specular-data/index.md b/hugo/content/py/fit/extended/fit-specular-data/index.md index dc153925aa7e7f1ada2f566f42c95009c62f3380..85010d2b63a58c94198c1a072f14faceb0113725 100644 --- a/hugo/content/py/fit/extended/fit-specular-data/index.md +++ b/hugo/content/py/fit/extended/fit-specular-data/index.md @@ -14,7 +14,7 @@ layers. The reference data was obtained under the following assumptions: * Thickness value was $3 \, nm$ {{< galleryscg >}} -{{< figscg src="/files/fitted/FitSpecularBasics.png" width="600px" caption="Fit window">}} +{{< figscg src="/files/fitted/Specular1Par.png" width="600px" caption="Fit window">}} {{< /galleryscg >}} The fit view produced by running the fitting script is shown in the picture. @@ -44,6 +44,6 @@ in the BornAgain directory. ### Complete script and data -{{< show-ex file="fit/specular/FitSpecularBasics.py" >}} +{{< show-ex file="fit/specular/Specular1Par.py" >}} Data to be fitted: {{% ref-ex "data/genx_interchanging_layers.dat.gz" %}} diff --git a/rawEx/fit/specular/FitSpecularBasics.py b/rawEx/fit/specular/Specular1Par.py similarity index 77% rename from rawEx/fit/specular/FitSpecularBasics.py rename to rawEx/fit/specular/Specular1Par.py index 92077530a8e5651e71d5fa740dce1b5f6a8aabc7..a9347c473d1299f95601b31402a96f43c4afbaba 100755 --- a/rawEx/fit/specular/FitSpecularBasics.py +++ b/rawEx/fit/specular/Specular1Par.py @@ -14,22 +14,33 @@ import bornagain as ba from bornagain import angstrom, ba_fitmonitor +def load_data(): + datadir = os.getenv('BA_DATA_DIR', '') + data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") + + expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) + # convert double incident angle (degs) to incident angle (radians) + expdata[:, 0] *= np.pi/360 + + return (expdata[:, 0], expdata[:, 1]) + + def get_sample(P): # Materials vacuum = ba.MaterialBySLD() - material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) material_Ti = ba.MaterialBySLD("Ti", -1.9493e-06, 0) - material_Si = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0) + material_Ni = ba.MaterialBySLD("Ni", 9.4245e-06, 0) + material_Si = ba.MaterialBySLD("Si", 2.0704e-06, 0) # Multilayer - ni_layer = ba.Layer(material_Ni, 70*angstrom) - ti_layer = ba.Layer(material_Ti, P["ti_thickness"]) + layer_Ti = ba.Layer(material_Ti, P["thickness_Ti"]) + layer_Ni = ba.Layer(material_Ni, 70*angstrom) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) for _ in range(10): - sample.addLayer(ti_layer) - sample.addLayer(ni_layer) + sample.addLayer(layer_Ti) + sample.addLayer(layer_Ni) sample.addLayer(ba.Layer(material_Si)) return sample @@ -44,31 +55,22 @@ def get_simulation(P): if __name__ == '__main__': - datadir = os.getenv('BA_DATA_DIR', '') - data_fname = os.path.join(datadir, "genx_alternating_layers.dat.gz") - - expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3) - # convert double incident angle (degs) to incident angle (radians) - expdata[:, 0] *= np.pi/360 - global exp_x - exp_x = expdata[:, 0] - exp_y = expdata[:, 1] + exp_x, exp_y = load_data() fit_objective = ba.FitObjective() fit_objective.addSimulationAndData(get_simulation, exp_y, 1) - plot_observer = ba_fitmonitor.PlotterSpecular() + plot_observer = ba_fitmonitor.PlotterSpecular(pause=0.5) fit_objective.initPrint(10) fit_objective.initPlot(10, plot_observer) P = ba.Parameters() - P.add("ti_thickness", 50*angstrom, min=10*angstrom, max=60*angstrom) + P.add("thickness_Ti", 50*angstrom, min=10*angstrom, max=60*angstrom) minimizer = ba.Minimizer() result = minimizer.minimize(fit_objective.evaluate, P) fit_objective.finalize(result) - if ba.ba_plot.do_show: - plt.show() + plot_observer.show()