From 2ac071a4aefea18252812c28ce4cf887e04f7372 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Thu, 20 Mar 2025 10:56:37 +0100
Subject: [PATCH 1/4] rm default args from K_CorrelationModel

---
 Sample/Interface/AutocorrelationModels.h      |   2 +-
 Sample/Multilayer/Layer.cpp                   |   2 +-
 Sample/StandardSample/FeNiBilayerBuilder.cpp  |   2 +-
 .../StandardSample/MagneticLayersBuilder.cpp  |   2 +-
 auto/Wrap/libBornAgainSample.py               |   4 +-
 auto/Wrap/libBornAgainSample_wrap.cpp         | 126 +-----------------
 6 files changed, 8 insertions(+), 130 deletions(-)

diff --git a/Sample/Interface/AutocorrelationModels.h b/Sample/Interface/AutocorrelationModels.h
index c32d32c70ce..55b269eb0fd 100644
--- a/Sample/Interface/AutocorrelationModels.h
+++ b/Sample/Interface/AutocorrelationModels.h
@@ -44,7 +44,7 @@ protected:
 //! 14472-14478 (1993)
 class K_CorrelationModel : public AutocorrelationModel {
 public:
-    K_CorrelationModel(double sigma = 0, double hurst = 0.7, double lateralCorrLength = 25,
+    K_CorrelationModel(double sigma, double hurst, double lateralCorrLength,
                        double maxSpatFrequency = 0.5);
     std::string className() const override { return "K_CorrelationModel"; }
     std::vector<ParaMeta> parDefs() const final;
diff --git a/Sample/Multilayer/Layer.cpp b/Sample/Multilayer/Layer.cpp
index 58880f2d976..555be9f02fe 100644
--- a/Sample/Multilayer/Layer.cpp
+++ b/Sample/Multilayer/Layer.cpp
@@ -22,7 +22,7 @@ namespace {
 
 LayerRoughness* zeroRoughness()
 {
-    K_CorrelationModel autocorr(0);
+    K_CorrelationModel autocorr(0, 0.7, 25);
     ErfInterlayer interlayer;
     return new LayerRoughness(&autocorr, &interlayer);
 }
diff --git a/Sample/StandardSample/FeNiBilayerBuilder.cpp b/Sample/StandardSample/FeNiBilayerBuilder.cpp
index c6c161ea610..ef4c99bc8d6 100644
--- a/Sample/StandardSample/FeNiBilayerBuilder.cpp
+++ b/Sample/StandardSample/FeNiBilayerBuilder.cpp
@@ -110,7 +110,7 @@ std::unique_ptr<Sample> FeNiBilayer::constructSample()
     auto m_Ni = MaterialBySLD("Ni", sldNi.real(), sldNi.imag());
     auto m_Substrate = MaterialBySLD("Au", sldAu.real(), sldAu.imag());
 
-    K_CorrelationModel autocorrelation(sigmaRoughness);
+    K_CorrelationModel autocorrelation(sigmaRoughness, 0.7, 25);
     LayerRoughness roughness{&autocorrelation, interlayerModel.get()};
 
     Layer l_Fe{m_Fe, thicknessFe, &roughness};
diff --git a/Sample/StandardSample/MagneticLayersBuilder.cpp b/Sample/StandardSample/MagneticLayersBuilder.cpp
index b3da64131ab..4a24d22928c 100644
--- a/Sample/StandardSample/MagneticLayersBuilder.cpp
+++ b/Sample/StandardSample/MagneticLayersBuilder.cpp
@@ -135,7 +135,7 @@ Sample* ExemplarySamples::createSimpleMagneticRotationWithRoughness(const std::s
     Material substrate_material = RefractiveMaterial("Substrate", 7e-6, 2e-8, substr_field);
     Material layer_material = RefractiveMaterial("MagLayer", 6e-4, 2e-8, layer_field);
 
-    K_CorrelationModel autocorrelation(sigmaRoughness);
+    K_CorrelationModel autocorrelation(sigmaRoughness, 0.7, 25);
     auto roughness = LayerRoughness(&autocorrelation, interlayerModel.get());
 
     Layer vacuum_layer(vacuum_material);
diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py
index ffd2e351953..1ca96dcab97 100644
--- a/auto/Wrap/libBornAgainSample.py
+++ b/auto/Wrap/libBornAgainSample.py
@@ -3912,8 +3912,8 @@ class K_CorrelationModel(AutocorrelationModel):
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
     __repr__ = _swig_repr
 
-    def __init__(self, sigma=0, hurst=0.7, lateralCorrLength=25, maxSpatFrequency=0.5):
-        r"""__init__(K_CorrelationModel self, double sigma=0, double hurst=0.7, double lateralCorrLength=25, double maxSpatFrequency=0.5) -> K_CorrelationModel"""
+    def __init__(self, sigma, hurst, lateralCorrLength, maxSpatFrequency=0.5):
+        r"""__init__(K_CorrelationModel self, double sigma, double hurst, double lateralCorrLength, double maxSpatFrequency=0.5) -> K_CorrelationModel"""
         _libBornAgainSample.K_CorrelationModel_swiginit(self, _libBornAgainSample.new_K_CorrelationModel(sigma, hurst, lateralCorrLength, maxSpatFrequency))
 
     def className(self):
diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp
index 658835f8815..79ec3e111d3 100644
--- a/auto/Wrap/libBornAgainSample_wrap.cpp
+++ b/auto/Wrap/libBornAgainSample_wrap.cpp
@@ -45486,96 +45486,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_K_CorrelationModel__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
-  PyObject *resultobj = 0;
-  double arg1 ;
-  double arg2 ;
-  double val1 ;
-  int ecode1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  K_CorrelationModel *result = 0 ;
-  
-  (void)self;
-  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
-  ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_K_CorrelationModel" "', argument " "1"" of type '" "double""'");
-  } 
-  arg1 = static_cast< double >(val1);
-  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_K_CorrelationModel" "', argument " "2"" of type '" "double""'");
-  } 
-  arg2 = static_cast< double >(val2);
-  {
-    try {
-      result = (K_CorrelationModel *)new K_CorrelationModel(arg1,arg2);
-    } catch (const bug& ex) {
-      SWIG_exception(SWIG_RuntimeError, bug_msg(ex).c_str());
-    } catch (const std::exception& ex) {
-      SWIG_exception(SWIG_RuntimeError, exception_msg(ex).c_str());
-    }
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_K_CorrelationModel, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_K_CorrelationModel__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
-  PyObject *resultobj = 0;
-  double arg1 ;
-  double val1 ;
-  int ecode1 = 0 ;
-  K_CorrelationModel *result = 0 ;
-  
-  (void)self;
-  if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
-  ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_K_CorrelationModel" "', argument " "1"" of type '" "double""'");
-  } 
-  arg1 = static_cast< double >(val1);
-  {
-    try {
-      result = (K_CorrelationModel *)new K_CorrelationModel(arg1);
-    } catch (const bug& ex) {
-      SWIG_exception(SWIG_RuntimeError, bug_msg(ex).c_str());
-    } catch (const std::exception& ex) {
-      SWIG_exception(SWIG_RuntimeError, exception_msg(ex).c_str());
-    }
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_K_CorrelationModel, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_K_CorrelationModel__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) {
-  PyObject *resultobj = 0;
-  K_CorrelationModel *result = 0 ;
-  
-  (void)self;
-  if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
-  {
-    try {
-      result = (K_CorrelationModel *)new K_CorrelationModel();
-    } catch (const bug& ex) {
-      SWIG_exception(SWIG_RuntimeError, bug_msg(ex).c_str());
-    } catch (const std::exception& ex) {
-      SWIG_exception(SWIG_RuntimeError, exception_msg(ex).c_str());
-    }
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_K_CorrelationModel, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_new_K_CorrelationModel(PyObject *self, PyObject *args) {
   Py_ssize_t argc;
   PyObject *argv[5] = {
@@ -45584,35 +45494,6 @@ SWIGINTERN PyObject *_wrap_new_K_CorrelationModel(PyObject *self, PyObject *args
   
   if (!(argc = SWIG_Python_UnpackTuple(args, "new_K_CorrelationModel", 0, 4, argv))) SWIG_fail;
   --argc;
-  if (argc == 0) {
-    return _wrap_new_K_CorrelationModel__SWIG_4(self, argc, argv);
-  }
-  if (argc == 1) {
-    int _v = 0;
-    {
-      int res = SWIG_AsVal_double(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      return _wrap_new_K_CorrelationModel__SWIG_3(self, argc, argv);
-    }
-  }
-  if (argc == 2) {
-    int _v = 0;
-    {
-      int res = SWIG_AsVal_double(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      {
-        int res = SWIG_AsVal_double(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        return _wrap_new_K_CorrelationModel__SWIG_2(self, argc, argv);
-      }
-    }
-  }
   if (argc == 3) {
     int _v = 0;
     {
@@ -45668,10 +45549,7 @@ fail:
   SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_K_CorrelationModel'.\n"
     "  Possible C/C++ prototypes are:\n"
     "    K_CorrelationModel::K_CorrelationModel(double,double,double,double)\n"
-    "    K_CorrelationModel::K_CorrelationModel(double,double,double)\n"
-    "    K_CorrelationModel::K_CorrelationModel(double,double)\n"
-    "    K_CorrelationModel::K_CorrelationModel(double)\n"
-    "    K_CorrelationModel::K_CorrelationModel()\n");
+    "    K_CorrelationModel::K_CorrelationModel(double,double,double)\n");
   return 0;
 }
 
@@ -66172,7 +66050,7 @@ static PyMethodDef SwigMethods[] = {
 	 { "AutocorrelationModel_parDefs", _wrap_AutocorrelationModel_parDefs, METH_O, "AutocorrelationModel_parDefs(AutocorrelationModel self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >"},
 	 { "delete_AutocorrelationModel", _wrap_delete_AutocorrelationModel, METH_O, "delete_AutocorrelationModel(AutocorrelationModel self)"},
 	 { "AutocorrelationModel_swigregister", AutocorrelationModel_swigregister, METH_O, NULL},
-	 { "new_K_CorrelationModel", _wrap_new_K_CorrelationModel, METH_VARARGS, "K_CorrelationModel(double sigma=0, double hurst=0.7, double lateralCorrLength=25, double maxSpatFrequency=0.5)"},
+	 { "new_K_CorrelationModel", _wrap_new_K_CorrelationModel, METH_VARARGS, "K_CorrelationModel(double sigma, double hurst, double lateralCorrLength, double maxSpatFrequency=0.5)"},
 	 { "K_CorrelationModel_className", _wrap_K_CorrelationModel_className, METH_O, "K_CorrelationModel_className(K_CorrelationModel self) -> std::string"},
 	 { "K_CorrelationModel_parDefs", _wrap_K_CorrelationModel_parDefs, METH_O, "K_CorrelationModel_parDefs(K_CorrelationModel self) -> std::vector< ParaMeta,std::allocator< ParaMeta > >"},
 	 { "K_CorrelationModel_validate", _wrap_K_CorrelationModel_validate, METH_O, "K_CorrelationModel_validate(K_CorrelationModel self) -> std::string"},
-- 
GitLab


From b20dd5c41c419799ab70aaaaeefcbddcecae2bd5 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Thu, 20 Mar 2025 11:04:16 +0100
Subject: [PATCH 2/4] adjust examples

---
 auto/Examples/fit/specular/Honeycomb_fit.py            | 10 +++++-----
 auto/Examples/fit/specular/PolarizedSpinAsymmetry.py   |  4 ++--
 auto/Examples/fit/specular/Pt_layer_fit.py             |  4 ++--
 auto/Examples/fit/specular/TREFF_Ni_film.py            |  4 ++--
 auto/Examples/specular/MagneticLayerImperfect.py       |  2 +-
 auto/Examples/specular/PolarizedSpinAsymmetry.py       |  4 ++--
 auto/Examples/specular/RoughnessModel.py               |  2 +-
 .../specular/SpecularSimulationWithRoughness.py        |  2 +-
 auto/FigExamples/fit/specular/Honeycomb_fit.py         | 10 +++++-----
 .../FigExamples/fit/specular/PolarizedSpinAsymmetry.py |  4 ++--
 auto/FigExamples/fit/specular/Pt_layer_fit.py          |  4 ++--
 auto/FigExamples/fit/specular/TREFF_Ni_film.py         |  4 ++--
 auto/FigExamples/specular/MagneticLayerImperfect.py    |  2 +-
 auto/FigExamples/specular/PolarizedSpinAsymmetry.py    |  4 ++--
 auto/FigExamples/specular/RoughnessModel.py            |  2 +-
 .../specular/SpecularSimulationWithRoughness.py        |  2 +-
 auto/MiniExamples/fit/specular/Honeycomb_fit.py        | 10 +++++-----
 .../fit/specular/PolarizedSpinAsymmetry.py             |  4 ++--
 auto/MiniExamples/fit/specular/Pt_layer_fit.py         |  4 ++--
 auto/MiniExamples/fit/specular/TREFF_Ni_film.py        |  4 ++--
 auto/MiniExamples/specular/MagneticLayerImperfect.py   |  2 +-
 auto/MiniExamples/specular/PolarizedSpinAsymmetry.py   |  4 ++--
 auto/MiniExamples/specular/RoughnessModel.py           |  2 +-
 .../specular/SpecularSimulationWithRoughness.py        |  2 +-
 rawEx/fit/specular/Honeycomb_fit.py                    | 10 +++++-----
 rawEx/fit/specular/PolarizedSpinAsymmetry.py           |  4 ++--
 rawEx/fit/specular/Pt_layer_fit.py                     |  4 ++--
 rawEx/fit/specular/TREFF_Ni_film.py                    |  4 ++--
 rawEx/specular/MagneticLayerImperfect.py               |  2 +-
 rawEx/specular/PolarizedSpinAsymmetry.py               |  4 ++--
 rawEx/specular/RoughnessModel.py                       |  2 +-
 rawEx/specular/SpecularSimulationWithRoughness.py      |  2 +-
 32 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/auto/Examples/fit/specular/Honeycomb_fit.py b/auto/Examples/fit/specular/Honeycomb_fit.py
index 4aa383b2c1e..9d26b3a6253 100755
--- a/auto/Examples/fit/specular/Honeycomb_fit.py
+++ b/auto/Examples/fit/specular/Honeycomb_fit.py
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
diff --git a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
index 620160d0ad1..6267f7414dd 100755
--- a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/Examples/fit/specular/Pt_layer_fit.py b/auto/Examples/fit/specular/Pt_layer_fit.py
index 56edceb5767..b23bb1c3eb3 100755
--- a/auto/Examples/fit/specular/Pt_layer_fit.py
+++ b/auto/Examples/fit/specular/Pt_layer_fit.py
@@ -32,8 +32,8 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"])
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"])
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
diff --git a/auto/Examples/fit/specular/TREFF_Ni_film.py b/auto/Examples/fit/specular/TREFF_Ni_film.py
index 2a613fc1e43..682511f59b1 100755
--- a/auto/Examples/fit/specular/TREFF_Ni_film.py
+++ b/auto/Examples/fit/specular/TREFF_Ni_film.py
@@ -28,10 +28,10 @@ def get_sample(P):
     # Layers and interfaces
     interlayer = ba.TanhInterlayer()
 
-    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"])
+    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"], 0.7, 25*nm)
     roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer)
 
-    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"])
+    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"], 0.7, 25*nm)
     roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer)
 
     layer_Ni = ba.Layer(material_Ni_58, P["thickness"], roughness_Ni)
diff --git a/auto/Examples/specular/MagneticLayerImperfect.py b/auto/Examples/specular/MagneticLayerImperfect.py
index 918c4dca34c..5c605b80740 100755
--- a/auto/Examples/specular/MagneticLayerImperfect.py
+++ b/auto/Examples/specular/MagneticLayerImperfect.py
@@ -19,7 +19,7 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom)
+    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/auto/Examples/specular/PolarizedSpinAsymmetry.py b/auto/Examples/specular/PolarizedSpinAsymmetry.py
index 2410578dc11..a5ba638a5e8 100755
--- a/auto/Examples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/Examples/specular/PolarizedSpinAsymmetry.py
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/Examples/specular/RoughnessModel.py b/auto/Examples/specular/RoughnessModel.py
index df5342a2bc9..23a23fd6290 100755
--- a/auto/Examples/specular/RoughnessModel.py
+++ b/auto/Examples/specular/RoughnessModel.py
@@ -16,7 +16,7 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom)
+    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
diff --git a/auto/Examples/specular/SpecularSimulationWithRoughness.py b/auto/Examples/specular/SpecularSimulationWithRoughness.py
index 845bd4f47ee..9a525198abd 100755
--- a/auto/Examples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/Examples/specular/SpecularSimulationWithRoughness.py
@@ -16,7 +16,7 @@ def get_sample():
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # roughness
-    autocorr = ba.K_CorrelationModel(1*nm)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/auto/FigExamples/fit/specular/Honeycomb_fit.py b/auto/FigExamples/fit/specular/Honeycomb_fit.py
index fee2317e035..d27a4e4c77b 100755
--- a/auto/FigExamples/fit/specular/Honeycomb_fit.py
+++ b/auto/FigExamples/fit/specular/Honeycomb_fit.py
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
diff --git a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
index b80b6280d02..5ac5dc8e239 100755
--- a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/FigExamples/fit/specular/Pt_layer_fit.py b/auto/FigExamples/fit/specular/Pt_layer_fit.py
index 24bf5f3aa85..b1edb462396 100755
--- a/auto/FigExamples/fit/specular/Pt_layer_fit.py
+++ b/auto/FigExamples/fit/specular/Pt_layer_fit.py
@@ -32,8 +32,8 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"])
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"])
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
diff --git a/auto/FigExamples/fit/specular/TREFF_Ni_film.py b/auto/FigExamples/fit/specular/TREFF_Ni_film.py
index 69b801eabc7..8f47984d128 100755
--- a/auto/FigExamples/fit/specular/TREFF_Ni_film.py
+++ b/auto/FigExamples/fit/specular/TREFF_Ni_film.py
@@ -28,10 +28,10 @@ def get_sample(P):
     # Layers and interfaces
     interlayer = ba.TanhInterlayer()
 
-    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"])
+    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"], 0.7, 25*nm)
     roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer)
 
-    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"])
+    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"], 0.7, 25*nm)
     roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer)
 
     layer_Ni = ba.Layer(material_Ni_58, P["thickness"], roughness_Ni)
diff --git a/auto/FigExamples/specular/MagneticLayerImperfect.py b/auto/FigExamples/specular/MagneticLayerImperfect.py
index edced923301..d4d8bacb20f 100755
--- a/auto/FigExamples/specular/MagneticLayerImperfect.py
+++ b/auto/FigExamples/specular/MagneticLayerImperfect.py
@@ -19,7 +19,7 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom)
+    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/auto/FigExamples/specular/PolarizedSpinAsymmetry.py b/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
index 51a7201e6ba..2fb6c6ce985 100755
--- a/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/FigExamples/specular/RoughnessModel.py b/auto/FigExamples/specular/RoughnessModel.py
index 72a3a1342d1..b7b7c4efca7 100755
--- a/auto/FigExamples/specular/RoughnessModel.py
+++ b/auto/FigExamples/specular/RoughnessModel.py
@@ -16,7 +16,7 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom)
+    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
diff --git a/auto/FigExamples/specular/SpecularSimulationWithRoughness.py b/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
index 92323c2379a..8d9cc70eca2 100755
--- a/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
@@ -16,7 +16,7 @@ def get_sample():
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # roughness
-    autocorr = ba.K_CorrelationModel(1*nm)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/auto/MiniExamples/fit/specular/Honeycomb_fit.py b/auto/MiniExamples/fit/specular/Honeycomb_fit.py
index fee2317e035..d27a4e4c77b 100755
--- a/auto/MiniExamples/fit/specular/Honeycomb_fit.py
+++ b/auto/MiniExamples/fit/specular/Honeycomb_fit.py
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
diff --git a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
index b80b6280d02..5ac5dc8e239 100755
--- a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/MiniExamples/fit/specular/Pt_layer_fit.py b/auto/MiniExamples/fit/specular/Pt_layer_fit.py
index 24bf5f3aa85..b1edb462396 100755
--- a/auto/MiniExamples/fit/specular/Pt_layer_fit.py
+++ b/auto/MiniExamples/fit/specular/Pt_layer_fit.py
@@ -32,8 +32,8 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"])
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"])
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
diff --git a/auto/MiniExamples/fit/specular/TREFF_Ni_film.py b/auto/MiniExamples/fit/specular/TREFF_Ni_film.py
index ed8088a84f7..6ac5f481d56 100755
--- a/auto/MiniExamples/fit/specular/TREFF_Ni_film.py
+++ b/auto/MiniExamples/fit/specular/TREFF_Ni_film.py
@@ -28,10 +28,10 @@ def get_sample(P):
     # Layers and interfaces
     interlayer = ba.TanhInterlayer()
 
-    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"])
+    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"], 0.7, 25*nm)
     roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer)
 
-    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"])
+    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"], 0.7, 25*nm)
     roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer)
 
     layer_Ni = ba.Layer(material_Ni_58, P["thickness"], roughness_Ni)
