diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp
index 72deff96ea773439cc056de4306d9ed020b15ccf..f1ca9dcd12b20311637074ed224f2df2619f462a 100644
--- a/Core/Export/SimulationToPython.cpp
+++ b/Core/Export/SimulationToPython.cpp
@@ -208,7 +208,7 @@ std::string defineDetectorResolutionFunction(const ISimulation* simulation)
         if (auto* convfunc = dynamic_cast<const ConvolutionDetectorResolution*>(resfunc)) {
             if (auto* resfunc = dynamic_cast<const ResolutionFunction2DGaussian*>(
                     convfunc->getResolutionFunction2D())) {
-                result << indent() << "simulation.setDetectorResolutionFunction(";
+                result << indent() << "simulation.detector().setResolutionFunction(";
                 result << "ba.ResolutionFunction2DGaussian(";
                 result << printFunc(detector)(resfunc->getSigmaX()) << ", ";
                 result << printFunc(detector)(resfunc->getSigmaY()) << "))\n";
diff --git a/Core/Simulation/ISimulation.cpp b/Core/Simulation/ISimulation.cpp
index 4f02a1d565f2c8fc37c7233f3bd8ddafdc301f10..170b885354a8b039b7eb9e865de4b8ae359c715f 100644
--- a/Core/Simulation/ISimulation.cpp
+++ b/Core/Simulation/ISimulation.cpp
@@ -174,11 +174,6 @@ void ISimulation::setTerminalProgressMonitor()
     });
 }
 
