diff --git a/Core/Algorithms/src/DiffuseDWBASimulation.cpp b/Core/Algorithms/src/DiffuseDWBASimulation.cpp index 680004d6d6eead18bc89b0d81df122bb36fc10d1..2e076388ae9d76fd184f53f8a0b12fce4960f6df 100644 --- a/Core/Algorithms/src/DiffuseDWBASimulation.cpp +++ b/Core/Algorithms/src/DiffuseDWBASimulation.cpp @@ -14,11 +14,11 @@ // ************************************************************************** // #include "DiffuseDWBASimulation.h" -#include "FormFactorDWBAConstZ.h" #include "MessageService.h" #include "FormFactorTools.h" #include "MathFunctions.h" #include "BornAgainNamespace.h" +#include "FormFactorDecoratorPositionFactor.h" #include "Layer.h" //! Carry out one simulation thread. @@ -165,7 +165,7 @@ void DiffuseDWBASimulation::setMaterial(const IMaterial* p_material) //! Collect one entry (p_diffuse_term) per particle type and layer[?]. //! For each entry, set //! - m_factor -//! - m_form_factors <- vector<FormFactorDWBAConstZ*> +//! - m_form_factors <- vector<IFormFactor*> //! void DiffuseDWBASimulation::initDiffuseFormFactorTerms( SafePointerVector<DiffuseFormFactorTerm>& terms, @@ -182,8 +182,9 @@ void DiffuseDWBASimulation::initDiffuseFormFactorTerms( for (size_t j=0; j<nbr_heights; ++j) { DiffuseFormFactorTerm *p_diffuse_term = new DiffuseFormFactorTerm; p_diffuse_term->m_factor = density_per_height_per_particle; - double depth = p_diff_info->getDepth() - - j*p_diff_info->getHeightRange()/(nbr_heights-1.0); + kvector_t position(0.0, 0.0, 0.0); + position.setZ(- p_diff_info->getDepth() + + j*p_diff_info->getHeightRange()/(nbr_heights-1.0)); std::vector<IFormFactor*> form_factors; p_diff_info->getParticle()->getSimpleFormFactor() ->createDistributedFormFactors( @@ -191,16 +192,17 @@ void DiffuseDWBASimulation::initDiffuseFormFactorTerms( samples_per_particle); for (size_t ff_index=0; ff_index<form_factors.size(); ++ff_index) { p_particle->setSimpleFormFactor(form_factors[ff_index]); - IFormFactor *p_ff_particle = p_particle->createFormFactor( - wavevector_scattering_factor); + boost::scoped_ptr<IFormFactor> p_clone( + p_particle->createFormFactor(wavevector_scattering_factor) ); + IFormFactor *p_ff_particle = new FormFactorDecoratorPositionFactor(*p_clone, position); IFormFactor *p_dwba_ff(p_ff_particle); if (checkPolarizationPresent()) { p_dwba_ff = FormFactorTools::createDWBAMatrixFormFactor( - p_ff_particle, depth); + p_ff_particle); } else { p_dwba_ff = FormFactorTools::createDWBAScalarFormFactor( - p_ff_particle, depth); + p_ff_particle); } p_diffuse_term->m_form_factors.push_back(p_dwba_ff); } diff --git a/Core/Algorithms/src/LayerStrategyBuilder.cpp b/Core/Algorithms/src/LayerStrategyBuilder.cpp index 71ebf03a6b534963f151444a7317cafa5f3e0994..a3bcc269536cb46d58fd7e8f1db2217e33c4d61a 100644 --- a/Core/Algorithms/src/LayerStrategyBuilder.cpp +++ b/Core/Algorithms/src/LayerStrategyBuilder.cpp @@ -153,8 +153,6 @@ FormFactorInfo *LayerStrategyBuilder::createFormFactorInfo( // formfactor IFormFactor *p_ff_particle=0; kvector_t position = p_particle_info->getPosition(); - // TODO: remove this later: - position.setZ(0.0); if (position==kvector_t(0.0, 0.0, 0.0)) { p_ff_particle = P_particle_clone->createFormFactor(factor); } @@ -167,14 +165,13 @@ FormFactorInfo *LayerStrategyBuilder::createFormFactorInfo( IFormFactor *p_ff_framework(p_ff_particle); size_t n_layers = mp_layer->getNumberOfLayers(); if (n_layers>1) { - double depth = p_particle_info->getDepth(); if (requiresMatrixFFs()) { p_ff_framework = FormFactorTools::createDWBAMatrixFormFactor( - p_ff_particle, depth); + p_ff_particle); } else { p_ff_framework = FormFactorTools::createDWBAScalarFormFactor( - p_ff_particle, depth); + p_ff_particle); } } p_result->mp_ff = p_ff_framework; diff --git a/Core/FormFactors/inc/FormFactorDWBAConstZ.h b/Core/FormFactors/inc/FormFactorDWBAConstZ.h deleted file mode 100644 index ce87952eafa3787281476fb458bb547b18b5fccb..0000000000000000000000000000000000000000 --- a/Core/FormFactors/inc/FormFactorDWBAConstZ.h +++ /dev/null @@ -1,49 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FormFactors/inc/FormFactorDWBAConstZ.h -//! @brief Defines class FormFactorDWBAConstZ. -//! -//! @homepage http://apps.jcns.fz-juelich.de/BornAgain -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2013 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#ifndef FORMFACTORDWBACONSTZ_H_ -#define FORMFACTORDWBACONSTZ_H_ - -#include "FormFactorDWBA.h" - -//! @class FormFactorDWBAConstZ -//! @ingroup formfactors_internal -//! @brief Calculates a DWBA formfactor for particles at fixed depth. - -class BA_CORE_API_ FormFactorDWBAConstZ : public FormFactorDWBA -{ -public: - FormFactorDWBAConstZ(IFormFactor* p_form_factor, double depth=0.0); - virtual ~FormFactorDWBAConstZ() {} - virtual FormFactorDWBAConstZ *clone() const; - virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); } - - virtual complex_t evaluate(const cvector_t& k_i, - const Bin1DCVector& k_f_bin, const Bin1D &alpha_f_bin) const; -protected: - double m_depth; - -private: - inline complex_t getDepthPhase(const complex_t& q_z) const - { - complex_t exponent = -complex_t(0.0,1.0)*q_z*m_depth; - // Minus sign for depth (m_depth > 0) - return std::exp(exponent); - } -}; - -#endif /* FORMFACTORDWBACONSTZ_H_ */ - - diff --git a/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h b/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h deleted file mode 100644 index 2000380986c3da61fc228fc5d0643eff97918145..0000000000000000000000000000000000000000 --- a/Core/FormFactors/inc/FormFactorDWBAPolConstZ.h +++ /dev/null @@ -1,53 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FormFactors/inc/FormFactorDWBAPolConstZ.h -//! @brief Defines class FormFactorDWBAPolConstZ. -//! -//! @homepage http://apps.jcns.fz-juelich.de/BornAgain -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2013 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#ifndef FORMFACTORDWBAPOLCONSTZ_H_ -#define FORMFACTORDWBAPOLCONSTZ_H_ - -#include "FormFactorDWBAPol.h" - -//! @class FormFactorDWBAPolConstZ -//! @ingroup formfactors_internal -//! @brief Calculates a polarized DWBA formfactor for particles at fixed depth. - -class BA_CORE_API_ FormFactorDWBAPolConstZ : public FormFactorDWBAPol -{ -public: - FormFactorDWBAPolConstZ(IFormFactor *p_formfactor, double depth=0.0); - virtual ~FormFactorDWBAPolConstZ(); - - virtual FormFactorDWBAPolConstZ *clone() const; - - //! calls the ISampleVisitor's visit method - virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); } - - //! Calculates and returns a polarized form factor calculation in DWBA - virtual Eigen::Matrix2cd evaluatePol(const cvector_t& k_i, - const Bin1DCVector& k_f_bin, const Bin1D &alpha_f, const Bin1D &phi_f) const; - -protected: - double m_depth; - -private: - inline complex_t getDepthPhase(const complex_t& q_z) const - { - complex_t exponent = -complex_t(0.0,1.0)*q_z*m_depth; - // Minus sign for depth (m_depth > 0) - return std::exp(exponent); - } -}; - - -#endif /* FORMFACTORDWBAPOLCONSTZ_H_ */ diff --git a/Core/FormFactors/inc/FormFactorTools.h b/Core/FormFactors/inc/FormFactorTools.h index d3852936845d59c3b03f3e653e44baeab6645dc7..0925f3e73b016dc0ba6eba74cdeae7bb76d1f504 100644 --- a/Core/FormFactors/inc/FormFactorTools.h +++ b/Core/FormFactors/inc/FormFactorTools.h @@ -24,13 +24,11 @@ namespace FormFactorTools { //! Decorates the given formfactor with a scalar dwba formfactor and returns //! this form factor -IFormFactor* createDWBAScalarFormFactor(IFormFactor* p_form_factor, - double depth=0.0); +IFormFactor* createDWBAScalarFormFactor(IFormFactor* p_form_factor); //! Decorates the given formfactor with a matrix dwba formfactor and returns //! this form factor -IFormFactor* createDWBAMatrixFormFactor(IFormFactor* p_form_factor, - double depth=0.0); +IFormFactor* createDWBAMatrixFormFactor(IFormFactor* p_form_factor); } diff --git a/Core/FormFactors/inc/FormFactors.h b/Core/FormFactors/inc/FormFactors.h index cd787ecf909ecb64b2512e00fa42e42187d4f8b4..220811e4c105fe5d23a14b93d4d1f272c95ffc53 100644 --- a/Core/FormFactors/inc/FormFactors.h +++ b/Core/FormFactors/inc/FormFactors.h @@ -30,9 +30,7 @@ #include "FormFactorDecoratorMaterial.h" #include "FormFactorDecoratorTransformation.h" #include "FormFactorDWBA.h" -#include "FormFactorDWBAConstZ.h" #include "FormFactorDWBAPol.h" -#include "FormFactorDWBAPolConstZ.h" #include "FormFactorEllipsoidalCylinder.h" #include "FormFactorFullSphere.h" #include "FormFactorFullSpheroid.h" diff --git a/Core/FormFactors/src/FormFactorDWBAConstZ.cpp b/Core/FormFactors/src/FormFactorDWBAConstZ.cpp deleted file mode 100644 index db9fa9910a62e94fe9caa7ec62df090b4a83588d..0000000000000000000000000000000000000000 --- a/Core/FormFactors/src/FormFactorDWBAConstZ.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FormFactors/src/FormFactorDWBAConstZ.cpp -//! @brief Implements class FormFactorDWBAConstZ. -//! -//! @homepage http://apps.jcns.fz-juelich.de/BornAgain -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2013 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#include "FormFactorDWBAConstZ.h" - -#include <boost/scoped_ptr.hpp> - -FormFactorDWBAConstZ::FormFactorDWBAConstZ( - IFormFactor* p_form_factor, double depth) - : FormFactorDWBA(p_form_factor) - , m_depth(depth) -{ - setName("FormFactorDWBAConstZ"); -} - -complex_t FormFactorDWBAConstZ::evaluate( - const cvector_t& k_i, const Bin1DCVector& k_f_bin, const Bin1D &alpha_f_bin) const -{ - calculateTerms(k_i, k_f_bin, alpha_f_bin); - - complex_t k_iz = k_i.z(); - complex_t k_fz = mp_out_coeffs->getScalarKz(); - m_term_S *= getDepthPhase(k_iz-k_fz); - m_term_RS *= getDepthPhase(-k_iz-k_fz); - m_term_SR *= getDepthPhase(k_iz+k_fz); - m_term_RSR *= getDepthPhase(-k_iz+k_fz); - - return m_term_S + m_term_RS + m_term_SR + m_term_RSR; -} - -FormFactorDWBAConstZ* FormFactorDWBAConstZ::clone() const -{ - FormFactorDWBAConstZ *p_clone = - new FormFactorDWBAConstZ(mp_form_factor->clone(), m_depth); - p_clone->setSpecularInfo(mp_in_coeffs, mp_out_coeffs); - return p_clone; -} - - diff --git a/Core/FormFactors/src/FormFactorDWBAPolConstZ.cpp b/Core/FormFactors/src/FormFactorDWBAPolConstZ.cpp deleted file mode 100644 index 0866281664dceb1c470f0b55f1bc3fe6a6088af6..0000000000000000000000000000000000000000 --- a/Core/FormFactors/src/FormFactorDWBAPolConstZ.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FormFactors/src/FormFactorDWBAPolConstZ.cpp -//! @brief Implements class FormFactorDWBAPolConstZ. -//! -//! @homepage http://apps.jcns.fz-juelich.de/BornAgain -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2013 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#include "FormFactorDWBAPolConstZ.h" -#include <boost/scoped_ptr.hpp> - -FormFactorDWBAPolConstZ::FormFactorDWBAPolConstZ(IFormFactor* p_formfactor, - double depth) -: FormFactorDWBAPol(p_formfactor) -, m_depth(depth) -{ - setName("FormFactorDWBAPolConstZ"); -} - -FormFactorDWBAPolConstZ::~FormFactorDWBAPolConstZ() -{ -} - -FormFactorDWBAPolConstZ* FormFactorDWBAPolConstZ::clone() const -{ - FormFactorDWBAPolConstZ *p_result = new FormFactorDWBAPolConstZ( - mp_form_factor->clone(), m_depth); - p_result->setSpecularInfo(mp_in_coeffs, mp_out_coeffs); - p_result->setName(getName()); - return p_result; -} - -Eigen::Matrix2cd FormFactorDWBAPolConstZ::evaluatePol(const cvector_t& k_i, - const Bin1DCVector& k_f_bin, const Bin1D &alpha_f_bin, const Bin1D &phi_f_bin) const -{ - complex_t kiz_1R = mp_in_coeffs->getKz()(0); - complex_t kiz_1T = -mp_in_coeffs->getKz()(0); - complex_t kiz_2R = mp_in_coeffs->getKz()(1); - complex_t kiz_2T = -mp_in_coeffs->getKz()(1); - complex_t kfz_1R = mp_out_coeffs->getKz()(0); - complex_t kfz_1T = -kfz_1R; - complex_t kfz_2R = mp_out_coeffs->getKz()(1);; - complex_t kfz_2T = -kfz_2R; - calculateTerms(k_i, k_f_bin, alpha_f_bin, phi_f_bin); - - // multiply with correct phases from depth of particle - // eigenmode 1 -> eigenmode 1 - m_M11_S *= getDepthPhase(kiz_1T - kfz_1T); - m_M11_RS *= getDepthPhase(kiz_1R - kfz_1T); - m_M11_SR *= getDepthPhase(kiz_1T - kfz_1R); - m_M11_RSR *= getDepthPhase(kiz_1R - kfz_1R); - // eigenmode 1 -> eigenmode 2 - m_M12_S *= getDepthPhase(kiz_1T - kfz_2T); - m_M12_RS *= getDepthPhase(kiz_1R - kfz_2T); - m_M12_SR *= getDepthPhase(kiz_1T - kfz_2R); - m_M12_RSR *= getDepthPhase(kiz_1R - kfz_2R); - // eigenmode 2 -> eigenmode 1 - m_M21_S *= getDepthPhase(kiz_2T - kfz_1T); - m_M21_RS *= getDepthPhase(kiz_2R - kfz_1T); - m_M21_SR *= getDepthPhase(kiz_2T - kfz_1R); - m_M21_RSR *= getDepthPhase(kiz_2R - kfz_1R); - // eigenmode 2 -> eigenmode 2 - m_M22_S *= getDepthPhase(kiz_2T - kfz_2T); - m_M22_RS *= getDepthPhase(kiz_2R - kfz_2T); - m_M22_SR *= getDepthPhase(kiz_2T - kfz_2R); - m_M22_RSR *= getDepthPhase(kiz_2R - kfz_2R); - - // sum up all 16 DWBA terms - Eigen::Matrix2cd result = - m_M11_S + m_M11_RS + m_M11_SR + m_M11_RSR + - m_M12_S + m_M12_RS + m_M12_SR + m_M12_RSR + - m_M21_S + m_M21_RS + m_M21_SR + m_M21_RSR + - m_M22_S + m_M22_RS + m_M22_SR + m_M22_RSR; - return result; -} diff --git a/Core/FormFactors/src/FormFactorTools.cpp b/Core/FormFactors/src/FormFactorTools.cpp index 3b2b3f6b57151215d0ddb18ca68f48768d018b20..db3f522f3b4ce6682f733f3e454478bf8b87cac1 100644 --- a/Core/FormFactors/src/FormFactorTools.cpp +++ b/Core/FormFactors/src/FormFactorTools.cpp @@ -14,26 +14,20 @@ // ************************************************************************** // #include "FormFactorTools.h" -#include "FormFactorDWBAConstZ.h" -#include "FormFactorDWBAPolConstZ.h" +#include "FormFactorDWBA.h" +#include "FormFactorDWBAPol.h" IFormFactor* FormFactorTools::createDWBAScalarFormFactor( - IFormFactor* p_form_factor, double depth) + IFormFactor* p_form_factor) { - FormFactorDWBAConstZ *p_result = - new FormFactorDWBAConstZ(p_form_factor, depth); + FormFactorDWBA *p_result = + new FormFactorDWBA(p_form_factor); return p_result; } IFormFactor* FormFactorTools::createDWBAMatrixFormFactor( - IFormFactor* p_form_factor, double depth) + IFormFactor* p_form_factor) { - FormFactorDWBAPol *p_result(0); - if (depth) { - p_result = new FormFactorDWBAPolConstZ(p_form_factor, depth); - } - else { - p_result = new FormFactorDWBAPol(p_form_factor); - } + FormFactorDWBAPol *p_result = new FormFactorDWBAPol(p_form_factor); return p_result; } diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp index 2f396440e55cf2f31a4fef7c387d4e61a89694d6..8ebc8fbd07a44d8e224b4d3d710970612411f5e9 100644 --- a/Core/PythonAPI/src/PythonModule.cpp +++ b/Core/PythonAPI/src/PythonModule.cpp @@ -10,127 +10,127 @@ GCC_DIAG_ON(missing-field-initializers) #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION #define PY_ARRAY_UNIQUE_SYMBOL BORNAGAIN_PYTHONAPI_ARRAY #include "numpy/arrayobject.h" -#include "FormFactorFullSphere.pypp.h" -#include "Lattice.pypp.h" -#include "FormFactorInfLongBox.pypp.h" -#include "Layer.pypp.h" -#include "FormFactorHemiEllipsoid.pypp.h" -#include "FormFactorPrism3.pypp.h" +#include "FormFactorFullSpheroid.pypp.h" +#include "DistributionGate.pypp.h" +#include "SimpleSelectionRule.pypp.h" +#include "RealParameterWrapper.pypp.h" +#include "vdouble1d_t.pypp.h" #include "SimulationParameters.pypp.h" -#include "FormFactorInfLongRipple1.pypp.h" -#include "FTDistribution1DVoigt.pypp.h" -#include "FormFactorRipple1.pypp.h" -#include "ParticleInfo.pypp.h" -#include "ICompositeSample.pypp.h" -#include "OffSpecSimulation.pypp.h" -#include "IResolutionFunction2D.pypp.h" -#include "vector_kvector_t.pypp.h" -#include "FTDistribution1DGate.pypp.h" -#include "LatticeBasis.pypp.h" -#include "FormFactorRipple2.pypp.h" -#include "FTDistribution2DVoigt.pypp.h" -#include "IFormFactorBorn.pypp.h" -#include "FormFactorPyramid.pypp.h" -#include "ISample.pypp.h" +#include "Transform3D.pypp.h" +#include "ThreadInfo.pypp.h" +#include "InterferenceFunction2DLattice.pypp.h" +#include "LayerInterface.pypp.h" #include "ILayout.pypp.h" +#include "FormFactorCone6.pypp.h" #include "FormFactorTetrahedron.pypp.h" -#include "InterferenceFunction1DParaCrystal.pypp.h" -#include "Simulation.pypp.h" -#include "ParticleLayout.pypp.h" -#include "FTDistribution2DCone.pypp.h" -#include "FormFactorEllipsoidalCylinder.pypp.h" -#include "vector_IFormFactorPtr_t.pypp.h" -#include "FTDistribution1DGauss.pypp.h" -#include "HomogeneousMaterial.pypp.h" -#include "cvector_t.pypp.h" -#include "FTDistribution2DGauss.pypp.h" -#include "IObservable.pypp.h" -#include "FormFactorBox.pypp.h" -#include "DistributionLogNormal.pypp.h" -#include "FormFactorCylinder.pypp.h" -#include "Detector.pypp.h" -#include "IObserver.pypp.h" -#include "ResolutionFunction2DGaussian.pypp.h" -#include "IParameterized.pypp.h" -#include "FormFactorGauss.pypp.h" -#include "FormFactorDecoratorDebyeWaller.pypp.h" -#include "IDetectorResolution.pypp.h" +#include "FTDistribution1DCosine.pypp.h" +#include "FTDistribution1DTriangle.pypp.h" #include "FormFactorWeighted.pypp.h" -#include "InterferenceFunction2DLattice.pypp.h" -#include "RealParameterWrapper.pypp.h" -#include "LayerInterface.pypp.h" -#include "ParticleCoreShell.pypp.h" -#include "InterferenceFunction1DLattice.pypp.h" -#include "FormFactorCrystal.pypp.h" -#include "Instrument.pypp.h" -#include "PythonInterface_global_variables.pypp.h" -#include "IFTDistribution1D.pypp.h" -#include "FormFactorTrivial.pypp.h" #include "DistributionGaussian.pypp.h" -#include "Lattice1DIFParameters.pypp.h" -#include "DistributionCosine.pypp.h" -#include "IClusteredParticles.pypp.h" -#include "FormFactorLorentz.pypp.h" -#include "Bin1DCVector.pypp.h" +#include "IDetectorResolution.pypp.h" +#include "FormFactorCylinder.pypp.h" +#include "Crystal.pypp.h" +#include "FTDistribution1DCauchy.pypp.h" +#include "IFormFactorBorn.pypp.h" +#include "FormFactorEllipsoidalCylinder.pypp.h" #include "InterferenceFunctionNone.pypp.h" -#include "IFormFactorDecorator.pypp.h" -#include "Bin1D.pypp.h" -#include "ISampleBuilder.pypp.h" -#include "IntensityDataIOFactory.pypp.h" #include "FTDistribution2DGate.pypp.h" -#include "FormFactorInfLongRipple2.pypp.h" -#include "IMaterial.pypp.h" -#include "InterferenceFunction2DParaCrystal.pypp.h" -#include "Particle.pypp.h" +#include "vector_kvector_t.pypp.h" #include "FormFactorTruncatedSpheroid.pypp.h" -#include "MesoCrystal.pypp.h" -#include "ParticleCollection.pypp.h" +#include "Particle.pypp.h" +#include "FormFactorTrivial.pypp.h" +#include "ConstKBinAxis.pypp.h" #include "FTDistribution2DCauchy.pypp.h" -#include "IInterferenceFunction.pypp.h" -#include "FTDistribution1DCosine.pypp.h" -#include "IParticle.pypp.h" -#include "FTDistribution1DTriangle.pypp.h" -#include "FormFactorPrism6.pypp.h" -#include "HomogeneousMagneticMaterial.pypp.h" -#include "FormFactorFullSpheroid.pypp.h" -#include "Transform3D.pypp.h" -#include "IntensityData.pypp.h" -#include "DistributionGate.pypp.h" -#include "ThreadInfo.pypp.h" -#include "IAxis.pypp.h" -#include "CustomBinAxis.pypp.h" -#include "FormFactorCone6.pypp.h" -#include "ICloneable.pypp.h" -#include "PythonInterface_free_functions.pypp.h" +#include "FormFactorCrystal.pypp.h" #include "vector_longinteger_t.pypp.h" -#include "FormFactorSphereLogNormalRadius.pypp.h" -#include "FormFactorSphereGaussianRadius.pypp.h" -#include "FormFactorTruncatedSphere.pypp.h" -#include "IntensityDataFunctions.pypp.h" -#include "DistributionLorentz.pypp.h" -#include "ConstKBinAxis.pypp.h" -#include "ParameterDistribution.pypp.h" -#include "ParameterPool.pypp.h" +#include "ResolutionFunction2DGaussian.pypp.h" +#include "FTDistribution1DGauss.pypp.h" +#include "FTDistribution1DGate.pypp.h" #include "FormFactorAnisoPyramid.pypp.h" -#include "FormFactorCuboctahedron.pypp.h" -#include "MultiLayer.pypp.h" -#include "FormFactorCone.pypp.h" -#include "IDistribution1D.pypp.h" -#include "LayerRoughness.pypp.h" -#include "VariableBinAxis.pypp.h" -#include "SimpleSelectionRule.pypp.h" #include "FixedBinAxis.pypp.h" -#include "Lattice2DIFParameters.pypp.h" +#include "MultiLayer.pypp.h" #include "IFormFactor.pypp.h" -#include "vdouble1d_t.pypp.h" -#include "IFTDistribution2D.pypp.h" -#include "Beam.pypp.h" -#include "FormFactorSphereUniformRadius.pypp.h" -#include "FTDistribution1DCauchy.pypp.h" #include "kvector_t.pypp.h" -#include "Crystal.pypp.h" +#include "FormFactorSphereUniformRadius.pypp.h" +#include "OffSpecSimulation.pypp.h" +#include "FormFactorRipple1.pypp.h" +#include "InterferenceFunction1DParaCrystal.pypp.h" +#include "Simulation.pypp.h" +#include "IObservable.pypp.h" +#include "FormFactorLorentz.pypp.h" #include "ISelectionRule.pypp.h" +#include "FormFactorRipple2.pypp.h" +#include "LayerRoughness.pypp.h" +#include "Bin1DCVector.pypp.h" +#include "FormFactorSphereGaussianRadius.pypp.h" +#include "ParameterPool.pypp.h" +#include "FormFactorPrism3.pypp.h" +#include "IMaterial.pypp.h" +#include "FTDistribution1DVoigt.pypp.h" +#include "IntensityDataFunctions.pypp.h" +#include "FormFactorPrism6.pypp.h" +#include "IClusteredParticles.pypp.h" +#include "VariableBinAxis.pypp.h" +#include "IParticle.pypp.h" +#include "DistributionCosine.pypp.h" +#include "FormFactorHemiEllipsoid.pypp.h" +#include "IAxis.pypp.h" #include "vector_integer_t.pypp.h" +#include "IntensityDataIOFactory.pypp.h" +#include "ParameterDistribution.pypp.h" +#include "Layer.pypp.h" +#include "FormFactorPyramid.pypp.h" +#include "CustomBinAxis.pypp.h" +#include "FTDistribution2DCone.pypp.h" +#include "IFTDistribution1D.pypp.h" +#include "DistributionLorentz.pypp.h" +#include "IDistribution1D.pypp.h" +#include "HomogeneousMagneticMaterial.pypp.h" +#include "FormFactorCuboctahedron.pypp.h" +#include "cvector_t.pypp.h" +#include "PythonInterface_free_functions.pypp.h" +#include "FormFactorSphereLogNormalRadius.pypp.h" +#include "FormFactorInfLongRipple1.pypp.h" +#include "IResolutionFunction2D.pypp.h" +#include "vector_IFormFactorPtr_t.pypp.h" +#include "FormFactorFullSphere.pypp.h" +#include "ParticleLayout.pypp.h" +#include "FormFactorBox.pypp.h" +#include "IParameterized.pypp.h" +#include "Lattice2DIFParameters.pypp.h" +#include "IFormFactorDecorator.pypp.h" +#include "InterferenceFunction1DLattice.pypp.h" +#include "ISample.pypp.h" +#include "ISampleBuilder.pypp.h" +#include "PythonInterface_global_variables.pypp.h" +#include "Beam.pypp.h" +#include "HomogeneousMaterial.pypp.h" +#include "ICloneable.pypp.h" +#include "ParticleCoreShell.pypp.h" +#include "FormFactorDecoratorDebyeWaller.pypp.h" +#include "MesoCrystal.pypp.h" +#include "Lattice1DIFParameters.pypp.h" +#include "IObserver.pypp.h" +#include "IntensityData.pypp.h" +#include "Lattice.pypp.h" +#include "IInterferenceFunction.pypp.h" +#include "ParticleInfo.pypp.h" +#include "Instrument.pypp.h" +#include "FormFactorInfLongBox.pypp.h" +#include "FormFactorCone.pypp.h" +#include "FTDistribution2DGauss.pypp.h" +#include "FormFactorTruncatedSphere.pypp.h" +#include "FTDistribution2DVoigt.pypp.h" +#include "FormFactorGauss.pypp.h" +#include "InterferenceFunction2DParaCrystal.pypp.h" +#include "Detector.pypp.h" +#include "FormFactorInfLongRipple2.pypp.h" +#include "LatticeBasis.pypp.h" +#include "ICompositeSample.pypp.h" +#include "Bin1D.pypp.h" +#include "ParticleCollection.pypp.h" +#include "DistributionLogNormal.pypp.h" +#include "IFTDistribution2D.pypp.h" #include "__call_policies.pypp.hpp" #include "__convenience.pypp.hpp" #include "__call_policies.pypp.hpp" diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h index 9c3d3a4e22d9ba74775789ab014015a73fdc301e..849f38a57431dc0cb3991150a86addd63e4b85f2 100644 --- a/Core/Samples/inc/ISampleVisitor.h +++ b/Core/Samples/inc/ISampleVisitor.h @@ -47,7 +47,6 @@ class DiffuseParticleInfo; class IFormFactor; // - class FormFactorDWBAPol; -class FormFactorDWBAPolConstZ; // - class FormFactorWeighted; // - @@ -85,7 +84,6 @@ class IFormFactorBornSeparable; class IFormFactorDecorator; // - class FormFactorDWBA; -class FormFactorDWBAConstZ; class FormFactorDecoratorDebyeWaller; class FormFactorDecoratorFactor; class FormFactorDecoratorMaterial; @@ -146,7 +144,6 @@ public: virtual void visit(const IFormFactor *); virtual void visit(const FormFactorDWBAPol *); - virtual void visit(const FormFactorDWBAPolConstZ *); virtual void visit(const FormFactorWeighted *); @@ -184,7 +181,6 @@ public: virtual void visit(const IFormFactorDecorator *); virtual void visit(const FormFactorDWBA *); - virtual void visit(const FormFactorDWBAConstZ *); virtual void visit(const FormFactorDecoratorDebyeWaller *); virtual void visit(const FormFactorDecoratorFactor *); virtual void visit(const FormFactorDecoratorMaterial *); diff --git a/Core/Samples/src/ISampleVisitor.cpp b/Core/Samples/src/ISampleVisitor.cpp index cb84fe8d9cc76443418b44e20307a994799a80b4..3cca50385e2d7652ffdce5c48a29ae2eae27022f 100644 --- a/Core/Samples/src/ISampleVisitor.cpp +++ b/Core/Samples/src/ISampleVisitor.cpp @@ -149,12 +149,6 @@ void ISampleVisitor::visit(const FormFactorDWBAPol *) } -void ISampleVisitor::visit(const FormFactorDWBAPolConstZ *) -{ - throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented."); -} - - void ISampleVisitor::visit(const FormFactorWeighted *) { throw NotImplementedException("ISampleVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented."); @@ -342,12 +336,6 @@ void ISampleVisitor::visit(const FormFactorDWBA *) } -void ISampleVisitor::visit(const FormFactorDWBAConstZ *) -{ - throw NotImplementedException("ISampleVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented."); -} - - void ISampleVisitor::visit(const FormFactorDecoratorDebyeWaller *) { throw NotImplementedException("ISampleVisitor::visit(const FormFactorDecoratorDebyeWaller *) -> Error. Not implemented."); diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h index 4675c6a109845911659963924f5ddbf16c7723b4..e56d0e5c0d8759fa7ff0274d2158b628c28b41e6 100644 --- a/Core/Tools/inc/SampleMaterialVisitor.h +++ b/Core/Tools/inc/SampleMaterialVisitor.h @@ -61,7 +61,6 @@ public: virtual void visit(const IFormFactor *sample); virtual void visit(const FormFactorDWBAPol *sample); - virtual void visit(const FormFactorDWBAPolConstZ *sample); virtual void visit(const FormFactorWeighted *sample); @@ -100,7 +99,6 @@ public: virtual void visit(const IFormFactorDecorator *sample); virtual void visit(const FormFactorDWBA *sample); - virtual void visit(const FormFactorDWBAConstZ *sample); virtual void visit(const FormFactorDecoratorDebyeWaller *sample); virtual void visit(const FormFactorDecoratorFactor *sample); virtual void visit(const FormFactorDecoratorMaterial *sample); diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h index ad3d0b497db00bb904f2462baa2cf0fbe4d07e97..30b0bcca0aebb3faa06aa08c38d4e28f7292c6a3 100644 --- a/Core/Tools/inc/SamplePrintVisitor.h +++ b/Core/Tools/inc/SamplePrintVisitor.h @@ -58,7 +58,6 @@ public: virtual void visit(const IFormFactor *sample); virtual void visit(const FormFactorDWBAPol *sample); - virtual void visit(const FormFactorDWBAPolConstZ *sample); virtual void visit(const FormFactorWeighted *sample); @@ -97,7 +96,6 @@ public: virtual void visit(const IFormFactorDecorator *sample); virtual void visit(const FormFactorDWBA *sample); - virtual void visit(const FormFactorDWBAConstZ *sample); virtual void visit(const FormFactorDecoratorDebyeWaller *sample); virtual void visit(const FormFactorDecoratorFactor *sample); virtual void visit(const FormFactorDecoratorMaterial *sample); diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp index 9e3f1c2f9465d6b0dd0285b0eab1498fffe64381..4d879a70d262db4094fbb232555b0b856953c0b6 100644 --- a/Core/Tools/src/SampleMaterialVisitor.cpp +++ b/Core/Tools/src/SampleMaterialVisitor.cpp @@ -127,10 +127,6 @@ void SampleMaterialVisitor::visit(const FormFactorDWBAPol *) { } -void SampleMaterialVisitor::visit(const FormFactorDWBAPolConstZ *) -{ -} - void SampleMaterialVisitor::visit(const FormFactorWeighted *) { } @@ -259,10 +255,6 @@ void SampleMaterialVisitor::visit(const FormFactorDWBA *) { } -void SampleMaterialVisitor::visit(const FormFactorDWBAConstZ *) -{ -} - void SampleMaterialVisitor::visit(const FormFactorDecoratorDebyeWaller *) { } diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp index e1076733f73135e0d6c8cf35c96c42a9a2b13a89..acbe5e098f5228f99e29ffd72b15f4348dcced8f 100644 --- a/Core/Tools/src/SamplePrintVisitor.cpp +++ b/Core/Tools/src/SamplePrintVisitor.cpp @@ -163,13 +163,6 @@ void SamplePrintVisitor::visit(const FormFactorDWBAPol *) } -void SamplePrintVisitor::visit(const FormFactorDWBAPolConstZ *) -{ - throw NotImplementedException("SamplePrintVisitor::" - "visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented."); -} - - void SamplePrintVisitor::visit(const FormFactorWeighted *) { throw NotImplementedException("SamplePrintVisitor::" @@ -352,13 +345,6 @@ void SamplePrintVisitor::visit(const FormFactorDWBA *) } -void SamplePrintVisitor::visit(const FormFactorDWBAConstZ *) -{ - throw NotImplementedException("SamplePrintVisitor::" - "visit(const FormFactorDWBAConstZ *) -> Error. Not implemented."); -} - - void SamplePrintVisitor::visit(const FormFactorDecoratorDebyeWaller *sample) { print_default(sample); diff --git a/Fit/PythonAPI/src/PythonModule.cpp b/Fit/PythonAPI/src/PythonModule.cpp index 9e316599b4cf7992d66a9756e63a29a6c5020ac4..ef8312b19c0e5f34a1dd036a15ac8689fdb68a4c 100644 --- a/Fit/PythonAPI/src/PythonModule.cpp +++ b/Fit/PythonAPI/src/PythonModule.cpp @@ -5,38 +5,38 @@ GCC_DIAG_OFF(missing-field-initializers) #include "boost/python.hpp" GCC_DIAG_ON(unused-parameter) GCC_DIAG_ON(missing-field-initializers) -#include "FitObject.pypp.h" -#include "IntensityFunctionLog.pypp.h" #include "IntensityFunctionSqrt.pypp.h" -#include "FitStrategyDefault.pypp.h" -#include "IChiSquaredModule.pypp.h" +#include "MinimizerFactory.pypp.h" +#include "IMinimizer.pypp.h" +#include "vector_string_t.pypp.h" +#include "SquaredFunctionSystematicError.pypp.h" +#include "IntensityNormalizer.pypp.h" +#include "IIntensityFunction.pypp.h" +#include "INamed.pypp.h" +#include "IntensityFunctionLog.pypp.h" +#include "FitSuiteParameters.pypp.h" #include "AttFitting.pypp.h" -#include "FitStrategyAdjustParameters.pypp.h" +#include "FitParameter.pypp.h" +#include "IntensityScaleAndShiftNormalizer.pypp.h" +#include "IChiSquaredModule.pypp.h" #include "FitStrategyAdjustMinimizer.pypp.h" -#include "ISquaredFunction.pypp.h" +#include "IFitStrategy.pypp.h" +#include "FitStrategyFixParameters.pypp.h" #include "SquaredFunctionGaussianError.pypp.h" -#include "IIntensityFunction.pypp.h" -#include "IntensityScaleAndShiftNormalizer.pypp.h" -#include "SquaredFunctionMeanSquaredError.pypp.h" -#include "FitSuiteParameters.pypp.h" -#include "IMinimizer.pypp.h" #include "IIntensityNormalizer.pypp.h" -#include "FitParameter.pypp.h" -#include "INamed.pypp.h" -#include "FitStrategyReleaseParameters.pypp.h" #include "FitSuite.pypp.h" -#include "IntensityNormalizer.pypp.h" -#include "FitStrategyFixParameters.pypp.h" -#include "FitSuiteObjects.pypp.h" -#include "SquaredFunctionSystematicError.pypp.h" -#include "MinimizerFactory.pypp.h" +#include "FitStrategyAdjustParameters.pypp.h" #include "ChiSquaredModule.pypp.h" -#include "SquaredFunctionSimError.pypp.h" #include "MinimizerOptions.pypp.h" -#include "AttLimits.pypp.h" #include "SquaredFunctionDefault.pypp.h" -#include "vector_string_t.pypp.h" -#include "IFitStrategy.pypp.h" +#include "SquaredFunctionMeanSquaredError.pypp.h" +#include "ISquaredFunction.pypp.h" +#include "FitStrategyDefault.pypp.h" +#include "AttLimits.pypp.h" +#include "FitObject.pypp.h" +#include "FitSuiteObjects.pypp.h" +#include "SquaredFunctionSimError.pypp.h" +#include "FitStrategyReleaseParameters.pypp.h" BOOST_PYTHON_MODULE(libBornAgainFit){ boost::python::docstring_options doc_options(true, true, false);