diff --git a/auto/MiniExamples/specular/MagneticLayerImperfect.py b/auto/MiniExamples/specular/MagneticLayerImperfect.py
index edced923301..d4d8bacb20f 100755
--- a/auto/MiniExamples/specular/MagneticLayerImperfect.py
+++ b/auto/MiniExamples/specular/MagneticLayerImperfect.py
@@ -19,7 +19,7 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom)
+    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
index 51a7201e6ba..2fb6c6ce985 100755
--- a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/MiniExamples/specular/RoughnessModel.py b/auto/MiniExamples/specular/RoughnessModel.py
index 49deb3d398e..9b89abd8212 100755
--- a/auto/MiniExamples/specular/RoughnessModel.py
+++ b/auto/MiniExamples/specular/RoughnessModel.py
@@ -16,7 +16,7 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom)
+    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
diff --git a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
index 5c4fc002d63..f022e089360 100755
--- a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
@@ -16,7 +16,7 @@ def get_sample():
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # roughness
-    autocorr = ba.K_CorrelationModel(1*nm)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/rawEx/fit/specular/Honeycomb_fit.py b/rawEx/fit/specular/Honeycomb_fit.py
index bcf4127182c..c440577bca2 100755
--- a/rawEx/fit/specular/Honeycomb_fit.py
+++ b/rawEx/fit/specular/Honeycomb_fit.py
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
diff --git a/rawEx/fit/specular/PolarizedSpinAsymmetry.py b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
index ebde5a32c15..fa9d0cdea72 100755
--- a/rawEx/fit/specular/PolarizedSpinAsymmetry.py
+++ b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/rawEx/fit/specular/Pt_layer_fit.py b/rawEx/fit/specular/Pt_layer_fit.py
index 76da673f481..a29bc69a088 100755
--- a/rawEx/fit/specular/Pt_layer_fit.py
+++ b/rawEx/fit/specular/Pt_layer_fit.py
@@ -32,8 +32,8 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"])
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"])
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
diff --git a/rawEx/fit/specular/TREFF_Ni_film.py b/rawEx/fit/specular/TREFF_Ni_film.py
index d99dc2b8a9d..5f437c91d8b 100755
--- a/rawEx/fit/specular/TREFF_Ni_film.py
+++ b/rawEx/fit/specular/TREFF_Ni_film.py
@@ -28,10 +28,10 @@ def get_sample(P):
     # Layers and interfaces
     interlayer = ba.TanhInterlayer()
 
