Skip to content
Snippets Groups Projects
Commit 63ea41d8 authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Return SimulationResult getters back into FitObjective class

parent 59de3a47
No related branches found
No related tags found
No related merge requests found
...@@ -103,6 +103,38 @@ size_t FitObjective::numberOfFitElements() const ...@@ -103,6 +103,38 @@ size_t FitObjective::numberOfFitElements() const
[](size_t acc, auto& obj) { return acc + obj.numberOfFitElements(); }); [](size_t acc, auto& obj) { return acc + obj.numberOfFitElements(); });
} }
//! Returns simulation result in the form of SimulationResult.
SimulationResult FitObjective::simulationResult(size_t i_item) const
{
return dataPair(i_item).simulationResult();
}
//! Returns experimental data in the form of SimulationResult.
SimulationResult FitObjective::experimentalData(size_t i_item) const
{
return dataPair(i_item).experimentalData();
}
//! Returns experimental data uncertainties in the form of SimulationResult.
SimulationResult FitObjective::uncertaintyData(size_t i_item) const
{
return dataPair(i_item).uncertainties();
}
//! Returns relative difference between simulation and experimental data
//! in the form of SimulationResult.
SimulationResult FitObjective::relativeDifference(size_t i_item) const
{
return dataPair(i_item).relativeDifference();
}
//! Returns absolute value of difference between simulation and experimental data
//! in the form of SimulationResult.
SimulationResult FitObjective::absoluteDifference(size_t i_item) const
{
return dataPair(i_item).absoluteDifference();
}
std::vector<double> FitObjective::experimental_array() const std::vector<double> FitObjective::experimental_array() const
{ {
return composeArray(&SimDataPair::experimental_array); return composeArray(&SimDataPair::experimental_array);
......
...@@ -80,6 +80,12 @@ public: ...@@ -80,6 +80,12 @@ public:
size_t numberOfFitElements() const; 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;
//! Returns one dimensional array representing merged experimental data. //! Returns one dimensional array representing merged experimental data.
//! The area outside of the region of interest is not included, masked data is nullified. //! The area outside of the region of interest is not included, masked data is nullified.
std::vector<double> experimental_array() const; std::vector<double> experimental_array() const;
...@@ -96,8 +102,10 @@ public: ...@@ -96,8 +102,10 @@ public:
//! The area outside of the region of interest is not included, masked data is nullified. //! The area outside of the region of interest is not included, masked data is nullified.
std::vector<double> weights_array() const; std::vector<double> weights_array() const;
#ifndef SWIG
//! Returns a reference to i-th SimDataPair. //! Returns a reference to i-th SimDataPair.
const SimDataPair& dataPair(size_t i_item = 0) const; const SimDataPair& dataPair(size_t i_item = 0) const;
#endif // SWIG
//! Initializes printing to standard output during the fitting. //! Initializes printing to standard output during the fitting.
//! @param every_nth: Print every n'th iteration. //! @param every_nth: Print every n'th iteration.
......
...@@ -247,35 +247,11 @@ class ObserverCallbackWrapper(PyObserverCallback): ...@@ -247,35 +247,11 @@ class ObserverCallbackWrapper(PyObserverCallback):
self.wrp_plot_observer = ObserverCallbackWrapper(callback) self.wrp_plot_observer = ObserverCallbackWrapper(callback)
return self.initPlot_cpp(every_nth, self.wrp_plot_observer) return self.initPlot_cpp(every_nth, self.wrp_plot_observer)
def simulationResult(self, i=0):
"""
Returns simulated values for i-th simulation-data pair
"""
return self.dataPair(i).simulationResult();
def experimentalData(self, i=0):
"""
Returns experimental values for i-th simulation-data pair
"""
return self.dataPair(i).experimentalData();
def uncertaintyData(self, i=0): def uncertaintyData(self, i=0):
""" """
Returns uncertainties for i-th simulation-data pair Returns uncertainties for i-th simulation-data pair
""" """
return self.dataPair(i).uncertainties(); return self.uncertaintyData_cpp(i);
def relativeDifference(self, i=0):
"""
Returns relative difference for i-th simulation-data pair
"""
return self.dataPair(i).relativeDifference();
def absoluteDifference(self, i=0):
"""
Returns absolute difference for i-th simulation-data pair
"""
return self.dataPair(i).absoluteDifference();
%} %}
}; };
...@@ -41,10 +41,6 @@ ...@@ -41,10 +41,6 @@
// ignored to avoid error (todo: check whether this is really necessary) // ignored to avoid error (todo: check whether this is really necessary)
%ignore Crystal::getTransformedLattice(const IRotation*) const; %ignore Crystal::getTransformedLattice(const IRotation*) const;
// ignored to prevent SimDataPair non-const methods being exposed to python API
%ignore SimDataPair::SimDataPair;
%ignore SimDataPair::runSimulation;
// extra ignores for types and methods that shouldn't be visible in Python // extra ignores for types and methods that shouldn't be visible in Python
%ignore FormFactorDWBAPol; %ignore FormFactorDWBAPol;
%ignore ISampleVisitor::visit(const FormFactorDWBAPol*); %ignore ISampleVisitor::visit(const FormFactorDWBAPol*);
......
...@@ -218,7 +218,6 @@ ...@@ -218,7 +218,6 @@
#include "Rotations.h" #include "Rotations.h"
#include "SampleBuilderFactory.h" #include "SampleBuilderFactory.h"
#include "ScanResolution.h" #include "ScanResolution.h"
#include "SimDataPair.h"
#include "Simulation.h" #include "Simulation.h"
#include "Simulation2D.h" #include "Simulation2D.h"
#include "SimulationFactory.h" #include "SimulationFactory.h"
...@@ -474,7 +473,6 @@ ...@@ -474,7 +473,6 @@
%include "Rotations.h" %include "Rotations.h"
%include "ISelectionRule.h" %include "ISelectionRule.h"
%include "DepthProbeSimulation.h" %include "DepthProbeSimulation.h"
%include "SimDataPair.h"
%include "SpecularSimulation.h" %include "SpecularSimulation.h"
%include "ThreadInfo.h" %include "ThreadInfo.h"
%template(SampleBuilderFactoryTemp) IFactory<std::string, IMultiLayerBuilder>; %template(SampleBuilderFactoryTemp) IFactory<std::string, IMultiLayerBuilder>;
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
%rename(evaluate_cpp) FitObjective::evaluate; %rename(evaluate_cpp) FitObjective::evaluate;
%rename(finalize_cpp) FitObjective::finalize; %rename(finalize_cpp) FitObjective::finalize;
%rename(initPlot_cpp) FitObjective::initPlot; %rename(initPlot_cpp) FitObjective::initPlot;
%rename(uncertaintyData_cpp) FitObjective::uncertaintyData;
// force swig to use move ctor instead of copy ctor // force swig to use move ctor instead of copy ctor
%typemap(out) SlicedParticle %{ %typemap(out) SlicedParticle %{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment