51 const bool requires_residuals = minimizer_impl->requiresResiduals();
56 auto result = requires_residuals ? minimizer.
minimize(
102 std::unique_ptr<ISimulation>
105 static std::mutex build_simulation_mutex;
106 std::unique_lock<std::mutex> lock(build_simulation_mutex);
118 throw GUIHelpers::Error(
"FitObjectiveBuilder::createOutputData() -> No Real Data defined.");
120 const DataItem* intensity_item = realDataItem->dataItem();
#define ASSERT(condition)
Defines class DomainSimulationBuilder.
Defines class FitObjectiveBuilder.
Defines class FitObjective.
Defines FitParameterItems family of classes.
Defines class FitSuiteItem.
std::function< void(const FitObjective &)> fit_observer_t
std::function< std::unique_ptr< ISimulation >(const mumufit::Parameters &)> simulation_builder_t
Implements class GUIFitObserver.
Defines class GUIHelpers functions.
Defines interface IMinimizer.
Defines interface ISimulation.
Defines MinimizerItem class.
Defines ObjectiveMetric classes.
Defines class RealDataItem.
Provides common functionality for IntensityDataItem and SpecularDataItem.
OutputData< double > * getOutputData()
void attachObserver(std::shared_ptr< GUIFitObserver > observer)
std::unique_ptr< ISimulation > buildSimulation(const mumufit::Parameters ¶ms) const
std::unique_ptr< IMinimizer > createMinimizer() const
FitObjectiveBuilder(JobItem *jobItem)
std::shared_ptr< GUIFitObserver > m_observer
std::unique_ptr< FitObjective > createFitObjective() const
mumufit::Parameters createParameters() const
std::unique_ptr< FitObjective > m_fit_objective
std::unique_ptr< OutputData< double > > createOutputData() const
void update_fit_parameters(const mumufit::Parameters ¶ms) const
Holds vector of SimDataPairs (experimental data and simulation results) for use in fitting.
mumufit::Parameters createParameters() const
void setValuesInParameterContainer(const QVector< double > &values, class ParameterContainerItem *parameterContainer)
Propagate values to the corresponding parameter tree items of parameterContainer.
MinimizerContainerItem * minimizerContainerItem()
FitParameterContainerItem * fitParameterContainerItem()
InstrumentItem * instrumentItem()
FitParameterContainerItem * fitParameterContainerItem()
FitSuiteItem * fitSuiteItem()
RealDataItem * realDataItem()
SimulationOptionsItem * simulationOptionsItem()
MultiLayerItem * multiLayerItem()
ParameterContainerItem * parameterContainerItem()
std::unique_ptr< IMinimizer > createMinimizer() const
std::unique_ptr< ObjectiveMetric > createMetric() const
OutputData * clone() const
A main class to run fitting.
void setMinimizer(const std::string &minimizerName, const std::string &algorithmName="", const std::string &options="")
MinimizerResult minimize(fcn_scalar_t fcn, const Parameters ¶meters)
A collection of fit parameters.
std::vector< double > values() const
std::unique_ptr< ISimulation > createSimulation(const MultiLayerItem *sampleItem, const InstrumentItem *instrumentItem, const SimulationOptionsItem *optionsItem=nullptr)
Creates domain simulation from sample and instrument items.
QVector< double > fromStdVector(const std::vector< double > &data)