-    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"])
+    Ni_autocorr = ba.K_CorrelationModel(P["sigma_Ni"], 0.7, 25*nm)
     roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer)
 
-    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"])
+    sub_autocorr = ba.K_CorrelationModel(P["sigma_Substrate"], 0.7, 25*nm)
     roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer)
 
     layer_Ni = ba.Layer(material_Ni_58, P["thickness"], roughness_Ni)
diff --git a/rawEx/specular/MagneticLayerImperfect.py b/rawEx/specular/MagneticLayerImperfect.py
index 892cddd1269..7a227be4b33 100755
--- a/rawEx/specular/MagneticLayerImperfect.py
+++ b/rawEx/specular/MagneticLayerImperfect.py
@@ -19,7 +19,7 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom)
+    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
diff --git a/rawEx/specular/PolarizedSpinAsymmetry.py b/rawEx/specular/PolarizedSpinAsymmetry.py
index 1297a8969d9..5e6e92c3aed 100755
--- a/rawEx/specular/PolarizedSpinAsymmetry.py
+++ b/rawEx/specular/PolarizedSpinAsymmetry.py
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/rawEx/specular/RoughnessModel.py b/rawEx/specular/RoughnessModel.py
index 90905aa67c6..3267f3b02d9 100755
--- a/rawEx/specular/RoughnessModel.py
+++ b/rawEx/specular/RoughnessModel.py
@@ -16,7 +16,7 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom)
+    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
diff --git a/rawEx/specular/SpecularSimulationWithRoughness.py b/rawEx/specular/SpecularSimulationWithRoughness.py
index 1cd1319c263..3ebda63f5ab 100755
--- a/rawEx/specular/SpecularSimulationWithRoughness.py
+++ b/rawEx/specular/SpecularSimulationWithRoughness.py
@@ -16,7 +16,7 @@ def get_sample():
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # roughness
-    autocorr = ba.K_CorrelationModel(1*nm)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
-- 
GitLab


