From 65a0596539f3637b8954f36fdd6355d891485f4c Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Fri, 9 Aug 2024 15:55:03 +0200
Subject: [PATCH] rename to AutocorrelationModel

---
 GUI/Model/FromCore/ItemizeSample.cpp          |   2 +-
 GUI/Model/ToCore/SampleToCore.cpp             |   2 +-
 GUI/View/Realspace/RealspaceBuilder.cpp       |   2 +-
 ...rrModels.cpp => AutocorrelationModels.cpp} |   6 +-
 ...toCorrModels.h => AutocorrelationModels.h} |  10 +-
 Sample/Interface/LayerRoughness.cpp           |   4 +-
 Sample/Interface/LayerRoughness.h             |  12 +-
 .../RoughMultiLayerContribution.cpp           |   4 +-
 Sim/Export/SampleToPython.cpp                 |   5 +-
 Wrap/Swig/libBornAgainSample.i                |   2 +-
 auto/Wrap/libBornAgainSample.py               |  34 ++--
 auto/Wrap/libBornAgainSample_wrap.cpp         | 152 +++++++++---------
 12 files changed, 118 insertions(+), 117 deletions(-)
 rename Sample/Interface/{AutoCorrModels.cpp => AutocorrelationModels.cpp} (94%)
 rename Sample/Interface/{AutoCorrModels.h => AutocorrelationModels.h} (91%)

diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp
index e50ab629071..784d970315c 100644
--- a/GUI/Model/FromCore/ItemizeSample.cpp
+++ b/GUI/Model/FromCore/ItemizeSample.cpp
@@ -306,7 +306,7 @@ void set_Roughness(LayerItem* parent, const LayerInterface* top_interface)
         return;
     }
 
