diff --git a/Core/FormFactors/inc/FormFactorLongBox.h b/Core/FormFactors/inc/FormFactorLongBoxGauss.h similarity index 70% rename from Core/FormFactors/inc/FormFactorLongBox.h rename to Core/FormFactors/inc/FormFactorLongBoxGauss.h index cd4846c1f0456c56e5a396bcf34f51fdb6e54200..3e7ec3dc3b6c548806a69a582a3f575009900490 100644 --- a/Core/FormFactors/inc/FormFactorLongBox.h +++ b/Core/FormFactors/inc/FormFactorLongBoxGauss.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file FormFactors/inc/FormFactorLongBox.h -//! @brief Defines class FormFactorLongBox. +//! @file FormFactors/inc/FormFactorLongBoxGauss.h +//! @brief Defines class FormFactorLongBoxGauss. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -13,8 +13,8 @@ // // ************************************************************************** // -#ifndef FORMFACTORLONGBOX_H -#define FORMFACTORLONGBOX_H +#ifndef FORMFACTORLONGBOXGAUSS_H +#define FORMFACTORLONGBOXGAUSS_H #include "IFormFactorBorn.h" @@ -22,16 +22,16 @@ //! @ingroup formfactors //! @brief The formfactor for a long rectangular box. -class BA_CORE_API_ FormFactorLongBox : public IFormFactorBorn +class BA_CORE_API_ FormFactorLongBoxGauss : public IFormFactorBorn { public: //! @brief Box constructor //! @param length of Box's base //! @param width of Box's base //! @param height of Box - FormFactorLongBox( double length, double width, double height); + FormFactorLongBoxGauss( double length, double width, double height); - FormFactorLongBox *clone() const; + FormFactorLongBoxGauss *clone() const; virtual void accept(ISampleVisitor *visitor) const; @@ -59,26 +59,26 @@ private: double m_height; }; -inline double FormFactorLongBox::getLength() const +inline double FormFactorLongBoxGauss::getLength() const { return m_length; } -inline double FormFactorLongBox::getHeight() const +inline double FormFactorLongBoxGauss::getHeight() const { return m_height; } -inline double FormFactorLongBox::getRadius() const +inline double FormFactorLongBoxGauss::getRadius() const { return m_length/2.0; } -inline double FormFactorLongBox::getWidth() const +inline double FormFactorLongBoxGauss::getWidth() const { return m_width; } -#endif // FORMFACTORLONGBOX_H +#endif // FORMFACTORLONGBOXGAUSS_H diff --git a/Core/FormFactors/inc/FormFactorLongBoxLorentz.h b/Core/FormFactors/inc/FormFactorLongBoxLorentz.h new file mode 100644 index 0000000000000000000000000000000000000000..d901c1a089d03a04d398cdacd7a020eb431c9c08 --- /dev/null +++ b/Core/FormFactors/inc/FormFactorLongBoxLorentz.h @@ -0,0 +1,84 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file FormFactors/inc/FormFactorLongBoxLorentz.h +//! @brief Defines class FormFactorLongBoxLorentz. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#ifndef FORMFACTORLONGBOXLORENTZ_H +#define FORMFACTORLONGBOXLORENTZ_H + +#include "IFormFactorBorn.h" + +//! @class FormFactorBox +//! @ingroup formfactors +//! @brief The formfactor for a long rectangular box. + +class BA_CORE_API_ FormFactorLongBoxLorentz : public IFormFactorBorn +{ +public: + //! @brief Box constructor + //! @param length of Box's base + //! @param width of Box's base + //! @param height of Box + FormFactorLongBoxLorentz( double length, double width, double height); + + FormFactorLongBoxLorentz *clone() const; + + virtual void accept(ISampleVisitor *visitor) const; + + //! Returns length of Box + double getLength() const; + + //! Returns height of Box + double getHeight() const; + + //! Returns radius of Box + virtual double getRadius() const; + + //! Returns width of Box + double getWidth() const; + + virtual complex_t evaluate_for_q(const cvector_t& q) const; + +protected: + virtual bool check_initialization() const; + virtual void init_parameters(); + +private: + double m_length; + double m_width; + double m_height; +}; + +inline double FormFactorLongBoxLorentz::getLength() const +{ + return m_length; +} + +inline double FormFactorLongBoxLorentz::getHeight() const +{ + return m_height; +} + +inline double FormFactorLongBoxLorentz::getRadius() const +{ + return m_length/2.0; +} + +inline double FormFactorLongBoxLorentz::getWidth() const +{ + return m_width; +} + +#endif // FORMFACTORLONGBOXLORENTZ_H + + diff --git a/Core/FormFactors/inc/FormFactors.h b/Core/FormFactors/inc/FormFactors.h index 1e0ed6ff7d9fd0bf1fd7ffc0b5f217f468f4ca9a..f557af41537f56cb3aa217c26d02961e209e6e8f 100644 --- a/Core/FormFactors/inc/FormFactors.h +++ b/Core/FormFactors/inc/FormFactors.h @@ -36,7 +36,8 @@ #include "FormFactorFullSpheroid.h" #include "FormFactorGauss.h" #include "FormFactorHemiEllipsoid.h" -#include "FormFactorLongBox.h" +#include "FormFactorLongBoxGauss.h" +#include "FormFactorLongBoxLorentz.h" #include "FormFactorLorentz.h" #include "FormFactorPrism3.h" #include "FormFactorPrism6.h" diff --git a/Core/FormFactors/src/FormFactorLongBox.cpp b/Core/FormFactors/src/FormFactorLongBoxGauss.cpp similarity index 67% rename from Core/FormFactors/src/FormFactorLongBox.cpp rename to Core/FormFactors/src/FormFactorLongBoxGauss.cpp index bdd1324a6313e38f3950de2a99303e9d73c7bb62..4433c4cbc039c8ce53c4fe121d67ab55ebb44180 100644 --- a/Core/FormFactors/src/FormFactorLongBox.cpp +++ b/Core/FormFactors/src/FormFactorLongBoxGauss.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file FormFactors/src/FormFactorLongBox.cpp -//! @brief Implements class FormFactorLongBox. +//! @file FormFactors/src/FormFactorLongBoxGauss.cpp +//! @brief Implements class FormFactorLongBoxGauss. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -13,31 +13,31 @@ // // ************************************************************************** // -#include "FormFactorLongBox.h" +#include "FormFactorLongBoxGauss.h" #include "BornAgainNamespace.h" #include "MathFunctions.h" using namespace BornAgain; -FormFactorLongBox::FormFactorLongBox(double length, double width, double height) +FormFactorLongBoxGauss::FormFactorLongBoxGauss(double length, double width, double height) : m_length(length), m_width(width), m_height(height) { - setName(FFLongBoxType); + setName(FFLongBoxGaussType); check_initialization(); init_parameters(); } -FormFactorLongBox *FormFactorLongBox::clone() const +FormFactorLongBoxGauss *FormFactorLongBoxGauss::clone() const { - return new FormFactorLongBox(m_length, m_width, m_height); + return new FormFactorLongBoxGauss(m_length, m_width, m_height); } -void FormFactorLongBox::accept(ISampleVisitor *visitor) const +void FormFactorLongBoxGauss::accept(ISampleVisitor *visitor) const { visitor->visit(this); } -complex_t FormFactorLongBox::evaluate_for_q(const cvector_t &q) const +complex_t FormFactorLongBoxGauss::evaluate_for_q(const cvector_t &q) const { complex_t qxL2 = std::pow(m_length * q.x(), 2) / 2.0; complex_t qyWdiv2 = m_width * q.y() / 2.0; @@ -47,12 +47,12 @@ complex_t FormFactorLongBox::evaluate_for_q(const cvector_t &q) const * MathFunctions::sinc(qyWdiv2) * MathFunctions::sinc(qzHdiv2); } -bool FormFactorLongBox::check_initialization() const +bool FormFactorLongBoxGauss::check_initialization() const { return true; } -void FormFactorLongBox::init_parameters() +void FormFactorLongBoxGauss::init_parameters() { clearParameterPool(); registerParameter(Length, &m_length, AttLimits::n_positive()); diff --git a/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp b/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp new file mode 100644 index 0000000000000000000000000000000000000000..129ee2f6c9a313377dffc25eeed5ed4aff15e1e4 --- /dev/null +++ b/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp @@ -0,0 +1,61 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file FormFactors/src/FormFactorLongBoxLorentz.cpp +//! @brief Implements class FormFactorLongBoxLorentz. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#include "FormFactorLongBoxLorentz.h" +#include "BornAgainNamespace.h" +#include "MathFunctions.h" + +using namespace BornAgain; + +FormFactorLongBoxLorentz::FormFactorLongBoxLorentz(double length, double width, double height) + : m_length(length), m_width(width), m_height(height) { + + setName(FFLongBoxLorentzType); + check_initialization(); + init_parameters(); +} + +FormFactorLongBoxLorentz *FormFactorLongBoxLorentz::clone() const +{ + return new FormFactorLongBoxLorentz(m_length, m_width, m_height); +} + +void FormFactorLongBoxLorentz::accept(ISampleVisitor *visitor) const +{ + visitor->visit(this); +} + +complex_t FormFactorLongBoxLorentz::evaluate_for_q(const cvector_t &q) const +{ + complex_t qxL2 = 2.5*std::pow(m_length * q.x(), 2); + complex_t qyWdiv2 = m_width * q.y() / 2.0; + complex_t qzHdiv2 = m_height * q.z() / 2.0; + + return m_height * m_length * m_width * std::exp(complex_t(0., 1.) * qzHdiv2) / (1.0 + qxL2) + * MathFunctions::sinc(qyWdiv2) * MathFunctions::sinc(qzHdiv2); +} + +bool FormFactorLongBoxLorentz::check_initialization() const +{ + return true; +} + +void FormFactorLongBoxLorentz::init_parameters() +{ + clearParameterPool(); + registerParameter(Length, &m_length, AttLimits::n_positive()); + registerParameter(Width, &m_width, AttLimits::n_positive()); + registerParameter(Height, &m_height, AttLimits::n_positive()); +} diff --git a/Core/PythonAPI/inc/FormFactorLongBox.pypp.h b/Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h similarity index 78% rename from Core/PythonAPI/inc/FormFactorLongBox.pypp.h rename to Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h index 2a318ed5ba669b4bb2ced9e1fb81421c3b762f15..0ebcca4fe0973e5d92b1dd482be89986008c1ddd 100644 --- a/Core/PythonAPI/inc/FormFactorLongBox.pypp.h +++ b/Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h @@ -15,9 +15,9 @@ // // ************************************************************************** // -#ifndef FormFactorLongBox_hpp__pyplusplus_wrapper -#define FormFactorLongBox_hpp__pyplusplus_wrapper +#ifndef FormFactorLongBoxGauss_hpp__pyplusplus_wrapper +#define FormFactorLongBoxGauss_hpp__pyplusplus_wrapper -void register_FormFactorLongBox_class(); +void register_FormFactorLongBoxGauss_class(); -#endif//FormFactorLongBox_hpp__pyplusplus_wrapper +#endif//FormFactorLongBoxGauss_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h b/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h new file mode 100644 index 0000000000000000000000000000000000000000..b63366e1650c2c397dcacdd659da526edb42dffc --- /dev/null +++ b/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h @@ -0,0 +1,23 @@ +// This file has been generated by Py++. + +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Automatically generated boost::python code for BornAgain Python bindings +//! @brief Automatically generated boost::python code for BornAgain Python bindings +//! +//! @homepage http://bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Juelich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#ifndef FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper +#define FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper + +void register_FormFactorLongBoxLorentz_class(); + +#endif//FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/PythonCoreList.h b/Core/PythonAPI/inc/PythonCoreList.h index 570ac41b0f113f58debc608cf63d988c2b2d42d4..ac3332ae22f73c1dcda9fd5f8dac64bacb6a927c 100644 --- a/Core/PythonAPI/inc/PythonCoreList.h +++ b/Core/PythonAPI/inc/PythonCoreList.h @@ -26,7 +26,8 @@ #include "FormFactorFullSpheroid.h" #include "FormFactorGauss.h" #include "FormFactorHemiEllipsoid.h" -#include "FormFactorLongBox.h" +#include "FormFactorLongBoxGauss.h" +#include "FormFactorLongBoxLorentz.h" #include "FormFactorLorentz.h" #include "FormFactorPrism3.h" #include "FormFactorPrism6.h" diff --git a/Core/PythonAPI/src/FormFactorLongBox.pypp.cpp b/Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp similarity index 63% rename from Core/PythonAPI/src/FormFactorLongBox.pypp.cpp rename to Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp index 20491e6c598e31e975da62e4c434a97350eb4cd2..b44708da68b90f1df3942a0203c403c91f0583d2 100644 --- a/Core/PythonAPI/src/FormFactorLongBox.pypp.cpp +++ b/Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp @@ -22,53 +22,53 @@ GCC_DIAG_OFF(missing-field-initializers) GCC_DIAG_ON(unused-parameter) GCC_DIAG_ON(missing-field-initializers) #include "PythonCoreList.h" -#include "FormFactorLongBox.pypp.h" +#include "FormFactorLongBoxGauss.pypp.h" namespace bp = boost::python; -struct FormFactorLongBox_wrapper : FormFactorLongBox, bp::wrapper< FormFactorLongBox > { +struct FormFactorLongBoxGauss_wrapper : FormFactorLongBoxGauss, bp::wrapper< FormFactorLongBoxGauss > { - FormFactorLongBox_wrapper(double length, double width, double height ) - : FormFactorLongBox( length, width, height ) - , bp::wrapper< FormFactorLongBox >(){ + FormFactorLongBoxGauss_wrapper(double length, double width, double height ) + : FormFactorLongBoxGauss( length, width, height ) + , bp::wrapper< FormFactorLongBoxGauss >(){ // constructor m_pyobj = 0; } - virtual ::FormFactorLongBox * clone( ) const { + virtual ::FormFactorLongBoxGauss * clone( ) const { if( bp::override func_clone = this->get_override( "clone" ) ) return func_clone( ); else{ - return this->FormFactorLongBox::clone( ); + return this->FormFactorLongBoxGauss::clone( ); } } - ::FormFactorLongBox * default_clone( ) const { - return FormFactorLongBox::clone( ); + ::FormFactorLongBoxGauss * default_clone( ) const { + return FormFactorLongBoxGauss::clone( ); } virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const { if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) ) return func_evaluate_for_q( boost::ref(q) ); else{ - return this->FormFactorLongBox::evaluate_for_q( boost::ref(q) ); + return this->FormFactorLongBoxGauss::evaluate_for_q( boost::ref(q) ); } } ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const { - return FormFactorLongBox::evaluate_for_q( boost::ref(q) ); + return FormFactorLongBoxGauss::evaluate_for_q( boost::ref(q) ); } virtual double getRadius( ) const { if( bp::override func_getRadius = this->get_override( "getRadius" ) ) return func_getRadius( ); else{ - return this->FormFactorLongBox::getRadius( ); + return this->FormFactorLongBoxGauss::getRadius( ); } } double default_getRadius( ) const { - return FormFactorLongBox::getRadius( ); + return FormFactorLongBoxGauss::getRadius( ); } virtual ::ISample * cloneInvertB( ) const { @@ -195,174 +195,174 @@ struct FormFactorLongBox_wrapper : FormFactorLongBox, bp::wrapper< FormFactorLon }; -void register_FormFactorLongBox_class(){ +void register_FormFactorLongBoxGauss_class(){ - { //::FormFactorLongBox - typedef bp::class_< FormFactorLongBox_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBox_wrapper >, boost::noncopyable > FormFactorLongBox_exposer_t; - FormFactorLongBox_exposer_t FormFactorLongBox_exposer = FormFactorLongBox_exposer_t( "FormFactorLongBox", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n - 'length' - of Box's base\n - 'width' - of Box's base\n - 'height' - of Box\n") ); - bp::scope FormFactorLongBox_scope( FormFactorLongBox_exposer ); - { //::FormFactorLongBox::clone - - typedef ::FormFactorLongBox * ( ::FormFactorLongBox::*clone_function_type)( ) const; - typedef ::FormFactorLongBox * ( FormFactorLongBox_wrapper::*default_clone_function_type)( ) const; + { //::FormFactorLongBoxGauss + typedef bp::class_< FormFactorLongBoxGauss_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBoxGauss_wrapper >, boost::noncopyable > FormFactorLongBoxGauss_exposer_t; + FormFactorLongBoxGauss_exposer_t FormFactorLongBoxGauss_exposer = FormFactorLongBoxGauss_exposer_t( "FormFactorLongBoxGauss", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n - 'length' - of Box's base\n - 'width' - of Box's base\n - 'height' - of Box\n") ); + bp::scope FormFactorLongBoxGauss_scope( FormFactorLongBoxGauss_exposer ); + { //::FormFactorLongBoxGauss::clone + + typedef ::FormFactorLongBoxGauss * ( ::FormFactorLongBoxGauss::*clone_function_type)( ) const; + typedef ::FormFactorLongBoxGauss * ( FormFactorLongBoxGauss_wrapper::*default_clone_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "clone" - , clone_function_type(&::FormFactorLongBox::clone) - , default_clone_function_type(&FormFactorLongBox_wrapper::default_clone) + , clone_function_type(&::FormFactorLongBoxGauss::clone) + , default_clone_function_type(&FormFactorLongBoxGauss_wrapper::default_clone) , bp::return_value_policy< bp::manage_new_object >() ); } - { //::FormFactorLongBox::evaluate_for_q + { //::FormFactorLongBoxGauss::evaluate_for_q - typedef ::complex_t ( ::FormFactorLongBox::*evaluate_for_q_function_type)( ::cvector_t const & ) const; - typedef ::complex_t ( FormFactorLongBox_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const; + typedef ::complex_t ( ::FormFactorLongBoxGauss::*evaluate_for_q_function_type)( ::cvector_t const & ) const; + typedef ::complex_t ( FormFactorLongBoxGauss_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "evaluate_for_q" - , evaluate_for_q_function_type(&::FormFactorLongBox::evaluate_for_q) - , default_evaluate_for_q_function_type(&FormFactorLongBox_wrapper::default_evaluate_for_q) + , evaluate_for_q_function_type(&::FormFactorLongBoxGauss::evaluate_for_q) + , default_evaluate_for_q_function_type(&FormFactorLongBoxGauss_wrapper::default_evaluate_for_q) , ( bp::arg("q") ) ); } - { //::FormFactorLongBox::getHeight + { //::FormFactorLongBoxGauss::getHeight - typedef double ( ::FormFactorLongBox::*getHeight_function_type)( ) const; + typedef double ( ::FormFactorLongBoxGauss::*getHeight_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getHeight" - , getHeight_function_type( &::FormFactorLongBox::getHeight ) ); + , getHeight_function_type( &::FormFactorLongBoxGauss::getHeight ) ); } - { //::FormFactorLongBox::getLength + { //::FormFactorLongBoxGauss::getLength - typedef double ( ::FormFactorLongBox::*getLength_function_type)( ) const; + typedef double ( ::FormFactorLongBoxGauss::*getLength_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getLength" - , getLength_function_type( &::FormFactorLongBox::getLength ) ); + , getLength_function_type( &::FormFactorLongBoxGauss::getLength ) ); } - { //::FormFactorLongBox::getRadius + { //::FormFactorLongBoxGauss::getRadius - typedef double ( ::FormFactorLongBox::*getRadius_function_type)( ) const; - typedef double ( FormFactorLongBox_wrapper::*default_getRadius_function_type)( ) const; + typedef double ( ::FormFactorLongBoxGauss::*getRadius_function_type)( ) const; + typedef double ( FormFactorLongBoxGauss_wrapper::*default_getRadius_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getRadius" - , getRadius_function_type(&::FormFactorLongBox::getRadius) - , default_getRadius_function_type(&FormFactorLongBox_wrapper::default_getRadius) ); + , getRadius_function_type(&::FormFactorLongBoxGauss::getRadius) + , default_getRadius_function_type(&FormFactorLongBoxGauss_wrapper::default_getRadius) ); } - { //::FormFactorLongBox::getWidth + { //::FormFactorLongBoxGauss::getWidth - typedef double ( ::FormFactorLongBox::*getWidth_function_type)( ) const; + typedef double ( ::FormFactorLongBoxGauss::*getWidth_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getWidth" - , getWidth_function_type( &::FormFactorLongBox::getWidth ) ); + , getWidth_function_type( &::FormFactorLongBoxGauss::getWidth ) ); } { //::ISample::cloneInvertB typedef ::ISample * ( ::ISample::*cloneInvertB_function_type)( ) const; - typedef ::ISample * ( FormFactorLongBox_wrapper::*default_cloneInvertB_function_type)( ) const; + typedef ::ISample * ( FormFactorLongBoxGauss_wrapper::*default_cloneInvertB_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "cloneInvertB" , cloneInvertB_function_type(&::ISample::cloneInvertB) - , default_cloneInvertB_function_type(&FormFactorLongBox_wrapper::default_cloneInvertB) + , default_cloneInvertB_function_type(&FormFactorLongBoxGauss_wrapper::default_cloneInvertB) , bp::return_value_policy< bp::reference_existing_object >() ); } { //::ISample::containsMagneticMaterial typedef bool ( ::ISample::*containsMagneticMaterial_function_type)( ) const; - typedef bool ( FormFactorLongBox_wrapper::*default_containsMagneticMaterial_function_type)( ) const; + typedef bool ( FormFactorLongBoxGauss_wrapper::*default_containsMagneticMaterial_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "containsMagneticMaterial" , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial) - , default_containsMagneticMaterial_function_type(&FormFactorLongBox_wrapper::default_containsMagneticMaterial) ); + , default_containsMagneticMaterial_function_type(&FormFactorLongBoxGauss_wrapper::default_containsMagneticMaterial) ); } { //::IFormFactorBorn::evaluate typedef ::complex_t ( ::IFormFactorBorn::*evaluate_function_type)( ::WavevectorInfo const & ) const; - typedef ::complex_t ( FormFactorLongBox_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const; + typedef ::complex_t ( FormFactorLongBoxGauss_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "evaluate" , evaluate_function_type(&::IFormFactorBorn::evaluate) - , default_evaluate_function_type(&FormFactorLongBox_wrapper::default_evaluate) + , default_evaluate_function_type(&FormFactorLongBoxGauss_wrapper::default_evaluate) , ( bp::arg("wavevectors") ) ); } { //::ISample::getChildren typedef ::std::vector< const ISample* > ( ::ISample::*getChildren_function_type)( ) const; - typedef ::std::vector< const ISample* > ( FormFactorLongBox_wrapper::*default_getChildren_function_type)( ) const; + typedef ::std::vector< const ISample* > ( FormFactorLongBoxGauss_wrapper::*default_getChildren_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getChildren" , getChildren_function_type(&::ISample::getChildren) - , default_getChildren_function_type(&FormFactorLongBox_wrapper::default_getChildren) ); + , default_getChildren_function_type(&FormFactorLongBoxGauss_wrapper::default_getChildren) ); } { //::IFormFactor::getVolume typedef double ( ::IFormFactor::*getVolume_function_type)( ) const; - typedef double ( FormFactorLongBox_wrapper::*default_getVolume_function_type)( ) const; + typedef double ( FormFactorLongBoxGauss_wrapper::*default_getVolume_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "getVolume" , getVolume_function_type(&::IFormFactor::getVolume) - , default_getVolume_function_type(&FormFactorLongBox_wrapper::default_getVolume) ); + , default_getVolume_function_type(&FormFactorLongBoxGauss_wrapper::default_getVolume) ); } { //::ISample::printSampleTree typedef void ( ::ISample::*printSampleTree_function_type)( ) ; - typedef void ( FormFactorLongBox_wrapper::*default_printSampleTree_function_type)( ) ; + typedef void ( FormFactorLongBoxGauss_wrapper::*default_printSampleTree_function_type)( ) ; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "printSampleTree" , printSampleTree_function_type(&::ISample::printSampleTree) - , default_printSampleTree_function_type(&FormFactorLongBox_wrapper::default_printSampleTree) ); + , default_printSampleTree_function_type(&FormFactorLongBoxGauss_wrapper::default_printSampleTree) ); } { //::IFormFactor::setAmbientMaterial typedef void ( ::IFormFactor::*setAmbientMaterial_function_type)( ::IMaterial const & ) ; - typedef void ( FormFactorLongBox_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ; + typedef void ( FormFactorLongBoxGauss_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "setAmbientMaterial" , setAmbientMaterial_function_type(&::IFormFactor::setAmbientMaterial) - , default_setAmbientMaterial_function_type(&FormFactorLongBox_wrapper::default_setAmbientMaterial) + , default_setAmbientMaterial_function_type(&FormFactorLongBoxGauss_wrapper::default_setAmbientMaterial) , ( bp::arg("arg0") ) ); } { //::ISample::size typedef ::std::size_t ( ::ISample::*size_function_type)( ) const; - typedef ::std::size_t ( FormFactorLongBox_wrapper::*default_size_function_type)( ) const; + typedef ::std::size_t ( FormFactorLongBoxGauss_wrapper::*default_size_function_type)( ) const; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "size" , size_function_type(&::ISample::size) - , default_size_function_type(&FormFactorLongBox_wrapper::default_size) ); + , default_size_function_type(&FormFactorLongBoxGauss_wrapper::default_size) ); } { //::ICloneable::transferToCPP typedef void ( ::ICloneable::*transferToCPP_function_type)( ) ; - typedef void ( FormFactorLongBox_wrapper::*default_transferToCPP_function_type)( ) ; + typedef void ( FormFactorLongBoxGauss_wrapper::*default_transferToCPP_function_type)( ) ; - FormFactorLongBox_exposer.def( + FormFactorLongBoxGauss_exposer.def( "transferToCPP" , transferToCPP_function_type(&::ICloneable::transferToCPP) - , default_transferToCPP_function_type(&FormFactorLongBox_wrapper::default_transferToCPP) ); + , default_transferToCPP_function_type(&FormFactorLongBoxGauss_wrapper::default_transferToCPP) ); } } diff --git a/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1a09f638f52fe1a65c61b510d25c13b140d4c5ad --- /dev/null +++ b/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp @@ -0,0 +1,370 @@ +// This file has been generated by Py++. + +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Automatically generated boost::python code for BornAgain Python bindings +//! @brief Automatically generated boost::python code for BornAgain Python bindings +//! +//! @homepage http://bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Juelich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#include "Macros.h" +GCC_DIAG_OFF(unused-parameter) +GCC_DIAG_OFF(missing-field-initializers) +#include "boost/python.hpp" +GCC_DIAG_ON(unused-parameter) +GCC_DIAG_ON(missing-field-initializers) +#include "PythonCoreList.h" +#include "FormFactorLongBoxLorentz.pypp.h" + +namespace bp = boost::python; + +struct FormFactorLongBoxLorentz_wrapper : FormFactorLongBoxLorentz, bp::wrapper< FormFactorLongBoxLorentz > { + + FormFactorLongBoxLorentz_wrapper(double length, double width, double height ) + : FormFactorLongBoxLorentz( length, width, height ) + , bp::wrapper< FormFactorLongBoxLorentz >(){ + // constructor + m_pyobj = 0; + } + + virtual ::FormFactorLongBoxLorentz * clone( ) const { + if( bp::override func_clone = this->get_override( "clone" ) ) + return func_clone( ); + else{ + return this->FormFactorLongBoxLorentz::clone( ); + } + } + + ::FormFactorLongBoxLorentz * default_clone( ) const { + return FormFactorLongBoxLorentz::clone( ); + } + + virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const { + if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) ) + return func_evaluate_for_q( boost::ref(q) ); + else{ + return this->FormFactorLongBoxLorentz::evaluate_for_q( boost::ref(q) ); + } + } + + ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const { + return FormFactorLongBoxLorentz::evaluate_for_q( boost::ref(q) ); + } + + virtual double getRadius( ) const { + if( bp::override func_getRadius = this->get_override( "getRadius" ) ) + return func_getRadius( ); + else{ + return this->FormFactorLongBoxLorentz::getRadius( ); + } + } + + double default_getRadius( ) const { + return FormFactorLongBoxLorentz::getRadius( ); + } + + virtual ::ISample * cloneInvertB( ) const { + if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) ) + return func_cloneInvertB( ); + else{ + return this->ISample::cloneInvertB( ); + } + } + + ::ISample * default_cloneInvertB( ) const { + return ISample::cloneInvertB( ); + } + + virtual bool containsMagneticMaterial( ) const { + if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) ) + return func_containsMagneticMaterial( ); + else{ + return this->ISample::containsMagneticMaterial( ); + } + } + + bool default_containsMagneticMaterial( ) const { + return ISample::containsMagneticMaterial( ); + } + + virtual ::complex_t evaluate( ::WavevectorInfo const & wavevectors ) const { + if( bp::override func_evaluate = this->get_override( "evaluate" ) ) + return func_evaluate( boost::ref(wavevectors) ); + else{ + return this->IFormFactorBorn::evaluate( boost::ref(wavevectors) ); + } + } + + ::complex_t default_evaluate( ::WavevectorInfo const & wavevectors ) const { + return IFormFactorBorn::evaluate( boost::ref(wavevectors) ); + } + + virtual ::std::vector< const ISample* > getChildren( ) const { + if( bp::override func_getChildren = this->get_override( "getChildren" ) ) + return func_getChildren( ); + else{ + return this->ISample::getChildren( ); + } + } + + ::std::vector< const ISample* > default_getChildren( ) const { + return ISample::getChildren( ); + } + + virtual double getVolume( ) const { + if( bp::override func_getVolume = this->get_override( "getVolume" ) ) + return func_getVolume( ); + else{ + return this->IFormFactor::getVolume( ); + } + } + + double default_getVolume( ) const { + return IFormFactor::getVolume( ); + } + + virtual void printSampleTree( ) { + if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) ) + func_printSampleTree( ); + else{ + this->ISample::printSampleTree( ); + } + } + + void default_printSampleTree( ) { + ISample::printSampleTree( ); + } + + virtual void setAmbientMaterial( ::IMaterial const & arg0 ) { + if( bp::override func_setAmbientMaterial = this->get_override( "setAmbientMaterial" ) ) + func_setAmbientMaterial( boost::ref(arg0) ); + else{ + this->IFormFactor::setAmbientMaterial( boost::ref(arg0) ); + } + } + + void default_setAmbientMaterial( ::IMaterial const & arg0 ) { + IFormFactor::setAmbientMaterial( boost::ref(arg0) ); + } + + virtual ::std::size_t size( ) const { + if( bp::override func_size = this->get_override( "size" ) ) + return func_size( ); + else{ + return this->ISample::size( ); + } + } + + ::std::size_t default_size( ) const { + return ISample::size( ); + } + + virtual void transferToCPP( ) { + + if( !this->m_pyobj) { + this->m_pyobj = boost::python::detail::wrapper_base_::get_owner(*this); + Py_INCREF(this->m_pyobj); + } + + if( bp::override func_transferToCPP = this->get_override( "transferToCPP" ) ) + func_transferToCPP( ); + else{ + this->ICloneable::transferToCPP( ); + } + } + + void default_transferToCPP( ) { + + if( !this->m_pyobj) { + this->m_pyobj = boost::python::detail::wrapper_base_::get_owner(*this); + Py_INCREF(this->m_pyobj); + } + + ICloneable::transferToCPP( ); + } + + PyObject* m_pyobj; + +}; + +void register_FormFactorLongBoxLorentz_class(){ + + { //::FormFactorLongBoxLorentz + typedef bp::class_< FormFactorLongBoxLorentz_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBoxLorentz_wrapper >, boost::noncopyable > FormFactorLongBoxLorentz_exposer_t; + FormFactorLongBoxLorentz_exposer_t FormFactorLongBoxLorentz_exposer = FormFactorLongBoxLorentz_exposer_t( "FormFactorLongBoxLorentz", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n - 'length' - of Box's base\n - 'width' - of Box's base\n - 'height' - of Box\n") ); + bp::scope FormFactorLongBoxLorentz_scope( FormFactorLongBoxLorentz_exposer ); + { //::FormFactorLongBoxLorentz::clone + + typedef ::FormFactorLongBoxLorentz * ( ::FormFactorLongBoxLorentz::*clone_function_type)( ) const; + typedef ::FormFactorLongBoxLorentz * ( FormFactorLongBoxLorentz_wrapper::*default_clone_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "clone" + , clone_function_type(&::FormFactorLongBoxLorentz::clone) + , default_clone_function_type(&FormFactorLongBoxLorentz_wrapper::default_clone) + , bp::return_value_policy< bp::manage_new_object >() ); + + } + { //::FormFactorLongBoxLorentz::evaluate_for_q + + typedef ::complex_t ( ::FormFactorLongBoxLorentz::*evaluate_for_q_function_type)( ::cvector_t const & ) const; + typedef ::complex_t ( FormFactorLongBoxLorentz_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const; + + FormFactorLongBoxLorentz_exposer.def( + "evaluate_for_q" + , evaluate_for_q_function_type(&::FormFactorLongBoxLorentz::evaluate_for_q) + , default_evaluate_for_q_function_type(&FormFactorLongBoxLorentz_wrapper::default_evaluate_for_q) + , ( bp::arg("q") ) ); + + } + { //::FormFactorLongBoxLorentz::getHeight + + typedef double ( ::FormFactorLongBoxLorentz::*getHeight_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getHeight" + , getHeight_function_type( &::FormFactorLongBoxLorentz::getHeight ) ); + + } + { //::FormFactorLongBoxLorentz::getLength + + typedef double ( ::FormFactorLongBoxLorentz::*getLength_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getLength" + , getLength_function_type( &::FormFactorLongBoxLorentz::getLength ) ); + + } + { //::FormFactorLongBoxLorentz::getRadius + + typedef double ( ::FormFactorLongBoxLorentz::*getRadius_function_type)( ) const; + typedef double ( FormFactorLongBoxLorentz_wrapper::*default_getRadius_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getRadius" + , getRadius_function_type(&::FormFactorLongBoxLorentz::getRadius) + , default_getRadius_function_type(&FormFactorLongBoxLorentz_wrapper::default_getRadius) ); + + } + { //::FormFactorLongBoxLorentz::getWidth + + typedef double ( ::FormFactorLongBoxLorentz::*getWidth_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getWidth" + , getWidth_function_type( &::FormFactorLongBoxLorentz::getWidth ) ); + + } + { //::ISample::cloneInvertB + + typedef ::ISample * ( ::ISample::*cloneInvertB_function_type)( ) const; + typedef ::ISample * ( FormFactorLongBoxLorentz_wrapper::*default_cloneInvertB_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "cloneInvertB" + , cloneInvertB_function_type(&::ISample::cloneInvertB) + , default_cloneInvertB_function_type(&FormFactorLongBoxLorentz_wrapper::default_cloneInvertB) + , bp::return_value_policy< bp::reference_existing_object >() ); + + } + { //::ISample::containsMagneticMaterial + + typedef bool ( ::ISample::*containsMagneticMaterial_function_type)( ) const; + typedef bool ( FormFactorLongBoxLorentz_wrapper::*default_containsMagneticMaterial_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "containsMagneticMaterial" + , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial) + , default_containsMagneticMaterial_function_type(&FormFactorLongBoxLorentz_wrapper::default_containsMagneticMaterial) ); + + } + { //::IFormFactorBorn::evaluate + + typedef ::complex_t ( ::IFormFactorBorn::*evaluate_function_type)( ::WavevectorInfo const & ) const; + typedef ::complex_t ( FormFactorLongBoxLorentz_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const; + + FormFactorLongBoxLorentz_exposer.def( + "evaluate" + , evaluate_function_type(&::IFormFactorBorn::evaluate) + , default_evaluate_function_type(&FormFactorLongBoxLorentz_wrapper::default_evaluate) + , ( bp::arg("wavevectors") ) ); + + } + { //::ISample::getChildren + + typedef ::std::vector< const ISample* > ( ::ISample::*getChildren_function_type)( ) const; + typedef ::std::vector< const ISample* > ( FormFactorLongBoxLorentz_wrapper::*default_getChildren_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getChildren" + , getChildren_function_type(&::ISample::getChildren) + , default_getChildren_function_type(&FormFactorLongBoxLorentz_wrapper::default_getChildren) ); + + } + { //::IFormFactor::getVolume + + typedef double ( ::IFormFactor::*getVolume_function_type)( ) const; + typedef double ( FormFactorLongBoxLorentz_wrapper::*default_getVolume_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "getVolume" + , getVolume_function_type(&::IFormFactor::getVolume) + , default_getVolume_function_type(&FormFactorLongBoxLorentz_wrapper::default_getVolume) ); + + } + { //::ISample::printSampleTree + + typedef void ( ::ISample::*printSampleTree_function_type)( ) ; + typedef void ( FormFactorLongBoxLorentz_wrapper::*default_printSampleTree_function_type)( ) ; + + FormFactorLongBoxLorentz_exposer.def( + "printSampleTree" + , printSampleTree_function_type(&::ISample::printSampleTree) + , default_printSampleTree_function_type(&FormFactorLongBoxLorentz_wrapper::default_printSampleTree) ); + + } + { //::IFormFactor::setAmbientMaterial + + typedef void ( ::IFormFactor::*setAmbientMaterial_function_type)( ::IMaterial const & ) ; + typedef void ( FormFactorLongBoxLorentz_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ; + + FormFactorLongBoxLorentz_exposer.def( + "setAmbientMaterial" + , setAmbientMaterial_function_type(&::IFormFactor::setAmbientMaterial) + , default_setAmbientMaterial_function_type(&FormFactorLongBoxLorentz_wrapper::default_setAmbientMaterial) + , ( bp::arg("arg0") ) ); + + } + { //::ISample::size + + typedef ::std::size_t ( ::ISample::*size_function_type)( ) const; + typedef ::std::size_t ( FormFactorLongBoxLorentz_wrapper::*default_size_function_type)( ) const; + + FormFactorLongBoxLorentz_exposer.def( + "size" + , size_function_type(&::ISample::size) + , default_size_function_type(&FormFactorLongBoxLorentz_wrapper::default_size) ); + + } + { //::ICloneable::transferToCPP + + typedef void ( ::ICloneable::*transferToCPP_function_type)( ) ; + typedef void ( FormFactorLongBoxLorentz_wrapper::*default_transferToCPP_function_type)( ) ; + + FormFactorLongBoxLorentz_exposer.def( + "transferToCPP" + , transferToCPP_function_type(&::ICloneable::transferToCPP) + , default_transferToCPP_function_type(&FormFactorLongBoxLorentz_wrapper::default_transferToCPP) ); + + } + } + +} diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp index 5647c567f6b13a7cb9e0c27ffe0a6a05adfa3ac3..0de06ca3b195525ea356fffed359bccc7fc19b80 100644 --- a/Core/PythonAPI/src/PythonModule.cpp +++ b/Core/PythonAPI/src/PythonModule.cpp @@ -21,6 +21,7 @@ GCC_DIAG_ON(missing-field-initializers) #include "InterferenceFunction2DLattice.pypp.h" #include "LayerInterface.pypp.h" #include "ILayout.pypp.h" +#include "FormFactorLongBoxLorentz.pypp.h" #include "FormFactorCone6.pypp.h" #include "FormFactorTetrahedron.pypp.h" #include "FTDistribution1DCosine.pypp.h" @@ -109,7 +110,6 @@ GCC_DIAG_ON(missing-field-initializers) #include "FTDecayFunction1DCauchy.pypp.h" #include "Lattice2DParameters.pypp.h" #include "vdouble2d_t.pypp.h" -#include "FormFactorLongBox.pypp.h" #include "Line.pypp.h" #include "HomogeneousMagneticMaterial.pypp.h" #include "vector_realparameter_t.pypp.h" @@ -126,6 +126,7 @@ GCC_DIAG_ON(missing-field-initializers) #include "ParticleLayout.pypp.h" #include "FormFactorBox.pypp.h" #include "IParameterized.pypp.h" +#include "FormFactorLongBoxGauss.pypp.h" #include "IFormFactorDecorator.pypp.h" #include "InterferenceFunction1DLattice.pypp.h" #include "RotationEuler.pypp.h" @@ -242,7 +243,8 @@ BOOST_PYTHON_MODULE(libBornAgainCore){ register_FormFactorFullSpheroid_class(); register_FormFactorGauss_class(); register_FormFactorHemiEllipsoid_class(); - register_FormFactorLongBox_class(); + register_FormFactorLongBoxGauss_class(); + register_FormFactorLongBoxLorentz_class(); register_FormFactorLorentz_class(); register_FormFactorPrism3_class(); register_FormFactorPrism6_class(); diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h index 3197e27e8f0157d16ac628a949b301758c501e5d..6121239bfe3065d6a7ba98e5cd55c7e5b9750706 100644 --- a/Core/Samples/inc/ISampleVisitor.h +++ b/Core/Samples/inc/ISampleVisitor.h @@ -62,7 +62,8 @@ class FormFactorFullSphere; class FormFactorFullSpheroid; class FormFactorGauss; class FormFactorHemiEllipsoid; -class FormFactorLongBox; +class FormFactorLongBoxGauss; +class FormFactorLongBoxLorentz; class FormFactorLorentz; class FormFactorPrism3; class FormFactorPrism6; @@ -157,7 +158,8 @@ public: virtual void visit(const FormFactorFullSpheroid *); virtual void visit(const FormFactorGauss *); virtual void visit(const FormFactorHemiEllipsoid *); - virtual void visit(const FormFactorLongBox *); + virtual void visit(const FormFactorLongBoxGauss *); + virtual void visit(const FormFactorLongBoxLorentz *); virtual void visit(const FormFactorLorentz *); virtual void visit(const FormFactorPrism3 *); virtual void visit(const FormFactorPrism6 *); diff --git a/Core/Samples/src/ISampleVisitor.cpp b/Core/Samples/src/ISampleVisitor.cpp index 1f935adfcb247f96a868d206f1f10d20f62d77f3..7306917d8826b3fd73757ec3e403fca3e522ff30 100644 --- a/Core/Samples/src/ISampleVisitor.cpp +++ b/Core/Samples/src/ISampleVisitor.cpp @@ -235,10 +235,16 @@ void ISampleVisitor::visit(const FormFactorHemiEllipsoid *) "ISampleVisitor::visit const FormFactorHemiEllipsoid *) -> Error. Not implemented."); } -void ISampleVisitor::visit(const FormFactorLongBox *) +void ISampleVisitor::visit(const FormFactorLongBoxGauss *) { throw NotImplementedException( - "ISampleVisitor::visit(const FormFactorLongBox *) -> Error. Not implemented."); + "ISampleVisitor::visit(const FormFactorLongBoxGauss *) -> Error. Not implemented."); +} + +void ISampleVisitor::visit(const FormFactorLongBoxLorentz *) +{ + throw NotImplementedException( + "ISampleVisitor::visit(const FormFactorLongBoxLorentz *) -> Error. Not implemented."); } void ISampleVisitor::visit(const FormFactorLorentz *) diff --git a/Core/Tools/inc/BornAgainNamespace.h b/Core/Tools/inc/BornAgainNamespace.h index fb319f21226b2f019a910fff1755079a2bf42c78..2187ef0f2fe8496a131e2a7093498b2ce07d15b6 100644 --- a/Core/Tools/inc/BornAgainNamespace.h +++ b/Core/Tools/inc/BornAgainNamespace.h @@ -75,7 +75,8 @@ const std::string FFFullSphereType = "FullSphere"; const std::string FFFullSpheroidType = "FullSpheroid"; const std::string FFGaussType = "FormFactorGauss"; const std::string FFHemiEllipsoidType = "HemiEllipsoid"; -const std::string FFLongBoxType = "FormFactorLongBox"; +const std::string FFLongBoxGaussType = "FormFactorLongBoxGauss"; +const std::string FFLongBoxLorentzType = "FormFactorLongBoxLorentz"; const std::string FFLorentzType = "FormFactorLorentz"; const std::string FFPrism3Type = "Prism3"; const std::string FFPrism6Type = "Prism6"; diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h index 6c565aeeb7e1a5aa14a88ff5241ec99de29a6fc7..cf84d692d3edf688a1354c4effbc7f62e61e4d25 100644 --- a/Core/Tools/inc/SampleMaterialVisitor.h +++ b/Core/Tools/inc/SampleMaterialVisitor.h @@ -75,7 +75,8 @@ public: void visit(const FormFactorFullSpheroid *sample); void visit(const FormFactorGauss *sample); void visit(const FormFactorHemiEllipsoid *sample); - void visit(const FormFactorLongBox *sample); + void visit(const FormFactorLongBoxGauss *sample); + void visit(const FormFactorLongBoxLorentz *sample); void visit(const FormFactorLorentz *sample); void visit(const FormFactorPrism3 *sample); void visit(const FormFactorPrism6 *sample); diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h index 2dea3288709ac6eca776ea0e1397d8b7a8959686..fa6616cf4437bf01c3b094e5c6d09c28d5a1943e 100644 --- a/Core/Tools/inc/SamplePrintVisitor.h +++ b/Core/Tools/inc/SamplePrintVisitor.h @@ -72,7 +72,8 @@ public: void visit(const FormFactorFullSpheroid *sample); void visit(const FormFactorGauss *sample); void visit(const FormFactorHemiEllipsoid *sample); - void visit(const FormFactorLongBox *sample); + void visit(const FormFactorLongBoxGauss *sample); + void visit(const FormFactorLongBoxLorentz *sample); void visit(const FormFactorLorentz *sample); void visit(const FormFactorPrism3 *sample); void visit(const FormFactorPrism6 *sample); diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp index d30656b8f0abcb78a8a46f1d649c144fa442fa04..43498e07bf55569c2a7144cdc7d0ee26d2188b7c 100644 --- a/Core/Tools/src/SampleMaterialVisitor.cpp +++ b/Core/Tools/src/SampleMaterialVisitor.cpp @@ -176,7 +176,11 @@ void SampleMaterialVisitor::visit(const FormFactorHemiEllipsoid *) { } -void SampleMaterialVisitor::visit(const FormFactorLongBox *) +void SampleMaterialVisitor::visit(const FormFactorLongBoxGauss *) +{ +} + +void SampleMaterialVisitor::visit(const FormFactorLongBoxLorentz *) { } diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp index 937bb058da67c4cc07901c9e450152b809a4fe74..f1b82c1a27e690c3ce1339c416735ab6c463c699 100644 --- a/Core/Tools/src/SamplePrintVisitor.cpp +++ b/Core/Tools/src/SamplePrintVisitor.cpp @@ -194,7 +194,12 @@ void SamplePrintVisitor::visit(const FormFactorHemiEllipsoid *sample) print_default(sample); } -void SamplePrintVisitor::visit(const FormFactorLongBox *sample) +void SamplePrintVisitor::visit(const FormFactorLongBoxGauss *sample) +{ + print_default(sample); +} + +void SamplePrintVisitor::visit(const FormFactorLongBoxLorentz *sample) { print_default(sample); } diff --git a/dev-tools/python-bindings/settings_core.py b/dev-tools/python-bindings/settings_core.py index 0c50856a78d491b1aff2ce2b42cc32fc0310df83..4a1e54ba018a193860db77a0015f15f35ce34684 100644 --- a/dev-tools/python-bindings/settings_core.py +++ b/dev-tools/python-bindings/settings_core.py @@ -98,7 +98,8 @@ include_classes = [ "FormFactorFullSpheroid", "FormFactorGauss", "FormFactorHemiEllipsoid", - "FormFactorLongBox", + "FormFactorLongBoxGauss", + "FormFactorLongBoxLorentz", "FormFactorLorentz", "FormFactorPrism3", "FormFactorPrism6",