From 1b208254486777af5b7bc660f07c54bca31720fc Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Thu, 20 Mar 2025 11:17:36 +0100
Subject: [PATCH 3/4] shorten lines

---
 auto/Examples/fit/specular/PolarizedSpinAsymmetry.py     | 6 +++---
 auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py  | 6 +++---
 auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py | 6 +++---
 rawEx/fit/specular/PolarizedSpinAsymmetry.py             | 6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
index 6267f7414dd..1b29e596dae 100755
--- a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import angstrom, nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
index 5ac5dc8e239..ecdfbaeda65 100755
--- a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import angstrom, nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
index 5ac5dc8e239..ecdfbaeda65 100755
--- a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import angstrom, nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
diff --git a/rawEx/fit/specular/PolarizedSpinAsymmetry.py b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
index fa9d0cdea72..e9a3919c958 100755
--- a/rawEx/fit/specular/PolarizedSpinAsymmetry.py
+++ b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import angstrom, nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
-- 
GitLab


From 4e3ee1b6d4534af2a1ad013635d57f7557e32b61 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Thu, 20 Mar 2025 11:31:50 +0100
Subject: [PATCH 4/4] angstrom --> nm

---
 auto/Examples/fit/specular/Honeycomb_fit.py   | 38 +++++++++----------
 .../fit/specular/PolarizedSpinAsymmetry.py    | 14 +++----
 .../fit/specular/PolarizedSpinAsymmetryFit.py |  6 +--
 auto/Examples/fit/specular/Pt_layer_fit.py    |  8 ++--
 .../specular/MagneticLayerImperfect.py        |  8 ++--
 .../specular/PolarizedSpinAsymmetry.py        | 14 +++----
 auto/Examples/specular/RoughnessModel.py      |  8 ++--
 .../SpecularSimulationWithRoughness.py        |  8 ++--
 .../FigExamples/fit/specular/Honeycomb_fit.py | 38 +++++++++----------
 .../fit/specular/PolarizedSpinAsymmetry.py    | 14 +++----
 .../fit/specular/PolarizedSpinAsymmetryFit.py |  6 +--
 auto/FigExamples/fit/specular/Pt_layer_fit.py |  8 ++--
 .../specular/MagneticLayerImperfect.py        |  8 ++--
 .../specular/PolarizedSpinAsymmetry.py        | 14 +++----
 auto/FigExamples/specular/RoughnessModel.py   |  8 ++--
 .../SpecularSimulationWithRoughness.py        |  8 ++--
 .../fit/specular/Honeycomb_fit.py             | 38 +++++++++----------
 .../fit/specular/PolarizedSpinAsymmetry.py    | 14 +++----
 .../fit/specular/PolarizedSpinAsymmetryFit.py |  6 +--
 .../MiniExamples/fit/specular/Pt_layer_fit.py |  8 ++--
 .../specular/MagneticLayerImperfect.py        |  8 ++--
 .../specular/PolarizedSpinAsymmetry.py        | 14 +++----
 auto/MiniExamples/specular/RoughnessModel.py  |  8 ++--
 .../SpecularSimulationWithRoughness.py        |  8 ++--
 rawEx/fit/specular/Honeycomb_fit.py           | 38 +++++++++----------
 rawEx/fit/specular/PolarizedSpinAsymmetry.py  | 14 +++----
 .../fit/specular/PolarizedSpinAsymmetryFit.py |  6 +--
 rawEx/fit/specular/Pt_layer_fit.py            |  8 ++--
 rawEx/specular/MagneticLayerImperfect.py      |  8 ++--
 rawEx/specular/PolarizedSpinAsymmetry.py      | 14 +++----
 rawEx/specular/RoughnessModel.py              |  8 ++--
 .../SpecularSimulationWithRoughness.py        |  8 ++--
 32 files changed, 208 insertions(+), 208 deletions(-)

diff --git a/auto/Examples/fit/specular/Honeycomb_fit.py b/auto/Examples/fit/specular/Honeycomb_fit.py
index 9d26b3a6253..0e3a5e0541c 100755
--- a/auto/Examples/fit/specular/Honeycomb_fit.py
+++ b/auto/Examples/fit/specular/Honeycomb_fit.py
@@ -8,7 +8,7 @@ data without spin-flip for performance reasons.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt, scipy
-from bornagain import angstrom, sample_tools as st
+from bornagain import nm, sample_tools as st
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*nm, 0.7, 25*nm)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*nm, 0.7, 25*nm)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*nm, 0.7, 25*nm)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*nm, 0.7, 25*nm)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*nm, 0.7, 25*nm)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
@@ -59,10 +59,10 @@ def get_sample(P, sign, T):
     rSi = ba.LayerRoughness(rSi_autocorr, interlayer_model)
 
     l_Air = ba.Layer(material_Air)
-    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*angstrom, rPyOx)
-    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*angstrom, rPy2)
-    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*angstrom, rPy1)
-    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom, rSiO2)
+    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*nm, rPyOx)
+    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*nm, rPy2)
+    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*nm, rPy1)
+    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*nm, rSiO2)
     l_Si = ba.Layer(material_Si, rSi)
 
     sample = ba.Sample()
@@ -164,10 +164,10 @@ if __name__ == '__main__':
     # We start with rather good values so that the example takes not too much time
     startPnB = {
         "intensity": (0.5, 0.4, 0.6),
-        "t_PyOx": (77, 60, 100),
-        "t_Py2": (56, 46, 66),
-        "t_Py1": (56, 46, 66),
-        "t_SiO2": (22, 15, 29),
+        "t_PyOx": (7.7, 6.0, 10.0),
+        "t_Py2": (5.6, 4.6, 6.6),
+        "t_Py1": (5.6, 4.6, 6.6),
+        "t_SiO2": (2.2, 1.5, 2.9),
     }
 
     # For fixed parameters, bounds are ignored. We leave them here just
@@ -185,11 +185,11 @@ if __name__ == '__main__':
         "sld_PyOx_real": (1.995, 1.92, 2.07),
         "sld_Py2_real": (5, 4.7, 5.3),
         "sld_Py1_real": (4.62, 4.32, 4.92),
-        "rPyOx": (27, 15, 35),
-        "rPy2": (12, 2, 20),
-        "rPy1": (12, 2, 20),
-        "rSiO2": (15, 5, 25),
-        "rSi": (15, 5, 25),
+        "rPyOx": (2.7, 1.5, 3.5),
+        "rPy2": (1.2, .2, 2.0),
+        "rPy1": (1.2, .2, 2.0),
+        "rSiO2": (1.5, .5, 2.5),
+        "rSi": (1.5, .5, 2.5),
         "msld_PyOx": (0.25, 0, 1),
         "msld_Py2": (0.63, 0, 1),
         "msld_Py1": (0.64, 0, 1),
