From b46c869dbd135e6ba7d365aa6eea78dbc7312e18 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Fri, 9 Aug 2024 14:42:53 +0200 Subject: [PATCH] fix tests --- GUI/Model/FromCore/ItemizeSample.cpp | 8 ++--- GUI/Model/ToCore/SampleToCore.cpp | 19 ++++++------ GUI/View/Realspace/RealspaceBuilder.cpp | 8 ++--- Sample/Interface/AutoCorrModels.h | 2 -- Sample/Interface/InterlayerModels.h | 2 -- Sample/Interface/LayerRoughness.cpp | 30 +++++++++---------- Sample/Interface/LayerRoughness.h | 16 +++++----- Sample/Interface/RoughnessMap.cpp | 4 +-- Sample/Multilayer/MultiLayer.cpp | 4 +-- Sample/StandardSample/FeNiBilayerBuilder.cpp | 6 ++-- .../StandardSample/MagneticLayersBuilder.cpp | 1 + .../MultiLayerWithRoughnessBuilder.cpp | 11 +++---- Sample/StandardSample/ResonatorBuilder.cpp | 2 +- .../RoughMultiLayerContribution.cpp | 6 ++-- Tests/Unit/Sample/LayerRoughnessTest.cpp | 3 +- Tests/Unit/Sample/MultiLayerTest.cpp | 6 ++-- .../fit/specular/PolarizedSpinAsymmetry.py | 6 ++-- auto/Examples/fit/specular/Pt_layer_fit.py | 6 ++-- auto/Examples/fit/specular/TREFF_Ni_film.py | 6 ++-- .../Examples/scatter2d/CorrelatedRoughness.py | 3 +- auto/Examples/scatter2d/FindPeaks.py | 3 +- auto/Examples/scatter2d/RectangularGrating.py | 3 +- auto/Examples/scatter2d/RoughAndSpecular.py | 6 ++-- .../specular/MagneticLayerImperfect.py | 3 +- .../specular/PolarizedSpinAsymmetry.py | 6 ++-- .../SpecularSimulationWithRoughness.py | 3 +- .../fit/specular/PolarizedSpinAsymmetry.py | 6 ++-- .../MiniExamples/fit/specular/Pt_layer_fit.py | 6 ++-- .../fit/specular/TREFF_Ni_film.py | 6 ++-- .../scatter2d/CorrelatedRoughness.py | 3 +- auto/MiniExamples/scatter2d/FindPeaks.py | 3 +- .../scatter2d/RectangularGrating.py | 3 +- .../scatter2d/RoughAndSpecular.py | 6 ++-- .../specular/MagneticLayerImperfect.py | 3 +- .../specular/PolarizedSpinAsymmetry.py | 6 ++-- .../SpecularSimulationWithRoughness.py | 3 +- auto/Wrap/libBornAgainSample.py | 24 +++++++-------- auto/Wrap/libBornAgainSample_wrap.cpp | 28 ++++++++--------- rawEx/fit/specular/PolarizedSpinAsymmetry.py | 6 ++-- rawEx/fit/specular/Pt_layer_fit.py | 6 ++-- rawEx/fit/specular/TREFF_Ni_film.py | 6 ++-- rawEx/scatter2d/CorrelatedRoughness.py | 3 +- rawEx/scatter2d/FindPeaks.py | 3 +- rawEx/scatter2d/RectangularGrating.py | 3 +- rawEx/scatter2d/RoughAndSpecular.py | 6 ++-- rawEx/specular/MagneticLayerImperfect.py | 3 +- rawEx/specular/PolarizedSpinAsymmetry.py | 6 ++-- .../SpecularSimulationWithRoughness.py | 3 +- 48 files changed, 180 insertions(+), 135 deletions(-) diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 71afd4578a9..e50ab629071 100644 --- a/GUI/Model/FromCore/ItemizeSample.cpp +++ b/GUI/Model/FromCore/ItemizeSample.cpp @@ -306,12 +306,12 @@ void set_Roughness(LayerItem* parent, const LayerInterface* top_interface) return; } - const AutoCorrModel* autoCorr = roughness->autoCorrModel(); + const AutoCorrModel* autocorrelation = roughness->autocorrelationModel(); const InterlayerModel* interlayer = roughness->interlayerModel(); - if (const auto* autoCorrItem = dynamic_cast<const BasicAutoCorr*>(autoCorr)) { - auto* br = new BasicRoughnessItem(autoCorrItem->sigma(), autoCorrItem->hurst(), - autoCorrItem->lateralCorrLength()); + if (const auto* autocorrItem = dynamic_cast<const BasicAutoCorr*>(autocorrelation)) { + auto* br = new BasicRoughnessItem(autocorrItem->sigma(), autocorrItem->hurst(), + autocorrItem->lateralCorrLength()); set_InterlayerModel(br, interlayer); parent->roughnessSelection().setCertainItem(br); } else diff --git a/GUI/Model/ToCore/SampleToCore.cpp b/GUI/Model/ToCore/SampleToCore.cpp index a636d2d174e..9732e5cd6f2 100644 --- a/GUI/Model/ToCore/SampleToCore.cpp +++ b/GUI/Model/ToCore/SampleToCore.cpp @@ -115,22 +115,23 @@ std::unique_ptr<MultiLayer> GUI::ToCore::itemToSample(const SampleItem& sampleIt auto layer = buildLayer(*layerItem); ASSERT(layer); - if (layerItem->isTopLayer()) { + const RoughnessItem* roughItem = layerItem->certainRoughness(); + if (layerItem->isTopLayer() || !roughItem) { sample->addLayer(*layer); continue; } - std::unique_ptr<AutoCorrModel> autoCorr; - std::unique_ptr<InterlayerModel> interlayer; - const RoughnessItem* roughItem = layerItem->certainRoughness(); - if (roughItem) - interlayer = roughItem->certainInterlayerModel()->createModel(); + std::unique_ptr<InterlayerModel> interlayer( + roughItem->certainInterlayerModel()->createModel()); + std::unique_ptr<AutoCorrModel> autocorrelation; if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(roughItem)) - autoCorr = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(), - br->lateralCorrelationLength().dVal()); + autocorrelation = std::make_unique<BasicAutoCorr>( + br->sigma().dVal(), br->hurst().dVal(), br->lateralCorrelationLength().dVal()); + else + ASSERT_NEVER; - LayerRoughness roughness(autoCorr.get(), interlayer.get()); + LayerRoughness roughness(autocorrelation.get(), interlayer.get()); sample->addLayerWithTopRoughness(*layer, roughness); } return sample; diff --git a/GUI/View/Realspace/RealspaceBuilder.cpp b/GUI/View/Realspace/RealspaceBuilder.cpp index e97071cfe9a..80f644dd506 100644 --- a/GUI/View/Realspace/RealspaceBuilder.cpp +++ b/GUI/View/Realspace/RealspaceBuilder.cpp @@ -94,7 +94,7 @@ std::unique_ptr<const double2d_t> layerRoughnessMap(const LayerItem& layerItem, const SceneGeometry& sceneGeometry, int seed) { std::unique_ptr<const double2d_t> result; - std::unique_ptr<AutoCorrModel> autoCorr; + std::unique_ptr<AutoCorrModel> autocorrelation; std::unique_ptr<InterlayerModel> interlayer; const RoughnessItem* roughItem = layerItem.certainRoughness(); @@ -102,10 +102,10 @@ std::unique_ptr<const double2d_t> layerRoughnessMap(const LayerItem& layerItem, interlayer = roughItem->certainInterlayerModel()->createModel(); if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(roughItem)) - autoCorr = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(), - br->lateralCorrelationLength().dVal()); + autocorrelation = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(), + br->lateralCorrelationLength().dVal()); - auto roughness = LayerRoughness(autoCorr.get(), interlayer.get()); + auto roughness = LayerRoughness(autocorrelation.get(), interlayer.get()); if (roughness.sigma() == 0) return result; diff --git a/Sample/Interface/AutoCorrModels.h b/Sample/Interface/AutoCorrModels.h index fc4fad3f6d6..58314617ad7 100644 --- a/Sample/Interface/AutoCorrModels.h +++ b/Sample/Interface/AutoCorrModels.h @@ -94,6 +94,4 @@ private: double m_lateral_corr_length; //!< lateral correlation length of the roughness }; -using DefaultAutoCorr = BasicAutoCorr; - #endif // BORNAGAIN_SAMPLE_INTERFACE_AUTOCORRMODELS_H diff --git a/Sample/Interface/InterlayerModels.h b/Sample/Interface/InterlayerModels.h index a839662552a..7f51b16cec0 100644 --- a/Sample/Interface/InterlayerModels.h +++ b/Sample/Interface/InterlayerModels.h @@ -46,6 +46,4 @@ public: std::string className() const override { return "TanhInterlayer"; } }; -using DefaultInterlayer = TanhInterlayer; - #endif // BORNAGAIN_SAMPLE_INTERFACE_INTERLAYERMODELS_H diff --git a/Sample/Interface/LayerRoughness.cpp b/Sample/Interface/LayerRoughness.cpp index 5ff47b3dc32..8e1198a5b56 100644 --- a/Sample/Interface/LayerRoughness.cpp +++ b/Sample/Interface/LayerRoughness.cpp @@ -18,46 +18,46 @@ //! Constructor of layer roughness. //! @param autoCorrModel: autocorrelation function and spectrum //! @param interlayerModel: shape of the interfacial transition region -LayerRoughness::LayerRoughness(const AutoCorrModel* autoCorrModel, - const InterlayerModel* interlayerModel) - : m_auto_corr_model(autoCorrModel ? autoCorrModel->clone() : nullptr) - , m_interlayer_model(interlayerModel ? interlayerModel->clone() : nullptr) +LayerRoughness::LayerRoughness(const AutoCorrModel* autocorrelation, + const InterlayerModel* interlayer) + : m_autocorrelation_model(autocorrelation ? autocorrelation->clone() : nullptr) + , m_interlayer_model(interlayer ? interlayer->clone() : nullptr) { - ASSERT(m_auto_corr_model); + ASSERT(m_autocorrelation_model); ASSERT(m_interlayer_model); } LayerRoughness* LayerRoughness::clone() const { - return new LayerRoughness(m_auto_corr_model.get(), m_interlayer_model.get()); + return new LayerRoughness(m_autocorrelation_model.get(), m_interlayer_model.get()); } std::vector<const INode*> LayerRoughness::nodeChildren() const { - return std::vector<const INode*>() << m_auto_corr_model << m_interlayer_model; + return std::vector<const INode*>() << m_autocorrelation_model << m_interlayer_model; } bool LayerRoughness::showInScriptOrGui() const { - if (auto basicAutocorr = dynamic_cast<const BasicAutoCorr*>(autoCorrModel())) - if (basicAutocorr->sigma() == 0) + if (auto autocorrelation = dynamic_cast<const BasicAutoCorr*>(autocorrelationModel())) + if (autocorrelation->sigma() == 0) return false; return true; } -void LayerRoughness::setAutoCorrModel(const AutoCorrModel* autoCorrModel) +void LayerRoughness::setAutocorrelationModel(const AutoCorrModel* autocorrelation) { - if (!autoCorrModel) + if (!autocorrelation) throw std::runtime_error("Autocorrelation model should be provided"); - m_auto_corr_model.reset(autoCorrModel->clone()); + m_autocorrelation_model.reset(autocorrelation->clone()); } -void LayerRoughness::setInterlayerModel(const InterlayerModel* interlayerModel) +void LayerRoughness::setInterlayerModel(const InterlayerModel* interlayer) { - if (!interlayerModel) + if (!interlayer) throw std::runtime_error("Interlayer model should be provided"); - m_interlayer_model.reset(interlayerModel->clone()); + m_interlayer_model.reset(interlayer->clone()); } diff --git a/Sample/Interface/LayerRoughness.h b/Sample/Interface/LayerRoughness.h index d8a9a0b7b1f..a6a972640f5 100644 --- a/Sample/Interface/LayerRoughness.h +++ b/Sample/Interface/LayerRoughness.h @@ -27,7 +27,7 @@ class LayerRoughness : public ISampleNode { public: - LayerRoughness(const AutoCorrModel* autoCorrModel, const InterlayerModel* interlayerModel); + LayerRoughness(const AutoCorrModel* autocorrelation, const InterlayerModel* interlayer); LayerRoughness* clone() const override; std::string className() const final { return "LayerRoughness"; } @@ -40,24 +40,24 @@ public: //! Returns rms of roughness double sigma() const { - return m_auto_corr_model->sigma(); + return m_autocorrelation_model->sigma(); } - void setAutoCorrModel(const AutoCorrModel* autoCorrModel); - const AutoCorrModel* autoCorrModel() const + void setAutocorrelationModel(const AutoCorrModel* autocorrelation); + const AutoCorrModel* autocorrelationModel() const { - return m_auto_corr_model.get(); + return m_autocorrelation_model.get(); } - void setInterlayerModel(const InterlayerModel* interlayerModel); + void setInterlayerModel(const InterlayerModel* interlayer); const InterlayerModel* interlayerModel() const { return m_interlayer_model.get(); } private: - std::unique_ptr<AutoCorrModel> m_auto_corr_model; // never nullptr - std::unique_ptr<InterlayerModel> m_interlayer_model; // never nullptr + std::unique_ptr<AutoCorrModel> m_autocorrelation_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 fba3e4ff4d4..d79718316c6 100644 --- a/Sample/Interface/RoughnessMap.cpp +++ b/Sample/Interface/RoughnessMap.cpp @@ -115,8 +115,8 @@ double2d_t RoughnessMap::mapFromSpectrum() const double2d_t psd_mag(m_y_points, std::vector<double>(N)); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) - psd_mag[j][i] = - std::sqrt(m_layerRoughness->autoCorrModel()->spectralFunction(R3(fx[i], fy[j], 0))); + psd_mag[j][i] = std::sqrt( + m_layerRoughness->autocorrelationModel()->spectralFunction(R3(fx[i], fy[j], 0))); for (int j = M; j < m_y_points; j++) psd_mag[j][i] = psd_mag[m_y_points - j][i]; } diff --git a/Sample/Multilayer/MultiLayer.cpp b/Sample/Multilayer/MultiLayer.cpp index f78b0c9238c..8378fe89c1c 100644 --- a/Sample/Multilayer/MultiLayer.cpp +++ b/Sample/Multilayer/MultiLayer.cpp @@ -74,8 +74,8 @@ void MultiLayer::addLayerExec(const Layer& layer, const LayerRoughness* roughnes if (roughness) new_roughness = roughness->clone(); else { - DefaultAutoCorr autocorrelation; - DefaultInterlayer interlayer; + BasicAutoCorr autocorrelation(0, 0, 0); + ErfInterlayer interlayer; new_roughness = new LayerRoughness(&autocorrelation, &interlayer); } m_interfaces.push_back(new LayerInterface(last_layer, new_layer, new_roughness)); diff --git a/Sample/StandardSample/FeNiBilayerBuilder.cpp b/Sample/StandardSample/FeNiBilayerBuilder.cpp index fadcfb948f4..b7f84828b92 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<InterlayerModel> m_interlayer_model; + std::unique_ptr<InterlayerModel> m_interlayer_model = std::make_unique<ErfInterlayer>(); Options() = default; void setNBilayers(int n) { m_NBilayers = n; } @@ -113,8 +113,8 @@ std::unique_ptr<MultiLayer> FeNiBilayer::constructSample() Layer l_Fe{m_Fe, thicknessFe}; Layer l_Ni{m_Ni, thicknessNi}; - BasicAutoCorr autoCorr(sigmaRoughness); - LayerRoughness roughness{&autoCorr, interlayerModel.get()}; + BasicAutoCorr autocorrelation(sigmaRoughness); + LayerRoughness roughness{&autocorrelation, interlayerModel.get()}; result->addLayer(Layer{m_ambient}); for (auto i = 0; i < NBilayers; ++i) { diff --git a/Sample/StandardSample/MagneticLayersBuilder.cpp b/Sample/StandardSample/MagneticLayersBuilder.cpp index 657d582ee15..77713010dbb 100644 --- a/Sample/StandardSample/MagneticLayersBuilder.cpp +++ b/Sample/StandardSample/MagneticLayersBuilder.cpp @@ -118,6 +118,7 @@ ExemplarySamples::createSimpleMagneticRotationWithRoughness(const std::string& r if (roughnessKey == "Flat") { sigmaRoughness = 0.; + interlayerModel = std::make_unique<TanhInterlayer>(); } else if (roughnessKey == "Tanh") { sigmaRoughness = 2. * Units::angstrom; interlayerModel = std::make_unique<TanhInterlayer>(); diff --git a/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp b/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp index ba578052f75..fca63d79620 100644 --- a/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp +++ b/Sample/StandardSample/MultiLayerWithRoughnessBuilder.cpp @@ -38,8 +38,8 @@ MultiLayer* createMultiLayerWithInterlayerModel(const InterlayerModel* interlaye Layer partB_layer(part_b_material, thicknessB); Layer substrate_layer(substrate_material, 0); - BasicAutoCorr autoCorr(sigma, hurst, lateralCorrLength); - LayerRoughness roughness(&autoCorr, interlayerModel); + BasicAutoCorr autocorrelation(sigma, hurst, lateralCorrLength); + LayerRoughness roughness(&autocorrelation, interlayerModel); auto* sample = new MultiLayer; sample->addLayer(vacuum_layer); @@ -55,11 +55,12 @@ MultiLayer* createMultiLayerWithInterlayerModel(const InterlayerModel* interlaye MultiLayer* ExemplarySamples::createMultiLayerWithRoughness() { - return createMultiLayerWithInterlayerModel(nullptr); + TanhInterlayer interlayer; + return createMultiLayerWithInterlayerModel(&interlayer); } MultiLayer* ExemplarySamples::createMultiLayerWithNCRoughness() { - std::unique_ptr<InterlayerModel> rm = std::make_unique<ErfInterlayer>(); - return createMultiLayerWithInterlayerModel(rm.get()); + ErfInterlayer interlayer; + return createMultiLayerWithInterlayerModel(&interlayer); } diff --git a/Sample/StandardSample/ResonatorBuilder.cpp b/Sample/StandardSample/ResonatorBuilder.cpp index d269f9e0244..e865fbfce18 100644 --- a/Sample/StandardSample/ResonatorBuilder.cpp +++ b/Sample/StandardSample/ResonatorBuilder.cpp @@ -37,7 +37,7 @@ MultiLayer* ExemplarySamples::createResonator(double ti_thickness) Layer l_D2O(m_D2O); BasicAutoCorr autocorrelation(2.0, 0.8, 1e4); - ErfInterlayer interlayer; + TanhInterlayer interlayer; LayerRoughness roughness(&autocorrelation, &interlayer); result->addLayer(l_Si); diff --git a/Sim/Computation/RoughMultiLayerContribution.cpp b/Sim/Computation/RoughMultiLayerContribution.cpp index 08dab0dbaa8..fa35875dcd5 100644 --- a/Sim/Computation/RoughMultiLayerContribution.cpp +++ b/Sim/Computation/RoughMultiLayerContribution.cpp @@ -105,8 +105,8 @@ double crossCorrSpectralFun(const R3& kvec, const SliceStack& stack, size_t j, s double crossCorrLength) { const double distance = std::abs(stack[j].hig() - stack[k].hig()); - const AutoCorrModel* rough_j = stack[j].topRoughness()->autoCorrModel(); - const AutoCorrModel* rough_k = stack[k].topRoughness()->autoCorrModel(); + const AutoCorrModel* rough_j = stack[j].topRoughness()->autocorrelationModel(); + const AutoCorrModel* rough_k = stack[k].topRoughness()->autocorrelationModel(); const double sigma_j = rough_j->sigma(); const double sigma_k = rough_k->sigma(); @@ -154,7 +154,7 @@ double Compute::roughMultiLayerContribution(const ReSample& re_sample, const Dif // auto correlation in each layer (first term in final expression in Eq (3) of Schlomka et al) for (size_t i = 0; i < n_interfaces; i++) autocorr += std::norm(rterm[i] * sterm[i]) - * roughStack[i].topRoughness()->autoCorrModel()->spectralFunction(q); + * roughStack[i].topRoughness()->autocorrelationModel()->spectralFunction(q); // cross correlation between layers (second term in loc. cit.) if (crossCorrLength > 0.0) diff --git a/Tests/Unit/Sample/LayerRoughnessTest.cpp b/Tests/Unit/Sample/LayerRoughnessTest.cpp index 792870f24aa..a9a39018e31 100644 --- a/Tests/Unit/Sample/LayerRoughnessTest.cpp +++ b/Tests/Unit/Sample/LayerRoughnessTest.cpp @@ -10,7 +10,8 @@ TEST(LayerRoughness, LayerRoughnessClone) LayerRoughness original(&originalAutocorrelation, &interlayer); LayerRoughness* clone = original.clone(); - const BasicAutoCorr* cloneAC = dynamic_cast<const BasicAutoCorr*>(clone->autoCorrModel()); + const BasicAutoCorr* cloneAC = + dynamic_cast<const BasicAutoCorr*>(clone->autocorrelationModel()); EXPECT_TRUE(cloneAC); EXPECT_EQ(cloneAC->sigma(), originalAutocorrelation.sigma()); diff --git a/Tests/Unit/Sample/MultiLayerTest.cpp b/Tests/Unit/Sample/MultiLayerTest.cpp index 011dff8b159..83654fcb59c 100644 --- a/Tests/Unit/Sample/MultiLayerTest.cpp +++ b/Tests/Unit/Sample/MultiLayerTest.cpp @@ -152,7 +152,7 @@ TEST_F(MultiLayerTest, WithRoughness) const LayerRoughness* roughness1 = interface1->roughness(); EXPECT_TRUE(roughness0); - auto* roughness0_AC = dynamic_cast<const BasicAutoCorr*>(roughness0->autoCorrModel()); + auto* roughness0_AC = dynamic_cast<const BasicAutoCorr*>(roughness0->autocorrelationModel()); EXPECT_TRUE(roughness0_AC); EXPECT_EQ(1.1, roughness0->sigma()); @@ -190,14 +190,14 @@ TEST_F(MultiLayerTest, CloneWithRoughness) EXPECT_TRUE(roughness0); EXPECT_TRUE(roughness1); - auto* roughness0_AC = dynamic_cast<const BasicAutoCorr*>(roughness0->autoCorrModel()); + auto* roughness0_AC = dynamic_cast<const BasicAutoCorr*>(roughness0->autocorrelationModel()); EXPECT_TRUE(roughness0_AC); EXPECT_EQ(2.1, roughness0->sigma()); EXPECT_EQ(.3, roughness0_AC->hurst()); EXPECT_EQ(12.1, roughness0_AC->lateralCorrLength()); - auto* roughness1_AC = dynamic_cast<const BasicAutoCorr*>(roughness1->autoCorrModel()); + auto* roughness1_AC = dynamic_cast<const BasicAutoCorr*>(roughness1->autocorrelationModel()); EXPECT_TRUE(roughness1_AC); EXPECT_EQ(1.1, roughness1->sigma()); diff --git a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py index 1e63ac2b624..4e6ff9bcdea 100755 --- a/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py +++ b/auto/Examples/fit/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_substrate_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_substrate_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/Examples/fit/specular/Pt_layer_fit.py b/auto/Examples/fit/specular/Pt_layer_fit.py index 18780ab6c14..89837d2ebb7 100755 --- a/auto/Examples/fit/specular/Pt_layer_fit.py +++ b/auto/Examples/fit/specular/Pt_layer_fit.py @@ -31,11 +31,13 @@ def get_sample(P): layer = ba.Layer(material_layer, P["t_pt/nm"]) substrate_layer = ba.Layer(material_substrate) + interlayer = ba.TanhInterlayer() + si_autocorr = ba.BasicAutoCorr(P["r_si/nm"]) pt_autocorr = ba.BasicAutoCorr(P["r_pt/nm"]) - r_si = ba.LayerRoughness(si_autocorr) - r_pt = ba.LayerRoughness(pt_autocorr) + r_si = ba.LayerRoughness(si_autocorr, interlayer) + r_pt = ba.LayerRoughness(pt_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/Examples/fit/specular/TREFF_Ni_film.py b/auto/Examples/fit/specular/TREFF_Ni_film.py index 55e500e0b20..b35eac8bb27 100755 --- a/auto/Examples/fit/specular/TREFF_Ni_film.py +++ b/auto/Examples/fit/specular/TREFF_Ni_film.py @@ -26,13 +26,15 @@ def get_sample(P): # Layers and interfaces layer_Ni = ba.Layer(material_Ni_58, P["thickness"]) + interlayer = ba.TanhInterlayer() + Ni_autocorr = ba.BasicAutoCorr(P["sigma_Ni"]) - roughness_Ni = ba.LayerRoughness(Ni_autocorr) + roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer) substrate = ba.Layer(material_SiO2) sub_autocorr = ba.BasicAutoCorr(P["sigma_Substrate"]) - roughness_Substrate = ba.LayerRoughness(sub_autocorr) + roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) diff --git a/auto/Examples/scatter2d/CorrelatedRoughness.py b/auto/Examples/scatter2d/CorrelatedRoughness.py index 76133172f24..5fbb40e401b 100755 --- a/auto/Examples/scatter2d/CorrelatedRoughness.py +++ b/auto/Examples/scatter2d/CorrelatedRoughness.py @@ -24,7 +24,8 @@ def get_sample(): sigma, hurst, corrLength = 1*nm, 0.3, 5*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) my_sample = ba.MultiLayer() diff --git a/auto/Examples/scatter2d/FindPeaks.py b/auto/Examples/scatter2d/FindPeaks.py index d27fcb5faee..2fe1c739c9f 100755 --- a/auto/Examples/scatter2d/FindPeaks.py +++ b/auto/Examples/scatter2d/FindPeaks.py @@ -43,7 +43,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/auto/Examples/scatter2d/RectangularGrating.py b/auto/Examples/scatter2d/RectangularGrating.py index 434e97a5e90..4a7297a5594 100755 --- a/auto/Examples/scatter2d/RectangularGrating.py +++ b/auto/Examples/scatter2d/RectangularGrating.py @@ -42,7 +42,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/auto/Examples/scatter2d/RoughAndSpecular.py b/auto/Examples/scatter2d/RoughAndSpecular.py index d1fa524ff5e..0778ea50877 100755 --- a/auto/Examples/scatter2d/RoughAndSpecular.py +++ b/auto/Examples/scatter2d/RoughAndSpecular.py @@ -13,8 +13,10 @@ def get_sample(): autocorr_1 = ba.BasicAutoCorr(1.1, 0.3, 5*nm) autocorr_2 = ba.BasicAutoCorr(2.3, 0.3, 5*nm) - roughness_1 = ba.LayerRoughness(autocorr_1) - roughness_2 = ba.LayerRoughness(autocorr_2) + interlayer = ba.TanhInterlayer() + + roughness_1 = ba.LayerRoughness(autocorr_1, interlayer) + roughness_2 = ba.LayerRoughness(autocorr_2, interlayer) # Define layers layer_1 = ba.Layer(material_Vacuum) diff --git a/auto/Examples/specular/MagneticLayerImperfect.py b/auto/Examples/specular/MagneticLayerImperfect.py index c729798c67c..d6ca94819b8 100755 --- a/auto/Examples/specular/MagneticLayerImperfect.py +++ b/auto/Examples/specular/MagneticLayerImperfect.py @@ -27,7 +27,8 @@ def get_sample(): layer_substrate = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(20*angstrom) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Multilayer sample = ba.MultiLayer() diff --git a/auto/Examples/specular/PolarizedSpinAsymmetry.py b/auto/Examples/specular/PolarizedSpinAsymmetry.py index 664aba6f261..57680c65be1 100755 --- a/auto/Examples/specular/PolarizedSpinAsymmetry.py +++ b/auto/Examples/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_sub_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_sub_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/Examples/specular/SpecularSimulationWithRoughness.py b/auto/Examples/specular/SpecularSimulationWithRoughness.py index 3b90013d906..01e63bf7554 100755 --- a/auto/Examples/specular/SpecularSimulationWithRoughness.py +++ b/auto/Examples/specular/SpecularSimulationWithRoughness.py @@ -22,7 +22,8 @@ def get_sample(): substrate_layer = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(1*nm) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Sample sample = ba.MultiLayer() diff --git a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py index a8745e3f886..5f62b17f151 100755 --- a/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py +++ b/auto/MiniExamples/fit/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_substrate_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_substrate_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/MiniExamples/fit/specular/Pt_layer_fit.py b/auto/MiniExamples/fit/specular/Pt_layer_fit.py index 3f63e819788..d2d6e371121 100755 --- a/auto/MiniExamples/fit/specular/Pt_layer_fit.py +++ b/auto/MiniExamples/fit/specular/Pt_layer_fit.py @@ -31,11 +31,13 @@ def get_sample(P): layer = ba.Layer(material_layer, P["t_pt/nm"]) substrate_layer = ba.Layer(material_substrate) + interlayer = ba.TanhInterlayer() + si_autocorr = ba.BasicAutoCorr(P["r_si/nm"]) pt_autocorr = ba.BasicAutoCorr(P["r_pt/nm"]) - r_si = ba.LayerRoughness(si_autocorr) - r_pt = ba.LayerRoughness(pt_autocorr) + r_si = ba.LayerRoughness(si_autocorr, interlayer) + r_pt = ba.LayerRoughness(pt_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/MiniExamples/fit/specular/TREFF_Ni_film.py b/auto/MiniExamples/fit/specular/TREFF_Ni_film.py index 058e5448cbf..1fb5259df2d 100755 --- a/auto/MiniExamples/fit/specular/TREFF_Ni_film.py +++ b/auto/MiniExamples/fit/specular/TREFF_Ni_film.py @@ -26,13 +26,15 @@ def get_sample(P): # Layers and interfaces layer_Ni = ba.Layer(material_Ni_58, P["thickness"]) + interlayer = ba.TanhInterlayer() + Ni_autocorr = ba.BasicAutoCorr(P["sigma_Ni"]) - roughness_Ni = ba.LayerRoughness(Ni_autocorr) + roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer) substrate = ba.Layer(material_SiO2) sub_autocorr = ba.BasicAutoCorr(P["sigma_Substrate"]) - roughness_Substrate = ba.LayerRoughness(sub_autocorr) + roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) diff --git a/auto/MiniExamples/scatter2d/CorrelatedRoughness.py b/auto/MiniExamples/scatter2d/CorrelatedRoughness.py index 50cd51489c9..5ad1dcd1571 100755 --- a/auto/MiniExamples/scatter2d/CorrelatedRoughness.py +++ b/auto/MiniExamples/scatter2d/CorrelatedRoughness.py @@ -24,7 +24,8 @@ def get_sample(): sigma, hurst, corrLength = 1*nm, 0.3, 5*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) my_sample = ba.MultiLayer() diff --git a/auto/MiniExamples/scatter2d/FindPeaks.py b/auto/MiniExamples/scatter2d/FindPeaks.py index 922ae536087..1e49a1f76c0 100755 --- a/auto/MiniExamples/scatter2d/FindPeaks.py +++ b/auto/MiniExamples/scatter2d/FindPeaks.py @@ -43,7 +43,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/auto/MiniExamples/scatter2d/RectangularGrating.py b/auto/MiniExamples/scatter2d/RectangularGrating.py index b459ffbee8c..0517cbbacd9 100755 --- a/auto/MiniExamples/scatter2d/RectangularGrating.py +++ b/auto/MiniExamples/scatter2d/RectangularGrating.py @@ -42,7 +42,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/auto/MiniExamples/scatter2d/RoughAndSpecular.py b/auto/MiniExamples/scatter2d/RoughAndSpecular.py index c916545ca11..168a4f13dd8 100755 --- a/auto/MiniExamples/scatter2d/RoughAndSpecular.py +++ b/auto/MiniExamples/scatter2d/RoughAndSpecular.py @@ -13,8 +13,10 @@ def get_sample(): autocorr_1 = ba.BasicAutoCorr(1.1, 0.3, 5*nm) autocorr_2 = ba.BasicAutoCorr(2.3, 0.3, 5*nm) - roughness_1 = ba.LayerRoughness(autocorr_1) - roughness_2 = ba.LayerRoughness(autocorr_2) + interlayer = ba.TanhInterlayer() + + roughness_1 = ba.LayerRoughness(autocorr_1, interlayer) + roughness_2 = ba.LayerRoughness(autocorr_2, interlayer) # Define layers layer_1 = ba.Layer(material_Vacuum) diff --git a/auto/MiniExamples/specular/MagneticLayerImperfect.py b/auto/MiniExamples/specular/MagneticLayerImperfect.py index c729798c67c..d6ca94819b8 100755 --- a/auto/MiniExamples/specular/MagneticLayerImperfect.py +++ b/auto/MiniExamples/specular/MagneticLayerImperfect.py @@ -27,7 +27,8 @@ def get_sample(): layer_substrate = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(20*angstrom) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Multilayer sample = ba.MultiLayer() diff --git a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py index 58343c9f811..1c80d957292 100755 --- a/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py +++ b/auto/MiniExamples/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_sub_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_sub_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py index b28dfc6c10c..9f30fcb9cb3 100755 --- a/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py +++ b/auto/MiniExamples/specular/SpecularSimulationWithRoughness.py @@ -22,7 +22,8 @@ def get_sample(): substrate_layer = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(1*nm) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Sample sample = ba.MultiLayer() diff --git a/auto/Wrap/libBornAgainSample.py b/auto/Wrap/libBornAgainSample.py index 80453d9416a..5d3c7aabfec 100644 --- a/auto/Wrap/libBornAgainSample.py +++ b/auto/Wrap/libBornAgainSample.py @@ -4175,9 +4175,9 @@ class LayerRoughness(ISampleNode): thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") __repr__ = _swig_repr - def __init__(self, autoCorrModel, interlayerModel): - r"""__init__(LayerRoughness self, AutoCorrModel autoCorrModel, InterlayerModel interlayerModel) -> LayerRoughness""" - _libBornAgainSample.LayerRoughness_swiginit(self, _libBornAgainSample.new_LayerRoughness(autoCorrModel, interlayerModel)) + def __init__(self, autocorrelation, interlayer): + r"""__init__(LayerRoughness self, AutoCorrModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness""" + _libBornAgainSample.LayerRoughness_swiginit(self, _libBornAgainSample.new_LayerRoughness(autocorrelation, interlayer)) def clone(self): r"""clone(LayerRoughness self) -> LayerRoughness""" @@ -4195,17 +4195,17 @@ class LayerRoughness(ISampleNode): r"""sigma(LayerRoughness self) -> double""" return _libBornAgainSample.LayerRoughness_sigma(self) - def setAutoCorrModel(self, autoCorrModel): - r"""setAutoCorrModel(LayerRoughness self, AutoCorrModel autoCorrModel)""" - return _libBornAgainSample.LayerRoughness_setAutoCorrModel(self, autoCorrModel) + def setAutocorrelationModel(self, autocorrelation): + r"""setAutocorrelationModel(LayerRoughness self, AutoCorrModel autocorrelation)""" + return _libBornAgainSample.LayerRoughness_setAutocorrelationModel(self, autocorrelation) - def autoCorrModel(self): - r"""autoCorrModel(LayerRoughness self) -> AutoCorrModel""" - return _libBornAgainSample.LayerRoughness_autoCorrModel(self) + def autocorrelationModel(self): + r"""autocorrelationModel(LayerRoughness self) -> AutoCorrModel""" + return _libBornAgainSample.LayerRoughness_autocorrelationModel(self) - def setInterlayerModel(self, interlayerModel): - r"""setInterlayerModel(LayerRoughness self, InterlayerModel interlayerModel)""" - return _libBornAgainSample.LayerRoughness_setInterlayerModel(self, interlayerModel) + def setInterlayerModel(self, interlayer): + r"""setInterlayerModel(LayerRoughness self, InterlayerModel interlayer)""" + return _libBornAgainSample.LayerRoughness_setInterlayerModel(self, interlayer) def interlayerModel(self): r"""interlayerModel(LayerRoughness self) -> InterlayerModel""" diff --git a/auto/Wrap/libBornAgainSample_wrap.cpp b/auto/Wrap/libBornAgainSample_wrap.cpp index a4bd281efb3..437cf51c939 100644 --- a/auto/Wrap/libBornAgainSample_wrap.cpp +++ b/auto/Wrap/libBornAgainSample_wrap.cpp @@ -50671,7 +50671,7 @@ fail: } -SWIGINTERN PyObject *_wrap_LayerRoughness_setAutoCorrModel(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_LayerRoughness_setAutocorrelationModel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; LayerRoughness *arg1 = (LayerRoughness *) 0 ; AutoCorrModel *arg2 = (AutoCorrModel *) 0 ; @@ -50682,20 +50682,20 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_setAutoCorrModel(PyObject *self, PyObj PyObject *swig_obj[2] ; (void)self; - if (!SWIG_Python_UnpackTuple(args, "LayerRoughness_setAutoCorrModel", 2, 2, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "LayerRoughness_setAutocorrelationModel", 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_setAutoCorrModel" "', argument " "1"" of type '" "LayerRoughness *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_setAutocorrelationModel" "', argument " "1"" of type '" "LayerRoughness *""'"); } arg1 = reinterpret_cast< LayerRoughness * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_AutoCorrModel, 0 | 0 ); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setAutoCorrModel" "', argument " "2"" of type '" "AutoCorrModel const *""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LayerRoughness_setAutocorrelationModel" "', argument " "2"" of type '" "AutoCorrModel const *""'"); } arg2 = reinterpret_cast< AutoCorrModel * >(argp2); { try { - (arg1)->setAutoCorrModel((AutoCorrModel const *)arg2); + (arg1)->setAutocorrelationModel((AutoCorrModel const *)arg2); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -50711,7 +50711,7 @@ fail: } -SWIGINTERN PyObject *_wrap_LayerRoughness_autoCorrModel(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_LayerRoughness_autocorrelationModel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; LayerRoughness *arg1 = (LayerRoughness *) 0 ; void *argp1 = 0 ; @@ -50724,12 +50724,12 @@ SWIGINTERN PyObject *_wrap_LayerRoughness_autoCorrModel(PyObject *self, PyObject 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_autoCorrModel" "', argument " "1"" of type '" "LayerRoughness const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LayerRoughness_autocorrelationModel" "', argument " "1"" of type '" "LayerRoughness const *""'"); } arg1 = reinterpret_cast< LayerRoughness * >(argp1); { try { - result = (AutoCorrModel *)((LayerRoughness const *)arg1)->autoCorrModel(); + result = (AutoCorrModel *)((LayerRoughness const *)arg1)->autocorrelationModel(); } catch (const std::exception& ex) { // message shown in the Python interpreter const std::string msg { @@ -73505,14 +73505,14 @@ static PyMethodDef SwigMethods[] = { { "ParticleLayout_setAbsoluteWeight", _wrap_ParticleLayout_setAbsoluteWeight, METH_VARARGS, "ParticleLayout_setAbsoluteWeight(ParticleLayout self, double weight)"}, { "ParticleLayout_swigregister", ParticleLayout_swigregister, METH_O, NULL}, { "ParticleLayout_swiginit", ParticleLayout_swiginit, METH_VARARGS, NULL}, - { "new_LayerRoughness", _wrap_new_LayerRoughness, METH_VARARGS, "new_LayerRoughness(AutoCorrModel autoCorrModel, InterlayerModel interlayerModel) -> LayerRoughness"}, + { "new_LayerRoughness", _wrap_new_LayerRoughness, METH_VARARGS, "new_LayerRoughness(AutoCorrModel autocorrelation, InterlayerModel interlayer) -> LayerRoughness"}, { "LayerRoughness_clone", _wrap_LayerRoughness_clone, METH_O, "LayerRoughness_clone(LayerRoughness self) -> LayerRoughness"}, { "LayerRoughness_className", _wrap_LayerRoughness_className, METH_O, "LayerRoughness_className(LayerRoughness self) -> std::string"}, { "LayerRoughness_nodeChildren", _wrap_LayerRoughness_nodeChildren, METH_O, "LayerRoughness_nodeChildren(LayerRoughness self) -> swig_dummy_type_const_inode_vector"}, { "LayerRoughness_sigma", _wrap_LayerRoughness_sigma, METH_O, "LayerRoughness_sigma(LayerRoughness self) -> double"}, - { "LayerRoughness_setAutoCorrModel", _wrap_LayerRoughness_setAutoCorrModel, METH_VARARGS, "LayerRoughness_setAutoCorrModel(LayerRoughness self, AutoCorrModel autoCorrModel)"}, - { "LayerRoughness_autoCorrModel", _wrap_LayerRoughness_autoCorrModel, METH_O, "LayerRoughness_autoCorrModel(LayerRoughness self) -> AutoCorrModel"}, - { "LayerRoughness_setInterlayerModel", _wrap_LayerRoughness_setInterlayerModel, METH_VARARGS, "LayerRoughness_setInterlayerModel(LayerRoughness self, InterlayerModel interlayerModel)"}, + { "LayerRoughness_setAutocorrelationModel", _wrap_LayerRoughness_setAutocorrelationModel, METH_VARARGS, "LayerRoughness_setAutocorrelationModel(LayerRoughness self, AutoCorrModel autocorrelation)"}, + { "LayerRoughness_autocorrelationModel", _wrap_LayerRoughness_autocorrelationModel, METH_O, "LayerRoughness_autocorrelationModel(LayerRoughness self) -> AutoCorrModel"}, + { "LayerRoughness_setInterlayerModel", _wrap_LayerRoughness_setInterlayerModel, METH_VARARGS, "LayerRoughness_setInterlayerModel(LayerRoughness self, InterlayerModel interlayer)"}, { "LayerRoughness_interlayerModel", _wrap_LayerRoughness_interlayerModel, METH_O, "LayerRoughness_interlayerModel(LayerRoughness self) -> InterlayerModel"}, { "delete_LayerRoughness", _wrap_delete_LayerRoughness, METH_O, "delete_LayerRoughness(LayerRoughness self)"}, { "LayerRoughness_swigregister", LayerRoughness_swigregister, METH_O, NULL}, @@ -75305,7 +75305,7 @@ static void *_p_SquareLattice2DTo_p_Lattice2D(void *x, int *SWIGUNUSEDPARM(newme static swig_type_info _swigt__p_AutoCorrModel = {"_p_AutoCorrModel", "AutoCorrModel *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BarGauss = {"_p_BarGauss", "BarGauss *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BarLorentz = {"_p_BarLorentz", "BarLorentz *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_BasicAutoCorr = {"_p_BasicAutoCorr", "DefaultAutoCorr *|BasicAutoCorr *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_BasicAutoCorr = {"_p_BasicAutoCorr", "BasicAutoCorr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BasicLattice2D = {"_p_BasicLattice2D", "BasicLattice2D *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Bipyramid4 = {"_p_Bipyramid4", "Bipyramid4 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Box = {"_p_Box", "Box *", 0, 0, (void*)0, 0}; @@ -75409,7 +75409,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_TanhInterlayer = {"_p_TanhInterlayer", "DefaultInterlayer *|TanhInterlayer *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_TanhInterlayer = {"_p_TanhInterlayer", "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}; diff --git a/rawEx/fit/specular/PolarizedSpinAsymmetry.py b/rawEx/fit/specular/PolarizedSpinAsymmetry.py index 7d7942af640..38c8c12a151 100755 --- a/rawEx/fit/specular/PolarizedSpinAsymmetry.py +++ b/rawEx/fit/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_substrate_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_substrate_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_substrate_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/rawEx/fit/specular/Pt_layer_fit.py b/rawEx/fit/specular/Pt_layer_fit.py index 9841504b2bf..ac477b7114e 100755 --- a/rawEx/fit/specular/Pt_layer_fit.py +++ b/rawEx/fit/specular/Pt_layer_fit.py @@ -31,11 +31,13 @@ def get_sample(P): layer = ba.Layer(material_layer, P["t_pt/nm"]) substrate_layer = ba.Layer(material_substrate) + interlayer = ba.TanhInterlayer() + si_autocorr = ba.BasicAutoCorr(P["r_si/nm"]) pt_autocorr = ba.BasicAutoCorr(P["r_pt/nm"]) - r_si = ba.LayerRoughness(si_autocorr) - r_pt = ba.LayerRoughness(pt_autocorr) + r_si = ba.LayerRoughness(si_autocorr, interlayer) + r_pt = ba.LayerRoughness(pt_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/rawEx/fit/specular/TREFF_Ni_film.py b/rawEx/fit/specular/TREFF_Ni_film.py index b0c7415dc09..5f7f7a3d3e0 100755 --- a/rawEx/fit/specular/TREFF_Ni_film.py +++ b/rawEx/fit/specular/TREFF_Ni_film.py @@ -26,13 +26,15 @@ def get_sample(P): # Layers and interfaces layer_Ni = ba.Layer(material_Ni_58, P["thickness"]) + interlayer = ba.TanhInterlayer() + Ni_autocorr = ba.BasicAutoCorr(P["sigma_Ni"]) - roughness_Ni = ba.LayerRoughness(Ni_autocorr) + roughness_Ni = ba.LayerRoughness(Ni_autocorr, interlayer) substrate = ba.Layer(material_SiO2) sub_autocorr = ba.BasicAutoCorr(P["sigma_Substrate"]) - roughness_Substrate = ba.LayerRoughness(sub_autocorr) + roughness_Substrate = ba.LayerRoughness(sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ba.Layer(vacuum)) diff --git a/rawEx/scatter2d/CorrelatedRoughness.py b/rawEx/scatter2d/CorrelatedRoughness.py index a0bf429d781..1dc37e5fd6f 100755 --- a/rawEx/scatter2d/CorrelatedRoughness.py +++ b/rawEx/scatter2d/CorrelatedRoughness.py @@ -24,7 +24,8 @@ def get_sample(): sigma, hurst, corrLength = 1*nm, 0.3, 5*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) my_sample = ba.MultiLayer() diff --git a/rawEx/scatter2d/FindPeaks.py b/rawEx/scatter2d/FindPeaks.py index 59725f342eb..32cfd1b5a7c 100755 --- a/rawEx/scatter2d/FindPeaks.py +++ b/rawEx/scatter2d/FindPeaks.py @@ -43,7 +43,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/rawEx/scatter2d/RectangularGrating.py b/rawEx/scatter2d/RectangularGrating.py index 523245918d9..73aa566f5c6 100755 --- a/rawEx/scatter2d/RectangularGrating.py +++ b/rawEx/scatter2d/RectangularGrating.py @@ -42,7 +42,8 @@ def get_sample(lattice_rotation_angle=0*deg): sigma, hurst, corrLength = 5*nm, 0.5, 10*nm autocorr = ba.BasicAutoCorr(sigma, hurst, corrLength) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(vacuum_layer) diff --git a/rawEx/scatter2d/RoughAndSpecular.py b/rawEx/scatter2d/RoughAndSpecular.py index a822197f227..cd5c2743247 100755 --- a/rawEx/scatter2d/RoughAndSpecular.py +++ b/rawEx/scatter2d/RoughAndSpecular.py @@ -13,8 +13,10 @@ def get_sample(): autocorr_1 = ba.BasicAutoCorr(1.1, 0.3, 5*nm) autocorr_2 = ba.BasicAutoCorr(2.3, 0.3, 5*nm) - roughness_1 = ba.LayerRoughness(autocorr_1) - roughness_2 = ba.LayerRoughness(autocorr_2) + interlayer = ba.TanhInterlayer() + + roughness_1 = ba.LayerRoughness(autocorr_1, interlayer) + roughness_2 = ba.LayerRoughness(autocorr_2, interlayer) # Define layers layer_1 = ba.Layer(material_Vacuum) diff --git a/rawEx/specular/MagneticLayerImperfect.py b/rawEx/specular/MagneticLayerImperfect.py index c729798c67c..d6ca94819b8 100755 --- a/rawEx/specular/MagneticLayerImperfect.py +++ b/rawEx/specular/MagneticLayerImperfect.py @@ -27,7 +27,8 @@ def get_sample(): layer_substrate = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(20*angstrom) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Multilayer sample = ba.MultiLayer() diff --git a/rawEx/specular/PolarizedSpinAsymmetry.py b/rawEx/specular/PolarizedSpinAsymmetry.py index 62f8acdcddf..cc786ceafcd 100755 --- a/rawEx/specular/PolarizedSpinAsymmetry.py +++ b/rawEx/specular/PolarizedSpinAsymmetry.py @@ -53,8 +53,10 @@ def get_sample(P): r_Mafo_autocorr = ba.BasicAutoCorr(P["r_Mafo"]*angstrom) r_sub_autocorr = ba.BasicAutoCorr(P["r_Mao"]*angstrom) - r_Mafo = ba.LayerRoughness(r_Mafo_autocorr) - r_substrate = ba.LayerRoughness(r_sub_autocorr) + interlayer = ba.TanhInterlayer() + + r_Mafo = ba.LayerRoughness(r_Mafo_autocorr, interlayer) + r_substrate = ba.LayerRoughness(r_sub_autocorr, interlayer) sample = ba.MultiLayer() sample.addLayer(ambient_layer) diff --git a/rawEx/specular/SpecularSimulationWithRoughness.py b/rawEx/specular/SpecularSimulationWithRoughness.py index 3280c8dcfd3..5284943a3fa 100755 --- a/rawEx/specular/SpecularSimulationWithRoughness.py +++ b/rawEx/specular/SpecularSimulationWithRoughness.py @@ -22,7 +22,8 @@ def get_sample(): substrate_layer = ba.Layer(material_substrate) autocorr = ba.BasicAutoCorr(1*nm) - roughness = ba.LayerRoughness(autocorr) + interlayer = ba.TanhInterlayer() + roughness = ba.LayerRoughness(autocorr, interlayer) # Sample sample = ba.MultiLayer() -- GitLab