From 5265bd32ae580f7af7539181d56b48c410ff7d7c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 21 Sep 2023 17:31:21 +0200 Subject: [PATCH] wrapped for Py --- Wrap/Swig/libBornAgainSim.i | 21 +++++++++++++++++++++ auto/Wrap/libBornAgainSim.py | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/Wrap/Swig/libBornAgainSim.i b/Wrap/Swig/libBornAgainSim.i index be08a16266f..5722cacee59 100644 --- a/Wrap/Swig/libBornAgainSim.i +++ b/Wrap/Swig/libBornAgainSim.i @@ -188,6 +188,27 @@ class ObserverCallbackWrapper(PyObserverCallback): self.callback_container.append(wrp) return self.addSimulationAndData_cpp(wrp, data, *args, **kwargs) + def addFitPair(self, callback, expData, *args): + """ + Sets simulation and experimental data to the fit objective. + Optionally accepts experimental data uncertainties and + user-defined dataset weight. + + Arguments: + + callback -- user-defined function returning fully-defined bornagain.ISimulation object. + The function must use fit parameter dictionary as its input. + + expData -- Datafield containing experimental data. + + weight -- user-defined weight of the dataset. If not specified, defaults to 1.0. + """ + if not hasattr(self, 'callback_container'): + self.callback_container = [] + wrp = SimulationBuilderWrapper(callback) + self.callback_container.append(wrp) # needed ??? + return self.addFitPair_cpp(wrp, data, *args) + def convert_params(self, params): """ Converts parameters to what FitObjective::evaluate expects diff --git a/auto/Wrap/libBornAgainSim.py b/auto/Wrap/libBornAgainSim.py index d43d6838a99..da1f7fe86b3 100644 --- a/auto/Wrap/libBornAgainSim.py +++ b/auto/Wrap/libBornAgainSim.py @@ -2451,6 +2451,27 @@ class FitObjective(object): self.callback_container.append(wrp) return self.addSimulationAndData_cpp(wrp, data, *args, **kwargs) + def addFitPair(self, callback, expData, *args): + """ + Sets simulation and experimental data to the fit objective. + Optionally accepts experimental data uncertainties and + user-defined dataset weight. + + Arguments: + + callback -- user-defined function returning fully-defined bornagain.ISimulation object. + The function must use fit parameter dictionary as its input. + + expData -- Datafield containing experimental data. + + weight -- user-defined weight of the dataset. If not specified, defaults to 1.0. + """ + if not hasattr(self, 'callback_container'): + self.callback_container = [] + wrp = SimulationBuilderWrapper(callback) + self.callback_container.append(wrp) # needed ??? + return self.addFitPair_cpp(wrp, data, *args) + def convert_params(self, params): """ Converts parameters to what FitObjective::evaluate expects -- GitLab