diff --git a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
index 1b29e596dae..7b90a24fbd1 100755
--- a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, nm, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -55,7 +55,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -200,9 +200,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/Examples/fit/specular/PolarizedSpinAsymmetryFit.py b/auto/Examples/fit/specular/PolarizedSpinAsymmetryFit.py
index 12abd08485d..1102cf911bc 100755
--- a/auto/Examples/fit/specular/PolarizedSpinAsymmetryFit.py
+++ b/auto/Examples/fit/specular/PolarizedSpinAsymmetryFit.py
@@ -58,9 +58,9 @@ if __name__ == '__main__':
         "q_offset": (0, -0.002, 0.002),
         "rho_Mafo": (6.3649, 2, 7),
         "rhoM_Mafo": (0, 0, 2),
-        "t_Mafo": (150, 60, 180),
-        "r_Mao": (1, 0, 12),
-        "r_Mafo": (1, 0, 12),
+        "t_Mafo": (15, 6, 18),
+        "r_Mao": (0.1, 0, 1.2),
+        "r_Mafo": (0.1, 0, 1.2),
     }
 
     PInitial = {d: v[0] for d, v in startParams.items()}
diff --git a/auto/Examples/fit/specular/Pt_layer_fit.py b/auto/Examples/fit/specular/Pt_layer_fit.py
index b23bb1c3eb3..4a3abd3db44 100755
--- a/auto/Examples/fit/specular/Pt_layer_fit.py
+++ b/auto/Examples/fit/specular/Pt_layer_fit.py
@@ -9,7 +9,7 @@ band of roughly 4-7 Ã… in 100 steps of 2theta.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt
-from bornagain import angstrom
+from bornagain import nm
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -32,14 +32,14 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"]*nm, 0.7, 25*nm)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"]*nm, 0.7, 25*nm)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_pt/nm"], r_pt)
+    layer = ba.Layer(material_layer, P["t_pt/nm"]*nm, r_pt)
     substrate_layer = ba.Layer(material_substrate, r_si)
 
     sample = ba.Sample()
diff --git a/auto/Examples/specular/MagneticLayerImperfect.py b/auto/Examples/specular/MagneticLayerImperfect.py
index 5c605b80740..2b5abd8bdfa 100755
--- a/auto/Examples/specular/MagneticLayerImperfect.py
+++ b/auto/Examples/specular/MagneticLayerImperfect.py
@@ -6,7 +6,7 @@ similar to Devishvili et al., Rev. Sci. Instrum. 84, 025112 (2013).
 """
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from math import sin, cos
 
 def get_sample():
@@ -19,14 +19,14 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(2*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # Layers
     layer_vacuum = ba.Layer(vacuum)
-    layer_Pd = ba.Layer(material_Pd, 120*angstrom, roughness)
-    layer_Fe = ba.Layer(material_Fe, 1000*angstrom, roughness)
+    layer_Pd = ba.Layer(material_Pd, 12*nm, roughness)
+    layer_Fe = ba.Layer(material_Fe, 100*nm, roughness)
     layer_substrate = ba.Layer(material_substrate, roughness)
 
     # Multilayer
diff --git a/auto/Examples/specular/PolarizedSpinAsymmetry.py b/auto/Examples/specular/PolarizedSpinAsymmetry.py
index a5ba638a5e8..0e0261ae2f0 100755
--- a/auto/Examples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/Examples/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -56,7 +56,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -201,9 +201,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/Examples/specular/RoughnessModel.py b/auto/Examples/specular/RoughnessModel.py
index 23a23fd6290..745a79a7fbc 100755
--- a/auto/Examples/specular/RoughnessModel.py
+++ b/auto/Examples/specular/RoughnessModel.py
@@ -5,7 +5,7 @@ tanh and Nevot-Croce roughness model using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg
+from bornagain import angstrom, nm, ba_plot as bp, deg
 
 
 def get_sample(interlayer):
@@ -16,13 +16,13 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # create periodic stack
diff --git a/auto/Examples/specular/SpecularSimulationWithRoughness.py b/auto/Examples/specular/SpecularSimulationWithRoughness.py
index 9a525198abd..ea29ced604b 100755
--- a/auto/Examples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/Examples/specular/SpecularSimulationWithRoughness.py
@@ -5,7 +5,7 @@ with a rough sample using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, nm
+from bornagain import nm, ba_plot as bp, deg, nm
 
 
 def get_sample():
@@ -22,8 +22,8 @@ def get_sample():
 
     # Layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # Periodic stack
@@ -44,7 +44,7 @@ def get_sample():
 def get_simulation(sample):
     n = 500
     scan = ba.AlphaScan(n, 2*deg/n, 2*deg)
-    scan.setWavelength(1.54*angstrom)
+    scan.setWavelength(0.154*nm)
     return ba.SpecularSimulation(scan, sample)
 
 
diff --git a/auto/FigExamples/fit/specular/Honeycomb_fit.py b/auto/FigExamples/fit/specular/Honeycomb_fit.py
index d27a4e4c77b..fe04348a1e4 100755
--- a/auto/FigExamples/fit/specular/Honeycomb_fit.py
+++ b/auto/FigExamples/fit/specular/Honeycomb_fit.py
@@ -8,7 +8,7 @@ data without spin-flip for performance reasons.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt, scipy
-from bornagain import angstrom, sample_tools as st
+from bornagain import nm, sample_tools as st
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*nm, 0.7, 25*nm)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*nm, 0.7, 25*nm)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*nm, 0.7, 25*nm)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*nm, 0.7, 25*nm)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*nm, 0.7, 25*nm)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
@@ -59,10 +59,10 @@ def get_sample(P, sign, T):
     rSi = ba.LayerRoughness(rSi_autocorr, interlayer_model)
 
     l_Air = ba.Layer(material_Air)
-    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*angstrom, rPyOx)
-    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*angstrom, rPy2)
-    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*angstrom, rPy1)
-    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom, rSiO2)
+    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*nm, rPyOx)
+    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*nm, rPy2)
+    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*nm, rPy1)
+    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*nm, rSiO2)
     l_Si = ba.Layer(material_Si, rSi)
 
     sample = ba.Sample()
@@ -162,10 +162,10 @@ if __name__ == '__main__':
     # We start with rather good values so that the example takes not too much time
     startPnB = {
         "intensity": (0.5, 0.4, 0.6),
-        "t_PyOx": (77, 60, 100),
-        "t_Py2": (56, 46, 66),
-        "t_Py1": (56, 46, 66),
-        "t_SiO2": (22, 15, 29),
+        "t_PyOx": (7.7, 6.0, 10.0),
+        "t_Py2": (5.6, 4.6, 6.6),
+        "t_Py1": (5.6, 4.6, 6.6),
+        "t_SiO2": (2.2, 1.5, 2.9),
     }
 
     # For fixed parameters, bounds are ignored. We leave them here just
@@ -183,11 +183,11 @@ if __name__ == '__main__':
         "sld_PyOx_real": (1.995, 1.92, 2.07),
         "sld_Py2_real": (5, 4.7, 5.3),
         "sld_Py1_real": (4.62, 4.32, 4.92),
-        "rPyOx": (27, 15, 35),
-        "rPy2": (12, 2, 20),
-        "rPy1": (12, 2, 20),
-        "rSiO2": (15, 5, 25),
-        "rSi": (15, 5, 25),
+        "rPyOx": (2.7, 1.5, 3.5),
+        "rPy2": (1.2, .2, 2.0),
+        "rPy1": (1.2, .2, 2.0),
+        "rSiO2": (1.5, .5, 2.5),
+        "rSi": (1.5, .5, 2.5),
         "msld_PyOx": (0.25, 0, 1),
         "msld_Py2": (0.63, 0, 1),
         "msld_Py1": (0.64, 0, 1),
diff --git a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
index ecdfbaeda65..86c264e9b68 100755
--- a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, nm, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -55,7 +55,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -202,9 +202,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetryFit.py b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetryFit.py
index 5bee9fca96e..227ebbb3d5b 100755
--- a/auto/FigExamples/fit/specular/PolarizedSpinAsymmetryFit.py
+++ b/auto/FigExamples/fit/specular/PolarizedSpinAsymmetryFit.py
@@ -58,9 +58,9 @@ if __name__ == '__main__':
         "q_offset": (0, -0.002, 0.002),
         "rho_Mafo": (6.3649, 2, 7),
         "rhoM_Mafo": (0, 0, 2),
-        "t_Mafo": (150, 60, 180),
-        "r_Mao": (1, 0, 12),
-        "r_Mafo": (1, 0, 12),
+        "t_Mafo": (15, 6, 18),
+        "r_Mao": (0.1, 0, 1.2),
+        "r_Mafo": (0.1, 0, 1.2),
     }
 
     PInitial = {d: v[0] for d, v in startParams.items()}
diff --git a/auto/FigExamples/fit/specular/Pt_layer_fit.py b/auto/FigExamples/fit/specular/Pt_layer_fit.py
index b1edb462396..f7b5fc034a5 100755
--- a/auto/FigExamples/fit/specular/Pt_layer_fit.py
+++ b/auto/FigExamples/fit/specular/Pt_layer_fit.py
@@ -9,7 +9,7 @@ band of roughly 4-7 Ã… in 100 steps of 2theta.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt
-from bornagain import angstrom
+from bornagain import nm
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -32,14 +32,14 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"]*nm, 0.7, 25*nm)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"]*nm, 0.7, 25*nm)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_pt/nm"], r_pt)
+    layer = ba.Layer(material_layer, P["t_pt/nm"]*nm, r_pt)
     substrate_layer = ba.Layer(material_substrate, r_si)
 
     sample = ba.Sample()
diff --git a/auto/FigExamples/specular/MagneticLayerImperfect.py b/auto/FigExamples/specular/MagneticLayerImperfect.py
index d4d8bacb20f..8a65a11c227 100755
--- a/auto/FigExamples/specular/MagneticLayerImperfect.py
+++ b/auto/FigExamples/specular/MagneticLayerImperfect.py
@@ -6,7 +6,7 @@ similar to Devishvili et al., Rev. Sci. Instrum. 84, 025112 (2013).
 """
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from math import sin, cos
 
 def get_sample():