-void ISimulation::setDetectorResolutionFunction(const IResolutionFunction2D& resolution_function)
-{
-    detector().setResolutionFunction(resolution_function);
-}
-
 void ISimulation::prepareSimulation()
 {
     m_sample_provider.updateSample();
diff --git a/Core/Simulation/ISimulation.h b/Core/Simulation/ISimulation.h
index 7a4232853c8dc27e507680a91c4199756d6c028c..66e3d3d64ae64c336d4e4f64146092358167792c 100644
--- a/Core/Simulation/ISimulation.h
+++ b/Core/Simulation/ISimulation.h
@@ -61,8 +61,6 @@ public:
     IDetector& detector() { return m_instrument.detector(); }
     const IDetector& detector() const { return m_instrument.detector(); }
 
-    void setDetectorResolutionFunction(const IResolutionFunction2D& resolution_function);
-
     void setSample(const MultiLayer& sample);
     const MultiLayer* sample() const;
 
diff --git a/Core/Simulation/StandardSimulations.cpp b/Core/Simulation/StandardSimulations.cpp
index d6b44ba2d2e95dac742a568b744c2151135f85fc..a25677f75a0db9a872eecced4276f13e4b4308df 100644
--- a/Core/Simulation/StandardSimulations.cpp
+++ b/Core/Simulation/StandardSimulations.cpp
@@ -158,7 +158,7 @@ GISASSimulation* StandardSimulations::MiniGISASDetectorResolution()
 {
     GISASSimulation* result = MiniGISAS();
     ResolutionFunction2DGaussian resfunc(0.0025, 0.0025);
-    result->setDetectorResolutionFunction(resfunc);
+    result->detector().setResolutionFunction(resfunc);
     return result;
 }
 
diff --git a/Examples/scatter2d/DetectorResolutionFunction.py b/Examples/scatter2d/DetectorResolutionFunction.py
index a212e22c2beb419c515193cc3601aa54642e8d69..894b5143fd83e0e99b923b62b72917207aeff929 100755
--- a/Examples/scatter2d/DetectorResolutionFunction.py
+++ b/Examples/scatter2d/DetectorResolutionFunction.py
@@ -43,10 +43,9 @@ def get_sample():
 def get_simulation(sample):
     beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(100, 2*deg, 1*deg, 1*deg)
-    simulation = ba.GISASSimulation(beam, sample, detector)
-    simulation.setDetectorResolutionFunction(
+    detector.setResolutionFunction(
         ba.ResolutionFunction2DGaussian(0.02*deg, 0.02*deg))
-    return simulation
+    return ba.GISASSimulation(beam, sample, detector)
 
 
 if __name__ == '__main__':
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index 52bd8ef358801a0ae308c105c572bd36bcde0e78..53973c2d342c478688e931e0c4bc79123ae36936 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -1025,9 +1025,6 @@ Run a simulation in a MPI environment.
 %feature("docstring")  ISimulation::detector "const IDetector& ISimulation::detector() const
 ";
 
-%feature("docstring")  ISimulation::setDetectorResolutionFunction "void ISimulation::setDetectorResolutionFunction(const IResolutionFunction2D &resolution_function)
-";
-
 %feature("docstring")  ISimulation::setSample "void ISimulation::setSample(const MultiLayer &sample)
 
 The MultiLayer object will not be owned by the  ISimulation object. 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index e2fc2b252c404184c0607a379fda25a8a3996fed..840b498dcbb92aa1c6acff44cc8b11c6be979eaf 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -3543,14 +3543,6 @@ class ISimulation(libBornAgainBase.ICloneable, libBornAgainParam.INode):
         """
         return _libBornAgainCore.ISimulation_detector(self, *args)
 
-    def setDetectorResolutionFunction(self, resolution_function):
-        r"""
-        setDetectorResolutionFunction(ISimulation self, IResolutionFunction2D const & resolution_function)
-        void ISimulation::setDetectorResolutionFunction(const IResolutionFunction2D &resolution_function)
-
-        """
-        return _libBornAgainCore.ISimulation_setDetectorResolutionFunction(self, resolution_function)
-
     def setSample(self, sample):
         r"""
         setSample(ISimulation self, MultiLayer const & sample)
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index cc426f443130332f8625bafb06a2b2b50760241e..0f598d034f298a99df963518c426ee008d726167 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -3125,90 +3125,89 @@ namespace Swig {
 #define SWIGTYPE_p_INodeVisitor swig_types[25]
 #define SWIGTYPE_p_IParametricComponent swig_types[26]
 #define SWIGTYPE_p_IRangedDistribution swig_types[27]
-#define SWIGTYPE_p_IResolutionFunction2D swig_types[28]
-#define SWIGTYPE_p_ISampleNode swig_types[29]
-#define SWIGTYPE_p_IShape2D swig_types[30]
-#define SWIGTYPE_p_ISimulation swig_types[31]
-#define SWIGTYPE_p_ISimulation2D swig_types[32]
-#define SWIGTYPE_p_ISpecularScan swig_types[33]
-#define SWIGTYPE_p_IVarianceFunction swig_types[34]
-#define SWIGTYPE_p_Instrument swig_types[35]
-#define SWIGTYPE_p_IntensityFunctionLog swig_types[36]
-#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[37]
-#define SWIGTYPE_p_IterationInfo swig_types[38]
-#define SWIGTYPE_p_MultiLayer swig_types[39]
-#define SWIGTYPE_p_OffSpecularSimulation swig_types[40]
-#define SWIGTYPE_p_OutputDataT_double_t swig_types[41]
-#define SWIGTYPE_p_ParameterDistribution swig_types[42]
-#define SWIGTYPE_p_ParameterPool swig_types[43]
-#define SWIGTYPE_p_PoissonNoiseBackground swig_types[44]
-#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[45]
-#define SWIGTYPE_p_PyBuilderCallback swig_types[46]
-#define SWIGTYPE_p_PyObserverCallback swig_types[47]
-#define SWIGTYPE_p_QSpecScan swig_types[48]
-#define SWIGTYPE_p_RealLimits swig_types[49]
-#define SWIGTYPE_p_ScanResolution swig_types[50]
-#define SWIGTYPE_p_SimulationOptions swig_types[51]
-#define SWIGTYPE_p_SimulationResult swig_types[52]
-#define SWIGTYPE_p_SpecularSimulation swig_types[53]
-#define SWIGTYPE_p_VarianceConstantFunction swig_types[54]
-#define SWIGTYPE_p_VarianceSimFunction swig_types[55]
-#define SWIGTYPE_p_allocator_type swig_types[56]
-#define SWIGTYPE_p_char swig_types[57]
-#define SWIGTYPE_p_difference_type swig_types[58]
-#define SWIGTYPE_p_first_type swig_types[59]
-#define SWIGTYPE_p_int swig_types[60]
-#define SWIGTYPE_p_key_type swig_types[61]
-#define SWIGTYPE_p_long_long swig_types[62]
-#define SWIGTYPE_p_mapped_type swig_types[63]
-#define SWIGTYPE_p_mumufit__MinimizerResult swig_types[64]
-#define SWIGTYPE_p_mumufit__Parameters swig_types[65]
-#define SWIGTYPE_p_p_PyObject swig_types[66]
-#define SWIGTYPE_p_second_type swig_types[67]
-#define SWIGTYPE_p_short swig_types[68]
-#define SWIGTYPE_p_signed_char swig_types[69]
-#define SWIGTYPE_p_size_type swig_types[70]
-#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[71]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[72]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[73]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[74]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[75]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[76]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[77]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[78]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[79]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[80]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[81]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[82]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[83]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[84]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[85]
-#define SWIGTYPE_p_std__invalid_argument swig_types[86]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[87]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[88]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[89]
-#define SWIGTYPE_p_std__shared_ptrT_ISampleBuilder_t swig_types[90]
-#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[91]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[92]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[93]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[94]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[95]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[96]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[97]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[98]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[99]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[100]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[101]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[102]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[103]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[104]
-#define SWIGTYPE_p_unsigned_char swig_types[105]
-#define SWIGTYPE_p_unsigned_int swig_types[106]
-#define SWIGTYPE_p_unsigned_long_long swig_types[107]
-#define SWIGTYPE_p_unsigned_short swig_types[108]
-#define SWIGTYPE_p_value_type swig_types[109]
-static swig_type_info *swig_types[111];
-static swig_module_info swig_module = {swig_types, 110, 0, 0, 0, 0};
+#define SWIGTYPE_p_ISampleNode swig_types[28]
+#define SWIGTYPE_p_IShape2D swig_types[29]
+#define SWIGTYPE_p_ISimulation swig_types[30]
+#define SWIGTYPE_p_ISimulation2D swig_types[31]
+#define SWIGTYPE_p_ISpecularScan swig_types[32]
+#define SWIGTYPE_p_IVarianceFunction swig_types[33]
+#define SWIGTYPE_p_Instrument swig_types[34]
+#define SWIGTYPE_p_IntensityFunctionLog swig_types[35]
+#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[36]
+#define SWIGTYPE_p_IterationInfo swig_types[37]
+#define SWIGTYPE_p_MultiLayer swig_types[38]
+#define SWIGTYPE_p_OffSpecularSimulation swig_types[39]
+#define SWIGTYPE_p_OutputDataT_double_t swig_types[40]
+#define SWIGTYPE_p_ParameterDistribution swig_types[41]
+#define SWIGTYPE_p_ParameterPool swig_types[42]
+#define SWIGTYPE_p_PoissonNoiseBackground swig_types[43]
+#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[44]
+#define SWIGTYPE_p_PyBuilderCallback swig_types[45]
+#define SWIGTYPE_p_PyObserverCallback swig_types[46]
+#define SWIGTYPE_p_QSpecScan swig_types[47]
+#define SWIGTYPE_p_RealLimits swig_types[48]
+#define SWIGTYPE_p_ScanResolution swig_types[49]
+#define SWIGTYPE_p_SimulationOptions swig_types[50]
+#define SWIGTYPE_p_SimulationResult swig_types[51]
+#define SWIGTYPE_p_SpecularSimulation swig_types[52]
+#define SWIGTYPE_p_VarianceConstantFunction swig_types[53]
+#define SWIGTYPE_p_VarianceSimFunction swig_types[54]
+#define SWIGTYPE_p_allocator_type swig_types[55]
+#define SWIGTYPE_p_char swig_types[56]
+#define SWIGTYPE_p_difference_type swig_types[57]
+#define SWIGTYPE_p_first_type swig_types[58]
+#define SWIGTYPE_p_int swig_types[59]
+#define SWIGTYPE_p_key_type swig_types[60]
+#define SWIGTYPE_p_long_long swig_types[61]
+#define SWIGTYPE_p_mapped_type swig_types[62]
+#define SWIGTYPE_p_mumufit__MinimizerResult swig_types[63]
+#define SWIGTYPE_p_mumufit__Parameters swig_types[64]
+#define SWIGTYPE_p_p_PyObject swig_types[65]
+#define SWIGTYPE_p_second_type swig_types[66]
+#define SWIGTYPE_p_short swig_types[67]
+#define SWIGTYPE_p_signed_char swig_types[68]
+#define SWIGTYPE_p_size_type swig_types[69]
+#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[70]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[71]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[72]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[73]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[74]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[75]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[76]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[77]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[78]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[79]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[80]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[81]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[82]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[83]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[84]
+#define SWIGTYPE_p_std__invalid_argument swig_types[85]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[86]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[87]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[88]
+#define SWIGTYPE_p_std__shared_ptrT_ISampleBuilder_t swig_types[89]
+#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[90]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[91]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[92]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[93]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[94]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[95]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[96]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[97]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[98]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[99]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[100]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[101]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[102]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[103]
+#define SWIGTYPE_p_unsigned_char swig_types[104]
+#define SWIGTYPE_p_unsigned_int swig_types[105]
+#define SWIGTYPE_p_unsigned_long_long swig_types[106]
+#define SWIGTYPE_p_unsigned_short swig_types[107]
+#define SWIGTYPE_p_value_type swig_types[108]
+static swig_type_info *swig_types[110];
+static swig_module_info swig_module = {swig_types, 109, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -39098,38 +39097,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_ISimulation_setDetectorResolutionFunction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  ISimulation *arg1 = (ISimulation *) 0 ;
-  IResolutionFunction2D *arg2 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ISimulation_setDetectorResolutionFunction", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ISimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ISimulation_setDetectorResolutionFunction" "', argument " "1"" of type '" "ISimulation *""'"); 
-  }
-  arg1 = reinterpret_cast< ISimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IResolutionFunction2D,  0  | 0);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ISimulation_setDetectorResolutionFunction" "', argument " "2"" of type '" "IResolutionFunction2D const &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ISimulation_setDetectorResolutionFunction" "', argument " "2"" of type '" "IResolutionFunction2D const &""'"); 
-  }
-  arg2 = reinterpret_cast< IResolutionFunction2D * >(argp2);
-  (arg1)->setDetectorResolutionFunction((IResolutionFunction2D const &)*arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_ISimulation_setSample(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ISimulation *arg1 = (ISimulation *) 0 ;
@@ -44658,11 +44625,6 @@ static PyMethodDef SwigMethods[] = {
 		"const IDetector& ISimulation::detector() const\n"
 		"\n"
 		""},
-	 { "ISimulation_setDetectorResolutionFunction", _wrap_ISimulation_setDetectorResolutionFunction, METH_VARARGS, "\n"
-		"ISimulation_setDetectorResolutionFunction(ISimulation self, IResolutionFunction2D const & resolution_function)\n"
-		"void ISimulation::setDetectorResolutionFunction(const IResolutionFunction2D &resolution_function)\n"
-		"\n"
-		""},
 	 { "ISimulation_setSample", _wrap_ISimulation_setSample, METH_VARARGS, "\n"
 		"ISimulation_setSample(ISimulation self, MultiLayer const & sample)\n"
 		"void ISimulation::setSample(const MultiLayer &sample)\n"
@@ -45612,7 +45574,6 @@ static swig_type_info _swigt__p_INode = {"_p_INode", "INode *|std::vector< INode
 static swig_type_info _swigt__p_INodeVisitor = {"_p_INodeVisitor", "INodeVisitor *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IParametricComponent = {"_p_IParametricComponent", "IParametricComponent *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IRangedDistribution = {"_p_IRangedDistribution", "IRangedDistribution *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_IResolutionFunction2D = {"_p_IResolutionFunction2D", "IResolutionFunction2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IShape2D = {"_p_IShape2D", "IShape2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ISimulation = {"_p_ISimulation", "ISimulation *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ISimulation2D = {"_p_ISimulation2D", "ISimulation2D *", 0, 0, (void*)0, 0};
@@ -45722,7 +45683,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_INodeVisitor,
   &_swigt__p_IParametricComponent,
   &_swigt__p_IRangedDistribution,
-  &_swigt__p_IResolutionFunction2D,
   &_swigt__p_ISampleNode,
   &_swigt__p_IShape2D,
   &_swigt__p_ISimulation,
@@ -45836,7 +45796,6 @@ static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_sw
 static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IParametricComponent[] = {  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_IParametricComponent, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_IParametricComponent, 0, 0},  {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_IParametricComponent, 0, 0},  {&_swigt__p_OffSpecularSimulation, _p_OffSpecularSimulationTo_p_IParametricComponent, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_IParametricComponent, 0, 0},  {&_swigt__p_ISimulation, _p_ISimulationTo_p_IParametricComponent, 0, 0},  {&_swigt__p_IParametricComponent, 0, 0, 0},  {&_swigt__p_PoissonNoiseBackground, _p_PoissonNoiseBackgroundTo_p_IParametricComponent, 0, 0},  {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IParametricComponent, 0, 0},  {&_swigt__p_IBackground, _p_IBackgroundTo_p_IParametricComponent, 0, 0},  {&_swigt__p_IBornFF, _p_IBornFFTo_p_IParametricComponent, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_IParametricComponent, 0, 0},  {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_IParametricComponent, 0, 0},  {&_swigt__p_ISimulation2D, _p_ISimulation2DTo_p_IParametricComponent, 0, 0},  {&_swigt__p_INode, _p_INodeTo_p_IParametricComponent, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IRangedDistribution[] = {  {&_swigt__p_IRangedDistribution, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IResolutionFunction2D[] = {  {&_swigt__p_IResolutionFunction2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IShape2D[] = {  {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ISimulation[] = {  {&_swigt__p_ISimulation2D, _p_ISimulation2DTo_p_ISimulation, 0, 0},  {&_swigt__p_ISimulation, 0, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_OffSpecularSimulation, _p_OffSpecularSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_DepthProbeSimulation, _p_DepthProbeSimulationTo_p_ISimulation, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ISimulation, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ISimulation2D[] = {  {&_swigt__p_ISimulation2D, 0, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ISimulation2D, 0, 0},  {&_swigt__p_OffSpecularSimulation, _p_OffSpecularSimulationTo_p_ISimulation2D, 0, 0},{0, 0, 0, 0}};
@@ -45946,7 +45905,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_INodeVisitor,
   _swigc__p_IParametricComponent,
   _swigc__p_IRangedDistribution,
-  _swigc__p_IResolutionFunction2D,
   _swigc__p_ISampleNode,
   _swigc__p_IShape2D,
   _swigc__p_ISimulation,