From 106c0464168713a3e48fef7ed95267f81a5acd7c Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Wed, 7 Aug 2024 15:38:56 +0200 Subject: [PATCH] RoughnessModel --> InterlayerModel --- GUI/Model/FromCore/ItemizeSample.cpp | 8 +- GUI/Model/Sample/InterlayerModelItems.h | 53 ++ GUI/Model/Sample/RoughnessCatalog.cpp | 18 +- GUI/Model/Sample/RoughnessCatalog.h | 8 +- GUI/Model/Sample/RoughnessItems.cpp | 2 +- GUI/Model/Sample/RoughnessItems.h | 10 +- GUI/Model/Sample/RoughnessModelItems.h | 49 -- GUI/View/Sample/PolyForm.cpp | 2 +- GUI/View/Sample/PolyForm.h | 2 +- Resample/Slice/ProfileHelper.cpp | 2 +- Resample/Specular/ComputeFluxMagnetic.cpp | 8 +- Resample/Specular/ComputeFluxScalar.cpp | 8 +- ...ughnessModels.cpp => InterlayerModels.cpp} | 34 +- .../{RoughnessModels.h => InterlayerModels.h} | 32 +- Sample/Interface/LayerRoughness.cpp | 20 +- Sample/Interface/LayerRoughness.h | 14 +- Sample/Interface/RoughnessMap.cpp | 4 +- Sample/Multilayer/MultiLayer.h | 2 +- Sample/StandardSample/FeNiBilayerBuilder.cpp | 18 +- .../StandardSample/MagneticLayersBuilder.cpp | 8 +- Sample/StandardSample/MagneticLayersBuilder.h | 2 +- .../MultiLayerWithRoughnessBuilder.cpp | 10 +- Sim/Export/SampleToPython.cpp | 4 +- Wrap/Swig/libBornAgainSample.i | 2 +- auto/Examples/fit/specular/Honeycomb_fit.py | 2 +- auto/Examples/specular/RoughnessModel.py | 4 +- auto/Examples/varia/MaterialProfile.py | 2 +- auto/Examples/varia/RoughSurface.py | 2 +- .../fit/specular/Honeycomb_fit.py | 2 +- auto/MiniExamples/specular/RoughnessModel.py | 4 +- auto/MiniExamples/varia/MaterialProfile.py | 2 +- auto/MiniExamples/varia/RoughSurface.py | 2 +- auto/Wrap/libBornAgainSample.py | 110 ++-- auto/Wrap/libBornAgainSample_wrap.cpp | 554 +++++++++--------- rawEx/fit/specular/Honeycomb_fit.py | 2 +- rawEx/specular/RoughnessModel.py | 4 +- rawEx/varia/MaterialProfile.py | 2 +- rawEx/varia/RoughSurface.py | 2 +- 38 files changed, 509 insertions(+), 505 deletions(-) create mode 100644 GUI/Model/Sample/InterlayerModelItems.h delete mode 100644 GUI/Model/Sample/RoughnessModelItems.h rename Sample/Interface/{RoughnessModels.cpp => InterlayerModels.cpp} (64%) rename Sample/Interface/{RoughnessModels.h => InterlayerModels.h} (58%) diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 9cda2a84a66..da4aa3a54da 100644 --- a/GUI/Model/FromCore/ItemizeSample.cpp +++ b/GUI/Model/FromCore/ItemizeSample.cpp @@ -292,10 +292,10 @@ void set_Roughness(LayerItem* parent, const LayerInterface* top_interface) auto* t = new BasicRoughnessItem(roughness->sigma(), roughness->hurst(), roughness->lateralCorrLength()); - if (dynamic_cast<const ErfRoughness*>(roughness->roughnessModel())) - t->roughnessModelSelection().setCertainItem(new ErfRoughnessItem); - else if (dynamic_cast<const TanhRoughness*>(roughness->roughnessModel())) - t->roughnessModelSelection().setCertainItem(new TanhRoughnessItem); + if (dynamic_cast<const ErfInterlayer*>(roughness->interlayerModel())) + t->roughnessModelSelection().setCertainItem(new ErfInterlayerItem); + else if (dynamic_cast<const TanhInterlayer*>(roughness->interlayerModel())) + t->roughnessModelSelection().setCertainItem(new TanhInterlayerItem); else ASSERT_NEVER; diff --git a/GUI/Model/Sample/InterlayerModelItems.h b/GUI/Model/Sample/InterlayerModelItems.h new file mode 100644 index 00000000000..50121ab7e0b --- /dev/null +++ b/GUI/Model/Sample/InterlayerModelItems.h @@ -0,0 +1,53 @@ +// ************************************************************************************************ +// +// BornAgain: simulate and fit reflection and scattering +// +//! @file GUI/Model/Sample/InterlayerModelItem.h +//! @brief Defines classes InterlayerModelItem. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2024 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************************************ + +#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_INTERLAYERMODELITEMS_H +#define BORNAGAIN_GUI_MODEL_SAMPLE_INTERLAYERMODELITEMS_H + +#include "Sample/Interface/InterlayerModels.h" +#include <QXmlStreamReader> +#include <memory> + +class InterlayerModelItem { +public: + virtual ~InterlayerModelItem() = default; + + virtual void writeTo(QXmlStreamWriter*) const {} + virtual void readFrom(QXmlStreamReader*) {} + + virtual std::unique_ptr<InterlayerModel> createModel() const = 0; + +protected: + InterlayerModelItem() = default; +}; + +class ErfInterlayerItem : public InterlayerModelItem { +public: + ErfInterlayerItem() = default; + std::unique_ptr<InterlayerModel> createModel() const + { + return std::make_unique<ErfInterlayer>(); + } +}; + +class TanhInterlayerItem : public InterlayerModelItem { +public: + TanhInterlayerItem() = default; + std::unique_ptr<InterlayerModel> createModel() const + { + return std::make_unique<TanhInterlayer>(); + } +}; + +#endif // BORNAGAIN_GUI_MODEL_SAMPLE_INTERLAYERMODELITEMS_H diff --git a/GUI/Model/Sample/RoughnessCatalog.cpp b/GUI/Model/Sample/RoughnessCatalog.cpp index fb4344c6b25..0429b7ada2c 100644 --- a/GUI/Model/Sample/RoughnessCatalog.cpp +++ b/GUI/Model/Sample/RoughnessCatalog.cpp @@ -14,8 +14,8 @@ #include "GUI/Model/Sample/RoughnessCatalog.h" #include "Base/Util/Assert.h" +#include "GUI/Model/Sample/InterlayerModelItems.h" #include "GUI/Model/Sample/RoughnessItems.h" -#include "GUI/Model/Sample/RoughnessModelItems.h" RoughnessItem* RoughnessCatalog::create(Type type) { @@ -57,23 +57,23 @@ RoughnessCatalog::Type RoughnessCatalog::type(const RoughnessItem* item) //-------------------------------------------------------------------------- -RoughnessModelItem* RoughnessModelCatalog::create(Type type) +InterlayerModelItem* InterlayerModelCatalog::create(Type type) { switch (type) { case Type::Erf: - return new ErfRoughnessItem(); + return new ErfInterlayerItem(); case Type::Tanh: - return new TanhRoughnessItem(); + return new TanhInterlayerItem(); } ASSERT_NEVER; } -QVector<RoughnessModelCatalog::Type> RoughnessModelCatalog::types() +QVector<InterlayerModelCatalog::Type> InterlayerModelCatalog::types() { return {Type::Erf, Type::Tanh}; } -UiInfo RoughnessModelCatalog::uiInfo(Type type) +UiInfo InterlayerModelCatalog::uiInfo(Type type) { switch (type) { case Type::Erf: @@ -84,12 +84,12 @@ UiInfo RoughnessModelCatalog::uiInfo(Type type) ASSERT_NEVER; } -RoughnessModelCatalog::Type RoughnessModelCatalog::type(const RoughnessModelItem* model) +InterlayerModelCatalog::Type InterlayerModelCatalog::type(const InterlayerModelItem* model) { - if (dynamic_cast<const ErfRoughnessItem*>(model)) + if (dynamic_cast<const ErfInterlayerItem*>(model)) return Type::Erf; - if (dynamic_cast<const TanhRoughnessItem*>(model)) + if (dynamic_cast<const TanhInterlayerItem*>(model)) return Type::Tanh; ASSERT_NEVER; diff --git a/GUI/Model/Sample/RoughnessCatalog.h b/GUI/Model/Sample/RoughnessCatalog.h index 0d72ccc4d4f..d3972dd2374 100644 --- a/GUI/Model/Sample/RoughnessCatalog.h +++ b/GUI/Model/Sample/RoughnessCatalog.h @@ -18,8 +18,8 @@ #include "GUI/Model/Type/UiInfo.h" #include <QVector> +class InterlayerModelItem; class RoughnessItem; -class RoughnessModelItem; class RoughnessCatalog { public: @@ -41,13 +41,13 @@ public: //-------------------------------------------------------------------------- -class RoughnessModelCatalog { +class InterlayerModelCatalog { public: // Do not change the numbering! It is serialized! enum class Type : uint8_t { Erf = 0, Tanh = 1 }; //! Creates the item of the given type. - static RoughnessModelItem* create(Type type); + static InterlayerModelItem* create(Type type); //! List of available types, sorted as expected in the UI. static QVector<Type> types(); @@ -56,7 +56,7 @@ public: static UiInfo uiInfo(Type t); //! Returns the enum type of the given item. - static Type type(const RoughnessModelItem* model); + static Type type(const InterlayerModelItem* model); }; #endif // BORNAGAIN_GUI_MODEL_SAMPLE_ROUGHNESSCATALOG_H diff --git a/GUI/Model/Sample/RoughnessItems.cpp b/GUI/Model/Sample/RoughnessItems.cpp index c08a4929531..51daca255f7 100644 --- a/GUI/Model/Sample/RoughnessItems.cpp +++ b/GUI/Model/Sample/RoughnessItems.cpp @@ -49,7 +49,7 @@ RoughnessItem::RoughnessItem() m_roughness_model.simpleInit("Interlayer profile", "Laterally averaged profile of the interlayer transition (or " "roughness height distribution)", - RoughnessModelCatalog::Type::Tanh); + InterlayerModelCatalog::Type::Tanh); } //------------------------------------------------------------------------------------------------ diff --git a/GUI/Model/Sample/RoughnessItems.h b/GUI/Model/Sample/RoughnessItems.h index c8e8a694b47..1f840ae8098 100644 --- a/GUI/Model/Sample/RoughnessItems.h +++ b/GUI/Model/Sample/RoughnessItems.h @@ -17,8 +17,8 @@ #include "GUI/Model/Descriptor/DoubleProperty.h" #include "GUI/Model/Descriptor/PolyPtr.h" +#include "GUI/Model/Sample/InterlayerModelItems.h" #include "GUI/Model/Sample/RoughnessCatalog.h" -#include "GUI/Model/Sample/RoughnessModelItems.h" class RoughnessItem { public: @@ -28,16 +28,16 @@ public: virtual void readFrom(QXmlStreamReader* r); virtual DoubleProperties lateralProperties() = 0; - PolyPtr<RoughnessModelItem, RoughnessModelCatalog>& roughnessModelSelection() + PolyPtr<InterlayerModelItem, InterlayerModelCatalog>& roughnessModelSelection() { return m_roughness_model; } - RoughnessModelItem* certainRoughnessModel() const { return m_roughness_model.certainItem(); } - void setRoughnessModelType(RoughnessModelItem* p) { m_roughness_model.setCertainItem(p); } + InterlayerModelItem* certainRoughnessModel() const { return m_roughness_model.certainItem(); } + void setRoughnessModelType(InterlayerModelItem* p) { m_roughness_model.setCertainItem(p); } protected: RoughnessItem(); - PolyPtr<RoughnessModelItem, RoughnessModelCatalog> m_roughness_model; + PolyPtr<InterlayerModelItem, InterlayerModelCatalog> m_roughness_model; }; class BasicRoughnessItem : public RoughnessItem { diff --git a/GUI/Model/Sample/RoughnessModelItems.h b/GUI/Model/Sample/RoughnessModelItems.h deleted file mode 100644 index dd9c5673006..00000000000 --- a/GUI/Model/Sample/RoughnessModelItems.h +++ /dev/null @@ -1,49 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file GUI/Model/Sample/RoughnessModelItems.h -//! @brief Defines classes RoughnessModelItems. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2024 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#ifndef BORNAGAIN_GUI_MODEL_SAMPLE_ROUGHNESSMODELITEMS_H -#define BORNAGAIN_GUI_MODEL_SAMPLE_ROUGHNESSMODELITEMS_H - -#include "Sample/Interface/RoughnessModels.h" -#include <memory> - -class RoughnessModelItem { -public: - virtual ~RoughnessModelItem() = default; - - virtual void writeTo(QXmlStreamWriter*) const {} - virtual void readFrom(QXmlStreamReader*) {} - - virtual std::unique_ptr<RoughnessModel> createModel() const = 0; - -protected: - RoughnessModelItem() = default; -}; - -class ErfRoughnessItem : public RoughnessModelItem { -public: - ErfRoughnessItem() = default; - std::unique_ptr<RoughnessModel> createModel() const { return std::make_unique<ErfRoughness>(); } -}; - -class TanhRoughnessItem : public RoughnessModelItem { -public: - TanhRoughnessItem() = default; - std::unique_ptr<RoughnessModel> createModel() const - { - return std::make_unique<TanhRoughness>(); - } -}; - -#endif // BORNAGAIN_GUI_MODEL_SAMPLE_ROUGHNESSMODELITEMS_H diff --git a/GUI/View/Sample/PolyForm.cpp b/GUI/View/Sample/PolyForm.cpp index 1ec46bab2e5..809cf395ad5 100644 --- a/GUI/View/Sample/PolyForm.cpp +++ b/GUI/View/Sample/PolyForm.cpp @@ -53,7 +53,7 @@ DoubleProperties PolyForm::doublePropertiesOfItem(FormfactorItem* item) return item->geometryProperties(); } -DoubleProperties PolyForm::doublePropertiesOfItem(RoughnessModelItem*) +DoubleProperties PolyForm::doublePropertiesOfItem(InterlayerModelItem*) { return {}; } diff --git a/GUI/View/Sample/PolyForm.h b/GUI/View/Sample/PolyForm.h index 31174835872..6ce7453abba 100644 --- a/GUI/View/Sample/PolyForm.h +++ b/GUI/View/Sample/PolyForm.h @@ -52,7 +52,7 @@ public: virtual void createContent(); private: - static DoubleProperties doublePropertiesOfItem(class RoughnessModelItem* item); + static DoubleProperties doublePropertiesOfItem(class InterlayerModelItem* item); static DoubleProperties doublePropertiesOfItem(class FormfactorItem* item); static DoubleProperties doublePropertiesOfItem(class Profile1DItem* item); static DoubleProperties doublePropertiesOfItem(class Profile2DItem* item); diff --git a/Resample/Slice/ProfileHelper.cpp b/Resample/Slice/ProfileHelper.cpp index d182d9e8661..0e25c536748 100644 --- a/Resample/Slice/ProfileHelper.cpp +++ b/Resample/Slice/ProfileHelper.cpp @@ -27,7 +27,7 @@ double Transition(double x, const LayerRoughness* roughness) if (!roughness) return Math::Heaviside(x); - return roughness->roughnessModel()->transient(x, roughness->sigma()); + return roughness->interlayerModel()->transient(x, roughness->sigma()); } const std::string SLD = "SLD"; diff --git a/Resample/Specular/ComputeFluxMagnetic.cpp b/Resample/Specular/ComputeFluxMagnetic.cpp index cb2cf20fb64..83e5b8a7302 100644 --- a/Resample/Specular/ComputeFluxMagnetic.cpp +++ b/Resample/Specular/ComputeFluxMagnetic.cpp @@ -117,7 +117,7 @@ Spinor checkForUnderflow(const Spinor& eigenvs) std::pair<SpinMatrix, SpinMatrix> refractionMatrixBlocks(const MatrixFlux& tr_a, const MatrixFlux& tr_b, double sigma, - const RoughnessModel* r_model) + const InterlayerModel* r_model) { ASSERT(sigma >= 0); if (sigma < 10 * std::numeric_limits<double>::epsilon()) { @@ -128,7 +128,7 @@ std::pair<SpinMatrix, SpinMatrix> refractionMatrixBlocks(const MatrixFlux& tr_a, } ASSERT(r_model); - if (dynamic_cast<const ErfRoughness*>(r_model)) + if (dynamic_cast<const ErfInterlayer*>(r_model)) return refractionMatrixBlocksNevot(tr_a, tr_b, sigma); return refractionMatrixBlocksTanh(tr_a, tr_b, sigma); @@ -183,7 +183,7 @@ std::vector<MatrixFlux> computeTR(const SliceStack& slices, const std::vector<co for (size_t i = N - 1; i > 0; --i) { const auto* roughness = slices.bottomRoughness(i); const double sigma = roughness ? roughness->sigma() : 0.; - const auto* r_model = roughness ? roughness->roughnessModel() : nullptr; + const auto* r_model = roughness ? roughness->interlayerModel() : nullptr; // compute the 2x2 blocks of the transfer matrix const auto [sp, sm] = refractionMatrixBlocks(TR[i - 1], TR[i], sigma, r_model); @@ -289,7 +289,7 @@ SpinMatrix Compute::polarizedReflectivity(const SliceStack& slices, MatrixFlux tr_i = createCoeff(i - 1); const auto* roughness = slices.bottomRoughness(i - 1); const double sigma = roughness ? roughness->sigma() : 0.; - const auto* r_model = roughness ? roughness->roughnessModel() : nullptr; + const auto* r_model = roughness ? roughness->interlayerModel() : nullptr; // compute the 2x2 blocks of the transfer matrix const auto [sp, sm] = ::refractionMatrixBlocks(tr_i, tr_i1, sigma, r_model); diff --git a/Resample/Specular/ComputeFluxScalar.cpp b/Resample/Specular/ComputeFluxScalar.cpp index 10a158ff001..7f8a70ddeac 100644 --- a/Resample/Specular/ComputeFluxScalar.cpp +++ b/Resample/Specular/ComputeFluxScalar.cpp @@ -28,7 +28,7 @@ namespace { //! See PhysRef, chapter "Scattering by rough interfaces", section "Interface with tanh profile". std::pair<complex_t, complex_t> transition(complex_t kzi, complex_t kzi1, double sigma, - const RoughnessModel* r_model) + const InterlayerModel* r_model) { const complex_t kz_ratio = kzi1 / kzi; @@ -38,7 +38,7 @@ std::pair<complex_t, complex_t> transition(complex_t kzi, complex_t kzi1, double ASSERT(sigma > 0); ASSERT(r_model); - if (dynamic_cast<const ErfRoughness*>(r_model)) + if (dynamic_cast<const ErfInterlayer*>(r_model)) // Roughness is modelled by a Gaussian profile, i.e. Nevot-Croce factors for the // reflection coefficients. // Implementation follows A. Gibaud and G. Vignaud, in X-ray and Neutron Reflectivity, @@ -85,7 +85,7 @@ std::vector<Spinor> computeTR(const SliceStack& slices, const std::vector<comple const size_t jlast = X[i]; const auto* roughness = slices.bottomRoughness(jthis); const double sigma = roughness ? roughness->sigma() : 0.; - const auto* r_model = roughness ? roughness->roughnessModel() : nullptr; + const auto* r_model = roughness ? roughness->interlayerModel() : nullptr; const auto [slp, slm] = transition(kz[jthis], kz[jlast], sigma, r_model); @@ -139,7 +139,7 @@ complex_t Compute::scalarReflectivity(const SliceStack& slices, const std::vecto for (size_t i = N - 1; i > 0; i--) { const auto* roughness = slices.bottomRoughness(i - 1); const double sigma = roughness ? roughness->sigma() : 0.; - const auto* r_model = roughness ? roughness->roughnessModel() : nullptr; + const auto* r_model = roughness ? roughness->interlayerModel() : nullptr; const auto [sp, sm] = ::transition(kz[i - 1], kz[i], sigma, r_model); diff --git a/Sample/Interface/RoughnessModels.cpp b/Sample/Interface/InterlayerModels.cpp similarity index 64% rename from Sample/Interface/RoughnessModels.cpp rename to Sample/Interface/InterlayerModels.cpp index 7a054246662..a94ac3dfcea 100644 --- a/Sample/Interface/RoughnessModels.cpp +++ b/Sample/Interface/InterlayerModels.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Sample/Interface/RoughnessModels.cpp -//! @brief Implements RoughnessModels enumerator and Python wrapper. +//! @file Sample/Interface/InterlayerModels.cpp +//! @brief Implements InterlayerModel classes. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,7 +12,7 @@ // // ************************************************************************************************ -#include "Sample/Interface/RoughnessModels.h" +#include "Sample/Interface/InterlayerModels.h" #include "Base/Math/Functions.h" #include "Base/Util/Assert.h" #include <cmath> @@ -27,12 +27,12 @@ const double pi_2 = std::sqrt(pi); } // namespace -ErfRoughness::ErfRoughness() - : RoughnessModel() +ErfInterlayer::ErfInterlayer() + : InterlayerModel() { } -double ErfRoughness::transient(double x, double sigma) const +double ErfInterlayer::transient(double x, double sigma) const { ASSERT(sigma >= 0); if (sigma == 0.0) @@ -41,28 +41,28 @@ double ErfRoughness::transient(double x, double sigma) const return (1.0 + std::erf(erf_prefactor * x / sigma)) / 2.0; } -double ErfRoughness::distribution(double x, double sigma) const +double ErfInterlayer::distribution(double x, double sigma) const { ASSERT(sigma > 0); return erf_prefactor / pi_2 / sigma * std::exp(-pow(erf_prefactor * x / sigma, 2)); } -double ErfRoughness::sigmaRange() const +double ErfInterlayer::sigmaRange() const { return 6.; } -ErfRoughness* ErfRoughness::clone() const +ErfInterlayer* ErfInterlayer::clone() const { - return new ErfRoughness; + return new ErfInterlayer; } -TanhRoughness::TanhRoughness() - : RoughnessModel() +TanhInterlayer::TanhInterlayer() + : InterlayerModel() { } -double TanhRoughness::transient(double x, double sigma) const +double TanhInterlayer::transient(double x, double sigma) const { ASSERT(sigma >= 0); if (sigma == 0.0) @@ -71,18 +71,18 @@ double TanhRoughness::transient(double x, double sigma) const return (1.0 + std::tanh(tanh_prefactor * x / sigma)) / 2.0; } -double TanhRoughness::distribution(double x, double sigma) const +double TanhInterlayer::distribution(double x, double sigma) const { ASSERT(sigma > 0); return tanh_prefactor / 2 / sigma / pow(std::cosh(tanh_prefactor * x / sigma), 2); } -double TanhRoughness::sigmaRange() const +double TanhInterlayer::sigmaRange() const { return 11.; } -TanhRoughness* TanhRoughness::clone() const +TanhInterlayer* TanhInterlayer::clone() const { - return new TanhRoughness; + return new TanhInterlayer; } diff --git a/Sample/Interface/RoughnessModels.h b/Sample/Interface/InterlayerModels.h similarity index 58% rename from Sample/Interface/RoughnessModels.h rename to Sample/Interface/InterlayerModels.h index 132efeee079..a839662552a 100644 --- a/Sample/Interface/RoughnessModels.h +++ b/Sample/Interface/InterlayerModels.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit reflection and scattering // -//! @file Sample/Interface/RoughnessModels.h -//! @brief Define RoughnessModels enumerator and Python wrapper. +//! @file Sample/Interface/InterlayerModels.h +//! @brief Define InterlayerModel classes. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,40 +12,40 @@ // // ************************************************************************************************ -#ifndef BORNAGAIN_SAMPLE_INTERFACE_ROUGHNESSMODELS_H -#define BORNAGAIN_SAMPLE_INTERFACE_ROUGHNESSMODELS_H +#ifndef BORNAGAIN_SAMPLE_INTERFACE_INTERLAYERMODELS_H +#define BORNAGAIN_SAMPLE_INTERFACE_INTERLAYERMODELS_H #include "Base/Type/ICloneable.h" #include "Param/Node/INode.h" -class RoughnessModel : public ICloneable, public INode { +class InterlayerModel : public ICloneable, public INode { public: - RoughnessModel* clone() const override = 0; + InterlayerModel* clone() const override = 0; virtual double transient(double x, double sigma) const = 0; virtual double distribution(double x, double sigma) const = 0; virtual double sigmaRange() const = 0; }; -class ErfRoughness : public RoughnessModel { +class ErfInterlayer : public InterlayerModel { public: - ErfRoughness(); + ErfInterlayer(); double transient(double x, double sigma) const override; double distribution(double x, double sigma) const override; double sigmaRange() const override; - ErfRoughness* clone() const override; - std::string className() const override { return "ErfRoughness"; } + ErfInterlayer* clone() const override; + std::string className() const override { return "ErfInterlayer"; } }; -class TanhRoughness : public RoughnessModel { +class TanhInterlayer : public InterlayerModel { public: - TanhRoughness(); + TanhInterlayer(); double transient(double x, double sigma) const override; double distribution(double x, double sigma) const override; double sigmaRange() const override; - TanhRoughness* clone() const override; - std::string className() const override { return "TanhRoughness"; } + TanhInterlayer* clone() const override; + std::string className() const override { return "TanhInterlayer"; } }; -using DefaultRoughness = TanhRoughness; +using DefaultInterlayer = TanhInterlayer; -#endif // BORNAGAIN_SAMPLE_INTERFACE_ROUGHNESSMODELS_H +#endif // BORNAGAIN_SAMPLE_INTERFACE_INTERLAYERMODELS_H diff --git a/Sample/Interface/LayerRoughness.cpp b/Sample/Interface/LayerRoughness.cpp index 217afd3a192..41418e176ea 100644 --- a/Sample/Interface/LayerRoughness.cpp +++ b/Sample/Interface/LayerRoughness.cpp @@ -27,17 +27,17 @@ using std::numbers::pi; //! @param lateralCorrLength: lateral correlation length of the roughness in nanometers //! @param profileModel: shape of the interfacial transition region LayerRoughness::LayerRoughness(double sigma, double hurstParameter, double lateralCorrLength, - const RoughnessModel* roughnessModel) + const InterlayerModel* interlayerModel) : m_sigma(sigma) , m_hurst_parameter(hurstParameter) , m_lateral_corr_length(lateralCorrLength) { - setRoughnessModel(roughnessModel); + setInterlayerModel(interlayerModel); validateOrThrow(); } -LayerRoughness::LayerRoughness(double sigma, const RoughnessModel* roughnessModel) - : LayerRoughness(sigma, 0, 0, roughnessModel) +LayerRoughness::LayerRoughness(double sigma, const InterlayerModel* interlayerModel) + : LayerRoughness(sigma, 0, 0, interlayerModel) { } @@ -49,12 +49,12 @@ LayerRoughness::LayerRoughness() LayerRoughness* LayerRoughness::clone() const { return new LayerRoughness(m_sigma, m_hurst_parameter, m_lateral_corr_length, - m_roughness_model.get()); + m_interlayer_model.get()); } std::vector<const INode*> LayerRoughness::nodeChildren() const { - return std::vector<const INode*>() << m_roughness_model; + return std::vector<const INode*>() << m_interlayer_model; } //! Power spectral density of the surface roughness is a result of two-dimensional @@ -101,10 +101,10 @@ std::string LayerRoughness::validate() const return ""; } -void LayerRoughness::setRoughnessModel(const RoughnessModel* roughnessModel) +void LayerRoughness::setInterlayerModel(const InterlayerModel* interlayerModel) { - if (!roughnessModel) - m_roughness_model = std::make_unique<DefaultRoughness>(); + if (!interlayerModel) + m_interlayer_model = std::make_unique<DefaultInterlayer>(); else - m_roughness_model.reset(roughnessModel->clone()); + m_interlayer_model.reset(interlayerModel->clone()); } diff --git a/Sample/Interface/LayerRoughness.h b/Sample/Interface/LayerRoughness.h index cd86f383e5e..82036b46cc7 100644 --- a/Sample/Interface/LayerRoughness.h +++ b/Sample/Interface/LayerRoughness.h @@ -15,7 +15,7 @@ #ifndef BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H #define BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H -#include "Sample/Interface/RoughnessModels.h" +#include "Sample/Interface/InterlayerModels.h" #include "Sample/Scattering/ISampleNode.h" #include <heinz/Vectors3D.h> @@ -27,8 +27,8 @@ class LayerRoughness : public ISampleNode { public: LayerRoughness(double sigma, double hurstParameter = 0, double lateralCorrLength = 0, - const RoughnessModel* roughnessModel = nullptr); - LayerRoughness(double sigma, const RoughnessModel* roughnessModel); + const InterlayerModel* interlayerModel = nullptr); + LayerRoughness(double sigma, const InterlayerModel* interlayerModel); LayerRoughness(); LayerRoughness* clone() const override; @@ -74,17 +74,17 @@ public: std::string validate() const override; - void setRoughnessModel(const RoughnessModel* roughnessModel); - const RoughnessModel* roughnessModel() const + void setInterlayerModel(const InterlayerModel* interlayerModel); + const InterlayerModel* interlayerModel() const { - return m_roughness_model.get(); + return m_interlayer_model.get(); } private: double m_sigma; //!< rms of roughness double m_hurst_parameter; //!< Hurst parameter which describes how jagged the interface, 0<H<=1 double m_lateral_corr_length; //!< lateral correlation length of the roughness - std::unique_ptr<RoughnessModel> m_roughness_model; // never nullptr + std::unique_ptr<InterlayerModel> m_interlayer_model; // never nullptr }; #endif // BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H diff --git a/Sample/Interface/RoughnessMap.cpp b/Sample/Interface/RoughnessMap.cpp index ddad4ca7782..84d766dcac8 100644 --- a/Sample/Interface/RoughnessMap.cpp +++ b/Sample/Interface/RoughnessMap.cpp @@ -71,7 +71,7 @@ double2d_t RoughnessMap::mapFromHeights() const { const size_t z_steps = 3999; const double sigma = m_layerRoughness->sigma(); - const double sigma_factor = m_layerRoughness->roughnessModel()->sigmaRange(); + const double sigma_factor = m_layerRoughness->interlayerModel()->sigmaRange(); const double z_limit = sigma * sigma_factor; const double step = 2 * z_limit / (z_steps - 1); @@ -83,7 +83,7 @@ double2d_t RoughnessMap::mapFromHeights() const // fill mesh with weights std::vector<double> z_weights(z_steps); for (size_t i = 0; i < z_steps; i++) - z_weights[i] = m_layerRoughness->roughnessModel()->distribution(z_points[i], sigma); + z_weights[i] = m_layerRoughness->interlayerModel()->distribution(z_points[i], sigma); // fill map with random values std::discrete_distribution<int> d(z_weights.begin(), z_weights.end()); diff --git a/Sample/Multilayer/MultiLayer.h b/Sample/Multilayer/MultiLayer.h index 56f835a1912..d4c1df189a6 100644 --- a/Sample/Multilayer/MultiLayer.h +++ b/Sample/Multilayer/MultiLayer.h @@ -16,7 +16,7 @@ #define BORNAGAIN_SAMPLE_MULTILAYER_MULTILAYER_H #include "Base/Type/OwningVector.h" -#include "Sample/Interface/RoughnessModels.h" +#include "Sample/Interface/InterlayerModels.h" #include "Sample/Scattering/ISampleNode.h" #include <functional> #include <heinz/Vectors3D.h> diff --git a/Sample/StandardSample/FeNiBilayerBuilder.cpp b/Sample/StandardSample/FeNiBilayerBuilder.cpp index 53a7401c807..13ba4135704 100644 --- a/Sample/StandardSample/FeNiBilayerBuilder.cpp +++ b/Sample/StandardSample/FeNiBilayerBuilder.cpp @@ -41,7 +41,7 @@ public: double m_thickness_ni = 40. * Units::angstrom; double m_sigma_roughness = 0.; int m_effectiveSLD = 0; - std::unique_ptr<RoughnessModel> m_roughness_model; + std::unique_ptr<InterlayerModel> m_interlayer_model; Options() = default; void setNBilayers(int n) { m_NBilayers = n; } @@ -51,7 +51,7 @@ public: void setThicknessNi(double t) { m_thickness_ni = t; } void setSigmaRoughness(double r) { m_sigma_roughness = r; } void setEffectiveSLD(int i) { m_effectiveSLD = i; } - void setRoughnessModel(RoughnessModel* rm) { m_roughness_model.reset(rm); } + void setInterlayerModel(InterlayerModel* im) { m_interlayer_model.reset(im); } }; @@ -66,7 +66,7 @@ public: , thicknessNi(opt.m_thickness_ni) , sigmaRoughness(opt.m_sigma_roughness) , effectiveSLD(opt.m_effectiveSLD) - , roughnessModel(opt.m_roughness_model ? opt.m_roughness_model->clone() : nullptr) + , interlayerModel(opt.m_interlayer_model ? opt.m_interlayer_model->clone() : nullptr) { if (angle != 0. && effectiveSLD != 0.) throw std::runtime_error("Cannot perform scalar computation " @@ -87,7 +87,7 @@ private: double thicknessNi; double sigmaRoughness; int effectiveSLD; - std::unique_ptr<RoughnessModel> roughnessModel; + std::unique_ptr<InterlayerModel> interlayerModel; R3 magnetizationVector; @@ -113,7 +113,7 @@ std::unique_ptr<MultiLayer> FeNiBilayer::constructSample() Layer l_Fe{m_Fe, thicknessFe}; Layer l_Ni{m_Ni, thicknessNi}; - LayerRoughness roughness{sigmaRoughness, 0., 0., roughnessModel.get()}; + LayerRoughness roughness{sigmaRoughness, 0., 0., interlayerModel.get()}; result->addLayer(Layer{m_ambient}); for (auto i = 0; i < NBilayers; ++i) { @@ -138,7 +138,7 @@ MultiLayer* ExemplarySamples::createFeNiBilayerTanh() { Options opt; opt.setSigmaRoughness(2. * Units::angstrom); - opt.setRoughnessModel(new TanhRoughness); + opt.setInterlayerModel(new TanhInterlayer); auto sample = FeNiBilayer{std::move(opt)}; return sample.release(); } @@ -147,7 +147,7 @@ MultiLayer* ExemplarySamples::createFeNiBilayerNC() { Options opt; opt.setSigmaRoughness(2. * Units::angstrom); - opt.setRoughnessModel(new ErfRoughness); + opt.setInterlayerModel(new ErfInterlayer); auto sample = FeNiBilayer{std::move(opt)}; return sample.release(); } @@ -165,7 +165,7 @@ MultiLayer* ExemplarySamples::createFeNiBilayerSpinFlipTanh() Options opt; opt.setAngle(38. * deg); opt.setSigmaRoughness(2. * Units::angstrom); - opt.setRoughnessModel(new TanhRoughness); + opt.setInterlayerModel(new TanhInterlayer); auto sample = FeNiBilayer{std::move(opt)}; return sample.release(); } @@ -175,7 +175,7 @@ MultiLayer* ExemplarySamples::createFeNiBilayerSpinFlipNC() Options opt; opt.setAngle(38. * deg); opt.setSigmaRoughness(2. * Units::angstrom); - opt.setRoughnessModel(new ErfRoughness); + opt.setInterlayerModel(new ErfInterlayer); auto sample = FeNiBilayer{std::move(opt)}; return sample.release(); } diff --git a/Sample/StandardSample/MagneticLayersBuilder.cpp b/Sample/StandardSample/MagneticLayersBuilder.cpp index c8c22aa1354..096deb187b4 100644 --- a/Sample/StandardSample/MagneticLayersBuilder.cpp +++ b/Sample/StandardSample/MagneticLayersBuilder.cpp @@ -114,16 +114,16 @@ MultiLayer* ExemplarySamples::createSimpleMagneticRotationWithRoughness(const std::string& roughnessKey) { double sigmaRoughness = 0.; - std::unique_ptr<RoughnessModel> roughnessModel; + std::unique_ptr<InterlayerModel> interlayerModel; if (roughnessKey == "Flat") { sigmaRoughness = 0.; } else if (roughnessKey == "Tanh") { sigmaRoughness = 2. * Units::angstrom; - roughnessModel = std::make_unique<TanhRoughness>(); + interlayerModel = std::make_unique<TanhInterlayer>(); } else if (roughnessKey == "Erf") { sigmaRoughness = 2. * Units::angstrom; - roughnessModel = std::make_unique<ErfRoughness>(); + interlayerModel = std::make_unique<ErfInterlayer>(); } else ASSERT_NEVER; @@ -137,7 +137,7 @@ ExemplarySamples::createSimpleMagneticRotationWithRoughness(const std::string& r auto roughness = LayerRoughness(); roughness.setSigma(sigmaRoughness); - roughness.setRoughnessModel(roughnessModel.get()); + roughness.setInterlayerModel(interlayerModel.get()); Layer vacuum_layer(vacuum_material); Layer substrate_layer(substrate_material); diff --git a/Sample/StandardSample/MagneticLayersBuilder.h b/Sample/StandardSample/MagneticLayersBuilder.h index 5c62d7de809..7c02853b44c 100644 --- a/Sample/StandardSample/MagneticLayersBuilder.h +++ b/Sample/StandardSample/MagneticLayersBuilder.h @@ -20,7 +20,7 @@ class MultiLayer; -#include "Sample/Interface/RoughnessModels.h" +#include "Sample/Interface/InterlayerModels.h" #include <string> //! Builds sample: spheres in substrate layer with a zero magnetic field. diff --git a/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp b/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp index e097e4a7ff7..af591ef3ab7 100644 --- a/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp +++ b/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp @@ -19,7 +19,7 @@ #include "Sample/Multilayer/MultiLayer.h" namespace { -MultiLayer* createMultiLayerWithRoughnessModel(const RoughnessModel* roughnessModel) +MultiLayer* createMultiLayerWithInterlayerModel(const InterlayerModel* interlayerModel) { const double thicknessA(2.5); const double thicknessB(5.0); @@ -38,7 +38,7 @@ MultiLayer* createMultiLayerWithRoughnessModel(const RoughnessModel* roughnessMo Layer partB_layer(part_b_material, thicknessB); Layer substrate_layer(substrate_material, 0); - LayerRoughness roughness(sigma, hurst, lateralCorrLength, roughnessModel); + LayerRoughness roughness(sigma, hurst, lateralCorrLength, interlayerModel); auto* sample = new MultiLayer; sample->addLayer(vacuum_layer); @@ -54,11 +54,11 @@ MultiLayer* createMultiLayerWithRoughnessModel(const RoughnessModel* roughnessMo MultiLayer* ExemplarySamples::createMultiLayerWithRoughness() { - return createMultiLayerWithRoughnessModel(nullptr); + return createMultiLayerWithInterlayerModel(nullptr); } MultiLayer* ExemplarySamples::createMultiLayerWithNCRoughness() { - std::unique_ptr<RoughnessModel> rm = std::make_unique<ErfRoughness>(); - return createMultiLayerWithRoughnessModel(rm.get()); + std::unique_ptr<InterlayerModel> rm = std::make_unique<ErfInterlayer>(); + return createMultiLayerWithInterlayerModel(rm.get()); } diff --git a/Sim/Export/SampleToPython.cpp b/Sim/Export/SampleToPython.cpp index a3b3436aca4..a95bd26ff84 100644 --- a/Sim/Export/SampleToPython.cpp +++ b/Sim/Export/SampleToPython.cpp @@ -153,7 +153,7 @@ std::string defineRoughnesses(const ComponentKeyHandler& objHandler) result << "\n" << indent() << "# Define roughness\n"; std::vector<const LayerRoughness*> lr = objHandler.objectsOfType<LayerRoughness>(); - std::vector<const RoughnessModel*> rm = objHandler.objectsOfType<RoughnessModel>(); + std::vector<const InterlayerModel*> rm = objHandler.objectsOfType<InterlayerModel>(); ASSERT(lr.size() == rm.size()); if (lr.empty()) return ""; @@ -526,7 +526,7 @@ std::string SampleToPython::sampleCode(const MultiLayer& sample) objHandler.insertModel("layer", x); for (const auto* x : NodeUtil::AllDescendantsOfType<LayerRoughness>(sample)) objHandler.insertModel("roughness", x); - for (const auto* x : NodeUtil::AllDescendantsOfType<RoughnessModel>(sample)) + for (const auto* x : NodeUtil::AllDescendantsOfType<InterlayerModel>(sample)) objHandler.insertModel("interlayer", x); for (const auto* x : NodeUtil::AllDescendantsOfType<ParticleLayout>(sample)) objHandler.insertModel("layout", x); diff --git a/Wrap/Swig/libBornAgainSample.i b/Wrap/Swig/libBornAgainSample.i index 3f97eaf9704..bc68a3c8fb9 100644 --- a/Wrap/Swig/libBornAgainSample.i +++ b/Wrap/Swig/libBornAgainSample.i @@ -103,7 +103,7 @@ %include "Sample/Multilayer/Layer.h" %include "Sample/Multilayer/MultiLayer.h" -%include "Sample/Interface/RoughnessModels.h" +%include "Sample/Interface/InterlayerModels.h" %include "Sample/HardParticle/IFormfactorPolyhedron.h" %include "Sample/HardParticle/IFormfactorPrism.h" diff --git a/auto/Examples/fit/specular/Honeycomb_fit.py b/auto/Examples/fit/specular/Honeycomb_fit.py index e67e00e6fcb..7a214173a30 100755 --- a/auto/Examples/fit/specular/Honeycomb_fit.py +++ b/auto/Examples/fit/specular/Honeycomb_fit.py @@ -48,7 +48,7 @@ def get_sample(P, sign, T): l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom) l_Si = ba.Layer(material_Si) - roughness_model = ba.ErfRoughness() + roughness_model = ba.ErfInterlayer() rPyOx = ba.LayerRoughness(P["rPyOx"]*angstrom, roughness_model) rPy2 = ba.LayerRoughness(P["rPy2"]*angstrom, roughness_model) rPy1 = ba.LayerRoughness(P["rPy1"]*angstrom, roughness_model) diff --git a/auto/Examples/specular/RoughnessModel.py b/auto/Examples/specular/RoughnessModel.py index 31c3d448e02..55bca4e98f3 100755 --- a/auto/Examples/specular/RoughnessModel.py +++ b/auto/Examples/specular/RoughnessModel.py @@ -57,8 +57,8 @@ def simulate(roughness_model, title): if __name__ == '__main__': results = [ - simulate(ba.ErfRoughness(), "Névot-Croce"), - simulate(ba.TanhRoughness(), "Tanh"), + simulate(ba.ErfInterlayer(), "Névot-Croce"), + simulate(ba.TanhInterlayer(), "Tanh"), ] bp.plot_multicurve(results) diff --git a/auto/Examples/varia/MaterialProfile.py b/auto/Examples/varia/MaterialProfile.py index bd7e7d0278d..1f7181a7a4e 100755 --- a/auto/Examples/varia/MaterialProfile.py +++ b/auto/Examples/varia/MaterialProfile.py @@ -29,7 +29,7 @@ def get_sample(): # sample sample = ba.MultiLayer() sample.addLayer(ambient_layer) - roughness_model = ba.TanhRoughness() + roughness_model = ba.TanhInterlayer() roughness = ba.LayerRoughness(5*angstrom, 0.5, 10*angstrom, roughness_model) for _ in range(4): sample.addLayerWithTopRoughness(ti_layer, roughness) diff --git a/auto/Examples/varia/RoughSurface.py b/auto/Examples/varia/RoughSurface.py index 9f86b9bb24e..5b11b64e82d 100755 --- a/auto/Examples/varia/RoughSurface.py +++ b/auto/Examples/varia/RoughSurface.py @@ -46,7 +46,7 @@ def plot(h): sigma = 1*nm alpha = 0.5 xi = 35*nm -height_distribution = ba.ErfRoughness() +height_distribution = ba.ErfInterlayer() # sample size Lx = 1000*nm diff --git a/auto/MiniExamples/fit/specular/Honeycomb_fit.py b/auto/MiniExamples/fit/specular/Honeycomb_fit.py index 54c11676bb7..4ece8ee460d 100755 --- a/auto/MiniExamples/fit/specular/Honeycomb_fit.py +++ b/auto/MiniExamples/fit/specular/Honeycomb_fit.py @@ -48,7 +48,7 @@ def get_sample(P, sign, T): l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom) l_Si = ba.Layer(material_Si) - roughness_model = ba.ErfRoughness() + roughness_model = ba.ErfInterlayer() rPyOx = ba.LayerRoughness(P["rPyOx"]*angstrom, roughness_model) rPy2 = ba.LayerRoughness(P["rPy2"]*angstrom, roughness_model) rPy1 = ba.LayerRoughness(P["rPy1"]*angstrom, roughness_model) diff --git a/auto/MiniExamples/specular/RoughnessModel.py b/auto/MiniExamples/specular/RoughnessModel.py index b8de9ff317b..d1209dcea63 100755 --- a/auto/MiniExamples/specular/RoughnessModel.py +++ b/auto/MiniExamples/specular/RoughnessModel.py @@ -57,8 +57,8 @@ def simulate(roughness_model, title): if __name__ == '__main__': results = [ - simulate(ba.ErfRoughness(), "Névot-Croce"), - simulate(ba.TanhRoughness(), "Tanh"), + simulate(ba.ErfInterlayer(), "Névot-Croce"), + simulate(ba.TanhInterlayer(), "Tanh"), ] bp.plot_multicurve(results) diff --git a/auto/MiniExamples/varia/MaterialProfile.py b/auto/MiniExamples/varia/MaterialProfile.py index bd7e7d0278d..1f7181a7a4e 100755 --- a/auto/MiniExamples/varia/MaterialProfile.py +++ b/auto/MiniExamples/varia/MaterialProfile.py @@ -29,7 +29,7 @@ def get_sample(): # sample sample = ba.MultiLayer() sample.addLayer(ambient_layer) - roughness_model = ba.TanhRoughness() + roughness_model = ba.TanhInterlayer() roughness = ba.LayerRoughness(5*angstrom, 0.5, 10*angstrom, roughness_model) for _ in range(4): sample.addLayerWithTopRoughness(ti_layer, roughness) diff --git a/auto/MiniExamples/varia/RoughSurface.py b/auto/MiniExamples/varia/RoughSurface.py index 34810eddd1b..d798b4eb561 100755 --- a/auto/MiniExamples/varia/RoughSurface.py +++ b/auto/MiniExamples/varia/RoughSurface.py @@ -46,7 +46,7 @@ def plot(h): sigma = 1*nm alpha = 0.5 xi = 35*nm -height_distribution = ba.ErfRoughness() +height_distribution = ba.ErfInterlayer() # sample size Lx = 1000*nm diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py index 140d4b9ff6f..d6716eb108d 100644 --- a/auto/Wrap/libBornAgainSample.py +++ b/auto/Wrap/libBornAgainSample.py @@ -4177,8 +4177,8 @@ class LayerRoughness(ISampleNode): def __init__(self, *args): r""" - __init__(LayerRoughness self, double sigma, double hurstParameter=0, double lateralCorrLength=0, RoughnessModel roughnessModel=None) -> LayerRoughness - __init__(LayerRoughness self, double sigma, RoughnessModel roughnessModel) -> LayerRoughness + __init__(LayerRoughness self, double sigma, double hurstParameter=0, double lateralCorrLength=0, InterlayerModel interlayerModel=None) -> LayerRoughness + __init__(LayerRoughness self, double sigma, InterlayerModel interlayerModel) -> LayerRoughness __init__(LayerRoughness self) -> LayerRoughness """ _libBornAgainSample.LayerRoughness_swiginit(self, _libBornAgainSample.new_LayerRoughness(*args)) @@ -4235,13 +4235,13 @@ class LayerRoughness(ISampleNode): r"""validate(LayerRoughness self) -> std::string""" return _libBornAgainSample.LayerRoughness_validate(self) - def setRoughnessModel(self, roughnessModel): - r"""setRoughnessModel(LayerRoughness self, RoughnessModel roughnessModel)""" - return _libBornAgainSample.LayerRoughness_setRoughnessModel(self, roughnessModel) + def setInterlayerModel(self, interlayerModel): + r"""setInterlayerModel(LayerRoughness self, InterlayerModel interlayerModel)""" + return _libBornAgainSample.LayerRoughness_setInterlayerModel(self, interlayerModel) - def roughnessModel(self): - r"""roughnessModel(LayerRoughness self) -> RoughnessModel""" - return _libBornAgainSample.LayerRoughness_roughnessModel(self) + def interlayerModel(self): + r"""interlayerModel(LayerRoughness self) -> InterlayerModel""" + return _libBornAgainSample.LayerRoughness_interlayerModel(self) __swig_destroy__ = _libBornAgainSample.delete_LayerRoughness # Register LayerRoughness in _libBornAgainSample: @@ -4341,8 +4341,8 @@ class MultiLayer(ISampleNode): # Register MultiLayer in _libBornAgainSample: _libBornAgainSample.MultiLayer_swigregister(MultiLayer) -class RoughnessModel(libBornAgainBase.ICloneable, libBornAgainParam.INode): - r"""Proxy of C++ RoughnessModel class.""" +class InterlayerModel(libBornAgainBase.ICloneable, libBornAgainParam.INode): + r"""Proxy of C++ InterlayerModel class.""" thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") @@ -4351,90 +4351,90 @@ class RoughnessModel(libBornAgainBase.ICloneable, libBornAgainParam.INode): __repr__ = _swig_repr def clone(self): - r"""clone(RoughnessModel self) -> RoughnessModel""" - return _libBornAgainSample.RoughnessModel_clone(self) + r"""clone(InterlayerModel self) -> InterlayerModel""" + return _libBornAgainSample.InterlayerModel_clone(self) def transient(self, x, sigma): - r"""transient(RoughnessModel self, double x, double sigma) -> double""" - return _libBornAgainSample.RoughnessModel_transient(self, x, sigma) + r"""transient(InterlayerModel self, double x, double sigma) -> double""" + return _libBornAgainSample.InterlayerModel_transient(self, x, sigma) def distribution(self, x, sigma): - r"""distribution(RoughnessModel self, double x, double sigma) -> double""" - return _libBornAgainSample.RoughnessModel_distribution(self, x, sigma) + r"""distribution(InterlayerModel self, double x, double sigma) -> double""" + return _libBornAgainSample.InterlayerModel_distribution(self, x, sigma) def sigmaRange(self): - r"""sigmaRange(RoughnessModel self) -> double""" - return _libBornAgainSample.RoughnessModel_sigmaRange(self) - __swig_destroy__ = _libBornAgainSample.delete_RoughnessModel + r"""sigmaRange(InterlayerModel self) -> double""" + return _libBornAgainSample.InterlayerModel_sigmaRange(self) + __swig_destroy__ = _libBornAgainSample.delete_InterlayerModel -# Register RoughnessModel in _libBornAgainSample: -_libBornAgainSample.RoughnessModel_swigregister(RoughnessModel) -class ErfRoughness(RoughnessModel): - r"""Proxy of C++ ErfRoughness class.""" +# Register InterlayerModel in _libBornAgainSample: +_libBornAgainSample.InterlayerModel_swigregister(InterlayerModel) +class ErfInterlayer(InterlayerModel): + r"""Proxy of C++ ErfInterlayer class.""" thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") __repr__ = _swig_repr def __init__(self): - r"""__init__(ErfRoughness self) -> ErfRoughness""" - _libBornAgainSample.ErfRoughness_swiginit(self, _libBornAgainSample.new_ErfRoughness()) + r"""__init__(ErfInterlayer self) -> ErfInterlayer""" + _libBornAgainSample.ErfInterlayer_swiginit(self, _libBornAgainSample.new_ErfInterlayer()) def transient(self, x, sigma): - r"""transient(ErfRoughness self, double x, double sigma) -> double""" - return _libBornAgainSample.ErfRoughness_transient(self, x, sigma) + r"""transient(ErfInterlayer self, double x, double sigma) -> double""" + return _libBornAgainSample.ErfInterlayer_transient(self, x, sigma) def distribution(self, x, sigma): - r"""distribution(ErfRoughness self, double x, double sigma) -> double""" - return _libBornAgainSample.ErfRoughness_distribution(self, x, sigma) + r"""distribution(ErfInterlayer self, double x, double sigma) -> double""" + return _libBornAgainSample.ErfInterlayer_distribution(self, x, sigma) def sigmaRange(self): - r"""sigmaRange(ErfRoughness self) -> double""" - return _libBornAgainSample.ErfRoughness_sigmaRange(self) + r"""sigmaRange(ErfInterlayer self) -> double""" + return _libBornAgainSample.ErfInterlayer_sigmaRange(self) def clone(self): - r"""clone(ErfRoughness self) -> ErfRoughness""" - return _libBornAgainSample.ErfRoughness_clone(self) + r"""clone(ErfInterlayer self) -> ErfInterlayer""" + return _libBornAgainSample.ErfInterlayer_clone(self) def className(self): - r"""className(ErfRoughness self) -> std::string""" - return _libBornAgainSample.ErfRoughness_className(self) - __swig_destroy__ = _libBornAgainSample.delete_ErfRoughness + r"""className(ErfInterlayer self) -> std::string""" + return _libBornAgainSample.ErfInterlayer_className(self) + __swig_destroy__ = _libBornAgainSample.delete_ErfInterlayer -# Register ErfRoughness in _libBornAgainSample: -_libBornAgainSample.ErfRoughness_swigregister(ErfRoughness) -class TanhRoughness(RoughnessModel): - r"""Proxy of C++ TanhRoughness class.""" +# Register ErfInterlayer in _libBornAgainSample: +_libBornAgainSample.ErfInterlayer_swigregister(ErfInterlayer) +class TanhInterlayer(InterlayerModel): + r"""Proxy of C++ TanhInterlayer class.""" thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") __repr__ = _swig_repr def __init__(self): - r"""__init__(TanhRoughness self) -> TanhRoughness""" - _libBornAgainSample.TanhRoughness_swiginit(self, _libBornAgainSample.new_TanhRoughness()) + r"""__init__(TanhInterlayer self) -> TanhInterlayer""" + _libBornAgainSample.TanhInterlayer_swiginit(self, _libBornAgainSample.new_TanhInterlayer()) def transient(self, x, sigma): - r"""transient(TanhRoughness self, double x, double sigma) -> double""" - return _libBornAgainSample.TanhRoughness_transient(self, x, sigma) + r"""transient(TanhInterlayer self, double x, double sigma) -> double""" + return _libBornAgainSample.TanhInterlayer_transient(self, x, sigma) def distribution(self, x, sigma): - r"""distribution(TanhRoughness self, double x, double sigma) -> double""" - return _libBornAgainSample.TanhRoughness_distribution(self, x, sigma) + r"""distribution(TanhInterlayer self, double x, double sigma) -> double""" + return _libBornAgainSample.TanhInterlayer_distribution(self, x, sigma) def sigmaRange(self): - r"""sigmaRange(TanhRoughness self) -> double""" - return _libBornAgainSample.TanhRoughness_sigmaRange(self) + r"""sigmaRange(TanhInterlayer self) -> double""" + return _libBornAgainSample.TanhInterlayer_sigmaRange(self) def clone(self): - r"""clone(TanhRoughness self) -> TanhRoughness""" - return _libBornAgainSample.TanhRoughness_clone(self) + r"""clone(TanhInterlayer self) -> TanhInterlayer""" + return _libBornAgainSample.TanhInterlayer_clone(self) def className(self): - r"""className(TanhRoughness self) -> std::string""" - return _libBornAgainSample.TanhRoughness_className(self) - __swig_destroy__ = _libBornAgainSample.delete_TanhRoughness + r"""className(TanhInterlayer self) -> std::string""" + return _libBornAgainSample.TanhInterlayer_className(self) + __swig_destroy__ = _libBornAgainSample.delete_TanhInterlayer -# Register TanhRoughness in _libBornAgainSample: -_libBornAgainSample.TanhRoughness_swigregister(TanhRoughness) +# Register TanhInterlayer in _libBornAgainSample: +_libBornAgainSample.TanhInterlayer_swigregister(TanhInterlayer) class IFormfactorPolyhedron(IFormfactor): r"""Proxy of C++ IFormfactorPolyhedron class.""" diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp index ac4058afedf..e5acef4f63c 100644 --- a/auto/Wrap/libBornAgainSample_wrap.cpp +++ b/auto/Wrap/libBornAgainSample_wrap.cpp @@ -3661,7 +3661,7 @@ namespace Swig { #define SWIGTYPE_p_Cylinder swig_types[13] #define SWIGTYPE_p_Dodecahedron swig_types[14] #define SWIGTYPE_p_EllipsoidalCylinder swig_types[15] -#define SWIGTYPE_p_ErfRoughness swig_types[16] +#define SWIGTYPE_p_ErfInterlayer swig_types[16] #define SWIGTYPE_p_FuzzySphere swig_types[17] #define SWIGTYPE_p_GaussFisherPeakShape swig_types[18] #define SWIGTYPE_p_GaussSphere swig_types[19] @@ -3696,51 +3696,51 @@ namespace Swig { #define SWIGTYPE_p_InterferenceHardDisk swig_types[48] #define SWIGTYPE_p_InterferenceNone swig_types[49] #define SWIGTYPE_p_InterferenceRadialParacrystal swig_types[50] -#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[51] -#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[52] -#define SWIGTYPE_p_Lattice2D swig_types[53] -#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[54] -#define SWIGTYPE_p_Lattice3D swig_types[55] -#define SWIGTYPE_p_Layer swig_types[56] -#define SWIGTYPE_p_LayerRoughness swig_types[57] -#define SWIGTYPE_p_LongBoxGauss swig_types[58] -#define SWIGTYPE_p_LongBoxLorentz swig_types[59] -#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[60] -#define SWIGTYPE_p_Material swig_types[61] -#define SWIGTYPE_p_MaterialBySLDImpl swig_types[62] -#define SWIGTYPE_p_Mesocrystal swig_types[63] -#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[64] -#define SWIGTYPE_p_MisesGaussPeakShape swig_types[65] -#define SWIGTYPE_p_MultiLayer swig_types[66] -#define SWIGTYPE_p_Particle swig_types[67] -#define SWIGTYPE_p_ParticleLayout swig_types[68] -#define SWIGTYPE_p_PlatonicOctahedron swig_types[69] -#define SWIGTYPE_p_PlatonicTetrahedron swig_types[70] -#define SWIGTYPE_p_Prism3 swig_types[71] -#define SWIGTYPE_p_Prism6 swig_types[72] -#define SWIGTYPE_p_Profile1DCauchy swig_types[73] -#define SWIGTYPE_p_Profile1DCosine swig_types[74] -#define SWIGTYPE_p_Profile1DGate swig_types[75] -#define SWIGTYPE_p_Profile1DGauss swig_types[76] -#define SWIGTYPE_p_Profile1DTriangle swig_types[77] -#define SWIGTYPE_p_Profile1DVoigt swig_types[78] -#define SWIGTYPE_p_Profile2DCauchy swig_types[79] -#define SWIGTYPE_p_Profile2DCone swig_types[80] -#define SWIGTYPE_p_Profile2DGate swig_types[81] -#define SWIGTYPE_p_Profile2DGauss swig_types[82] -#define SWIGTYPE_p_Profile2DVoigt swig_types[83] -#define SWIGTYPE_p_Pyramid2 swig_types[84] -#define SWIGTYPE_p_Pyramid3 swig_types[85] -#define SWIGTYPE_p_Pyramid4 swig_types[86] -#define SWIGTYPE_p_Pyramid6 swig_types[87] -#define SWIGTYPE_p_RefractiveMaterialImpl swig_types[88] -#define SWIGTYPE_p_Rotation3DT_double_t swig_types[89] -#define SWIGTYPE_p_RotationEuler swig_types[90] -#define SWIGTYPE_p_RotationX swig_types[91] -#define SWIGTYPE_p_RotationY swig_types[92] -#define SWIGTYPE_p_RotationZ swig_types[93] -#define SWIGTYPE_p_RoughnessMap swig_types[94] -#define SWIGTYPE_p_RoughnessModel swig_types[95] +#define SWIGTYPE_p_InterlayerModel swig_types[51] +#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[52] +#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[53] +#define SWIGTYPE_p_Lattice2D swig_types[54] +#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[55] +#define SWIGTYPE_p_Lattice3D swig_types[56] +#define SWIGTYPE_p_Layer swig_types[57] +#define SWIGTYPE_p_LayerRoughness swig_types[58] +#define SWIGTYPE_p_LongBoxGauss swig_types[59] +#define SWIGTYPE_p_LongBoxLorentz swig_types[60] +#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[61] +#define SWIGTYPE_p_Material swig_types[62] +#define SWIGTYPE_p_MaterialBySLDImpl swig_types[63] +#define SWIGTYPE_p_Mesocrystal swig_types[64] +#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[65] +#define SWIGTYPE_p_MisesGaussPeakShape swig_types[66] +#define SWIGTYPE_p_MultiLayer swig_types[67] +#define SWIGTYPE_p_Particle swig_types[68] +#define SWIGTYPE_p_ParticleLayout swig_types[69] +#define SWIGTYPE_p_PlatonicOctahedron swig_types[70] +#define SWIGTYPE_p_PlatonicTetrahedron swig_types[71] +#define SWIGTYPE_p_Prism3 swig_types[72] +#define SWIGTYPE_p_Prism6 swig_types[73] +#define SWIGTYPE_p_Profile1DCauchy swig_types[74] +#define SWIGTYPE_p_Profile1DCosine swig_types[75] +#define SWIGTYPE_p_Profile1DGate swig_types[76] +#define SWIGTYPE_p_Profile1DGauss swig_types[77] +#define SWIGTYPE_p_Profile1DTriangle swig_types[78] +#define SWIGTYPE_p_Profile1DVoigt swig_types[79] +#define SWIGTYPE_p_Profile2DCauchy swig_types[80] +#define SWIGTYPE_p_Profile2DCone swig_types[81] +#define SWIGTYPE_p_Profile2DGate swig_types[82] +#define SWIGTYPE_p_Profile2DGauss swig_types[83] +#define SWIGTYPE_p_Profile2DVoigt swig_types[84] +#define SWIGTYPE_p_Pyramid2 swig_types[85] +#define SWIGTYPE_p_Pyramid3 swig_types[86] +#define SWIGTYPE_p_Pyramid4 swig_types[87] +#define SWIGTYPE_p_Pyramid6 swig_types[88] +#define SWIGTYPE_p_RefractiveMaterialImpl swig_types[89] +#define SWIGTYPE_p_Rotation3DT_double_t swig_types[90] +#define SWIGTYPE_p_RotationEuler swig_types[91] +#define SWIGTYPE_p_RotationX swig_types[92] +#define SWIGTYPE_p_RotationY swig_types[93] +#define SWIGTYPE_p_RotationZ swig_types[94] +#define SWIGTYPE_p_RoughnessMap swig_types[95] #define SWIGTYPE_p_SawtoothRippleBox swig_types[96] #define SWIGTYPE_p_SawtoothRippleGauss swig_types[97] #define SWIGTYPE_p_SawtoothRippleLorentz swig_types[98] @@ -3750,7 +3750,7 @@ namespace Swig { #define SWIGTYPE_p_Spheroid swig_types[102] #define SWIGTYPE_p_SpinMatrix swig_types[103] #define SWIGTYPE_p_SquareLattice2D swig_types[104] -#define SWIGTYPE_p_TanhRoughness swig_types[105] +#define SWIGTYPE_p_TanhInterlayer swig_types[105] #define SWIGTYPE_p_TruncatedCube swig_types[106] #define SWIGTYPE_p_TruncatedSphere swig_types[107] #define SWIGTYPE_p_TruncatedSpheroid swig_types[108] @@ -50497,7 +50497,7 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness__SWIG_0(PyObject *self, Py_ssize_t double arg1 ; double arg2 ; double arg3 ; - RoughnessModel *arg4 = (RoughnessModel *) 0 ; + InterlayerModel *arg4 = (InterlayerModel *) 0 ; double val1 ; int ecode1 = 0 ; double val2 ; @@ -50525,14 +50525,14 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness__SWIG_0(PyObject *self, Py_ssize_t SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_LayerRoughness" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); - res4 = SWIG_ConvertPtr(swig_obj[3], &argp4,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + res4 = SWIG_ConvertPtr(swig_obj[3], &argp4,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_LayerRoughness" "', argument " "4"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_LayerRoughness" "', argument " "4"" of type '" "InterlayerModel const *""'"); } - arg4 = reinterpret_cast< RoughnessModel * >(argp4); + arg4 = reinterpret_cast< InterlayerModel * >(argp4); { try { - result = (LayerRoughness *)new LayerRoughness(arg1,arg2,arg3,(RoughnessModel const *)arg4); + result = (LayerRoughness *)new LayerRoughness(arg1,arg2,arg3,(InterlayerModel const *)arg4); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -50671,7 +50671,7 @@ fail: SWIGINTERN PyObject *_wrap_new_LayerRoughness__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; double arg1 ; - RoughnessModel *arg2 = (RoughnessModel *) 0 ; + InterlayerModel *arg2 = (InterlayerModel *) 0 ; double val1 ; int ecode1 = 0 ; void *argp2 = 0 ; @@ -50685,14 +50685,14 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness__SWIG_4(PyObject *self, Py_ssize_t SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_LayerRoughness" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_LayerRoughness" "', argument " "2"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_LayerRoughness" "', argument " "2"" of type '" "InterlayerModel const *""'"); } - arg2 = reinterpret_cast< RoughnessModel * >(argp2); + arg2 = reinterpret_cast< InterlayerModel * >(argp2); { try { - result = (LayerRoughness *)new LayerRoughness(arg1,(RoughnessModel const *)arg2); + result = (LayerRoughness *)new LayerRoughness(arg1,(InterlayerModel const *)arg2); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -50761,7 +50761,7 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) { } if (_v) { void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RoughnessModel, 0); + int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_InterlayerModel, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_LayerRoughness__SWIG_4(self, argc, argv); @@ -50824,7 +50824,7 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) { } if (_v) { void *vptr = 0; - int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_RoughnessModel, 0); + int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_InterlayerModel, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_LayerRoughness__SWIG_0(self, argc, argv); @@ -50837,11 +50837,11 @@ SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) { fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_LayerRoughness'.\n" " Possible C/C++ prototypes are:\n" - " LayerRoughness::LayerRoughness(double,double,double,RoughnessModel const *)\n" + " LayerRoughness::LayerRoughness(double,double,double,InterlayerModel const *)\n" " LayerRoughness::LayerRoughness(double,double,double)\n" " LayerRoughness::LayerRoughness(double,double)\n" " LayerRoughness::LayerRoughness(double)\n" - " LayerRoughness::LayerRoughness(double,RoughnessModel const *)\n" + " LayerRoughness::LayerRoughness(double,InterlayerModel const *)\n" " LayerRoughness::LayerRoughness()\n"); return 0; } @@ -51337,10 +51337,10 @@ fail: } -SWIGINTERN PyObject *_wrap_LayerRoughness_setRoughnessModel(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_LayerRoughness_setInterlayerModel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; LayerRoughness *arg1 = (LayerRoughness *) 0 ; - RoughnessModel *arg2 = (RoughnessModel *) 0 ; + InterlayerModel *arg2 = (InterlayerModel *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; @@ -51348,20 +51348,20 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_setRoughnessModel(PyObject *self, PyOb PyObject *swig_obj[2] ; (void)self; - if (!SWIG_Python_UnpackTuple(args, "LayerRoughness_setRoughnessModel", 2, 2, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "LayerRoughness_setInterlayerModel", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_LayerRoughness, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_setRoughnessModel" "', argument " "1"" of type '" "LayerRoughness *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_setInterlayerModel" "', argument " "1"" of type '" "LayerRoughness *""'"); } arg1 = reinterpret_cast< LayerRoughness * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setRoughnessModel" "', argument " "2"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setInterlayerModel" "', argument " "2"" of type '" "InterlayerModel const *""'"); } - arg2 = reinterpret_cast< RoughnessModel * >(argp2); + arg2 = reinterpret_cast< InterlayerModel * >(argp2); { try { - (arg1)->setRoughnessModel((RoughnessModel const *)arg2); + (arg1)->setInterlayerModel((InterlayerModel const *)arg2); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -51377,25 +51377,25 @@ fail: } -SWIGINTERN PyObject *_wrap_LayerRoughness_roughnessModel(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_LayerRoughness_interlayerModel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; LayerRoughness *arg1 = (LayerRoughness *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - RoughnessModel *result = 0 ; + InterlayerModel *result = 0 ; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_LayerRoughness, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_roughnessModel" "', argument " "1"" of type '" "LayerRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_interlayerModel" "', argument " "1"" of type '" "LayerRoughness const *""'"); } arg1 = reinterpret_cast< LayerRoughness * >(argp1); { try { - result = (RoughnessModel *)((LayerRoughness const *)arg1)->roughnessModel(); + result = (InterlayerModel *)((LayerRoughness const *)arg1)->interlayerModel(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -51404,7 +51404,7 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_roughnessModel(PyObject *self, PyObjec SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RoughnessModel, 0 | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterlayerModel, 0 | 0 ); return resultobj; fail: return NULL; @@ -52508,25 +52508,25 @@ SWIGINTERN PyObject *MultiLayer_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObjec return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_RoughnessModel_clone(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_InterlayerModel_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - RoughnessModel *arg1 = (RoughnessModel *) 0 ; + InterlayerModel *arg1 = (InterlayerModel *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - RoughnessModel *result = 0 ; + InterlayerModel *result = 0 ; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RoughnessModel_clone" "', argument " "1"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterlayerModel_clone" "', argument " "1"" of type '" "InterlayerModel const *""'"); } - arg1 = reinterpret_cast< RoughnessModel * >(argp1); + arg1 = reinterpret_cast< InterlayerModel * >(argp1); { try { - result = (RoughnessModel *)((RoughnessModel const *)arg1)->clone(); + result = (InterlayerModel *)((InterlayerModel const *)arg1)->clone(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52535,16 +52535,16 @@ SWIGINTERN PyObject *_wrap_RoughnessModel_clone(PyObject *self, PyObject *args) SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RoughnessModel, 0 | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_InterlayerModel, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_RoughnessModel_transient(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_InterlayerModel_transient(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - RoughnessModel *arg1 = (RoughnessModel *) 0 ; + InterlayerModel *arg1 = (InterlayerModel *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -52557,25 +52557,25 @@ SWIGINTERN PyObject *_wrap_RoughnessModel_transient(PyObject *self, PyObject *ar double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "RoughnessModel_transient", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "InterlayerModel_transient", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RoughnessModel_transient" "', argument " "1"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterlayerModel_transient" "', argument " "1"" of type '" "InterlayerModel const *""'"); } - arg1 = reinterpret_cast< RoughnessModel * >(argp1); + arg1 = reinterpret_cast< InterlayerModel * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RoughnessModel_transient" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterlayerModel_transient" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "RoughnessModel_transient" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "InterlayerModel_transient" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((RoughnessModel const *)arg1)->transient(arg2,arg3); + result = (double)((InterlayerModel const *)arg1)->transient(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52591,9 +52591,9 @@ fail: } -SWIGINTERN PyObject *_wrap_RoughnessModel_distribution(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_InterlayerModel_distribution(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - RoughnessModel *arg1 = (RoughnessModel *) 0 ; + InterlayerModel *arg1 = (InterlayerModel *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -52606,25 +52606,25 @@ SWIGINTERN PyObject *_wrap_RoughnessModel_distribution(PyObject *self, PyObject double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "RoughnessModel_distribution", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "InterlayerModel_distribution", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RoughnessModel_distribution" "', argument " "1"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterlayerModel_distribution" "', argument " "1"" of type '" "InterlayerModel const *""'"); } - arg1 = reinterpret_cast< RoughnessModel * >(argp1); + arg1 = reinterpret_cast< InterlayerModel * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RoughnessModel_distribution" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "InterlayerModel_distribution" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "RoughnessModel_distribution" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "InterlayerModel_distribution" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((RoughnessModel const *)arg1)->distribution(arg2,arg3); + result = (double)((InterlayerModel const *)arg1)->distribution(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52640,9 +52640,9 @@ fail: } -SWIGINTERN PyObject *_wrap_RoughnessModel_sigmaRange(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_InterlayerModel_sigmaRange(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - RoughnessModel *arg1 = (RoughnessModel *) 0 ; + InterlayerModel *arg1 = (InterlayerModel *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -52651,14 +52651,14 @@ SWIGINTERN PyObject *_wrap_RoughnessModel_sigmaRange(PyObject *self, PyObject *a (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RoughnessModel, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterlayerModel, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RoughnessModel_sigmaRange" "', argument " "1"" of type '" "RoughnessModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InterlayerModel_sigmaRange" "', argument " "1"" of type '" "InterlayerModel const *""'"); } - arg1 = reinterpret_cast< RoughnessModel * >(argp1); + arg1 = reinterpret_cast< InterlayerModel * >(argp1); { try { - result = (double)((RoughnessModel const *)arg1)->sigmaRange(); + result = (double)((InterlayerModel const *)arg1)->sigmaRange(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52674,9 +52674,9 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_RoughnessModel(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_InterlayerModel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - RoughnessModel *arg1 = (RoughnessModel *) 0 ; + InterlayerModel *arg1 = (InterlayerModel *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -52684,11 +52684,11 @@ SWIGINTERN PyObject *_wrap_delete_RoughnessModel(PyObject *self, PyObject *args) (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_RoughnessModel, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_InterlayerModel, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_RoughnessModel" "', argument " "1"" of type '" "RoughnessModel *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_InterlayerModel" "', argument " "1"" of type '" "InterlayerModel *""'"); } - arg1 = reinterpret_cast< RoughnessModel * >(argp1); + arg1 = reinterpret_cast< InterlayerModel * >(argp1); { try { delete arg1; @@ -52707,22 +52707,22 @@ fail: } -SWIGINTERN PyObject *RoughnessModel_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *InterlayerModel_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_RoughnessModel, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_InterlayerModel, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_new_ErfRoughness(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_ErfInterlayer(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *result = 0 ; + ErfInterlayer *result = 0 ; (void)self; - if (!SWIG_Python_UnpackTuple(args, "new_ErfRoughness", 0, 0, 0)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "new_ErfInterlayer", 0, 0, 0)) SWIG_fail; { try { - result = (ErfRoughness *)new ErfRoughness(); + result = (ErfInterlayer *)new ErfInterlayer(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52731,16 +52731,16 @@ SWIGINTERN PyObject *_wrap_new_ErfRoughness(PyObject *self, PyObject *args) { SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ErfRoughness, SWIG_POINTER_NEW | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ErfInterlayer, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_ErfRoughness_transient(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_ErfInterlayer_transient(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -52753,25 +52753,25 @@ SWIGINTERN PyObject *_wrap_ErfRoughness_transient(PyObject *self, PyObject *args double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "ErfRoughness_transient", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "ErfInterlayer_transient", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfRoughness_transient" "', argument " "1"" of type '" "ErfRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfInterlayer_transient" "', argument " "1"" of type '" "ErfInterlayer const *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ErfRoughness_transient" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ErfInterlayer_transient" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ErfRoughness_transient" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ErfInterlayer_transient" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((ErfRoughness const *)arg1)->transient(arg2,arg3); + result = (double)((ErfInterlayer const *)arg1)->transient(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52787,9 +52787,9 @@ fail: } -SWIGINTERN PyObject *_wrap_ErfRoughness_distribution(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_ErfInterlayer_distribution(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -52802,25 +52802,25 @@ SWIGINTERN PyObject *_wrap_ErfRoughness_distribution(PyObject *self, PyObject *a double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "ErfRoughness_distribution", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "ErfInterlayer_distribution", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfRoughness_distribution" "', argument " "1"" of type '" "ErfRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfInterlayer_distribution" "', argument " "1"" of type '" "ErfInterlayer const *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ErfRoughness_distribution" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ErfInterlayer_distribution" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ErfRoughness_distribution" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ErfInterlayer_distribution" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((ErfRoughness const *)arg1)->distribution(arg2,arg3); + result = (double)((ErfInterlayer const *)arg1)->distribution(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52836,9 +52836,9 @@ fail: } -SWIGINTERN PyObject *_wrap_ErfRoughness_sigmaRange(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_ErfInterlayer_sigmaRange(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -52847,14 +52847,14 @@ SWIGINTERN PyObject *_wrap_ErfRoughness_sigmaRange(PyObject *self, PyObject *arg (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfRoughness_sigmaRange" "', argument " "1"" of type '" "ErfRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfInterlayer_sigmaRange" "', argument " "1"" of type '" "ErfInterlayer const *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); { try { - result = (double)((ErfRoughness const *)arg1)->sigmaRange(); + result = (double)((ErfInterlayer const *)arg1)->sigmaRange(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52870,25 +52870,25 @@ fail: } -SWIGINTERN PyObject *_wrap_ErfRoughness_clone(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_ErfInterlayer_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - ErfRoughness *result = 0 ; + ErfInterlayer *result = 0 ; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfRoughness_clone" "', argument " "1"" of type '" "ErfRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfInterlayer_clone" "', argument " "1"" of type '" "ErfInterlayer const *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); { try { - result = (ErfRoughness *)((ErfRoughness const *)arg1)->clone(); + result = (ErfInterlayer *)((ErfInterlayer const *)arg1)->clone(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52897,16 +52897,16 @@ SWIGINTERN PyObject *_wrap_ErfRoughness_clone(PyObject *self, PyObject *args) { SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ErfRoughness, 0 | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ErfInterlayer, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_ErfRoughness_className(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_ErfInterlayer_className(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -52915,14 +52915,14 @@ SWIGINTERN PyObject *_wrap_ErfRoughness_className(PyObject *self, PyObject *args (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfRoughness_className" "', argument " "1"" of type '" "ErfRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ErfInterlayer_className" "', argument " "1"" of type '" "ErfInterlayer const *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); { try { - result = ((ErfRoughness const *)arg1)->className(); + result = ((ErfInterlayer const *)arg1)->className(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52938,9 +52938,9 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_ErfRoughness(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_ErfInterlayer(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - ErfRoughness *arg1 = (ErfRoughness *) 0 ; + ErfInterlayer *arg1 = (ErfInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -52948,11 +52948,11 @@ SWIGINTERN PyObject *_wrap_delete_ErfRoughness(PyObject *self, PyObject *args) { (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfRoughness, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ErfInterlayer, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ErfRoughness" "', argument " "1"" of type '" "ErfRoughness *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ErfInterlayer" "', argument " "1"" of type '" "ErfInterlayer *""'"); } - arg1 = reinterpret_cast< ErfRoughness * >(argp1); + arg1 = reinterpret_cast< ErfInterlayer * >(argp1); { try { delete arg1; @@ -52971,26 +52971,26 @@ fail: } -SWIGINTERN PyObject *ErfRoughness_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *ErfInterlayer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_ErfRoughness, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_ErfInterlayer, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *ErfRoughness_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *ErfInterlayer_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_TanhRoughness(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_TanhInterlayer(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *result = 0 ; + TanhInterlayer *result = 0 ; (void)self; - if (!SWIG_Python_UnpackTuple(args, "new_TanhRoughness", 0, 0, 0)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "new_TanhInterlayer", 0, 0, 0)) SWIG_fail; { try { - result = (TanhRoughness *)new TanhRoughness(); + result = (TanhInterlayer *)new TanhInterlayer(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -52999,16 +52999,16 @@ SWIGINTERN PyObject *_wrap_new_TanhRoughness(PyObject *self, PyObject *args) { SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TanhRoughness, SWIG_POINTER_NEW | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TanhInterlayer, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_TanhRoughness_transient(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_TanhInterlayer_transient(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -53021,25 +53021,25 @@ SWIGINTERN PyObject *_wrap_TanhRoughness_transient(PyObject *self, PyObject *arg double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "TanhRoughness_transient", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "TanhInterlayer_transient", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhRoughness_transient" "', argument " "1"" of type '" "TanhRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhInterlayer_transient" "', argument " "1"" of type '" "TanhInterlayer const *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "TanhRoughness_transient" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "TanhInterlayer_transient" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TanhRoughness_transient" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TanhInterlayer_transient" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((TanhRoughness const *)arg1)->transient(arg2,arg3); + result = (double)((TanhInterlayer const *)arg1)->transient(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53055,9 +53055,9 @@ fail: } -SWIGINTERN PyObject *_wrap_TanhRoughness_distribution(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_TanhInterlayer_distribution(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; @@ -53070,25 +53070,25 @@ SWIGINTERN PyObject *_wrap_TanhRoughness_distribution(PyObject *self, PyObject * double result; (void)self; - if (!SWIG_Python_UnpackTuple(args, "TanhRoughness_distribution", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, 0 | 0 ); + if (!SWIG_Python_UnpackTuple(args, "TanhInterlayer_distribution", 3, 3, swig_obj)) SWIG_fail; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhRoughness_distribution" "', argument " "1"" of type '" "TanhRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhInterlayer_distribution" "', argument " "1"" of type '" "TanhInterlayer const *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "TanhRoughness_distribution" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "TanhInterlayer_distribution" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TanhRoughness_distribution" "', argument " "3"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TanhInterlayer_distribution" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { - result = (double)((TanhRoughness const *)arg1)->distribution(arg2,arg3); + result = (double)((TanhInterlayer const *)arg1)->distribution(arg2,arg3); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53104,9 +53104,9 @@ fail: } -SWIGINTERN PyObject *_wrap_TanhRoughness_sigmaRange(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_TanhInterlayer_sigmaRange(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -53115,14 +53115,14 @@ SWIGINTERN PyObject *_wrap_TanhRoughness_sigmaRange(PyObject *self, PyObject *ar (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhRoughness_sigmaRange" "', argument " "1"" of type '" "TanhRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhInterlayer_sigmaRange" "', argument " "1"" of type '" "TanhInterlayer const *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); { try { - result = (double)((TanhRoughness const *)arg1)->sigmaRange(); + result = (double)((TanhInterlayer const *)arg1)->sigmaRange(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53138,25 +53138,25 @@ fail: } -SWIGINTERN PyObject *_wrap_TanhRoughness_clone(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_TanhInterlayer_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - TanhRoughness *result = 0 ; + TanhInterlayer *result = 0 ; (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhRoughness_clone" "', argument " "1"" of type '" "TanhRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhInterlayer_clone" "', argument " "1"" of type '" "TanhInterlayer const *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); { try { - result = (TanhRoughness *)((TanhRoughness const *)arg1)->clone(); + result = (TanhInterlayer *)((TanhInterlayer const *)arg1)->clone(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53165,16 +53165,16 @@ SWIGINTERN PyObject *_wrap_TanhRoughness_clone(PyObject *self, PyObject *args) { SWIG_exception(SWIG_RuntimeError, msg.c_str()); } } - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TanhRoughness, 0 | 0 ); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TanhInterlayer, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_TanhRoughness_className(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_TanhInterlayer_className(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -53183,14 +53183,14 @@ SWIGINTERN PyObject *_wrap_TanhRoughness_className(PyObject *self, PyObject *arg (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, 0 | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhRoughness_className" "', argument " "1"" of type '" "TanhRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TanhInterlayer_className" "', argument " "1"" of type '" "TanhInterlayer const *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); { try { - result = ((TanhRoughness const *)arg1)->className(); + result = ((TanhInterlayer const *)arg1)->className(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -53206,9 +53206,9 @@ fail: } -SWIGINTERN PyObject *_wrap_delete_TanhRoughness(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_TanhInterlayer(PyObject *self, PyObject *args) { PyObject *resultobj = 0; - TanhRoughness *arg1 = (TanhRoughness *) 0 ; + TanhInterlayer *arg1 = (TanhInterlayer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; @@ -53216,11 +53216,11 @@ SWIGINTERN PyObject *_wrap_delete_TanhRoughness(PyObject *self, PyObject *args) (void)self; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhRoughness, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_TanhInterlayer, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TanhRoughness" "', argument " "1"" of type '" "TanhRoughness *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TanhInterlayer" "', argument " "1"" of type '" "TanhInterlayer *""'"); } - arg1 = reinterpret_cast< TanhRoughness * >(argp1); + arg1 = reinterpret_cast< TanhInterlayer * >(argp1); { try { delete arg1; @@ -53239,14 +53239,14 @@ fail: } -SWIGINTERN PyObject *TanhRoughness_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *TanhInterlayer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_TanhRoughness, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_TanhInterlayer, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *TanhRoughness_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *TanhInterlayer_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { return SWIG_Python_InitShadowInstance(args); } @@ -73197,8 +73197,8 @@ static PyMethodDef SwigMethods[] = { { "ParticleLayout_swigregister", ParticleLayout_swigregister, METH_O, NULL}, { "ParticleLayout_swiginit", ParticleLayout_swiginit, METH_VARARGS, NULL}, { "new_LayerRoughness", _wrap_new_LayerRoughness, METH_VARARGS, "\n" - "LayerRoughness(double sigma, double hurstParameter=0, double lateralCorrLength=0, RoughnessModel roughnessModel=None)\n" - "LayerRoughness(double sigma, RoughnessModel roughnessModel)\n" + "LayerRoughness(double sigma, double hurstParameter=0, double lateralCorrLength=0, InterlayerModel interlayerModel=None)\n" + "LayerRoughness(double sigma, InterlayerModel interlayerModel)\n" "new_LayerRoughness() -> LayerRoughness\n" ""}, { "LayerRoughness_clone", _wrap_LayerRoughness_clone, METH_O, "LayerRoughness_clone(LayerRoughness self) -> LayerRoughness"}, @@ -73214,8 +73214,8 @@ static PyMethodDef SwigMethods[] = { { "LayerRoughness_setLatteralCorrLength", _wrap_LayerRoughness_setLatteralCorrLength, METH_VARARGS, "LayerRoughness_setLatteralCorrLength(LayerRoughness self, double lateralCorrLength)"}, { "LayerRoughness_lateralCorrLength", _wrap_LayerRoughness_lateralCorrLength, METH_O, "LayerRoughness_lateralCorrLength(LayerRoughness self) -> double"}, { "LayerRoughness_validate", _wrap_LayerRoughness_validate, METH_O, "LayerRoughness_validate(LayerRoughness self) -> std::string"}, - { "LayerRoughness_setRoughnessModel", _wrap_LayerRoughness_setRoughnessModel, METH_VARARGS, "LayerRoughness_setRoughnessModel(LayerRoughness self, RoughnessModel roughnessModel)"}, - { "LayerRoughness_roughnessModel", _wrap_LayerRoughness_roughnessModel, METH_O, "LayerRoughness_roughnessModel(LayerRoughness self) -> RoughnessModel"}, + { "LayerRoughness_setInterlayerModel", _wrap_LayerRoughness_setInterlayerModel, METH_VARARGS, "LayerRoughness_setInterlayerModel(LayerRoughness self, InterlayerModel interlayerModel)"}, + { "LayerRoughness_interlayerModel", _wrap_LayerRoughness_interlayerModel, METH_O, "LayerRoughness_interlayerModel(LayerRoughness self) -> InterlayerModel"}, { "delete_LayerRoughness", _wrap_delete_LayerRoughness, METH_O, "delete_LayerRoughness(LayerRoughness self)"}, { "LayerRoughness_swigregister", LayerRoughness_swigregister, METH_O, NULL}, { "LayerRoughness_swiginit", LayerRoughness_swiginit, METH_VARARGS, NULL}, @@ -73245,30 +73245,30 @@ static PyMethodDef SwigMethods[] = { { "MultiLayer_setName", _wrap_MultiLayer_setName, METH_VARARGS, "MultiLayer_setName(MultiLayer self, std::string const & name)"}, { "MultiLayer_swigregister", MultiLayer_swigregister, METH_O, NULL}, { "MultiLayer_swiginit", MultiLayer_swiginit, METH_VARARGS, NULL}, - { "RoughnessModel_clone", _wrap_RoughnessModel_clone, METH_O, "RoughnessModel_clone(RoughnessModel self) -> RoughnessModel"}, - { "RoughnessModel_transient", _wrap_RoughnessModel_transient, METH_VARARGS, "RoughnessModel_transient(RoughnessModel self, double x, double sigma) -> double"}, - { "RoughnessModel_distribution", _wrap_RoughnessModel_distribution, METH_VARARGS, "RoughnessModel_distribution(RoughnessModel self, double x, double sigma) -> double"}, - { "RoughnessModel_sigmaRange", _wrap_RoughnessModel_sigmaRange, METH_O, "RoughnessModel_sigmaRange(RoughnessModel self) -> double"}, - { "delete_RoughnessModel", _wrap_delete_RoughnessModel, METH_O, "delete_RoughnessModel(RoughnessModel self)"}, - { "RoughnessModel_swigregister", RoughnessModel_swigregister, METH_O, NULL}, - { "new_ErfRoughness", _wrap_new_ErfRoughness, METH_NOARGS, "new_ErfRoughness() -> ErfRoughness"}, - { "ErfRoughness_transient", _wrap_ErfRoughness_transient, METH_VARARGS, "ErfRoughness_transient(ErfRoughness self, double x, double sigma) -> double"}, - { "ErfRoughness_distribution", _wrap_ErfRoughness_distribution, METH_VARARGS, "ErfRoughness_distribution(ErfRoughness self, double x, double sigma) -> double"}, - { "ErfRoughness_sigmaRange", _wrap_ErfRoughness_sigmaRange, METH_O, "ErfRoughness_sigmaRange(ErfRoughness self) -> double"}, - { "ErfRoughness_clone", _wrap_ErfRoughness_clone, METH_O, "ErfRoughness_clone(ErfRoughness self) -> ErfRoughness"}, - { "ErfRoughness_className", _wrap_ErfRoughness_className, METH_O, "ErfRoughness_className(ErfRoughness self) -> std::string"}, - { "delete_ErfRoughness", _wrap_delete_ErfRoughness, METH_O, "delete_ErfRoughness(ErfRoughness self)"}, - { "ErfRoughness_swigregister", ErfRoughness_swigregister, METH_O, NULL}, - { "ErfRoughness_swiginit", ErfRoughness_swiginit, METH_VARARGS, NULL}, - { "new_TanhRoughness", _wrap_new_TanhRoughness, METH_NOARGS, "new_TanhRoughness() -> TanhRoughness"}, - { "TanhRoughness_transient", _wrap_TanhRoughness_transient, METH_VARARGS, "TanhRoughness_transient(TanhRoughness self, double x, double sigma) -> double"}, - { "TanhRoughness_distribution", _wrap_TanhRoughness_distribution, METH_VARARGS, "TanhRoughness_distribution(TanhRoughness self, double x, double sigma) -> double"}, - { "TanhRoughness_sigmaRange", _wrap_TanhRoughness_sigmaRange, METH_O, "TanhRoughness_sigmaRange(TanhRoughness self) -> double"}, - { "TanhRoughness_clone", _wrap_TanhRoughness_clone, METH_O, "TanhRoughness_clone(TanhRoughness self) -> TanhRoughness"}, - { "TanhRoughness_className", _wrap_TanhRoughness_className, METH_O, "TanhRoughness_className(TanhRoughness self) -> std::string"}, - { "delete_TanhRoughness", _wrap_delete_TanhRoughness, METH_O, "delete_TanhRoughness(TanhRoughness self)"}, - { "TanhRoughness_swigregister", TanhRoughness_swigregister, METH_O, NULL}, - { "TanhRoughness_swiginit", TanhRoughness_swiginit, METH_VARARGS, NULL}, + { "InterlayerModel_clone", _wrap_InterlayerModel_clone, METH_O, "InterlayerModel_clone(InterlayerModel self) -> InterlayerModel"}, + { "InterlayerModel_transient", _wrap_InterlayerModel_transient, METH_VARARGS, "InterlayerModel_transient(InterlayerModel self, double x, double sigma) -> double"}, + { "InterlayerModel_distribution", _wrap_InterlayerModel_distribution, METH_VARARGS, "InterlayerModel_distribution(InterlayerModel self, double x, double sigma) -> double"}, + { "InterlayerModel_sigmaRange", _wrap_InterlayerModel_sigmaRange, METH_O, "InterlayerModel_sigmaRange(InterlayerModel self) -> double"}, + { "delete_InterlayerModel", _wrap_delete_InterlayerModel, METH_O, "delete_InterlayerModel(InterlayerModel self)"}, + { "InterlayerModel_swigregister", InterlayerModel_swigregister, METH_O, NULL}, + { "new_ErfInterlayer", _wrap_new_ErfInterlayer, METH_NOARGS, "new_ErfInterlayer() -> ErfInterlayer"}, + { "ErfInterlayer_transient", _wrap_ErfInterlayer_transient, METH_VARARGS, "ErfInterlayer_transient(ErfInterlayer self, double x, double sigma) -> double"}, + { "ErfInterlayer_distribution", _wrap_ErfInterlayer_distribution, METH_VARARGS, "ErfInterlayer_distribution(ErfInterlayer self, double x, double sigma) -> double"}, + { "ErfInterlayer_sigmaRange", _wrap_ErfInterlayer_sigmaRange, METH_O, "ErfInterlayer_sigmaRange(ErfInterlayer self) -> double"}, + { "ErfInterlayer_clone", _wrap_ErfInterlayer_clone, METH_O, "ErfInterlayer_clone(ErfInterlayer self) -> ErfInterlayer"}, + { "ErfInterlayer_className", _wrap_ErfInterlayer_className, METH_O, "ErfInterlayer_className(ErfInterlayer self) -> std::string"}, + { "delete_ErfInterlayer", _wrap_delete_ErfInterlayer, METH_O, "delete_ErfInterlayer(ErfInterlayer self)"}, + { "ErfInterlayer_swigregister", ErfInterlayer_swigregister, METH_O, NULL}, + { "ErfInterlayer_swiginit", ErfInterlayer_swiginit, METH_VARARGS, NULL}, + { "new_TanhInterlayer", _wrap_new_TanhInterlayer, METH_NOARGS, "new_TanhInterlayer() -> TanhInterlayer"}, + { "TanhInterlayer_transient", _wrap_TanhInterlayer_transient, METH_VARARGS, "TanhInterlayer_transient(TanhInterlayer self, double x, double sigma) -> double"}, + { "TanhInterlayer_distribution", _wrap_TanhInterlayer_distribution, METH_VARARGS, "TanhInterlayer_distribution(TanhInterlayer self, double x, double sigma) -> double"}, + { "TanhInterlayer_sigmaRange", _wrap_TanhInterlayer_sigmaRange, METH_O, "TanhInterlayer_sigmaRange(TanhInterlayer self) -> double"}, + { "TanhInterlayer_clone", _wrap_TanhInterlayer_clone, METH_O, "TanhInterlayer_clone(TanhInterlayer self) -> TanhInterlayer"}, + { "TanhInterlayer_className", _wrap_TanhInterlayer_className, METH_O, "TanhInterlayer_className(TanhInterlayer self) -> std::string"}, + { "delete_TanhInterlayer", _wrap_delete_TanhInterlayer, METH_O, "delete_TanhInterlayer(TanhInterlayer self)"}, + { "TanhInterlayer_swigregister", TanhInterlayer_swigregister, METH_O, NULL}, + { "TanhInterlayer_swiginit", TanhInterlayer_swiginit, METH_VARARGS, NULL}, { "delete_IFormfactorPolyhedron", _wrap_delete_IFormfactorPolyhedron, METH_O, "delete_IFormfactorPolyhedron(IFormfactorPolyhedron self)"}, { "IFormfactorPolyhedron_volume", _wrap_IFormfactorPolyhedron_volume, METH_O, "IFormfactorPolyhedron_volume(IFormfactorPolyhedron self) -> double"}, { "IFormfactorPolyhedron_radialExtension", _wrap_IFormfactorPolyhedron_radialExtension, METH_O, "IFormfactorPolyhedron_radialExtension(IFormfactorPolyhedron self) -> double"}, @@ -73926,8 +73926,8 @@ static void *_p_DodecahedronTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemo static void *_p_EllipsoidalCylinderTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((EllipsoidalCylinder *) x)); } -static void *_p_ErfRoughnessTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (RoughnessModel *) ((ErfRoughness *) x)); +static void *_p_ErfInterlayerTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (InterlayerModel *) ((ErfInterlayer *) x)); } static void *_p_FuzzySphereTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *) ((FuzzySphere *) x)); @@ -74019,6 +74019,9 @@ static void *_p_InterferenceNoneTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(new static void *_p_InterferenceRadialParacrystalTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IInterference *) ((InterferenceRadialParacrystal *) x)); } +static void *_p_InterlayerModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) ((InterlayerModel *) x)); +} static void *_p_IsotropicGaussPeakShapeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IPeakShape *) ((IsotropicGaussPeakShape *) x)); } @@ -74130,9 +74133,6 @@ static void *_p_RotationYTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory) static void *_p_RotationZTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (IRotation *) ((RotationZ *) x)); } -static void *_p_RoughnessModelTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) ((RoughnessModel *) x)); -} static void *_p_SawtoothRippleBoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x)); } @@ -74151,8 +74151,8 @@ static void *_p_SpheroidTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) static void *_p_SquareLattice2DTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (Lattice2D *) ((SquareLattice2D *) x)); } -static void *_p_TanhRoughnessTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((ICloneable *) (RoughnessModel *) ((TanhRoughness *) x)); +static void *_p_TanhInterlayerTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((ICloneable *) (InterlayerModel *) ((TanhInterlayer *) x)); } static void *_p_TruncatedCubeTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ICloneable *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x)); @@ -74427,8 +74427,8 @@ static void *_p_DodecahedronTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) static void *_p_EllipsoidalCylinderTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((EllipsoidalCylinder *) x)); } -static void *_p_ErfRoughnessTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (RoughnessModel *) ((ErfRoughness *) x)); +static void *_p_ErfInterlayerTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (InterlayerModel *) ((ErfInterlayer *) x)); } static void *_p_FuzzySphereTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *) ((FuzzySphere *) x)); @@ -74520,6 +74520,9 @@ static void *_p_InterferenceNoneTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemor static void *_p_InterferenceRadialParacrystalTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IInterference *) ((InterferenceRadialParacrystal *) x)); } +static void *_p_InterlayerModelTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) ((InterlayerModel *) x)); +} static void *_p_IsotropicGaussPeakShapeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IPeakShape *) ((IsotropicGaussPeakShape *) x)); } @@ -74634,9 +74637,6 @@ static void *_p_RotationYTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { static void *_p_RotationZTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (IRotation *) ((RotationZ *) x)); } -static void *_p_RoughnessModelTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) ((RoughnessModel *) x)); -} static void *_p_SawtoothRippleBoxTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IProfileRipple *)(ISawtoothRipple *) ((SawtoothRippleBox *) x)); } @@ -74655,8 +74655,8 @@ static void *_p_SpheroidTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { static void *_p_SquareLattice2DTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (Lattice2D *) ((SquareLattice2D *) x)); } -static void *_p_TanhRoughnessTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INode *) (RoughnessModel *) ((TanhRoughness *) x)); +static void *_p_TanhInterlayerTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INode *) (InterlayerModel *) ((TanhInterlayer *) x)); } static void *_p_TruncatedCubeTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INode *) (ISampleNode *)(IFormfactor *)(IFormfactorPolyhedron *) ((TruncatedCube *) x)); @@ -74952,6 +74952,12 @@ static void *_p_SawtoothRippleLorentzTo_p_ISawtoothRipple(void *x, int *SWIGUNUS static void *_p_SimpleSelectionRuleTo_p_ISelectionRule(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISelectionRule *) ((SimpleSelectionRule *) x)); } +static void *_p_ErfInterlayerTo_p_InterlayerModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((InterlayerModel *) ((ErfInterlayer *) x)); +} +static void *_p_TanhInterlayerTo_p_InterlayerModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((InterlayerModel *) ((TanhInterlayer *) x)); +} static void *_p_BasicLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Lattice2D *) ((BasicLattice2D *) x)); } @@ -74961,12 +74967,6 @@ static void *_p_HexagonalLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(ne static void *_p_SquareLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Lattice2D *) ((SquareLattice2D *) x)); } -static void *_p_ErfRoughnessTo_p_RoughnessModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((RoughnessModel *) ((ErfRoughness *) x)); -} -static void *_p_TanhRoughnessTo_p_RoughnessModel(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((RoughnessModel *) ((TanhRoughness *) x)); -} static swig_type_info _swigt__p_BarGauss = {"_p_BarGauss", "BarGauss *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BarLorentz = {"_p_BarLorentz", "BarLorentz *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BasicLattice2D = {"_p_BasicLattice2D", "BasicLattice2D *", 0, 0, (void*)0, 0}; @@ -74983,7 +74983,7 @@ static swig_type_info _swigt__p_Crystal = {"_p_Crystal", "Crystal *", 0, 0, (voi static swig_type_info _swigt__p_Cylinder = {"_p_Cylinder", "Cylinder *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Dodecahedron = {"_p_Dodecahedron", "Dodecahedron *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_EllipsoidalCylinder = {"_p_EllipsoidalCylinder", "EllipsoidalCylinder *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_ErfRoughness = {"_p_ErfRoughness", "ErfRoughness *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_ErfInterlayer = {"_p_ErfInterlayer", "ErfInterlayer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FuzzySphere = {"_p_FuzzySphere", "FuzzySphere *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_GaussFisherPeakShape = {"_p_GaussFisherPeakShape", "GaussFisherPeakShape *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_GaussSphere = {"_p_GaussSphere", "GaussSphere *", 0, 0, (void*)0, 0}; @@ -75018,6 +75018,7 @@ static swig_type_info _swigt__p_InterferenceFinite2DLattice = {"_p_InterferenceF static swig_type_info _swigt__p_InterferenceHardDisk = {"_p_InterferenceHardDisk", "InterferenceHardDisk *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceNone = {"_p_InterferenceNone", "InterferenceNone *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_InterferenceRadialParacrystal = {"_p_InterferenceRadialParacrystal", "InterferenceRadialParacrystal *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_InterlayerModel = {"_p_InterlayerModel", "InterlayerModel *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IsotropicGaussPeakShape = {"_p_IsotropicGaussPeakShape", "IsotropicGaussPeakShape *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IsotropicLorentzPeakShape = {"_p_IsotropicLorentzPeakShape", "IsotropicLorentzPeakShape *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Lattice2D = {"_p_Lattice2D", "Lattice2D *", 0, 0, (void*)0, 0}; @@ -75062,7 +75063,6 @@ static swig_type_info _swigt__p_RotationX = {"_p_RotationX", "RotationX *", 0, 0 static swig_type_info _swigt__p_RotationY = {"_p_RotationY", "RotationY *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_RotationZ = {"_p_RotationZ", "RotationZ *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_RoughnessMap = {"_p_RoughnessMap", "RoughnessMap *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_RoughnessModel = {"_p_RoughnessModel", "RoughnessModel *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SawtoothRippleBox = {"_p_SawtoothRippleBox", "SawtoothRippleBox *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SawtoothRippleGauss = {"_p_SawtoothRippleGauss", "SawtoothRippleGauss *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SawtoothRippleLorentz = {"_p_SawtoothRippleLorentz", "SawtoothRippleLorentz *", 0, 0, (void*)0, 0}; @@ -75072,7 +75072,7 @@ static swig_type_info _swigt__p_Sphere = {"_p_Sphere", "Sphere *", 0, 0, (void*) static swig_type_info _swigt__p_Spheroid = {"_p_Spheroid", "Spheroid *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SpinMatrix = {"_p_SpinMatrix", "SpinMatrix *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SquareLattice2D = {"_p_SquareLattice2D", "SquareLattice2D *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_TanhRoughness = {"_p_TanhRoughness", "DefaultRoughness *|TanhRoughness *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_TanhInterlayer = {"_p_TanhInterlayer", "DefaultInterlayer *|TanhInterlayer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_TruncatedCube = {"_p_TruncatedCube", "TruncatedCube *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_TruncatedSphere = {"_p_TruncatedSphere", "TruncatedSphere *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_TruncatedSpheroid = {"_p_TruncatedSpheroid", "TruncatedSpheroid *", 0, 0, (void*)0, 0}; @@ -75146,7 +75146,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_Cylinder, &_swigt__p_Dodecahedron, &_swigt__p_EllipsoidalCylinder, - &_swigt__p_ErfRoughness, + &_swigt__p_ErfInterlayer, &_swigt__p_FuzzySphere, &_swigt__p_GaussFisherPeakShape, &_swigt__p_GaussSphere, @@ -75181,6 +75181,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_InterferenceHardDisk, &_swigt__p_InterferenceNone, &_swigt__p_InterferenceRadialParacrystal, + &_swigt__p_InterlayerModel, &_swigt__p_IsotropicGaussPeakShape, &_swigt__p_IsotropicLorentzPeakShape, &_swigt__p_Lattice2D, @@ -75225,7 +75226,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_RotationY, &_swigt__p_RotationZ, &_swigt__p_RoughnessMap, - &_swigt__p_RoughnessModel, &_swigt__p_SawtoothRippleBox, &_swigt__p_SawtoothRippleGauss, &_swigt__p_SawtoothRippleLorentz, @@ -75235,7 +75235,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_Spheroid, &_swigt__p_SpinMatrix, &_swigt__p_SquareLattice2D, - &_swigt__p_TanhRoughness, + &_swigt__p_TanhInterlayer, &_swigt__p_TruncatedCube, &_swigt__p_TruncatedSphere, &_swigt__p_TruncatedSpheroid, @@ -75309,21 +75309,21 @@ static swig_cast_info _swigc__p_Crystal[] = { {&_swigt__p_Crystal, 0, 0, 0},{0, static swig_cast_info _swigc__p_Cylinder[] = { {&_swigt__p_Cylinder, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Dodecahedron[] = { {&_swigt__p_Dodecahedron, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_EllipsoidalCylinder[] = { {&_swigt__p_EllipsoidalCylinder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ErfRoughness[] = { {&_swigt__p_ErfRoughness, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ErfInterlayer[] = { {&_swigt__p_ErfInterlayer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FuzzySphere[] = { {&_swigt__p_FuzzySphere, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_GaussFisherPeakShape[] = { {&_swigt__p_GaussFisherPeakShape, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_GaussSphere[] = { {&_swigt__p_GaussSphere, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HemiEllipsoid[] = { {&_swigt__p_HemiEllipsoid, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HexagonalLattice2D[] = { {&_swigt__p_HexagonalLattice2D, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_HorizontalCylinder[] = { {&_swigt__p_HorizontalCylinder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ErfRoughness, _p_ErfRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_RoughnessModel, _p_RoughnessModelTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_TanhRoughness, _p_TanhRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_ICloneable[] = { {&_swigt__p_ICloneable, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_ICloneable, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_ICloneable, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_ICloneable, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_ICloneable, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_ICloneable, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_ICloneable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_ICloneable, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_ICloneable, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_ICloneable, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_ICloneable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_ICloneable, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_ICloneable, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_ICloneable, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_ICloneable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_ICloneable, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_ICloneable, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_ICloneable, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_ICloneable, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_ICloneable, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_ICloneable, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_ICloneable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_ICosineRipple[] = { {&_swigt__p_ICosineRipple, 0, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_ICosineRipple, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_ICosineRipple, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_ICosineRipple, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactor[] = { {&_swigt__p_IFormfactor, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactor, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactor, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_IFormfactor, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_IFormfactor, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactor, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_IFormfactor, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactor, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactor, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactor, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_IFormfactor, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_IFormfactor, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_IFormfactor, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_IFormfactor, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactorPolyhedron[] = { {&_swigt__p_IFormfactorPolyhedron, 0, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_IFormfactorPolyhedron, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_IFormfactorPolyhedron, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormfactorPrism[] = { {&_swigt__p_IFormfactorPrism, 0, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_IFormfactorPrism, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_IFormfactorPrism, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_IFormfactorPrism, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IInterference[] = { {&_swigt__p_IInterference, 0, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_IInterference, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_IInterference, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_IInterference, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMaterialImpl[] = { {&_swigt__p_IMaterialImpl, 0, 0, 0}, {&_swigt__p_MaterialBySLDImpl, _p_MaterialBySLDImplTo_p_IMaterialImpl, 0, 0}, {&_swigt__p_RefractiveMaterialImpl, _p_RefractiveMaterialImplTo_p_IMaterialImpl, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ErfRoughness, _p_ErfRoughnessTo_p_INode, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_RoughnessModel, _p_RoughnessModelTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_TanhRoughness, _p_TanhRoughnessTo_p_INode, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INode[] = { {&_swigt__p_INode, 0, 0, 0}, {&_swigt__p_BarGauss, _p_BarGaussTo_p_INode, 0, 0}, {&_swigt__p_BarLorentz, _p_BarLorentzTo_p_INode, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_INode, 0, 0}, {&_swigt__p_Bipyramid4, _p_Bipyramid4To_p_INode, 0, 0}, {&_swigt__p_Box, _p_BoxTo_p_INode, 0, 0}, {&_swigt__p_CantellatedCube, _p_CantellatedCubeTo_p_INode, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_INode, 0, 0}, {&_swigt__p_Cone, _p_ConeTo_p_INode, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleBox, _p_CosineRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleGauss, _p_CosineRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_CosineRippleLorentz, _p_CosineRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INode, 0, 0}, {&_swigt__p_Cylinder, _p_CylinderTo_p_INode, 0, 0}, {&_swigt__p_Dodecahedron, _p_DodecahedronTo_p_INode, 0, 0}, {&_swigt__p_EllipsoidalCylinder, _p_EllipsoidalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_INode, 0, 0}, {&_swigt__p_FuzzySphere, _p_FuzzySphereTo_p_INode, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_GaussSphere, _p_GaussSphereTo_p_INode, 0, 0}, {&_swigt__p_HemiEllipsoid, _p_HemiEllipsoidTo_p_INode, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_INode, 0, 0}, {&_swigt__p_HorizontalCylinder, _p_HorizontalCylinderTo_p_INode, 0, 0}, {&_swigt__p_ICosineRipple, _p_ICosineRippleTo_p_INode, 0, 0}, {&_swigt__p_IFormfactor, _p_IFormfactorTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPolyhedron, _p_IFormfactorPolyhedronTo_p_INode, 0, 0}, {&_swigt__p_IFormfactorPrism, _p_IFormfactorPrismTo_p_INode, 0, 0}, {&_swigt__p_IInterference, _p_IInterferenceTo_p_INode, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INode, 0, 0}, {&_swigt__p_IPeakShape, _p_IPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IProfile1D, _p_IProfile1DTo_p_INode, 0, 0}, {&_swigt__p_IProfile2D, _p_IProfile2DTo_p_INode, 0, 0}, {&_swigt__p_IProfileRectangularRipple, _p_IProfileRectangularRippleTo_p_INode, 0, 0}, {&_swigt__p_IProfileRipple, _p_IProfileRippleTo_p_INode, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INode, 0, 0}, {&_swigt__p_ISampleNode, _p_ISampleNodeTo_p_INode, 0, 0}, {&_swigt__p_ISawtoothRipple, _p_ISawtoothRippleTo_p_INode, 0, 0}, {&_swigt__p_Icosahedron, _p_IcosahedronTo_p_INode, 0, 0}, {&_swigt__p_IdentityRotation, _p_IdentityRotationTo_p_INode, 0, 0}, {&_swigt__p_Interference1DLattice, _p_Interference1DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DLattice, _p_Interference2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_Interference2DParacrystal, _p_Interference2DParacrystalTo_p_INode, 0, 0}, {&_swigt__p_Interference2DSuperLattice, _p_Interference2DSuperLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceFinite2DLattice, _p_InterferenceFinite2DLatticeTo_p_INode, 0, 0}, {&_swigt__p_InterferenceHardDisk, _p_InterferenceHardDiskTo_p_INode, 0, 0}, {&_swigt__p_InterferenceNone, _p_InterferenceNoneTo_p_INode, 0, 0}, {&_swigt__p_InterferenceRadialParacrystal, _p_InterferenceRadialParacrystalTo_p_INode, 0, 0}, {&_swigt__p_InterlayerModel, _p_InterlayerModelTo_p_INode, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_INode, 0, 0}, {&_swigt__p_Lattice3D, _p_Lattice3DTo_p_INode, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INode, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INode, 0, 0}, {&_swigt__p_LongBoxGauss, _p_LongBoxGaussTo_p_INode, 0, 0}, {&_swigt__p_LongBoxLorentz, _p_LongBoxLorentzTo_p_INode, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_INode, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_INode, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INode, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INode, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INode, 0, 0}, {&_swigt__p_PlatonicOctahedron, _p_PlatonicOctahedronTo_p_INode, 0, 0}, {&_swigt__p_PlatonicTetrahedron, _p_PlatonicTetrahedronTo_p_INode, 0, 0}, {&_swigt__p_Prism3, _p_Prism3To_p_INode, 0, 0}, {&_swigt__p_Prism6, _p_Prism6To_p_INode, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_INode, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCauchy, _p_Profile2DCauchyTo_p_INode, 0, 0}, {&_swigt__p_Profile2DCone, _p_Profile2DConeTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGate, _p_Profile2DGateTo_p_INode, 0, 0}, {&_swigt__p_Profile2DGauss, _p_Profile2DGaussTo_p_INode, 0, 0}, {&_swigt__p_Profile2DVoigt, _p_Profile2DVoigtTo_p_INode, 0, 0}, {&_swigt__p_Pyramid2, _p_Pyramid2To_p_INode, 0, 0}, {&_swigt__p_Pyramid3, _p_Pyramid3To_p_INode, 0, 0}, {&_swigt__p_Pyramid4, _p_Pyramid4To_p_INode, 0, 0}, {&_swigt__p_Pyramid6, _p_Pyramid6To_p_INode, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INode, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INode, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INode, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleBox, _p_SawtoothRippleBoxTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleGauss, _p_SawtoothRippleGaussTo_p_INode, 0, 0}, {&_swigt__p_SawtoothRippleLorentz, _p_SawtoothRippleLorentzTo_p_INode, 0, 0}, {&_swigt__p_Sphere, _p_SphereTo_p_INode, 0, 0}, {&_swigt__p_Spheroid, _p_SpheroidTo_p_INode, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_INode, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_INode, 0, 0}, {&_swigt__p_TruncatedCube, _p_TruncatedCubeTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSphere, _p_TruncatedSphereTo_p_INode, 0, 0}, {&_swigt__p_TruncatedSpheroid, _p_TruncatedSpheroidTo_p_INode, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IParticle[] = { {&_swigt__p_IParticle, 0, 0, 0}, {&_swigt__p_Compound, _p_CompoundTo_p_IParticle, 0, 0}, {&_swigt__p_CoreAndShell, _p_CoreAndShellTo_p_IParticle, 0, 0}, {&_swigt__p_Mesocrystal, _p_MesocrystalTo_p_IParticle, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_IParticle, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IPeakShape[] = { {&_swigt__p_IPeakShape, 0, 0, 0}, {&_swigt__p_GaussFisherPeakShape, _p_GaussFisherPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_IsotropicGaussPeakShape, _p_IsotropicGaussPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_IsotropicLorentzPeakShape, _p_IsotropicLorentzPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_LorentzFisherPeakShape, _p_LorentzFisherPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_MisesFisherGaussPeakShape, _p_MisesFisherGaussPeakShapeTo_p_IPeakShape, 0, 0}, {&_swigt__p_MisesGaussPeakShape, _p_MisesGaussPeakShapeTo_p_IPeakShape, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IProfile1D[] = { {&_swigt__p_IProfile1D, 0, 0, 0}, {&_swigt__p_Profile1DCauchy, _p_Profile1DCauchyTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DCosine, _p_Profile1DCosineTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DGate, _p_Profile1DGateTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DGauss, _p_Profile1DGaussTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DTriangle, _p_Profile1DTriangleTo_p_IProfile1D, 0, 0}, {&_swigt__p_Profile1DVoigt, _p_Profile1DVoigtTo_p_IProfile1D, 0, 0},{0, 0, 0, 0}}; @@ -75344,6 +75344,7 @@ static swig_cast_info _swigc__p_InterferenceFinite2DLattice[] = { {&_swigt__p_I static swig_cast_info _swigc__p_InterferenceHardDisk[] = { {&_swigt__p_InterferenceHardDisk, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceNone[] = { {&_swigt__p_InterferenceNone, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_InterferenceRadialParacrystal[] = { {&_swigt__p_InterferenceRadialParacrystal, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_InterlayerModel[] = { {&_swigt__p_InterlayerModel, 0, 0, 0}, {&_swigt__p_ErfInterlayer, _p_ErfInterlayerTo_p_InterlayerModel, 0, 0}, {&_swigt__p_TanhInterlayer, _p_TanhInterlayerTo_p_InterlayerModel, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IsotropicGaussPeakShape[] = { {&_swigt__p_IsotropicGaussPeakShape, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IsotropicLorentzPeakShape[] = { {&_swigt__p_IsotropicLorentzPeakShape, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Lattice2D[] = { {&_swigt__p_Lattice2D, 0, 0, 0}, {&_swigt__p_BasicLattice2D, _p_BasicLattice2DTo_p_Lattice2D, 0, 0}, {&_swigt__p_HexagonalLattice2D, _p_HexagonalLattice2DTo_p_Lattice2D, 0, 0}, {&_swigt__p_SquareLattice2D, _p_SquareLattice2DTo_p_Lattice2D, 0, 0},{0, 0, 0, 0}}; @@ -75388,7 +75389,6 @@ static swig_cast_info _swigc__p_RotationX[] = { {&_swigt__p_RotationX, 0, 0, 0} static swig_cast_info _swigc__p_RotationY[] = { {&_swigt__p_RotationY, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_RotationZ[] = { {&_swigt__p_RotationZ, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_RoughnessMap[] = { {&_swigt__p_RoughnessMap, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_RoughnessModel[] = { {&_swigt__p_RoughnessModel, 0, 0, 0}, {&_swigt__p_ErfRoughness, _p_ErfRoughnessTo_p_RoughnessModel, 0, 0}, {&_swigt__p_TanhRoughness, _p_TanhRoughnessTo_p_RoughnessModel, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SawtoothRippleBox[] = { {&_swigt__p_SawtoothRippleBox, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SawtoothRippleGauss[] = { {&_swigt__p_SawtoothRippleGauss, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SawtoothRippleLorentz[] = { {&_swigt__p_SawtoothRippleLorentz, 0, 0, 0},{0, 0, 0, 0}}; @@ -75398,7 +75398,7 @@ static swig_cast_info _swigc__p_Sphere[] = { {&_swigt__p_Sphere, 0, 0, 0},{0, 0 static swig_cast_info _swigc__p_Spheroid[] = { {&_swigt__p_Spheroid, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SpinMatrix[] = { {&_swigt__p_SpinMatrix, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SquareLattice2D[] = { {&_swigt__p_SquareLattice2D, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_TanhRoughness[] = { {&_swigt__p_TanhRoughness, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_TanhInterlayer[] = { {&_swigt__p_TanhInterlayer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_TruncatedCube[] = { {&_swigt__p_TruncatedCube, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_TruncatedSphere[] = { {&_swigt__p_TruncatedSphere, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_TruncatedSpheroid[] = { {&_swigt__p_TruncatedSpheroid, 0, 0, 0},{0, 0, 0, 0}}; @@ -75472,7 +75472,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_Cylinder, _swigc__p_Dodecahedron, _swigc__p_EllipsoidalCylinder, - _swigc__p_ErfRoughness, + _swigc__p_ErfInterlayer, _swigc__p_FuzzySphere, _swigc__p_GaussFisherPeakShape, _swigc__p_GaussSphere, @@ -75507,6 +75507,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_InterferenceHardDisk, _swigc__p_InterferenceNone, _swigc__p_InterferenceRadialParacrystal, + _swigc__p_InterlayerModel, _swigc__p_IsotropicGaussPeakShape, _swigc__p_IsotropicLorentzPeakShape, _swigc__p_Lattice2D, @@ -75551,7 +75552,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_RotationY, _swigc__p_RotationZ, _swigc__p_RoughnessMap, - _swigc__p_RoughnessModel, _swigc__p_SawtoothRippleBox, _swigc__p_SawtoothRippleGauss, _swigc__p_SawtoothRippleLorentz, @@ -75561,7 +75561,7 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_Spheroid, _swigc__p_SpinMatrix, _swigc__p_SquareLattice2D, - _swigc__p_TanhRoughness, + _swigc__p_TanhInterlayer, _swigc__p_TruncatedCube, _swigc__p_TruncatedSphere, _swigc__p_TruncatedSpheroid, diff --git a/rawEx/fit/specular/Honeycomb_fit.py b/rawEx/fit/specular/Honeycomb_fit.py index 0ad0010ed02..6d6cc9f956d 100755 --- a/rawEx/fit/specular/Honeycomb_fit.py +++ b/rawEx/fit/specular/Honeycomb_fit.py @@ -48,7 +48,7 @@ def get_sample(P, sign, T): l_SiO2 = ba.Layer(material_SiO2, P["t_SiO2"]*angstrom) l_Si = ba.Layer(material_Si) - roughness_model = ba.ErfRoughness() + roughness_model = ba.ErfInterlayer() rPyOx = ba.LayerRoughness(P["rPyOx"]*angstrom, roughness_model) rPy2 = ba.LayerRoughness(P["rPy2"]*angstrom, roughness_model) rPy1 = ba.LayerRoughness(P["rPy1"]*angstrom, roughness_model) diff --git a/rawEx/specular/RoughnessModel.py b/rawEx/specular/RoughnessModel.py index e8ea7ba7796..e33449065a8 100755 --- a/rawEx/specular/RoughnessModel.py +++ b/rawEx/specular/RoughnessModel.py @@ -57,8 +57,8 @@ def simulate(roughness_model, title): if __name__ == '__main__': results = [ - simulate(ba.ErfRoughness(), "Névot-Croce"), - simulate(ba.TanhRoughness(), "Tanh"), + simulate(ba.ErfInterlayer(), "Névot-Croce"), + simulate(ba.TanhInterlayer(), "Tanh"), ] bp.plot_multicurve(results) diff --git a/rawEx/varia/MaterialProfile.py b/rawEx/varia/MaterialProfile.py index bd7e7d0278d..1f7181a7a4e 100755 --- a/rawEx/varia/MaterialProfile.py +++ b/rawEx/varia/MaterialProfile.py @@ -29,7 +29,7 @@ def get_sample(): # sample sample = ba.MultiLayer() sample.addLayer(ambient_layer) - roughness_model = ba.TanhRoughness() + roughness_model = ba.TanhInterlayer() roughness = ba.LayerRoughness(5*angstrom, 0.5, 10*angstrom, roughness_model) for _ in range(4): sample.addLayerWithTopRoughness(ti_layer, roughness) diff --git a/rawEx/varia/RoughSurface.py b/rawEx/varia/RoughSurface.py index f8e2d559668..77f2dc2c168 100755 --- a/rawEx/varia/RoughSurface.py +++ b/rawEx/varia/RoughSurface.py @@ -46,7 +46,7 @@ def plot(h): sigma = 1*nm alpha = 0.5 xi = 35*nm -height_distribution = ba.ErfRoughness() +height_distribution = ba.ErfInterlayer() # sample size Lx = 1000*nm -- GitLab