@@ -19,14 +19,14 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(2*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # Layers
     layer_vacuum = ba.Layer(vacuum)
-    layer_Pd = ba.Layer(material_Pd, 120*angstrom, roughness)
-    layer_Fe = ba.Layer(material_Fe, 1000*angstrom, roughness)
+    layer_Pd = ba.Layer(material_Pd, 12*nm, roughness)
+    layer_Fe = ba.Layer(material_Fe, 100*nm, roughness)
     layer_substrate = ba.Layer(material_substrate, roughness)
 
     # Multilayer
diff --git a/auto/FigExamples/specular/PolarizedSpinAsymmetry.py b/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
index 2fb6c6ce985..55dba54082c 100755
--- a/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/FigExamples/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -56,7 +56,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -203,9 +203,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/FigExamples/specular/RoughnessModel.py b/auto/FigExamples/specular/RoughnessModel.py
index b7b7c4efca7..93ddc33ae7a 100755
--- a/auto/FigExamples/specular/RoughnessModel.py
+++ b/auto/FigExamples/specular/RoughnessModel.py
@@ -5,7 +5,7 @@ tanh and Nevot-Croce roughness model using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg
+from bornagain import angstrom, nm, ba_plot as bp, deg
 
 
 def get_sample(interlayer):
@@ -16,13 +16,13 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # create periodic stack
diff --git a/auto/FigExamples/specular/SpecularSimulationWithRoughness.py b/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
index 8d9cc70eca2..250b1546e5e 100755
--- a/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/FigExamples/specular/SpecularSimulationWithRoughness.py
@@ -5,7 +5,7 @@ with a rough sample using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, nm
+from bornagain import nm, ba_plot as bp, deg, nm
 
 
 def get_sample():
@@ -22,8 +22,8 @@ def get_sample():
 
     # Layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # Periodic stack
@@ -44,7 +44,7 @@ def get_sample():
 def get_simulation(sample):
     n = 500
     scan = ba.AlphaScan(n, 2*deg/n, 2*deg)
-    scan.setWavelength(1.54*angstrom)
+    scan.setWavelength(0.154*nm)
     return ba.SpecularSimulation(scan, sample)
 
 
diff --git a/auto/MiniExamples/fit/specular/Honeycomb_fit.py b/auto/MiniExamples/fit/specular/Honeycomb_fit.py
index d27a4e4c77b..fe04348a1e4 100755
--- a/auto/MiniExamples/fit/specular/Honeycomb_fit.py
+++ b/auto/MiniExamples/fit/specular/Honeycomb_fit.py
@@ -8,7 +8,7 @@ data without spin-flip for performance reasons.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt, scipy
-from bornagain import angstrom, sample_tools as st
+from bornagain import nm, sample_tools as st
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*nm, 0.7, 25*nm)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*nm, 0.7, 25*nm)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*nm, 0.7, 25*nm)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*nm, 0.7, 25*nm)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*nm, 0.7, 25*nm)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
@@ -59,10 +59,10 @@ def get_sample(P, sign, T):
     rSi = ba.LayerRoughness(rSi_autocorr, interlayer_model)
 
     l_Air = ba.Layer(material_Air)
-    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*angstrom, rPyOx)
-    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*angstrom, rPy2)
-    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*angstrom, rPy1)
-    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom, rSiO2)
+    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*nm, rPyOx)
+    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*nm, rPy2)
+    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*nm, rPy1)
+    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*nm, rSiO2)
     l_Si = ba.Layer(material_Si, rSi)
 
     sample = ba.Sample()
@@ -162,10 +162,10 @@ if __name__ == '__main__':
     # We start with rather good values so that the example takes not too much time
     startPnB = {
         "intensity": (0.5, 0.4, 0.6),
-        "t_PyOx": (77, 60, 100),
-        "t_Py2": (56, 46, 66),
-        "t_Py1": (56, 46, 66),
-        "t_SiO2": (22, 15, 29),
+        "t_PyOx": (7.7, 6.0, 10.0),
+        "t_Py2": (5.6, 4.6, 6.6),
+        "t_Py1": (5.6, 4.6, 6.6),
+        "t_SiO2": (2.2, 1.5, 2.9),
     }
 
     # For fixed parameters, bounds are ignored. We leave them here just
@@ -183,11 +183,11 @@ if __name__ == '__main__':
         "sld_PyOx_real": (1.995, 1.92, 2.07),
         "sld_Py2_real": (5, 4.7, 5.3),
         "sld_Py1_real": (4.62, 4.32, 4.92),
-        "rPyOx": (27, 15, 35),
-        "rPy2": (12, 2, 20),
-        "rPy1": (12, 2, 20),
-        "rSiO2": (15, 5, 25),
-        "rSi": (15, 5, 25),
+        "rPyOx": (2.7, 1.5, 3.5),
+        "rPy2": (1.2, .2, 2.0),
+        "rPy1": (1.2, .2, 2.0),
+        "rSiO2": (1.5, .5, 2.5),
+        "rSi": (1.5, .5, 2.5),
         "msld_PyOx": (0.25, 0, 1),
         "msld_Py2": (0.63, 0, 1),
         "msld_Py1": (0.64, 0, 1),
diff --git a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
index ecdfbaeda65..86c264e9b68 100755
--- a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
+++ b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, nm, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -55,7 +55,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -202,9 +202,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetryFit.py b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetryFit.py
index 5bee9fca96e..227ebbb3d5b 100755
--- a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetryFit.py
+++ b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetryFit.py
@@ -58,9 +58,9 @@ if __name__ == '__main__':
         "q_offset": (0, -0.002, 0.002),
         "rho_Mafo": (6.3649, 2, 7),
         "rhoM_Mafo": (0, 0, 2),
-        "t_Mafo": (150, 60, 180),
-        "r_Mao": (1, 0, 12),
-        "r_Mafo": (1, 0, 12),
+        "t_Mafo": (15, 6, 18),
+        "r_Mao": (0.1, 0, 1.2),
+        "r_Mafo": (0.1, 0, 1.2),
     }
 
     PInitial = {d: v[0] for d, v in startParams.items()}
