BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
FitObjective () | |
virtual | ~FitObjective () |
void | addSimulationAndData (simulation_builder_t builder, const OutputData< double > &data, std::unique_ptr< OutputData< double >> uncertainties, double weight=1.0) |
template<class T > | |
void | addSimulationAndData (PyBuilderCallback &callback, const T &data, double weight=1.0) |
template<class T > | |
void | addSimulationAndData (PyBuilderCallback &callback, const T &data, const T &uncertainties, double weight=1.0) |
virtual double | evaluate (const Fit::Parameters ¶ms) |
virtual std::vector< double > | evaluate_residuals (const Fit::Parameters ¶ms) |
size_t | numberOfFitElements () const |
SimulationResult | simulationResult (size_t i_item=0) const |
SimulationResult | experimentalData (size_t i_item=0) const |
SimulationResult | uncertaintyData (size_t i_item=0) const |
SimulationResult | relativeDifference (size_t i_item=0) const |
SimulationResult | absoluteDifference (size_t i_item=0) const |
std::vector< double > | experimental_array () const |
std::vector< double > | simulation_array () const |
std::vector< double > | uncertainties () const |
std::vector< double > | weights_array () const |
void | initPrint (int every_nth) |
void | initPlot (int every_nth, PyObserverCallback &callback) |
IterationInfo | iterationInfo () const |
Fit::MinimizerResult | minimizerResult () const |
void | finalize (const Fit::MinimizerResult &result) |
unsigned | fitObjectCount () const |
void | run_simulations (const Fit::Parameters ¶ms) |
void | setChiSquaredModule (const IChiSquaredModule &module) |
void | setObjectiveMetric (const std::string &metric) |
void | setObjectiveMetric (const std::string &metric, const std::string &norm) |
bool | containsUncertainties (size_t i_item) const |
bool | allPairsHaveUncertainties () const |
const SimDataPair & | dataPair (size_t i_item=0) const |
void | initPlot (int every_nth, fit_observer_t observer) |
bool | isCompleted () const |
void | interruptFitting () |
bool | isInterrupted () const |
bool | isFirstIteration () const |
void | setObjectiveMetric (std::unique_ptr< ObjectiveMetric > metric) |
Static Public Member Functions | |
static std::string | availableMetricOptions () |
Private Types | |
typedef std::vector< double >(SimDataPair::* | DataPairAccessor) () const |
Private Member Functions | |
std::vector< double > | composeArray (DataPairAccessor getter) const |
size_t | check_index (size_t index) const |
Static Private Member Functions | |
static simulation_builder_t | simulationBuilder (PyBuilderCallback &callback) |
Private Attributes | |
std::vector< SimDataPair > | m_fit_objects |
std::unique_ptr< IMetricWrapper > | m_metric_module |
std::unique_ptr< FitStatus > | m_fit_status |
Holds vector of SimDataPair
s (experimental data and simulation results) for use in fitting.
Definition at line 33 of file FitObjective.h.
|
private |
Definition at line 135 of file FitObjective.h.
FitObjective::FitObjective | ( | ) |
Definition at line 62 of file FitObjective.cpp.
|
virtualdefault |
|
staticprivate |
Definition at line 52 of file FitObjective.cpp.
References PyBuilderCallback::build_simulation().
Referenced by addSimulationAndData().
void FitObjective::addSimulationAndData | ( | simulation_builder_t | builder, |
const OutputData< double > & | data, | ||
std::unique_ptr< OutputData< double >> | uncertainties, | ||
double | weight = 1.0 |
||
) |
Constructs simulation/data pair for later fit.
builder | simulation builder capable of producing simulations |
data | experimental data array |
uncertainties | data uncertainties array |
weight | weight of dataset in metric calculations |
Definition at line 76 of file FitObjective.cpp.
References m_fit_objects, and uncertainties().
Referenced by addSimulationAndData().
|
inline |
Constructs simulation/data pair for later fit.
callback | simulation builder capable of producing simulations |
data | experimental data array |
weight | weight of dataset in metric calculations |
Definition at line 51 of file FitObjective.h.
References addSimulationAndData(), ArrayUtils::createData(), and simulationBuilder().
|
inline |
Constructs simulation/data pair for later fit.
callback | simulation builder capable of producing simulations |
data | experimental data array |
uncertainties | data uncertainties array |
weight | weight of dataset in metric calculations |
Definition at line 63 of file FitObjective.h.
References addSimulationAndData(), ArrayUtils::createData(), simulationBuilder(), and uncertainties().
|
virtual |
Definition at line 84 of file FitObjective.cpp.
References m_fit_objects, m_fit_status, m_metric_module, run_simulations(), and Fit::Parameters::size().
Referenced by evaluate_residuals().
|
virtual |
Definition at line 92 of file FitObjective.cpp.
References evaluate(), experimental_array(), and simulation_array().
size_t FitObjective::numberOfFitElements | ( | ) | const |
Definition at line 103 of file FitObjective.cpp.
References m_fit_objects.
Referenced by composeArray().
SimulationResult FitObjective::simulationResult | ( | size_t | i_item = 0 | ) | const |
Returns simulation result in the form of SimulationResult.
Definition at line 111 of file FitObjective.cpp.
References dataPair(), and SimDataPair::simulationResult().
SimulationResult FitObjective::experimentalData | ( | size_t | i_item = 0 | ) | const |
Returns experimental data in the form of SimulationResult.
Definition at line 117 of file FitObjective.cpp.
References dataPair(), and SimDataPair::experimentalData().
SimulationResult FitObjective::uncertaintyData | ( | size_t | i_item = 0 | ) | const |
Returns experimental data uncertainties in the form of SimulationResult.
Definition at line 123 of file FitObjective.cpp.
References dataPair(), and SimDataPair::uncertainties().
SimulationResult FitObjective::relativeDifference | ( | size_t | i_item = 0 | ) | const |
Returns relative difference between simulation and experimental data in the form of SimulationResult.
Definition at line 130 of file FitObjective.cpp.
References dataPair(), and SimDataPair::relativeDifference().
SimulationResult FitObjective::absoluteDifference | ( | size_t | i_item = 0 | ) | const |
Returns absolute value of difference between simulation and experimental data in the form of SimulationResult.
Definition at line 137 of file FitObjective.cpp.
References SimDataPair::absoluteDifference(), and dataPair().
std::vector< double > FitObjective::experimental_array | ( | ) | const |
Returns one dimensional array representing merged experimental data.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 144 of file FitObjective.cpp.
References composeArray(), and SimDataPair::experimental_array().
Referenced by evaluate_residuals().
std::vector< double > FitObjective::simulation_array | ( | ) | const |
Returns one dimensional array representing merged simulated intensities data.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 151 of file FitObjective.cpp.
References composeArray(), and SimDataPair::simulation_array().
Referenced by evaluate_residuals().
std::vector< double > FitObjective::uncertainties | ( | ) | const |
Returns one-dimensional array representing merged data uncertainties.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 158 of file FitObjective.cpp.
References composeArray(), and SimDataPair::uncertainties_array().
Referenced by addSimulationAndData().
std::vector< double > FitObjective::weights_array | ( | ) | const |
Returns one-dimensional array representing merged user weights.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 165 of file FitObjective.cpp.
References composeArray(), and SimDataPair::user_weights_array().
void FitObjective::initPrint | ( | int | every_nth | ) |
Initializes printing to standard output on every_nth fit iteration.
Definition at line 175 of file FitObjective.cpp.
References m_fit_status.
void FitObjective::initPlot | ( | int | every_nth, |
PyObserverCallback & | callback | ||
) |
Initializes observer callback to be called on every_nth fit iteration.
Definition at line 185 of file FitObjective.cpp.
References m_fit_status, and PyObserverCallback::update().
IterationInfo FitObjective::iterationInfo | ( | ) | const |
Definition at line 196 of file FitObjective.cpp.
References m_fit_status.
Referenced by isFirstIteration(), FitPrintService::iterationHeaderString(), and FitPrintService::parameterString().
Fit::MinimizerResult FitObjective::minimizerResult | ( | ) | const |
Definition at line 201 of file FitObjective.cpp.
References m_fit_status.
Referenced by FitPrintService::fitResultString().
void FitObjective::finalize | ( | const Fit::MinimizerResult & | result | ) |
Should be explicitely called on last iteration to notify all observers.
Definition at line 206 of file FitObjective.cpp.
References m_fit_status.
unsigned FitObjective::fitObjectCount | ( | ) | const |
Definition at line 211 of file FitObjective.cpp.
References m_fit_objects.
Referenced by allPairsHaveUncertainties().
void FitObjective::run_simulations | ( | const Fit::Parameters & | params | ) |
Definition at line 231 of file FitObjective.cpp.
References m_fit_objects, and m_fit_status.
Referenced by evaluate().
void FitObjective::setChiSquaredModule | ( | const IChiSquaredModule & | module | ) |
Definition at line 244 of file FitObjective.cpp.
References IChiSquaredModule::clone(), and m_metric_module.
void FitObjective::setObjectiveMetric | ( | const std::string & | metric | ) |
Definition at line 260 of file FitObjective.cpp.
References ObjectiveMetricUtils::createMetric(), ObjectiveMetricUtils::defaultNormName(), and m_metric_module.
void FitObjective::setObjectiveMetric | ( | const std::string & | metric, |
const std::string & | norm | ||
) |
Sets objective metric to the FitObjective.
metric | metric name |
norm | metric norm name (defaults to L2-norm) |
Definition at line 266 of file FitObjective.cpp.
References ObjectiveMetricUtils::createMetric(), and m_metric_module.
bool FitObjective::containsUncertainties | ( | size_t | i_item | ) | const |
Returns true if the specified DataPair element contains uncertainties.
Definition at line 273 of file FitObjective.cpp.
References SimDataPair::containsUncertainties(), and dataPair().
bool FitObjective::allPairsHaveUncertainties | ( | ) | const |
Returns true if all the data pairs in FitObjective instance contain uncertainties.
Definition at line 279 of file FitObjective.cpp.
References SimDataPair::containsUncertainties(), dataPair(), and fitObjectCount().
|
static |
Returns available metrics and norms.
Definition at line 288 of file FitObjective.cpp.
References ObjectiveMetricUtils::availableMetricOptions().
const SimDataPair & FitObjective::dataPair | ( | size_t | i_item = 0 | ) | const |
Returns a reference to i-th SimDataPair.
Definition at line 170 of file FitObjective.cpp.
References check_index(), and m_fit_objects.
Referenced by absoluteDifference(), allPairsHaveUncertainties(), containsUncertainties(), experimentalData(), relativeDifference(), simulationResult(), and uncertaintyData().
void FitObjective::initPlot | ( | int | every_nth, |
fit_observer_t | observer | ||
) |
Definition at line 180 of file FitObjective.cpp.
References m_fit_status.
bool FitObjective::isCompleted | ( | ) | const |
Definition at line 191 of file FitObjective.cpp.
References m_fit_status.
Referenced by FitPrintService::print().
void FitObjective::interruptFitting | ( | ) |
Definition at line 216 of file FitObjective.cpp.
References m_fit_status.
bool FitObjective::isInterrupted | ( | ) | const |
Definition at line 221 of file FitObjective.cpp.
References m_fit_status.
bool FitObjective::isFirstIteration | ( | ) | const |
Definition at line 226 of file FitObjective.cpp.
References IterationInfo::iterationCount(), and iterationInfo().
Referenced by FitPrintService::print().
void FitObjective::setObjectiveMetric | ( | std::unique_ptr< ObjectiveMetric > | metric | ) |
Definition at line 255 of file FitObjective.cpp.
References m_metric_module.
|
private |
Definition at line 293 of file FitObjective.cpp.
References m_fit_objects, and numberOfFitElements().
Referenced by experimental_array(), simulation_array(), uncertainties(), and weights_array().
|
private |
Definition at line 310 of file FitObjective.cpp.
References m_fit_objects.
Referenced by dataPair().
|
private |
Definition at line 140 of file FitObjective.h.
Referenced by addSimulationAndData(), check_index(), composeArray(), dataPair(), evaluate(), fitObjectCount(), numberOfFitElements(), and run_simulations().
|
private |
Definition at line 141 of file FitObjective.h.
Referenced by evaluate(), setChiSquaredModule(), and setObjectiveMetric().
|
private |
Definition at line 142 of file FitObjective.h.
Referenced by evaluate(), finalize(), initPlot(), initPrint(), interruptFitting(), isCompleted(), isInterrupted(), iterationInfo(), minimizerResult(), and run_simulations().