diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 71afd4578a9f9c94e67f08a8f669b5cb16c27adb..e50ab62907112eec0be86eec135787f615489599 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 a636d2d174eaa9e5e9eedf1976e8008a853be65c..9732e5cd6f2f436e6f2488e2c304d25bf72c5d02 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 e97071cfe9a03915d16a42916ae621ffeaf505c3..80f644dd506b403c02e8a24fd1e6fa8ec005717d 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 fc4fad3f6d64e1e6b88fab2e69c9fc00032cf08e..58314617ad7413abd46fd723c3e1e6a1a55a76fd 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 a839662552a1b40dd98216994765ca61858672e1..7f51b16cec05a8879aba08db0f10ce25d231b81a 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 5ff47b3dc327db0aa397b141d59ccbb8da8ec207..8e1198a5b56a8731d8037a297b502bb1f39eb3e9 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 d8a9a0b7b1fa06abd56dc46a6f242472f4e077f3..a6a972640f55a4a55fba37cfc86d90137e0c5f4f 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 fba3e4ff4d4c36891b45b12b322fec2b4b2fbd92..d79718316c64e8cddf21420045421dcf1ed5a5ff 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 f78b0c9238c864c773cd6c4c41196e94c8c9d775..8378fe89c1c79b7a1139956d223487652ed7ec63 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 fadcfb948f470d9092d5b9dd7ed95ddce9086661..b7f84828b92dc1d1f1735c4d0e28b388d2a183f4 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 657d582ee1555ba63f6b51e647b109784807000c..77713010dbb259af9a6aaa60ac4bc89dd2eb5cbe 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 ba578052f750ee6086c483b6aebc9081ff76245d..fca63d796200d418ac0509e8e100b3b28aaf8133 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 d269f9e0244ae4ec75128d5e4e4b1748562c4718..e865fbfce18ad3bc8b0a535ec99bfa2d4f641afe 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 08dab0dbaa82e2e935001887cf84214dff2a9432..fa35875dcd5b9d347534e4df6afe5cf1ee69b715 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 792870f24aa0e1708e662d327d84df0062190963..a9a39018e31889bfe22495344a28353b7e29e49f 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 011dff8b159830c2d9f208d64839e82db498c795..83654fcb59c481e72ec90a3685b2ae535ae249f8 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 1e63ac2b624d91487f3e62db30cf0a1bccc0b6d4..4e6ff9bcdea7886c2f5bb534afa5001708004103 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 18780ab6c14f6c1742e10f09cf81de6acae7806a..89837d2ebb7ac97562d7fea61074c7bfd6b4d72b 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 55e500e0b209594e21294535a5e89931f9cc8eda..b35eac8bb27a8bdc07cc82f55557bf551cdec024 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 76133172f2495d3b44e33fb8dc91964d85a6f63a..5fbb40e401b18e8f3f1b078d304fc81daffa991c 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 d27fcb5faee55fc90d367af1abd5297c5d9fcccd..2fe1c739c9f6875c64214d1cbb3b0d8f488ef2df 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 434e97a5e906857fc6329782d3867b66093b8c17..4a7297a55949fb9c3c0deabb95b966b79d3d004b 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 d1fa524ff5e30f64c35029259fdc7a206724151d..0778ea50877c0788de90812416b0e7ca776505ce 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 c729798c67ccbd8c81ee8205fe50f368afc4b6db..d6ca94819b85a96e5de3ed7e0c370c8bbf2ae44f 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 664aba6f26195fd395c379dbd5ad8e66197acab6..57680c65be1a1c3753ed9ec319121dbba0cac6a4 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 3b90013d9067cb066285d0e4674ef021df4a9ecf..01e63bf75540daa7079559770d97747620b3fb86 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 a8745e3f886e959f6d3b65bde62d399f3126defb..5f62b17f15130a9f9bb2420732c214f2cafcba07 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 3f63e8197889ec9cb6dd77f02ac15fce3a0cd86b..d2d6e371121540f9190dce950b323e6d640dd2b1 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 058e5448cbfbfb4993cfa420a41a0af0256728ee..1fb5259df2db5a14c9e2f4615827095dffc436f0 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 50cd51489c9478a037e4fef3841fb94081c4ac3c..5ad1dcd15715dbf2d0d5c45c0f7f959cc9e4ea24 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 922ae536087dacf5c0fb629aca0b7d536d11a858..1e49a1f76c0c89832eab17248b52197d6a3b0323 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 b459ffbee8cd1227d28e38f0f758341f4d91f7ff..0517cbbacd924aec49c90104e1a2d5766e70e84f 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 c916545ca11bc0153dcd651b85d9496aa1b556e6..168a4f13dd8d204833561409ece3ecd8eb73a497 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 c729798c67ccbd8c81ee8205fe50f368afc4b6db..d6ca94819b85a96e5de3ed7e0c370c8bbf2ae44f 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 58343c9f811cc5c6a1c5ffbe36bce2abcec68acc..1c80d957292d647126b1a6b1b0644300aa7e601c 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 b28dfc6c10c2c96016eb3b792d09976a45816bf0..9f30fcb9cb3a7d331d43d3374a473fea9ab724b5 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 80453d9416a8fe7474545d4d686931d4d943a85d..5d3c7aabfec42ef6b9d527167967a6ea5bcb8e37 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 a4bd281efb3faaa8fa173e13a9569151f0c248a7..437cf51c939802a2942c1919b57e477e05d44367 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 7d7942af640b8606383250ae232c109e3101f74b..38c8c12a151d96e52d83893d73adbbd5acf57455 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 9841504b2bfa34361ba2834e5f2b267b73707617..ac477b7114e59858554cff81b49db5a5a8d659ee 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 b0c7415dc09d573e1e2148c3c00310c4b66b25c6..5f7f7a3d3e05669f1f191fbfe0346a466e02b756 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 a0bf429d78131acf27a249aa5e66e467c21c3b06..1dc37e5fd6f2b6975c77668b297f86543bb4503f 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 59725f342eb1e008260d15c662d11b789d1c1bb0..32cfd1b5a7c66f532d55be5f2594d69d2d9142bd 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 523245918d91c8c79406d307294faaeb38c77bdf..73aa566f5c6846047d434236461f8ca7432c2c81 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 a822197f227e9ffe4cb224a13a2e7828eaa9aad9..cd5c2743247231f5e453212cfb98051ba1964ea8 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 c729798c67ccbd8c81ee8205fe50f368afc4b6db..d6ca94819b85a96e5de3ed7e0c370c8bbf2ae44f 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 62f8acdcddf94dbfad2ea4617f3d3150c115c1e1..cc786ceafcd7e58f4c2abbacb40eb220b2874c66 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 3280c8dcfd329a65802ce368d7c5b0486fc7d6a3..5284943a3fa3d9d5ac7a2a39d3cae406b81f563e 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()