diff --git a/auto/MiniExamples/fit/specular/Pt_layer_fit.py b/auto/MiniExamples/fit/specular/Pt_layer_fit.py
index b1edb462396..f7b5fc034a5 100755
--- a/auto/MiniExamples/fit/specular/Pt_layer_fit.py
+++ b/auto/MiniExamples/fit/specular/Pt_layer_fit.py
@@ -9,7 +9,7 @@ band of roughly 4-7 Ã… in 100 steps of 2theta.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt
-from bornagain import angstrom
+from bornagain import nm
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -32,14 +32,14 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"]*nm, 0.7, 25*nm)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"]*nm, 0.7, 25*nm)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_pt/nm"], r_pt)
+    layer = ba.Layer(material_layer, P["t_pt/nm"]*nm, r_pt)
     substrate_layer = ba.Layer(material_substrate, r_si)
 
     sample = ba.Sample()
diff --git a/auto/MiniExamples/specular/MagneticLayerImperfect.py b/auto/MiniExamples/specular/MagneticLayerImperfect.py
index d4d8bacb20f..8a65a11c227 100755
--- a/auto/MiniExamples/specular/MagneticLayerImperfect.py
+++ b/auto/MiniExamples/specular/MagneticLayerImperfect.py
@@ -6,7 +6,7 @@ similar to Devishvili et al., Rev. Sci. Instrum. 84, 025112 (2013).
 """
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from math import sin, cos
 
 def get_sample():
@@ -19,14 +19,14 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(2*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # Layers
     layer_vacuum = ba.Layer(vacuum)
-    layer_Pd = ba.Layer(material_Pd, 120*angstrom, roughness)
-    layer_Fe = ba.Layer(material_Fe, 1000*angstrom, roughness)
+    layer_Pd = ba.Layer(material_Pd, 12*nm, roughness)
+    layer_Fe = ba.Layer(material_Fe, 100*nm, roughness)
     layer_substrate = ba.Layer(material_substrate, roughness)
 
     # Multilayer
diff --git a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
index 2fb6c6ce985..55dba54082c 100755
--- a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
+++ b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -56,7 +56,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -203,9 +203,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/auto/MiniExamples/specular/RoughnessModel.py b/auto/MiniExamples/specular/RoughnessModel.py
index 9b89abd8212..2157b328dab 100755
--- a/auto/MiniExamples/specular/RoughnessModel.py
+++ b/auto/MiniExamples/specular/RoughnessModel.py
@@ -5,7 +5,7 @@ tanh and Nevot-Croce roughness model using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg
+from bornagain import angstrom, nm, ba_plot as bp, deg
 
 
 def get_sample(interlayer):
@@ -16,13 +16,13 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # create periodic stack
diff --git a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
index f022e089360..7876785f6eb 100755
--- a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
+++ b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py
@@ -5,7 +5,7 @@ with a rough sample using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, nm
+from bornagain import nm, ba_plot as bp, deg, nm
 
 
 def get_sample():
@@ -22,8 +22,8 @@ def get_sample():
 
     # Layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # Periodic stack
@@ -44,7 +44,7 @@ def get_sample():
 def get_simulation(sample):
     n = 50
     scan = ba.AlphaScan(n, 2*deg/n, 2*deg)
-    scan.setWavelength(1.54*angstrom)
+    scan.setWavelength(0.154*nm)
     return ba.SpecularSimulation(scan, sample)
 
 
diff --git a/rawEx/fit/specular/Honeycomb_fit.py b/rawEx/fit/specular/Honeycomb_fit.py
index c440577bca2..8d8ceb65358 100755
--- a/rawEx/fit/specular/Honeycomb_fit.py
+++ b/rawEx/fit/specular/Honeycomb_fit.py
@@ -8,7 +8,7 @@ data without spin-flip for performance reasons.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt, scipy
-from bornagain import angstrom, sample_tools as st
+from bornagain import nm, sample_tools as st
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -46,11 +46,11 @@ def get_sample(P, sign, T):
 
     interlayer_model = ba.ErfInterlayer()
 
-    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*angstrom, 0.7, 250*angstrom)
-    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*angstrom, 0.7, 250*angstrom)
-    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*angstrom, 0.7, 250*angstrom)
-    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*angstrom, 0.7, 250*angstrom)
-    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*angstrom, 0.7, 250*angstrom)
+    rPyOx_autocorr = ba.K_CorrelationModel(P["rPyOx"]*nm, 0.7, 25*nm)
+    rPy2_autocorr = ba.K_CorrelationModel(P["rPy2"]*nm, 0.7, 25*nm)
+    rPy1_autocorr = ba.K_CorrelationModel(P["rPy1"]*nm, 0.7, 25*nm)
+    rSiO2_autocorr = ba.K_CorrelationModel(P["rSiO2"]*nm, 0.7, 25*nm)
+    rSi_autocorr = ba.K_CorrelationModel(P["rSi"]*nm, 0.7, 25*nm)
 
     rPyOx = ba.LayerRoughness(rPyOx_autocorr, interlayer_model)
     rPy2 = ba.LayerRoughness(rPy2_autocorr, interlayer_model)
@@ -59,10 +59,10 @@ def get_sample(P, sign, T):
     rSi = ba.LayerRoughness(rSi_autocorr, interlayer_model)
 
     l_Air = ba.Layer(material_Air)
-    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*angstrom, rPyOx)
-    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*angstrom, rPy2)
-    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*angstrom, rPy1)
-    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom, rSiO2)
+    l_PyOx = ba.Layer(material_PyOx, P["t_PyOx"]*nm, rPyOx)
+    l_Py2 = ba.Layer(material_Py2, P["t_Py2"]*nm, rPy2)
+    l_Py1 = ba.Layer(material_Py1, P["t_Py1"]*nm, rPy1)
+    l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*nm, rSiO2)
     l_Si = ba.Layer(material_Si, rSi)
 
     sample = ba.Sample()
@@ -170,10 +170,10 @@ if __name__ == '__main__':
     # We start with rather good values so that the example takes not too much time
     startPnB = {
         "intensity": (0.5, 0.4, 0.6),
-        "t_PyOx": (77, 60, 100),
-        "t_Py2": (56, 46, 66),
-        "t_Py1": (56, 46, 66),
-        "t_SiO2": (22, 15, 29),
+        "t_PyOx": (7.7, 6.0, 10.0),
+        "t_Py2": (5.6, 4.6, 6.6),
+        "t_Py1": (5.6, 4.6, 6.6),
+        "t_SiO2": (2.2, 1.5, 2.9),
     }
 
     # For fixed parameters, bounds are ignored. We leave them here just
@@ -191,11 +191,11 @@ if __name__ == '__main__':
         "sld_PyOx_real": (1.995, 1.92, 2.07),
         "sld_Py2_real": (5, 4.7, 5.3),
         "sld_Py1_real": (4.62, 4.32, 4.92),
-        "rPyOx": (27, 15, 35),
-        "rPy2": (12, 2, 20),
-        "rPy1": (12, 2, 20),
-        "rSiO2": (15, 5, 25),
-        "rSi": (15, 5, 25),
+        "rPyOx": (2.7, 1.5, 3.5),
+        "rPy2": (1.2, .2, 2.0),
+        "rPy1": (1.2, .2, 2.0),
+        "rSiO2": (1.5, .5, 2.5),
+        "rSi": (1.5, .5, 2.5),
         "msld_PyOx": (0.25, 0, 1),
         "msld_Py2": (0.63, 0, 1),
         "msld_Py1": (0.64, 0, 1),
diff --git a/rawEx/fit/specular/PolarizedSpinAsymmetry.py b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
index e9a3919c958..4adcb72c5d0 100755
--- a/rawEx/fit/specular/PolarizedSpinAsymmetry.py
+++ b/rawEx/fit/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, nm, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 # q-range on which the simulation and fitting are to be performed
@@ -46,8 +46,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 25*nm)
-    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 25*nm)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_substrate_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -55,7 +55,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -206,9 +206,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/rawEx/fit/specular/PolarizedSpinAsymmetryFit.py b/rawEx/fit/specular/PolarizedSpinAsymmetryFit.py
index ef4459ab14b..9a997bc3322 100755
--- a/rawEx/fit/specular/PolarizedSpinAsymmetryFit.py
+++ b/rawEx/fit/specular/PolarizedSpinAsymmetryFit.py
@@ -58,9 +58,9 @@ if __name__ == '__main__':
         "q_offset": (0, -0.002, 0.002),
         "rho_Mafo": (6.3649, 2, 7),
         "rhoM_Mafo": (0, 0, 2),
-        "t_Mafo": (150, 60, 180),
-        "r_Mao": (1, 0, 12),
-        "r_Mafo": (1, 0, 12),
+        "t_Mafo": (15, 6, 18),
+        "r_Mao": (0.1, 0, 1.2),
+        "r_Mafo": (0.1, 0, 1.2),
     }
 
     PInitial = {d: v[0] for d, v in startParams.items()}
diff --git a/rawEx/fit/specular/Pt_layer_fit.py b/rawEx/fit/specular/Pt_layer_fit.py
index a29bc69a088..7c15cc20783 100755
--- a/rawEx/fit/specular/Pt_layer_fit.py
+++ b/rawEx/fit/specular/Pt_layer_fit.py
@@ -9,7 +9,7 @@ band of roughly 4-7 Ã… in 100 steps of 2theta.
 """
 
 import bornagain as ba, numpy as np, os, matplotlib.pyplot as plt