-    const AutoCorrModel* autocorrelation = roughness->autocorrelationModel();
+    const AutocorrelationModel* autocorrelation = roughness->autocorrelationModel();
     const InterlayerModel* interlayer = roughness->interlayerModel();
 
     if (const auto* autocorrItem = dynamic_cast<const BasicAutoCorr*>(autocorrelation)) {
diff --git a/GUI/Model/ToCore/SampleToCore.cpp b/GUI/Model/ToCore/SampleToCore.cpp
index 9732e5cd6f2..b8c0e789391 100644
--- a/GUI/Model/ToCore/SampleToCore.cpp
+++ b/GUI/Model/ToCore/SampleToCore.cpp
@@ -123,7 +123,7 @@ std::unique_ptr<MultiLayer> GUI::ToCore::itemToSample(const SampleItem& sampleIt
 
         std::unique_ptr<InterlayerModel> interlayer(
             roughItem->certainInterlayerModel()->createModel());
-        std::unique_ptr<AutoCorrModel> autocorrelation;
+        std::unique_ptr<AutocorrelationModel> autocorrelation;
 
         if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(roughItem))
             autocorrelation = std::make_unique<BasicAutoCorr>(
diff --git a/GUI/View/Realspace/RealspaceBuilder.cpp b/GUI/View/Realspace/RealspaceBuilder.cpp
index 80f644dd506..edc770e64dd 100644
--- a/GUI/View/Realspace/RealspaceBuilder.cpp
+++ b/GUI/View/Realspace/RealspaceBuilder.cpp
@@ -94,7 +94,7 @@ std::unique_ptr<const double2d_t> layerRoughnessMap(const LayerItem& layerItem,
                                                     const SceneGeometry& sceneGeometry, int seed)
 {
     std::unique_ptr<const double2d_t> result;
-    std::unique_ptr<AutoCorrModel> autocorrelation;
+    std::unique_ptr<AutocorrelationModel> autocorrelation;
     std::unique_ptr<InterlayerModel> interlayer;
     const RoughnessItem* roughItem = layerItem.certainRoughness();
 
diff --git a/Sample/Interface/AutoCorrModels.cpp b/Sample/Interface/AutocorrelationModels.cpp
similarity index 94%
rename from Sample/Interface/AutoCorrModels.cpp
rename to Sample/Interface/AutocorrelationModels.cpp
index 63ee626ea3a..d8c5adfb66e 100644
--- a/Sample/Interface/AutoCorrModels.cpp
+++ b/Sample/Interface/AutocorrelationModels.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      Sample/Interface/AutoCorrModels.h
-//! @brief     Implement AutoCorrModels classes.
+//! @file      Sample/Interface/AutocorrelationModels.cpp
+//! @brief     Implement AutocorrelationModel classes.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "Sample/Interface/AutoCorrModels.h"
+#include "Sample/Interface/AutocorrelationModels.h"
 #include "Base/Py/PyFmt.h"
 #include "Base/Util/Assert.h"
 #include <gsl/gsl_sf_bessel.h>
diff --git a/Sample/Interface/AutoCorrModels.h b/Sample/Interface/AutocorrelationModels.h
similarity index 91%
rename from Sample/Interface/AutoCorrModels.h
rename to Sample/Interface/AutocorrelationModels.h
index 58314617ad7..83634b3b770 100644
--- a/Sample/Interface/AutoCorrModels.h
+++ b/Sample/Interface/AutocorrelationModels.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      Sample/Interface/AutoCorrModels.h
-//! @brief     Define AutoCorrModels classes.
+//! @file      Sample/Interface/AutocorrelationModels.h
+//! @brief     Define AutocorrelationModel classes.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -20,9 +20,9 @@
 #include <heinz/Vectors3D.h>
 
 //! Base class for autocorrelation function models.
-class AutoCorrModel : public ICloneable, public INode {
+class AutocorrelationModel : public ICloneable, public INode {
 public:
-    AutoCorrModel* clone() const override = 0;
+    AutocorrelationModel* clone() const override = 0;
     virtual double sigma() const = 0;
     virtual double spectralFunction(const R3& k) const = 0;
     virtual double corrFunction(const R3& k) const = 0;
@@ -35,7 +35,7 @@ public:
 
 //! Based on the article "X-ray reflection and transmission by rough surfaces"
 //! by D. K. G. de Boer, Physical Review B 51, 5297 (1995)
-class BasicAutoCorr : public AutoCorrModel {
+class BasicAutoCorr : public AutocorrelationModel {
 public:
     BasicAutoCorr(double sigma = 0, double hurst = 0, double lateralCorrLength = 0);
     BasicAutoCorr* clone() const override;
diff --git a/Sample/Interface/LayerRoughness.cpp b/Sample/Interface/LayerRoughness.cpp
index 8e1198a5b56..c427d37f065 100644
--- a/Sample/Interface/LayerRoughness.cpp
+++ b/Sample/Interface/LayerRoughness.cpp
@@ -18,7 +18,7 @@
 //! Constructor of layer roughness.
 //! @param autoCorrModel: autocorrelation function and spectrum
 //! @param interlayerModel: shape of the interfacial transition region
-LayerRoughness::LayerRoughness(const AutoCorrModel* autocorrelation,
+LayerRoughness::LayerRoughness(const AutocorrelationModel* autocorrelation,
                                const InterlayerModel* interlayer)
     : m_autocorrelation_model(autocorrelation ? autocorrelation->clone() : nullptr)
     , m_interlayer_model(interlayer ? interlayer->clone() : nullptr)
@@ -46,7 +46,7 @@ bool LayerRoughness::showInScriptOrGui() const
     return true;
 }
 
-void LayerRoughness::setAutocorrelationModel(const AutoCorrModel* autocorrelation)
+void LayerRoughness::setAutocorrelationModel(const AutocorrelationModel* autocorrelation)
 {
     if (!autocorrelation)
         throw std::runtime_error("Autocorrelation model should be provided");
diff --git a/Sample/Interface/LayerRoughness.h b/Sample/Interface/LayerRoughness.h
index a6a972640f5..690b66a4352 100644
--- a/Sample/Interface/LayerRoughness.h
+++ b/Sample/Interface/LayerRoughness.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H
 #define BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H
 
-#include "Sample/Interface/AutoCorrModels.h"
+#include "Sample/Interface/AutocorrelationModels.h"
 #include "Sample/Interface/InterlayerModels.h"
 #include "Sample/Scattering/ISampleNode.h"
 #include <heinz/Vectors3D.h>
@@ -27,7 +27,7 @@
 
 class LayerRoughness : public ISampleNode {
 public:
-    LayerRoughness(const AutoCorrModel* autocorrelation, const InterlayerModel* interlayer);
+    LayerRoughness(const AutocorrelationModel* autocorrelation, const InterlayerModel* interlayer);
 
     LayerRoughness* clone() const override;
     std::string className() const final { return "LayerRoughness"; }
@@ -43,8 +43,8 @@ public:
         return m_autocorrelation_model->sigma();
     }
 
-    void setAutocorrelationModel(const AutoCorrModel* autocorrelation);
-    const AutoCorrModel* autocorrelationModel() const
+    void setAutocorrelationModel(const AutocorrelationModel* autocorrelation);
+    const AutocorrelationModel* autocorrelationModel() const
     {
         return m_autocorrelation_model.get();
     }
@@ -56,8 +56,8 @@ public:
     }
 
 private:
-    std::unique_ptr<AutoCorrModel> m_autocorrelation_model; // never nullptr
-    std::unique_ptr<InterlayerModel> m_interlayer_model;    // never nullptr
+    std::unique_ptr<AutocorrelationModel> m_autocorrelation_model; // never nullptr
+    std::unique_ptr<InterlayerModel> m_interlayer_model;           // never nullptr
 };
 
 #endif // BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H
diff --git a/Sim/Computation/RoughMultiLayerContribution.cpp b/Sim/Computation/RoughMultiLayerContribution.cpp
index fa35875dcd5..57f0389df32 100644
--- a/Sim/Computation/RoughMultiLayerContribution.cpp
+++ b/Sim/Computation/RoughMultiLayerContribution.cpp
@@ -105,8 +105,8 @@ double crossCorrSpectralFun(const R3& kvec, const SliceStack& stack, size_t j, s
                             double crossCorrLength)
 {
     const double distance = std::abs(stack[j].hig() - stack[k].hig());
-    const AutoCorrModel* rough_j = stack[j].topRoughness()->autocorrelationModel();
-    const AutoCorrModel* rough_k = stack[k].topRoughness()->autocorrelationModel();
+    const AutocorrelationModel* rough_j = stack[j].topRoughness()->autocorrelationModel();
+    const AutocorrelationModel* rough_k = stack[k].topRoughness()->autocorrelationModel();
     const double sigma_j = rough_j->sigma();
     const double sigma_k = rough_k->sigma();
 
diff --git a/Sim/Export/SampleToPython.cpp b/Sim/Export/SampleToPython.cpp
index d75cfa10b02..a9ab49a0cc0 100644
--- a/Sim/Export/SampleToPython.cpp
+++ b/Sim/Export/SampleToPython.cpp
@@ -149,7 +149,8 @@ std::string defineLayers(const ComponentKeyHandler& objHandler,
 std::string defineRoughnesses(const ComponentKeyHandler& objHandler)
 {
     std::vector<const LayerRoughness*> roughness = objHandler.objectsOfType<LayerRoughness>();
-    std::vector<const AutoCorrModel*> autocorr = objHandler.objectsOfType<AutoCorrModel>();
+    std::vector<const AutocorrelationModel*> autocorr =
+        objHandler.objectsOfType<AutocorrelationModel>();
     std::vector<const InterlayerModel*> interlayer = objHandler.objectsOfType<InterlayerModel>();
 
     ASSERT(roughness.size() == interlayer.size());
@@ -557,7 +558,7 @@ std::string SampleToPython::sampleCode(const MultiLayer& sample)
         objHandler.insertModel("roughness", x);
     for (const auto* x : NodeUtil::AllDescendantsOfType<InterlayerModel>(sample))
         objHandler.insertModel("interlayer", x);
-    for (const auto* x : NodeUtil::AllDescendantsOfType<AutoCorrModel>(sample))
+    for (const auto* x : NodeUtil::AllDescendantsOfType<AutocorrelationModel>(sample))
         objHandler.insertModel("autocorrelation", x);
     for (const auto* x : NodeUtil::AllDescendantsOfType<ParticleLayout>(sample))
         objHandler.insertModel("layout", x);
diff --git a/Wrap/Swig/libBornAgainSample.i b/Wrap/Swig/libBornAgainSample.i
index 684746f7902..9aaacafc0f2 100644
--- a/Wrap/Swig/libBornAgainSample.i
+++ b/Wrap/Swig/libBornAgainSample.i
@@ -103,7 +103,7 @@
 %include "Sample/Multilayer/Layer.h"
 %include "Sample/Multilayer/MultiLayer.h"
 
-%include "Sample/Interface/AutoCorrModels.h"
+%include "Sample/Interface/AutocorrelationModels.h"
 %include "Sample/Interface/InterlayerModels.h"
 
 %include "Sample/HardParticle/IFormfactorPolyhedron.h"
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index 5d3c7aabfec..73ab3e51571 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -4176,7 +4176,7 @@ class LayerRoughness(ISampleNode):
     __repr__ = _swig_repr
 
     def __init__(self, autocorrelation, interlayer):
-        r"""__init__(LayerRoughness self, AutoCorrModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness"""
+        r"""__init__(LayerRoughness self, AutocorrelationModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness"""
         _libBornAgainSample.LayerRoughness_swiginit(self, _libBornAgainSample.new_LayerRoughness(autocorrelation, interlayer))
 
     def clone(self):
@@ -4196,11 +4196,11 @@ class LayerRoughness(ISampleNode):
         return _libBornAgainSample.LayerRoughness_sigma(self)
 
     def setAutocorrelationModel(self, autocorrelation):
-        r"""setAutocorrelationModel(LayerRoughness self, AutoCorrModel autocorrelation)"""
+        r"""setAutocorrelationModel(LayerRoughness self, AutocorrelationModel autocorrelation)"""
         return _libBornAgainSample.LayerRoughness_setAutocorrelationModel(self, autocorrelation)
 
     def autocorrelationModel(self):
-        r"""autocorrelationModel(LayerRoughness self) -> AutoCorrModel"""
+        r"""autocorrelationModel(LayerRoughness self) -> AutocorrelationModel"""
         return _libBornAgainSample.LayerRoughness_autocorrelationModel(self)
 
     def setInterlayerModel(self, interlayer):
@@ -4309,8 +4309,8 @@ class MultiLayer(ISampleNode):
 
 # Register MultiLayer in _libBornAgainSample:
 _libBornAgainSample.MultiLayer_swigregister(MultiLayer)
-class AutoCorrModel(libBornAgainBase.ICloneable, libBornAgainParam.INode):
-    r"""Proxy of C++ AutoCorrModel class."""
+class AutocorrelationModel(libBornAgainBase.ICloneable, libBornAgainParam.INode):
+    r"""Proxy of C++ AutocorrelationModel class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 
@@ -4319,25 +4319,25 @@ class AutoCorrModel(libBornAgainBase.ICloneable, libBornAgainParam.INode):
     __repr__ = _swig_repr
 
     def clone(self):
-        r"""clone(AutoCorrModel self) -> AutoCorrModel"""
-        return _libBornAgainSample.AutoCorrModel_clone(self)
+        r"""clone(AutocorrelationModel self) -> AutocorrelationModel"""
+        return _libBornAgainSample.AutocorrelationModel_clone(self)
 
     def sigma(self):
-        r"""sigma(AutoCorrModel self) -> double"""
-        return _libBornAgainSample.AutoCorrModel_sigma(self)
+        r"""sigma(AutocorrelationModel self) -> double"""
+        return _libBornAgainSample.AutocorrelationModel_sigma(self)
 
     def spectralFunction(self, k):
-        r"""spectralFunction(AutoCorrModel self, R3 k) -> double"""
-        return _libBornAgainSample.AutoCorrModel_spectralFunction(self, k)
+        r"""spectralFunction(AutocorrelationModel self, R3 k) -> double"""
+        return _libBornAgainSample.AutocorrelationModel_spectralFunction(self, k)
 
     def corrFunction(self, k):
-        r"""corrFunction(AutoCorrModel self, R3 k) -> double"""
-        return _libBornAgainSample.AutoCorrModel_corrFunction(self, k)
-    __swig_destroy__ = _libBornAgainSample.delete_AutoCorrModel
+        r"""corrFunction(AutocorrelationModel self, R3 k) -> double"""
+        return _libBornAgainSample.AutocorrelationModel_corrFunction(self, k)
+    __swig_destroy__ = _libBornAgainSample.delete_AutocorrelationModel
 
-# Register AutoCorrModel in _libBornAgainSample:
-_libBornAgainSample.AutoCorrModel_swigregister(AutoCorrModel)
-class BasicAutoCorr(AutoCorrModel):
+# Register AutocorrelationModel in _libBornAgainSample:
+_libBornAgainSample.AutocorrelationModel_swigregister(AutocorrelationModel)
+class BasicAutoCorr(AutocorrelationModel):
     r"""Proxy of C++ BasicAutoCorr class."""
 
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index 437cf51c939..572a30e688d 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -3645,7 +3645,7 @@ namespace Swig {
 
 /* -------- TYPES TABLE (BEGIN) -------- */
 
-#define SWIGTYPE_p_AutoCorrModel swig_types[0]
+#define SWIGTYPE_p_AutocorrelationModel swig_types[0]
 #define SWIGTYPE_p_BarGauss swig_types[1]
 #define SWIGTYPE_p_BarLorentz swig_types[2]
 #define SWIGTYPE_p_BasicAutoCorr swig_types[3]
@@ -50496,7 +50496,7 @@ SWIGINTERN PyObject *ParticleLayout_swiginit(PyObject *SWIGUNUSEDPARM(self), PyO
 
 SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   InterlayerModel *arg2 = (InterlayerModel *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -50507,11 +50507,11 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) {
   
   (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_LayerRoughness", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_LayerRoughness" "', argument " "1"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_LayerRoughness" "', argument " "1"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_InterlayerModel, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_LayerRoughness" "', argument " "2"" of type '" "InterlayerModel const *""'"); 
@@ -50519,7 +50519,7 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) {
   arg2 = reinterpret_cast< InterlayerModel * >(argp2);
   {
     try {
-      result = (LayerRoughness *)new LayerRoughness((AutoCorrModel const *)arg1,(InterlayerModel const *)arg2);
+      result = (LayerRoughness *)new LayerRoughness((AutocorrelationModel const *)arg1,(InterlayerModel const *)arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -50674,7 +50674,7 @@ fail:
 SWIGINTERN PyObject *_wrap_LayerRoughness_setAutocorrelationModel(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   LayerRoughness *arg1 = (LayerRoughness *) 0 ;
-  AutoCorrModel *arg2 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg2 = (AutocorrelationModel *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -50688,14 +50688,14 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_setAutocorrelationModel(PyObject *self
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_setAutocorrelationModel" "', argument " "1"" of type '" "LayerRoughness *""'"); 
   }
   arg1 = reinterpret_cast< LayerRoughness * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setAutocorrelationModel" "', argument " "2"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setAutocorrelationModel" "', argument " "2"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg2 = reinterpret_cast< AutoCorrModel * >(argp2);
+  arg2 = reinterpret_cast< AutocorrelationModel * >(argp2);
   {
     try {
-      (arg1)->setAutocorrelationModel((AutoCorrModel const *)arg2);
+      (arg1)->setAutocorrelationModel((AutocorrelationModel const *)arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -50717,7 +50717,7 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_autocorrelationModel(PyObject *self, P
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
-  AutoCorrModel *result = 0 ;
+  AutocorrelationModel *result = 0 ;
   
   (void)self;
   if (!args) SWIG_fail;
@@ -50729,7 +50729,7 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_autocorrelationModel(PyObject *self, P
   arg1 = reinterpret_cast< LayerRoughness * >(argp1);
   {
     try {
-      result = (AutoCorrModel *)((LayerRoughness const *)arg1)->autocorrelationModel();
+      result = (AutocorrelationModel *)((LayerRoughness const *)arg1)->autocorrelationModel();
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -50738,7 +50738,7 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_autocorrelationModel(PyObject *self, P
       SWIG_exception(SWIG_RuntimeError, msg.c_str());
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -51916,25 +51916,25 @@ SWIGINTERN PyObject *MultiLayer_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObjec
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_AutoCorrModel_clone(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_AutocorrelationModel_clone(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
-  AutoCorrModel *result = 0 ;
+  AutocorrelationModel *result = 0 ;
   
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutoCorrModel_clone" "', argument " "1"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutocorrelationModel_clone" "', argument " "1"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   {
     try {
-      result = (AutoCorrModel *)((AutoCorrModel const *)arg1)->clone();
+      result = (AutocorrelationModel *)((AutocorrelationModel const *)arg1)->clone();
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -51943,16 +51943,16 @@ SWIGINTERN PyObject *_wrap_AutoCorrModel_clone(PyObject *self, PyObject *args) {
       SWIG_exception(SWIG_RuntimeError, msg.c_str());
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_AutoCorrModel_sigma(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_AutocorrelationModel_sigma(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -51961,14 +51961,14 @@ SWIGINTERN PyObject *_wrap_AutoCorrModel_sigma(PyObject *self, PyObject *args) {
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutoCorrModel_sigma" "', argument " "1"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutocorrelationModel_sigma" "', argument " "1"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   {
     try {
-      result = (double)((AutoCorrModel const *)arg1)->sigma();
+      result = (double)((AutocorrelationModel const *)arg1)->sigma();
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -51984,9 +51984,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_AutoCorrModel_spectralFunction(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_AutocorrelationModel_spectralFunction(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   R3 *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -51996,23 +51996,23 @@ SWIGINTERN PyObject *_wrap_AutoCorrModel_spectralFunction(PyObject *self, PyObje
   double result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "AutoCorrModel_spectralFunction", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "AutocorrelationModel_spectralFunction", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutoCorrModel_spectralFunction" "', argument " "1"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutocorrelationModel_spectralFunction" "', argument " "1"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_double_t,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AutoCorrModel_spectralFunction" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AutocorrelationModel_spectralFunction" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AutoCorrModel_spectralFunction" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AutocorrelationModel_spectralFunction" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   arg2 = reinterpret_cast< R3 * >(argp2);
   {
     try {
-      result = (double)((AutoCorrModel const *)arg1)->spectralFunction((R3 const &)*arg2);
+      result = (double)((AutocorrelationModel const *)arg1)->spectralFunction((R3 const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -52028,9 +52028,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_AutoCorrModel_corrFunction(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_AutocorrelationModel_corrFunction(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   R3 *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -52040,23 +52040,23 @@ SWIGINTERN PyObject *_wrap_AutoCorrModel_corrFunction(PyObject *self, PyObject *
   double result;
   
   (void)self;
-  if (!SWIG_Python_UnpackTuple(args, "AutoCorrModel_corrFunction", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, 0 |  0 );
+  if (!SWIG_Python_UnpackTuple(args, "AutocorrelationModel_corrFunction", 2, 2, swig_obj)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutoCorrModel_corrFunction" "', argument " "1"" of type '" "AutoCorrModel const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AutocorrelationModel_corrFunction" "', argument " "1"" of type '" "AutocorrelationModel const *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Vec3T_double_t,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AutoCorrModel_corrFunction" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AutocorrelationModel_corrFunction" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AutoCorrModel_corrFunction" "', argument " "2"" of type '" "R3 const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AutocorrelationModel_corrFunction" "', argument " "2"" of type '" "R3 const &""'"); 
   }
   arg2 = reinterpret_cast< R3 * >(argp2);
   {
     try {
-      result = (double)((AutoCorrModel const *)arg1)->corrFunction((R3 const &)*arg2);
+      result = (double)((AutocorrelationModel const *)arg1)->corrFunction((R3 const &)*arg2);
     } catch (const std::exception& ex) {
       // message shown in the Python interpreter
       const std::string msg {
@@ -52072,9 +52072,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_AutoCorrModel(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_AutocorrelationModel(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
-  AutoCorrModel *arg1 = (AutoCorrModel *) 0 ;
+  AutocorrelationModel *arg1 = (AutocorrelationModel *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -52082,11 +52082,11 @@ SWIGINTERN PyObject *_wrap_delete_AutoCorrModel(PyObject *self, PyObject *args)
   (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutoCorrModel, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AutocorrelationModel, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AutoCorrModel" "', argument " "1"" of type '" "AutoCorrModel *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AutocorrelationModel" "', argument " "1"" of type '" "AutocorrelationModel *""'"); 
   }
-  arg1 = reinterpret_cast< AutoCorrModel * >(argp1);
+  arg1 = reinterpret_cast< AutocorrelationModel * >(argp1);
   {
     try {
       delete arg1;
@@ -52105,10 +52105,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *AutoCorrModel_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *AutocorrelationModel_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_AutoCorrModel, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_AutocorrelationModel, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
@@ -73505,13 +73505,13 @@ static PyMethodDef SwigMethods[] = {
 	 { "ParticleLayout_setAbsoluteWeight", _wrap_ParticleLayout_setAbsoluteWeight, METH_VARARGS, "ParticleLayout_setAbsoluteWeight(ParticleLayout self, double weight)"},
 	 { "ParticleLayout_swigregister", ParticleLayout_swigregister, METH_O, NULL},
 	 { "ParticleLayout_swiginit", ParticleLayout_swiginit, METH_VARARGS, NULL},
-	 { "new_LayerRoughness", _wrap_new_LayerRoughness, METH_VARARGS, "new_LayerRoughness(AutoCorrModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness"},
+	 { "new_LayerRoughness", _wrap_new_LayerRoughness, METH_VARARGS, "new_LayerRoughness(AutocorrelationModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness"},
 	 { "LayerRoughness_clone", _wrap_LayerRoughness_clone, METH_O, "LayerRoughness_clone(LayerRoughness self) -> LayerRoughness"},
 	 { "LayerRoughness_className", _wrap_LayerRoughness_className, METH_O, "LayerRoughness_className(LayerRoughness self) -> std::string"},
 	 { "LayerRoughness_nodeChildren", _wrap_LayerRoughness_nodeChildren, METH_O, "LayerRoughness_nodeChildren(LayerRoughness self) -> swig_dummy_type_const_inode_vector"},
 	 { "LayerRoughness_sigma", _wrap_LayerRoughness_sigma, METH_O, "LayerRoughness_sigma(LayerRoughness self) -> double"},
-	 { "LayerRoughness_setAutocorrelationModel", _wrap_LayerRoughness_setAutocorrelationModel, METH_VARARGS, "LayerRoughness_setAutocorrelationModel(LayerRoughness self, AutoCorrModel autocorrelation)"},
-	 { "LayerRoughness_autocorrelationModel", _wrap_LayerRoughness_autocorrelationModel, METH_O, "LayerRoughness_autocorrelationModel(LayerRoughness self) -> AutoCorrModel"},
+	 { "LayerRoughness_setAutocorrelationModel", _wrap_LayerRoughness_setAutocorrelationModel, METH_VARARGS, "LayerRoughness_setAutocorrelationModel(LayerRoughness self, AutocorrelationModel autocorrelation)"},
+	 { "LayerRoughness_autocorrelationModel", _wrap_LayerRoughness_autocorrelationModel, METH_O, "LayerRoughness_autocorrelationModel(LayerRoughness self) -> AutocorrelationModel"},
 	 { "LayerRoughness_setInterlayerModel", _wrap_LayerRoughness_setInterlayerModel, METH_VARARGS, "LayerRoughness_setInterlayerModel(LayerRoughness self, InterlayerModel interlayer)"},
 	 { "LayerRoughness_interlayerModel", _wrap_LayerRoughness_interlayerModel, METH_O, "LayerRoughness_interlayerModel(LayerRoughness self) -> InterlayerModel"},
 	 { "delete_LayerRoughness", _wrap_delete_LayerRoughness, METH_O, "delete_LayerRoughness(LayerRoughness self)"},
@@ -73543,12 +73543,12 @@ static PyMethodDef SwigMethods[] = {
 	 { "MultiLayer_setName", _wrap_MultiLayer_setName, METH_VARARGS, "MultiLayer_setName(MultiLayer self, std::string const & name)"},
 	 { "MultiLayer_swigregister", MultiLayer_swigregister, METH_O, NULL},
 	 { "MultiLayer_swiginit", MultiLayer_swiginit, METH_VARARGS, NULL},
-	 { "AutoCorrModel_clone", _wrap_AutoCorrModel_clone, METH_O, "AutoCorrModel_clone(AutoCorrModel self) -> AutoCorrModel"},
-	 { "AutoCorrModel_sigma", _wrap_AutoCorrModel_sigma, METH_O, "AutoCorrModel_sigma(AutoCorrModel self) -> double"},
-	 { "AutoCorrModel_spectralFunction", _wrap_AutoCorrModel_spectralFunction, METH_VARARGS, "AutoCorrModel_spectralFunction(AutoCorrModel self, R3 k) -> double"},
-	 { "AutoCorrModel_corrFunction", _wrap_AutoCorrModel_corrFunction, METH_VARARGS, "AutoCorrModel_corrFunction(AutoCorrModel self, R3 k) -> double"},
-	 { "delete_AutoCorrModel", _wrap_delete_AutoCorrModel, METH_O, "delete_AutoCorrModel(AutoCorrModel self)"},
-	 { "AutoCorrModel_swigregister", AutoCorrModel_swigregister, METH_O, NULL},
+	 { "AutocorrelationModel_clone", _wrap_AutocorrelationModel_clone, METH_O, "AutocorrelationModel_clone(AutocorrelationModel self) -> AutocorrelationModel"},
+	 { "AutocorrelationModel_sigma", _wrap_AutocorrelationModel_sigma, METH_O, "AutocorrelationModel_sigma(AutocorrelationModel self) -> double"},
+	 { "AutocorrelationModel_spectralFunction", _wrap_AutocorrelationModel_spectralFunction, METH_VARARGS, "AutocorrelationModel_spectralFunction(AutocorrelationModel self, R3 k) -> double"},
+	 { "AutocorrelationModel_corrFunction", _wrap_AutocorrelationModel_corrFunction, METH_VARARGS, "AutocorrelationModel_corrFunction(AutocorrelationModel self, R3 k) -> double"},
+	 { "delete_AutocorrelationModel", _wrap_delete_AutocorrelationModel, METH_O, "delete_AutocorrelationModel(AutocorrelationModel self)"},
+	 { "AutocorrelationModel_swigregister", AutocorrelationModel_swigregister, METH_O, NULL},
 	 { "new_BasicAutoCorr", _wrap_new_BasicAutoCorr, METH_VARARGS, "BasicAutoCorr(double sigma=0, double hurst=0, double lateralCorrLength=0)"},
 	 { "BasicAutoCorr_clone", _wrap_BasicAutoCorr_clone, METH_O, "BasicAutoCorr_clone(BasicAutoCorr self) -> BasicAutoCorr"},
 	 { "BasicAutoCorr_className", _wrap_BasicAutoCorr_className, METH_O, "BasicAutoCorr_className(BasicAutoCorr self) -> std::string"},
@@ -74198,11 +74198,11 @@ static PyMethodDef SwigMethods[] = {
 
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
 
-static void *_p_BasicAutoCorrTo_p_AutoCorrModel(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((AutoCorrModel *)  ((BasicAutoCorr *) x));
+static void *_p_BasicAutoCorrTo_p_AutocorrelationModel(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((AutocorrelationModel *)  ((BasicAutoCorr *) x));
 }
-static void *_p_AutoCorrModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *)  ((AutoCorrModel *) x));
+static void *_p_AutocorrelationModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((ICloneable *)  ((AutocorrelationModel *) x));
 }
 static void *_p_BarGaussTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
@@ -74211,7 +74211,7 @@ static void *_p_BarLorentzTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory
     return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
 static void *_p_BasicAutoCorrTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (AutoCorrModel *) ((BasicAutoCorr *) x));
+    return (void *)((ICloneable *) (AutocorrelationModel *) ((BasicAutoCorr *) x));
 }
 static void *_p_BasicLattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (Lattice2D *) ((BasicLattice2D *) x));
@@ -74708,8 +74708,8 @@ static void *_p_MaterialBySLDImplTo_p_IMaterialImpl(void *x, int *SWIGUNUSEDPARM
 static void *_p_RefractiveMaterialImplTo_p_IMaterialImpl(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IMaterialImpl *)  ((RefractiveMaterialImpl *) x));
 }
-static void *_p_AutoCorrModelTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *)  ((AutoCorrModel *) x));
+static void *_p_AutocorrelationModelTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((INode *)  ((AutocorrelationModel *) x));
 }
 static void *_p_BarGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarGauss *) x));
@@ -74718,7 +74718,7 @@ static void *_p_BarLorentzTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(IProfileRectangularRipple *) ((BarLorentz *) x));
 }
 static void *_p_BasicAutoCorrTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (AutoCorrModel *) ((BasicAutoCorr *) x));
+    return (void *)((INode *) (AutocorrelationModel *) ((BasicAutoCorr *) x));
 }
 static void *_p_BasicLattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (Lattice2D *) ((BasicLattice2D *) x));
@@ -75302,7 +75302,7 @@ static void *_p_HexagonalLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(ne
 static void *_p_SquareLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Lattice2D *)  ((SquareLattice2D *) x));
 }
-static swig_type_info _swigt__p_AutoCorrModel = {"_p_AutoCorrModel", "AutoCorrModel *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_AutocorrelationModel = {"_p_AutocorrelationModel", "AutocorrelationModel *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_BarGauss = {"_p_BarGauss", "BarGauss *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_BarLorentz = {"_p_BarLorentz", "BarLorentz *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_BasicAutoCorr = {"_p_BasicAutoCorr", "BasicAutoCorr *", 0, 0, (void*)0, 0};
@@ -75467,7 +75467,7 @@ static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "uint16_t
 static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0};
 
 static swig_type_info *swig_type_initial[] = {
-  &_swigt__p_AutoCorrModel,
+  &_swigt__p_AutocorrelationModel,
   &_swigt__p_BarGauss,
   &_swigt__p_BarLorentz,
   &_swigt__p_BasicAutoCorr,
@@ -75632,7 +75632,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_value_type,
 };
 
-static swig_cast_info _swigc__p_AutoCorrModel[] = {  {&_swigt__p_AutoCorrModel, 0, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_AutoCorrModel, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_AutocorrelationModel[] = {  {&_swigt__p_AutocorrelationModel, 0, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_AutocorrelationModel, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_BarGauss[] = {  {&_swigt__p_BarGauss, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_BarLorentz[] = {  {&_swigt__p_BarLorentz, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_BasicAutoCorr[] = {  {&_swigt__p_BasicAutoCorr, 0, 0, 0},{0, 0, 0, 0}};
@@ -75657,14 +75657,14 @@ static swig_cast_info _swigc__p_GaussSphere[] = {  {&_swigt__p_GaussSphere, 0, 0
 static swig_cast_info _swigc__p_HemiEllipsoid[] = {  {&_swigt__p_HemiEllipsoid, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HexagonalLattice2D[] = {  {&_swigt__p_HexagonalLattice2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HorizontalCylinder[] = {  {&_swigt__p_HorizontalCylinder, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_AutoCorrModel, _p_AutoCorrModelTo_p_ICloneable, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_ICloneable, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_ICloneable, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_ICloneable, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ICosineRipple[] = {  {&_swigt__p_ICosineRipple, 0, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICosineRipple, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICosineRipple, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICosineRipple, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFormfactor[] = {  {&_swigt__p_IFormfactor, 0, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactor, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactor, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_IFormfactor, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_IFormfactor, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactor, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormfactor, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactor, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactor, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactor, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IFormfactor, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IFormfactor, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_IFormfactor, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_IFormfactor, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFormfactorPolyhedron[] = {  {&_swigt__p_IFormfactorPolyhedron, 0, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactorPolyhedron, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactorPolyhedron, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFormfactorPrism[] = {  {&_swigt__p_IFormfactorPrism, 0, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPrism, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPrism, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPrism, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IInterference[] = {  {&_swigt__p_IInterference, 0, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_IInterference, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_IInterference, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IMaterialImpl[] = {  {&_swigt__p_IMaterialImpl, 0, 0, 0},  {&_swigt__p_MaterialBySLDImpl, _p_MaterialBySLDImplTo_p_IMaterialImpl, 0, 0},  {&_swigt__p_RefractiveMaterialImpl, _p_RefractiveMaterialImplTo_p_IMaterialImpl, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_AutoCorrModel, _p_AutoCorrModelTo_p_INode, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_INode, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_INode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0},  {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_INode, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0},  {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0},  {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_INode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_AutocorrelationModel, _p_AutocorrelationModelTo_p_INode, 0, 0},  {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0},  {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0},  {&_swigt__p_BasicAutoCorr, _p_BasicAutoCorrTo_p_INode, 0, 0},  {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0},  {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0},  {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0},  {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0},  {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0},  {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0},  {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0},  {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_INode, 0, 0},  {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0},  {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0},  {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0},  {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0},  {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0},  {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0},  {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0},  {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0},  {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0},  {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0},  {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0},  {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0},  {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0},  {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0},  {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0},  {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0},  {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0},  {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0},  {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0},  {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0},  {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0},  {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_INode, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0},  {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0},  {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0},  {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0},  {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0},  {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0},  {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0},  {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0},  {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0},  {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0},  {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0},  {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0},  {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0},  {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0},  {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0},  {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0},  {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0},  {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0},  {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0},  {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_INode, 0, 0},  {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0},  {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IParticle[] = {  {&_swigt__p_IParticle, 0, 0, 0},  {&_swigt__p_Compound, _p_CompoundTo_p_IParticle, 0, 0},  {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_IParticle, 0, 0},  {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_IParticle, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IPeakShape[] = {  {&_swigt__p_IPeakShape, 0, 0, 0},  {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IPeakShape, 0, 0},  {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IPeakShape, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IProfile1D[] = {  {&_swigt__p_IProfile1D, 0, 0, 0},  {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_IProfile1D, 0, 0},  {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_IProfile1D, 0, 0},{0, 0, 0, 0}};
@@ -75797,7 +75797,7 @@ static swig_cast_info _swigc__p_unsigned_short[] = {  {&_swigt__p_unsigned_short
 static swig_cast_info _swigc__p_value_type[] = {  {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}};
 
 static swig_cast_info *swig_cast_initial[] = {
-  _swigc__p_AutoCorrModel,
+  _swigc__p_AutocorrelationModel,
   _swigc__p_BarGauss,
   _swigc__p_BarLorentz,
   _swigc__p_BasicAutoCorr,
-- 
GitLab