-from bornagain import angstrom
+from bornagain import nm
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 datadir = os.getenv('BA_DATA_DIR', '')
@@ -32,14 +32,14 @@ def get_sample(P):
 
     interlayer = ba.TanhInterlayer()
 
-    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"], 0.7, 250*angstrom)
-    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"], 0.7, 250*angstrom)
+    si_autocorr = ba.K_CorrelationModel(P["r_si/nm"]*nm, 0.7, 25*nm)
+    pt_autocorr = ba.K_CorrelationModel(P["r_pt/nm"]*nm, 0.7, 25*nm)
 
     r_si = ba.LayerRoughness(si_autocorr, interlayer)
     r_pt = ba.LayerRoughness(pt_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_pt/nm"], r_pt)
+    layer = ba.Layer(material_layer, P["t_pt/nm"]*nm, r_pt)
     substrate_layer = ba.Layer(material_substrate, r_si)
 
     sample = ba.Sample()
diff --git a/rawEx/specular/MagneticLayerImperfect.py b/rawEx/specular/MagneticLayerImperfect.py
index 7a227be4b33..95ac6267d09 100755
--- a/rawEx/specular/MagneticLayerImperfect.py
+++ b/rawEx/specular/MagneticLayerImperfect.py
@@ -6,7 +6,7 @@ similar to Devishvili et al., Rev. Sci. Instrum. 84, 025112 (2013).
 """
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from math import sin, cos
 
 def get_sample():
@@ -19,14 +19,14 @@ def get_sample():
     material_Fe = ba.MaterialBySLD("Fe", 8.0241e-06, 6.0448e-10, B)
     material_substrate = ba.MaterialBySLD("MgO", 5.9803e-06, 9.3996e-12)
 
-    autocorr = ba.K_CorrelationModel(20*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(2*nm, 0.7, 25*nm)
     interlayer = ba.TanhInterlayer()
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # Layers
     layer_vacuum = ba.Layer(vacuum)
-    layer_Pd = ba.Layer(material_Pd, 120*angstrom, roughness)
-    layer_Fe = ba.Layer(material_Fe, 1000*angstrom, roughness)
+    layer_Pd = ba.Layer(material_Pd, 12*nm, roughness)
+    layer_Fe = ba.Layer(material_Fe, 100*nm, roughness)
     layer_substrate = ba.Layer(material_substrate, roughness)
 
     # Multilayer
diff --git a/rawEx/specular/PolarizedSpinAsymmetry.py b/rawEx/specular/PolarizedSpinAsymmetry.py
index 5e6e92c3aed..0ea01ac6bec 100755
--- a/rawEx/specular/PolarizedSpinAsymmetry.py
+++ b/rawEx/specular/PolarizedSpinAsymmetry.py
@@ -12,7 +12,7 @@ demonstration without the magnetically dead layer.
 import os
 import numpy
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, R3
+from bornagain import nm, ba_plot as bp, deg, R3
 from bornagain.numpyutil import Arrayf64Converter as dac
 
 
@@ -47,8 +47,8 @@ def get_sample(P):
     material_layer = ba.MaterialBySLD("(Mg,Al,Fe)3O4", P["rho_Mafo"]*1e-6, 0, B)
     material_substrate = ba.MaterialBySLD("MgAl2O4", *sldMao)
 
-    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*angstrom, 0.7, 250*angstrom)
-    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*angstrom, 0.7, 250*angstrom)
+    r_Mafo_autocorr = ba.K_CorrelationModel(P["r_Mafo"]*nm, 0.7, 25*nm)
+    r_sub_autocorr = ba.K_CorrelationModel(P["r_Mao"]*nm, 0.7, 25*nm)
 
     interlayer = ba.TanhInterlayer()
 
@@ -56,7 +56,7 @@ def get_sample(P):
     r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer)
 
     ambient_layer = ba.Layer(vacuum)
-    layer = ba.Layer(material_layer, P["t_Mafo"]*angstrom, r_Mafo)
+    layer = ba.Layer(material_layer, P["t_Mafo"]*nm, r_Mafo)
     substrate_layer = ba.Layer(material_substrate, r_substrate)
 
     sample = ba.Sample()
@@ -207,9 +207,9 @@ if __name__ == '__main__':
         'q_offset': 7.971243487467318e-05,
         'rho_Mafo': 6.370140108715461,
         'rhoM_Mafo': 0.27399566816062926,
-        't_Mafo': 137.46913056084736,
-        'r_Mao': 8.60487712674644,
-        'r_Mafo': 3.7844265311293483
+        't_Mafo': 13.746913056084736,
+        'r_Mao': 0.860487712674644,
+        'r_Mafo': 0.37844265311293483
     }
 
     def run_Simulation_pp(qzs, P):
diff --git a/rawEx/specular/RoughnessModel.py b/rawEx/specular/RoughnessModel.py
index 3267f3b02d9..1a98b14dadf 100755
--- a/rawEx/specular/RoughnessModel.py
+++ b/rawEx/specular/RoughnessModel.py
@@ -5,7 +5,7 @@ tanh and Nevot-Croce roughness model using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg
+from bornagain import angstrom, nm, ba_plot as bp, deg
 
 
 def get_sample(interlayer):
@@ -16,13 +16,13 @@ def get_sample(interlayer):
     material_substrate = ba.MaterialBySLD("SiSubstrate", 2.0704e-06, 0)
 
     # Roughness
-    autocorr = ba.K_CorrelationModel(10*angstrom, 0.7, 250*angstrom)
+    autocorr = ba.K_CorrelationModel(1*nm, 0.7, 25*nm)
     roughness = ba.LayerRoughness(autocorr, interlayer)
 
     # create layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # create periodic stack
diff --git a/rawEx/specular/SpecularSimulationWithRoughness.py b/rawEx/specular/SpecularSimulationWithRoughness.py
index 3ebda63f5ab..60d59fbb927 100755
--- a/rawEx/specular/SpecularSimulationWithRoughness.py
+++ b/rawEx/specular/SpecularSimulationWithRoughness.py
@@ -5,7 +5,7 @@ with a rough sample using BornAgain.
 
 """
 import bornagain as ba
-from bornagain import angstrom, ba_plot as bp, deg, nm
+from bornagain import nm, ba_plot as bp, deg, nm
 
 
 def get_sample():
@@ -22,8 +22,8 @@ def get_sample():
 
     # Layers
     ambient_layer = ba.Layer(vacuum)
-    ti_layer = ba.Layer(material_ti, 30*angstrom, roughness)
-    ni_layer = ba.Layer(material_ni, 70*angstrom, roughness)
+    ti_layer = ba.Layer(material_ti, 3*nm, roughness)
+    ni_layer = ba.Layer(material_ni, 7*nm, roughness)
     substrate_layer = ba.Layer(material_substrate, roughness)
 
     # Periodic stack
@@ -44,7 +44,7 @@ def get_sample():
 def get_simulation(sample):
     n = <%= test_mode ? 50 : 500 %>
     scan = ba.AlphaScan(n, 2*deg/n, 2*deg)
-    scan.setWavelength(1.54*angstrom)
+    scan.setWavelength(0.154*nm)
     return ba.SpecularSimulation(scan, sample)
 
 
-- 
GitLab