diff --git a/App/src/DrawHelper.cpp b/App/src/DrawHelper.cpp index ea36f6361f43db10051de5dda0800c31478dd585..b13868479b90457e2c9683af5791aeef9f9ab239 100644 --- a/App/src/DrawHelper.cpp +++ b/App/src/DrawHelper.cpp @@ -20,7 +20,7 @@ #include "Lattice.h" #include "MesoCrystal.h" #include "Crystal.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" #include "Units.h" #include "FormFactorFullSphere.h" @@ -405,7 +405,7 @@ void DrawHelper::DrawMesoCrystal(const MultiLayer *sample) // const Crystal *crystal = dynamic_cast<const Crystal *>(meso->getClusteredParticles()); // if( !crystal ) throw RuntimeErrorException("DrawHelper::DrawMesoCrystal() -> nano_crystal panic"); // Lattice lattice = crystal->getLattice(); -// const LatticeBasis *lattice_basis = crystal->getLatticeBasis(); +// const ParticleComposition *lattice_basis = crystal->getLatticeBasis(); // if( !meso ) throw RuntimeErrorException("DrawHelper::DrawMesoCrystal() -> lattice_basis panic"); // if( !ff_sphere) throw RuntimeErrorException("DrawHelper::DrawMesoCrystal() -> ff_sphere panic"); diff --git a/App/src/StandardSamples.cpp b/App/src/StandardSamples.cpp index 186bc4e4d772c17410915dc670882e90cca079c0..bcf13fa0824a00e7aaaf0ce7a68ba6670437b7e7 100644 --- a/App/src/StandardSamples.cpp +++ b/App/src/StandardSamples.cpp @@ -22,7 +22,7 @@ #include "ParticleLayout.h" #include "InterferenceFunctionNone.h" #include "Lattice.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" #include "Crystal.h" #include "MesoCrystal.h" #include "InterferenceFunctions.h" diff --git a/App/src/TestMiscellaneous.cpp b/App/src/TestMiscellaneous.cpp index 285d8b1307fa2b75ee7f6ea0a9d50ff48149a4c6..7e1149525bf154552de57f8486c8acc1cc331edf 100644 --- a/App/src/TestMiscellaneous.cpp +++ b/App/src/TestMiscellaneous.cpp @@ -25,7 +25,7 @@ #include "Lattice.h" #include "MesoCrystal.h" #include "Crystal.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" #include "MathFunctions.h" #include "IntensityDataIOFactory.h" #include "Utils.h" diff --git a/App/src/TestPolarizedMeso.cpp b/App/src/TestPolarizedMeso.cpp index a76d8dabc19aaa0c9aa40847e2669ff58bb55513..3e9216a5a859e4ac65abb30a5d2311d124576ade 100644 --- a/App/src/TestPolarizedMeso.cpp +++ b/App/src/TestPolarizedMeso.cpp @@ -144,7 +144,7 @@ MesoCrystal* TestPolarizedMeso::createMeso(double a, double c, std::vector<kvector_t> pos_vector; pos_vector.push_back(position_0); pos_vector.push_back(position_1); - LatticeBasis basis(particle, pos_vector); + ParticleComposition basis(particle, pos_vector); Crystal npc(basis, *p_lat); delete p_lat; diff --git a/Core/FormFactors/inc/FormFactorCrystal.h b/Core/FormFactors/inc/FormFactorCrystal.h index 1235b5620b0561dd7ea0ed3190a083224dea8e37..d00d7a412cc344d47e31cb2e51240f588590958a 100644 --- a/Core/FormFactors/inc/FormFactorCrystal.h +++ b/Core/FormFactors/inc/FormFactorCrystal.h @@ -55,7 +55,7 @@ private: Lattice m_lattice; complex_t m_wavevector_scattering_factor; - LatticeBasis *mp_lattice_basis; + ParticleComposition *mp_lattice_basis; IFormFactor *mp_basis_form_factor; IFormFactor *mp_meso_form_factor; IMaterial *mp_ambient_material; diff --git a/Core/PythonAPI/inc/LatticeBasis.pypp.h b/Core/PythonAPI/inc/LatticeBasis.pypp.h deleted file mode 100644 index 38f28d9ddfdbef8abbef3ba7693e9a34c28dc0c7..0000000000000000000000000000000000000000 --- a/Core/PythonAPI/inc/LatticeBasis.pypp.h +++ /dev/null @@ -1,23 +0,0 @@ -// 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 LatticeBasis_hpp__pyplusplus_wrapper -#define LatticeBasis_hpp__pyplusplus_wrapper - -void register_LatticeBasis_class(); - -#endif//LatticeBasis_hpp__pyplusplus_wrapper diff --git a/Core/PythonAPI/inc/PythonCoreList.h b/Core/PythonAPI/inc/PythonCoreList.h index 8769a9dc38be15bad1dcb59c61591b44846b10c9..9006280d84c973ceb3e644f90aafa534ce8c7e37 100644 --- a/Core/PythonAPI/inc/PythonCoreList.h +++ b/Core/PythonAPI/inc/PythonCoreList.h @@ -72,7 +72,7 @@ #include "Lattice.h" #include "Lattice1DIFParameters.h" #include "Lattice2DIFParameters.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" #include "Layer.h" #include "LayerRoughness.h" #include "MathFunctions.h" diff --git a/Core/PythonAPI/inc/PythonModule.h b/Core/PythonAPI/inc/PythonModule.h index 6f89bf92ddfcdd59f8e8034fe97fcf5fd3c939aa..c7f37a6207b3244bfda2293f59238f9ad4fd275a 100644 --- a/Core/PythonAPI/inc/PythonModule.h +++ b/Core/PythonAPI/inc/PythonModule.h @@ -44,7 +44,7 @@ //#include "ISelectionRule.h" //#include "ISingleton.h" //#include "Lattice.h" -//#include "LatticeBasis.h" +//#include "ParticleComposition.h" //#include "Layer.h" //#include "LayerDecorator.h" //#include "LayerRoughness.h" diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp index 9c6ec7ef3e41bb4edc294cb73e38eeb9ab931550..c0837b26eb6bb225e439320bd4df9ca8f0427951 100644 --- a/Core/PythonAPI/src/Crystal.pypp.cpp +++ b/Core/PythonAPI/src/Crystal.pypp.cpp @@ -30,7 +30,7 @@ namespace bp = boost::python; struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > { - Crystal_wrapper(::LatticeBasis const & lattice_basis, ::Lattice const & lattice ) + Crystal_wrapper(::ParticleComposition const & lattice_basis, ::Lattice const & lattice ) : Crystal( boost::ref(lattice_basis), boost::ref(lattice) ) , bp::wrapper< Crystal >(){ // constructor @@ -316,7 +316,7 @@ void register_Crystal_class(){ { //::Crystal typedef bp::class_< Crystal_wrapper, bp::bases< IClusteredParticles >, std::auto_ptr< Crystal_wrapper >, boost::noncopyable > Crystal_exposer_t; - Crystal_exposer_t Crystal_exposer = Crystal_exposer_t( "Crystal", bp::init< LatticeBasis const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") )) ); + Crystal_exposer_t Crystal_exposer = Crystal_exposer_t( "Crystal", bp::init< ParticleComposition const &, Lattice const & >(( bp::arg("lattice_basis"), bp::arg("lattice") )) ); bp::scope Crystal_scope( Crystal_exposer ); { //::Crystal::applyTransformation @@ -381,7 +381,7 @@ void register_Crystal_class(){ } { //::Crystal::getLatticeBasis - typedef ::LatticeBasis const * ( ::Crystal::*getLatticeBasis_function_type)( ) const; + typedef ::ParticleComposition const * ( ::Crystal::*getLatticeBasis_function_type)( ) const; Crystal_exposer.def( "getLatticeBasis" diff --git a/Core/PythonAPI/src/LatticeBasis.pypp.cpp b/Core/PythonAPI/src/LatticeBasis.pypp.cpp deleted file mode 100644 index 0d519da4fc456f98f3b131a650716e44a944d43e..0000000000000000000000000000000000000000 --- a/Core/PythonAPI/src/LatticeBasis.pypp.cpp +++ /dev/null @@ -1,406 +0,0 @@ -// 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 "__call_policies.pypp.hpp" -#include "__convenience.pypp.hpp" -#include "PythonCoreList.h" -#include "LatticeBasis.pypp.h" - -namespace bp = boost::python; - -struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > { - - LatticeBasis_wrapper( ) - : LatticeBasis( ) - , bp::wrapper< LatticeBasis >(){ - // null constructor - m_pyobj = 0; - } - - virtual bool areParametersChanged( ) { - if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) ) - return func_areParametersChanged( ); - else{ - return this->IParameterized::areParametersChanged( ); - } - } - - bool default_areParametersChanged( ) { - return IParameterized::areParametersChanged( ); - } - - virtual void clearParameterPool( ) { - if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) ) - func_clearParameterPool( ); - else{ - this->IParameterized::clearParameterPool( ); - } - } - - void default_clearParameterPool( ) { - IParameterized::clearParameterPool( ); - } - - 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 ::ParameterPool * createParameterTree( ) const { - if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) ) - return func_createParameterTree( ); - else{ - return this->IParameterized::createParameterTree( ); - } - } - - ::ParameterPool * default_createParameterTree( ) const { - return IParameterized::createParameterTree( ); - } - - virtual ::ICompositeSample * getCompositeSample( ) { - if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) - return func_getCompositeSample( ); - else{ - return this->ICompositeSample::getCompositeSample( ); - } - } - - ::ICompositeSample * default_getCompositeSample( ) { - return ICompositeSample::getCompositeSample( ); - } - - virtual ::ICompositeSample const * getCompositeSample( ) const { - if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) ) - return func_getCompositeSample( ); - else{ - return this->ICompositeSample::getCompositeSample( ); - } - } - - ::ICompositeSample const * default_getCompositeSample( ) const { - return ICompositeSample::getCompositeSample( ); - } - - virtual bool preprocess( ) { - if( bp::override func_preprocess = this->get_override( "preprocess" ) ) - return func_preprocess( ); - else{ - return this->ISample::preprocess( ); - } - } - - bool default_preprocess( ) { - return ISample::preprocess( ); - } - - virtual void printParameters( ) const { - if( bp::override func_printParameters = this->get_override( "printParameters" ) ) - func_printParameters( ); - else{ - this->IParameterized::printParameters( ); - } - } - - void default_printParameters( ) const { - IParameterized::printParameters( ); - } - - 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 registerParameter( ::std::string const & name, double * parpointer ) { - namespace bpl = boost::python; - if( bpl::override func_registerParameter = this->get_override( "registerParameter" ) ){ - bpl::object py_result = bpl::call<bpl::object>( func_registerParameter.ptr(), name, parpointer ); - } - else{ - IParameterized::registerParameter( name, parpointer ); - } - } - - static void default_registerParameter( ::IParameterized & inst, ::std::string const & name, long unsigned int parpointer ){ - if( dynamic_cast< LatticeBasis_wrapper * >( boost::addressof( inst ) ) ){ - inst.::IParameterized::registerParameter(name, reinterpret_cast< double * >( parpointer )); - } - else{ - inst.registerParameter(name, reinterpret_cast< double * >( parpointer )); - } - } - - virtual bool setParameterValue( ::std::string const & name, double value ) { - if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) ) - return func_setParameterValue( name, value ); - else{ - return this->IParameterized::setParameterValue( name, value ); - } - } - - bool default_setParameterValue( ::std::string const & name, double value ) { - return IParameterized::setParameterValue( name, value ); - } - - virtual void setParametersAreChanged( ) { - if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) ) - func_setParametersAreChanged( ); - else{ - this->IParameterized::setParametersAreChanged( ); - } - } - - void default_setParametersAreChanged( ) { - IParameterized::setParametersAreChanged( ); - } - - virtual ::std::size_t size( ) const { - if( bp::override func_size = this->get_override( "size" ) ) - return func_size( ); - else{ - return this->ICompositeSample::size( ); - } - } - - ::std::size_t default_size( ) const { - return ICompositeSample::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_LatticeBasis_class(){ - - { //::LatticeBasis - typedef bp::class_< LatticeBasis_wrapper, bp::bases< IParticle >, std::auto_ptr< LatticeBasis_wrapper >, boost::noncopyable > LatticeBasis_exposer_t; - LatticeBasis_exposer_t LatticeBasis_exposer = LatticeBasis_exposer_t( "LatticeBasis", bp::init< >() ); - bp::scope LatticeBasis_scope( LatticeBasis_exposer ); - { //::LatticeBasis::addParticle - - typedef void ( ::LatticeBasis::*addParticle_function_type)( ::IParticle const &,::std::vector< Geometry::BasicVector3D<double> > ) ; - - LatticeBasis_exposer.def( - "addParticle" - , addParticle_function_type( &::LatticeBasis::addParticle ) - , ( bp::arg("particle"), bp::arg("positions") ) ); - - } - { //::IParameterized::areParametersChanged - - typedef bool ( ::IParameterized::*areParametersChanged_function_type)( ) ; - typedef bool ( LatticeBasis_wrapper::*default_areParametersChanged_function_type)( ) ; - - LatticeBasis_exposer.def( - "areParametersChanged" - , areParametersChanged_function_type(&::IParameterized::areParametersChanged) - , default_areParametersChanged_function_type(&LatticeBasis_wrapper::default_areParametersChanged) ); - - } - { //::IParameterized::clearParameterPool - - typedef void ( ::IParameterized::*clearParameterPool_function_type)( ) ; - typedef void ( LatticeBasis_wrapper::*default_clearParameterPool_function_type)( ) ; - - LatticeBasis_exposer.def( - "clearParameterPool" - , clearParameterPool_function_type(&::IParameterized::clearParameterPool) - , default_clearParameterPool_function_type(&LatticeBasis_wrapper::default_clearParameterPool) ); - - } - { //::ISample::containsMagneticMaterial - - typedef bool ( ::ISample::*containsMagneticMaterial_function_type)( ) const; - typedef bool ( LatticeBasis_wrapper::*default_containsMagneticMaterial_function_type)( ) const; - - LatticeBasis_exposer.def( - "containsMagneticMaterial" - , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial) - , default_containsMagneticMaterial_function_type(&LatticeBasis_wrapper::default_containsMagneticMaterial) ); - - } - { //::IParameterized::createParameterTree - - typedef ::ParameterPool * ( ::IParameterized::*createParameterTree_function_type)( ) const; - typedef ::ParameterPool * ( LatticeBasis_wrapper::*default_createParameterTree_function_type)( ) const; - - LatticeBasis_exposer.def( - "createParameterTree" - , createParameterTree_function_type(&::IParameterized::createParameterTree) - , default_createParameterTree_function_type(&LatticeBasis_wrapper::default_createParameterTree) - , bp::return_value_policy< bp::manage_new_object >() ); - - } - { //::ICompositeSample::getCompositeSample - - typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type)( ) ; - typedef ::ICompositeSample * ( LatticeBasis_wrapper::*default_getCompositeSample_function_type)( ) ; - - LatticeBasis_exposer.def( - "getCompositeSample" - , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample) - , default_getCompositeSample_function_type(&LatticeBasis_wrapper::default_getCompositeSample) - , bp::return_value_policy< bp::reference_existing_object >() ); - - } - { //::ICompositeSample::getCompositeSample - - typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type)( ) const; - typedef ::ICompositeSample const * ( LatticeBasis_wrapper::*default_getCompositeSample_function_type)( ) const; - - LatticeBasis_exposer.def( - "getCompositeSample" - , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample) - , default_getCompositeSample_function_type(&LatticeBasis_wrapper::default_getCompositeSample) - , bp::return_value_policy< bp::reference_existing_object >() ); - - } - { //::ISample::preprocess - - typedef bool ( ::ISample::*preprocess_function_type)( ) ; - typedef bool ( LatticeBasis_wrapper::*default_preprocess_function_type)( ) ; - - LatticeBasis_exposer.def( - "preprocess" - , preprocess_function_type(&::ISample::preprocess) - , default_preprocess_function_type(&LatticeBasis_wrapper::default_preprocess) ); - - } - { //::IParameterized::printParameters - - typedef void ( ::IParameterized::*printParameters_function_type)( ) const; - typedef void ( LatticeBasis_wrapper::*default_printParameters_function_type)( ) const; - - LatticeBasis_exposer.def( - "printParameters" - , printParameters_function_type(&::IParameterized::printParameters) - , default_printParameters_function_type(&LatticeBasis_wrapper::default_printParameters) ); - - } - { //::ISample::printSampleTree - - typedef void ( ::ISample::*printSampleTree_function_type)( ) ; - typedef void ( LatticeBasis_wrapper::*default_printSampleTree_function_type)( ) ; - - LatticeBasis_exposer.def( - "printSampleTree" - , printSampleTree_function_type(&::ISample::printSampleTree) - , default_printSampleTree_function_type(&LatticeBasis_wrapper::default_printSampleTree) ); - - } - { //::IParameterized::registerParameter - - typedef void ( *default_registerParameter_function_type )( ::IParameterized &,::std::string const &,long unsigned int ); - - LatticeBasis_exposer.def( - "registerParameter" - , default_registerParameter_function_type( &LatticeBasis_wrapper::default_registerParameter ) - , ( bp::arg("inst"), bp::arg("name"), bp::arg("parpointer") ) ); - - } - { //::IParameterized::setParameterValue - - typedef bool ( ::IParameterized::*setParameterValue_function_type)( ::std::string const &,double ) ; - typedef bool ( LatticeBasis_wrapper::*default_setParameterValue_function_type)( ::std::string const &,double ) ; - - LatticeBasis_exposer.def( - "setParameterValue" - , setParameterValue_function_type(&::IParameterized::setParameterValue) - , default_setParameterValue_function_type(&LatticeBasis_wrapper::default_setParameterValue) - , ( bp::arg("name"), bp::arg("value") ) ); - - } - { //::IParameterized::setParametersAreChanged - - typedef void ( ::IParameterized::*setParametersAreChanged_function_type)( ) ; - typedef void ( LatticeBasis_wrapper::*default_setParametersAreChanged_function_type)( ) ; - - LatticeBasis_exposer.def( - "setParametersAreChanged" - , setParametersAreChanged_function_type(&::IParameterized::setParametersAreChanged) - , default_setParametersAreChanged_function_type(&LatticeBasis_wrapper::default_setParametersAreChanged) ); - - } - { //::ICompositeSample::size - - typedef ::std::size_t ( ::ICompositeSample::*size_function_type)( ) const; - typedef ::std::size_t ( LatticeBasis_wrapper::*default_size_function_type)( ) const; - - LatticeBasis_exposer.def( - "size" - , size_function_type(&::ICompositeSample::size) - , default_size_function_type(&LatticeBasis_wrapper::default_size) ); - - } - { //::ICloneable::transferToCPP - - typedef void ( ::ICloneable::*transferToCPP_function_type)( ) ; - typedef void ( LatticeBasis_wrapper::*default_transferToCPP_function_type)( ) ; - - LatticeBasis_exposer.def( - "transferToCPP" - , transferToCPP_function_type(&::ICloneable::transferToCPP) - , default_transferToCPP_function_type(&LatticeBasis_wrapper::default_transferToCPP) ); - - } - } - -} diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp index 8d83d72bcb2b4499be605a8f5b9a526903989cad..e8631827aac07f9a57ae1627744582ee2cf3ced9 100644 --- a/Core/PythonAPI/src/PythonModule.cpp +++ b/Core/PythonAPI/src/PythonModule.cpp @@ -10,128 +10,128 @@ 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 "Simulation.pypp.h" -#include "ParticleLayout.pypp.h" -#include "FTDistribution2DCone.pypp.h" -#include "FormFactorEllipsoidalCylinder.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 "ParticleDistribution.pypp.h" -#include "IFTDistribution1D.pypp.h" -#include "FormFactorTrivial.pypp.h" +#include "InterferenceFunctionRadialParaCrystal.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 "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 "FormFactorCrystal.pypp.h" +#include "ParticleDistribution.pypp.h" +#include "vector_longinteger_t.pypp.h" +#include "ResolutionFunction2DGaussian.pypp.h" +#include "FTDistribution1DGauss.pypp.h" +#include "FTDistribution1DGate.pypp.h" +#include "FormFactorAnisoPyramid.pypp.h" +#include "FixedBinAxis.pypp.h" +#include "MultiLayer.pypp.h" +#include "IFormFactor.pypp.h" +#include "kvector_t.pypp.h" +#include "FormFactorSphereUniformRadius.pypp.h" +#include "OffSpecSimulation.pypp.h" +#include "FormFactorRipple1.pypp.h" +#include "Simulation.pypp.h" +#include "IObservable.pypp.h" +#include "FormFactorLorentz.pypp.h" +#include "SpecularSimulation.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 "HomogeneousMagneticMaterial.pypp.h" -#include "FormFactorFullSpheroid.pypp.h" -#include "Transform3D.pypp.h" -#include "IntensityData.pypp.h" -#include "DistributionGate.pypp.h" -#include "ThreadInfo.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 "FormFactorCone6.pypp.h" -#include "ICloneable.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 "vector_longinteger_t.pypp.h" #include "FormFactorSphereLogNormalRadius.pypp.h" -#include "FormFactorSphereGaussianRadius.pypp.h" +#include "FormFactorInfLongRipple1.pypp.h" +#include "IResolutionFunction2D.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 "ParticleComposition.pypp.h" +#include "FTDistribution2DGauss.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 "FTDistribution2DVoigt.pypp.h" +#include "FormFactorGauss.pypp.h" +#include "InterferenceFunction2DParaCrystal.pypp.h" +#include "Detector.pypp.h" +#include "FormFactorInfLongRipple2.pypp.h" +#include "ICompositeSample.pypp.h" +#include "Bin1D.pypp.h" #include "vector_complex_t.pypp.h" -#include "SpecularSimulation.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 "InterferenceFunctionRadialParaCrystal.pypp.h" -#include "Lattice2DIFParameters.pypp.h" -#include "IFormFactor.pypp.h" -#include "vdouble1d_t.pypp.h" +#include "DistributionLogNormal.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 "ISelectionRule.pypp.h" -#include "vector_integer_t.pypp.h" #include "__call_policies.pypp.hpp" #include "__convenience.pypp.hpp" #include "__call_policies.pypp.hpp" @@ -240,7 +240,6 @@ BOOST_PYTHON_MODULE(libBornAgainCore){ register_Lattice_class(); register_Lattice1DIFParameters_class(); register_Lattice2DIFParameters_class(); - register_LatticeBasis_class(); register_Layer_class(); register_LayerInterface_class(); register_LayerRoughness_class(); @@ -251,6 +250,7 @@ BOOST_PYTHON_MODULE(libBornAgainCore){ register_ParameterDistribution_class(); register_ParameterPool_class(); register_Particle_class(); + register_ParticleComposition_class(); register_ParticleCoreShell_class(); register_ParticleDistribution_class(); register_ParticleInfo_class(); diff --git a/Core/Samples/inc/Crystal.h b/Core/Samples/inc/Crystal.h index 27a4b4281c6460ed77dc2f5408048de0aac209e4..6d0d9dfe48d287c89934dc5a4be990a0bc9b5db0 100644 --- a/Core/Samples/inc/Crystal.h +++ b/Core/Samples/inc/Crystal.h @@ -19,7 +19,7 @@ #include "IClusteredParticles.h" #include "Particle.h" #include "Lattice.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" //! @class Crystal @@ -29,7 +29,7 @@ class BA_CORE_API_ Crystal : public IClusteredParticles { public: - Crystal(const LatticeBasis& lattice_basis, const Lattice& lattice); + Crystal(const ParticleComposition& lattice_basis, const Lattice& lattice); ~Crystal(); virtual Crystal *clone() const; @@ -55,7 +55,7 @@ public: Lattice getTransformedLattice() const; - const LatticeBasis *getLatticeBasis() const { return mp_lattice_basis; } + const ParticleComposition *getLatticeBasis() const { return mp_lattice_basis; } void setDWFactor(double dw_factor) { m_dw_factor = dw_factor; } @@ -70,7 +70,7 @@ public: private: //! Private constructor - Crystal(LatticeBasis *p_lattice_basis, const Lattice& lattice); + Crystal(ParticleComposition *p_lattice_basis, const Lattice& lattice); //! Propagates a transformation to child particles virtual void applyTransformationToSubParticles( @@ -78,7 +78,7 @@ private: Lattice m_lattice; std::auto_ptr<Geometry::Transform3D> mP_transform; - LatticeBasis *mp_lattice_basis; + ParticleComposition *mp_lattice_basis; double m_dw_factor; }; diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h index 5ce76bccfd947624ecab6379da91d6211d5fc317..d1d5cda4346314b063ad08ff9a589319f8bffdb7 100644 --- a/Core/Samples/inc/ISampleVisitor.h +++ b/Core/Samples/inc/ISampleVisitor.h @@ -37,7 +37,7 @@ class MultiLayer; class IParticle; class Particle; class ParticleDistribution; -class LatticeBasis; +class ParticleComposition; class MesoCrystal; class ParticleCoreShell; // - @@ -133,7 +133,7 @@ public: virtual void visit(const IParticle *); virtual void visit(const Particle *); virtual void visit(const ParticleDistribution *); - virtual void visit(const LatticeBasis *); + virtual void visit(const ParticleComposition *); virtual void visit(const MesoCrystal *); virtual void visit(const ParticleCoreShell *); diff --git a/Core/Samples/inc/LatticeBasis.h b/Core/Samples/inc/LatticeBasis.h deleted file mode 100644 index 8be2d4817ede122626775d28c501c6de1ad5f632..0000000000000000000000000000000000000000 --- a/Core/Samples/inc/LatticeBasis.h +++ /dev/null @@ -1,88 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Samples/inc/LatticeBasis.h -//! @brief Defines class LatticeBasis. -//! -//! @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 LATTICEBASIS_H_ -#define LATTICEBASIS_H_ - -#include "IParticle.h" -#include "Types.h" -#include <vector> - -//! @class LatticeBasis -//! @ingroup samples -//! @brief Basis of the lattice represented by the composition of particles - -class BA_CORE_API_ LatticeBasis : public IParticle -{ -public: - LatticeBasis(); - explicit LatticeBasis(const IParticle& particle); - LatticeBasis(const IParticle& particle, std::vector<kvector_t > positions); - virtual ~LatticeBasis(); - virtual LatticeBasis *clone() const; - - //! Returns a clone with inverted magnetic fields - virtual LatticeBasis *cloneInvertB() const; - - //! Calls the ISampleVisitor's visit method - virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); } - - void addParticle(const IParticle& particle, - std::vector<kvector_t > positions); - - virtual void setAmbientMaterial(const IMaterial& material); - virtual const IMaterial* getAmbientMaterial() const; - - virtual IFormFactor* createFormFactor( - complex_t wavevector_scattering_factor) const; - - //! Returns number of different particles - size_t getNbrParticles() const {return m_particles.size(); } - - //! Returns number of positions for particle with index - size_t getNbrPositionsForParticle(size_t index) const - { return m_positions_vector[check_index(index)].size(); } - - //! Returns particle with given index - const IParticle *getParticle(size_t index) const { - return m_particles[check_index(index)]; - } - - std::vector<kvector_t> getParticlePositions(size_t index) const - { return m_positions_vector[check_index(index)]; } - -protected: - virtual void applyTransformationToSubParticles( - const Geometry::Transform3D& transform); - -private: - //! Checks index - inline size_t check_index(size_t index) const { - return index < m_positions_vector.size() - ? index - : throw OutOfBoundsException("LatticeBasis::check_index()" - "-> Index is out of bounds"); } - - //! For internal use in cloneInvertB(): - void addParticlePointer(IParticle *p_particle, - std::vector<kvector_t > positions); - - std::vector<IParticle *> m_particles; - std::vector<std::vector<kvector_t> > m_positions_vector; -}; - -#endif /* LATTICEBASIS_H_ */ - - diff --git a/Core/Samples/src/Crystal.cpp b/Core/Samples/src/Crystal.cpp index d450a6aab527879fa1b01859260f5e37f7b88a2e..de5bd87c2d26f396723125b6c9bd2bb949682051 100644 --- a/Core/Samples/src/Crystal.cpp +++ b/Core/Samples/src/Crystal.cpp @@ -20,7 +20,7 @@ #include <boost/scoped_ptr.hpp> -Crystal::Crystal(const LatticeBasis& lattice_basis, +Crystal::Crystal(const ParticleComposition& lattice_basis, const Lattice& lattice) : m_lattice(lattice) , m_dw_factor(0.0) @@ -89,7 +89,7 @@ void Crystal::applyTransformation(const Geometry::Transform3D& transform) applyTransformationToSubParticles(transform); } -Crystal::Crystal(LatticeBasis* p_lattice_basis, const Lattice& lattice) +Crystal::Crystal(ParticleComposition* p_lattice_basis, const Lattice& lattice) : m_lattice(lattice) , m_dw_factor(0.0) { diff --git a/Core/Samples/src/ISampleVisitor.cpp b/Core/Samples/src/ISampleVisitor.cpp index 518267e93ac9d84e4379ca02f6e0f94807628c57..fa8e1c79a3a92a04fc19a910f020b5b6c5780bb2 100644 --- a/Core/Samples/src/ISampleVisitor.cpp +++ b/Core/Samples/src/ISampleVisitor.cpp @@ -107,9 +107,9 @@ void ISampleVisitor::visit(const ParticleDistribution *) } -void ISampleVisitor::visit(const LatticeBasis *) +void ISampleVisitor::visit(const ParticleComposition *) { - throw NotImplementedException("ISampleVisitor::visit(const LatticeBasis *) -> Error. Not implemented."); + throw NotImplementedException("ISampleVisitor::visit(const ParticleComposition *) -> Error. Not implemented."); } diff --git a/Core/Samples/src/LatticeBasis.cpp b/Core/Samples/src/LatticeBasis.cpp deleted file mode 100644 index 38d11e07ebc0d4716197a639eedaf106582979a5..0000000000000000000000000000000000000000 --- a/Core/Samples/src/LatticeBasis.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Samples/src/LatticeBasis.cpp -//! @brief Implements class LatticeBasis. -//! -//! @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 "LatticeBasis.h" -#include "FormFactors.h" -#include "Materials.h" -#include <boost/scoped_ptr.hpp> - -LatticeBasis::LatticeBasis() -{ - setName("LatticeBasis"); -} - -LatticeBasis::LatticeBasis(const IParticle& particle) -{ - setName("LatticeBasis"); - std::vector<kvector_t> positions; - positions.push_back(kvector_t(0.0, 0.0, 0.0)); - addParticle( particle, positions ); -} - -LatticeBasis::LatticeBasis(const IParticle& particle, - std::vector<kvector_t> positions) -{ - setName("LatticeBasis"); - addParticle(particle, positions); -} - -LatticeBasis::~LatticeBasis() -{ - for (size_t index=0; index<m_particles.size(); ++index) { - delete m_particles[index]; - } -} - -LatticeBasis* LatticeBasis::clone() const -{ - LatticeBasis *p_new = new LatticeBasis(); - for (size_t index=0; index<m_particles.size(); ++index) { - p_new->addParticle(*m_particles[index], m_positions_vector[index]); - } - p_new->setName(getName()); - p_new->setAmbientMaterial(*getAmbientMaterial()); - if (mP_transform.get()) { - p_new->mP_transform.reset(mP_transform->clone()); - } - return p_new; -} - -LatticeBasis* LatticeBasis::cloneInvertB() const -{ - LatticeBasis *p_new = new LatticeBasis(); - for (size_t index=0; index<m_particles.size(); ++index) { - p_new->addParticlePointer(m_particles[index]->cloneInvertB(), - m_positions_vector[index]); - } - p_new->setName(getName() + "_inv"); - - if(getAmbientMaterial()) { - p_new->setAmbientMaterial(*Materials::createInvertedMaterial(getAmbientMaterial())); - } - if (mP_transform.get()) { - p_new->mP_transform.reset(mP_transform->clone()); - } - - return p_new; -} - -void LatticeBasis::addParticle(const IParticle& particle, - std::vector<kvector_t > positions) -{ - IParticle *np = particle.clone(); - registerChild(np); - m_particles.push_back(np); - m_positions_vector.push_back(positions); -} - -void LatticeBasis::setAmbientMaterial(const IMaterial& material) -{ - for (size_t index=0; index<m_particles.size(); ++index) { - m_particles[index]->setAmbientMaterial(material); - } -} - -const IMaterial *LatticeBasis::getAmbientMaterial() const -{ - if (m_particles.size()==0) return 0; - return m_particles[0]->getAmbientMaterial(); -} - -IFormFactor* LatticeBasis::createFormFactor( - complex_t wavevector_scattering_factor) const -{ - FormFactorWeighted *p_ff = new FormFactorWeighted(); - for (size_t index=0; index<m_particles.size(); ++index) { - boost::scoped_ptr<IFormFactor> P_particle_ff( - m_particles[index]->createFormFactor( - wavevector_scattering_factor)); - FormFactorDecoratorMultiPositionFactor pos_ff(*P_particle_ff, - m_positions_vector[index]); - p_ff->addFormFactor(pos_ff); - } - p_ff->setAmbientMaterial(*getAmbientMaterial()); - return p_ff; -} - -void LatticeBasis::applyTransformationToSubParticles( - const Geometry::Transform3D& transform) -{ - for (std::vector<IParticle *>::iterator it = m_particles.begin(); - it != m_particles.end(); ++it) - { - (*it)->applyTransformation(transform); - } - for (std::vector<std::vector<kvector_t> >::iterator it_vec = - m_positions_vector.begin(); it_vec != m_positions_vector.end(); - ++it_vec) { - for (std::vector<kvector_t>::iterator it_vec_el = it_vec->begin(); - it_vec_el != it_vec->end(); ++it_vec_el) { - *it_vec_el = transform.transformed(*it_vec_el); - } - } -} - -void LatticeBasis::addParticlePointer(IParticle* p_particle, - std::vector<kvector_t> positions) -{ - registerChild(p_particle); - m_particles.push_back(p_particle); - m_positions_vector.push_back(positions); -} - diff --git a/Core/StandardSamples/IsGISAXS06Builder.cpp b/Core/StandardSamples/IsGISAXS06Builder.cpp index 5191c5f481a3bce9257fb16b492c76182748c934..fa4d448ed1e06fd9b4a4d482daef9b0a4431e17d 100644 --- a/Core/StandardSamples/IsGISAXS06Builder.cpp +++ b/Core/StandardSamples/IsGISAXS06Builder.cpp @@ -16,6 +16,7 @@ #include "IsGISAXS06Builder.h" #include "MultiLayer.h" #include "ParticleLayout.h" +#include "ParticleComposition.h" #include "FormFactorCylinder.h" #include "Simulation.h" #include "Units.h" @@ -24,7 +25,7 @@ #include "IntensityDataIOFactory.h" #include "Utils.h" -#include <LatticeBasis.h> + // ----------------------------------------------------------------------------- @@ -91,7 +92,7 @@ ISample *IsGISAXS06Lattice2Builder::buildSample() const kvector_t position_2(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0); positions.push_back(position_1); positions.push_back(position_2); - LatticeBasis basis; + ParticleComposition basis; basis.addParticle(cylinder, positions); ParticleLayout particle_layout; diff --git a/Core/StandardSamples/MesoCrystal01Builder.cpp b/Core/StandardSamples/MesoCrystal01Builder.cpp index 27af114896f0581434714fbbf8de271f7c7a3d2a..fd9ab4024ee863012543b1944d16b322fd7b9da4 100644 --- a/Core/StandardSamples/MesoCrystal01Builder.cpp +++ b/Core/StandardSamples/MesoCrystal01Builder.cpp @@ -155,7 +155,7 @@ MesoCrystal* MesoCrystal01Builder::createMesoCrystal(double stacking_radius_a, d pos_vector.push_back(position_0); pos_vector.push_back(position_1); pos_vector.push_back(position_2); - LatticeBasis basis(particle, pos_vector); + ParticleComposition basis(particle, pos_vector); Crystal npc(basis, *p_lat); delete p_lat; diff --git a/Core/Tools/inc/LabelSample.h b/Core/Tools/inc/LabelSample.h index ee4fa729188cc384f7bf6d68b6ce84002c1684b0..c84114eb034dbc10f520b6714e0c9e91bc0fb8d6 100644 --- a/Core/Tools/inc/LabelSample.h +++ b/Core/Tools/inc/LabelSample.h @@ -36,7 +36,7 @@ public: std::map<const Particle*, std::string>* getParticleMap(); std::map<const ParticleCoreShell*, std::string>* getParticleCoreShellMap(); std::map<const ILayout*, std::string>* getParticleLayoutMap(); - std::map<const LatticeBasis*, std::string>* getLatticeBasisMap(); + std::map<const ParticleComposition*, std::string>* getParticleCompositionMap(); std::string getLabel(const IFormFactor *sample); std::string getLabel(const IInterferenceFunction *sample); std::string getLabel(const IMaterial *sample); @@ -46,7 +46,7 @@ public: std::string getLabel(const IParticle *sample); std::string getLabel(const ParticleCoreShell *sample); std::string getLabel(const ILayout *sample); - std::string getLabel(const LatticeBasis *sample); + std::string getLabel(const ParticleComposition *sample); void insertMaterial(const IMaterial *sample); void setLabel(const IFormFactor *sample); void setLabel(const IInterferenceFunction *sample); @@ -56,7 +56,7 @@ public: void setLabel(const MultiLayer *sample); void setLabel(const Particle *sample); void setLabel(const ParticleCoreShell *sample); - void setLabel(const LatticeBasis *sample); + void setLabel(const ParticleComposition *sample); private: @@ -70,7 +70,7 @@ private: std::map<const Particle*, std::string> m_ParticleLabel; std::map<const ParticleCoreShell*, std::string> m_ParticleCoreShellLabel; std::map<const ILayout*, std::string> m_ILayoutLabel; - std::map<const LatticeBasis*, std::string> m_LatticeBasisLabel; + std::map<const ParticleComposition*, std::string> m_ParticleCompositionLabel; }; #endif // LABELSAMPLE_H diff --git a/Core/Tools/inc/PyGenVisitor.h b/Core/Tools/inc/PyGenVisitor.h index 9f5c0f1b41aee3303f65e9553d24867ed543f691..2a86a016c688851cd6be6b826a9c44fc46f926df 100644 --- a/Core/Tools/inc/PyGenVisitor.h +++ b/Core/Tools/inc/PyGenVisitor.h @@ -64,7 +64,7 @@ public: void visit(const LayerInterface *sample){ (void)sample; } void visit(const LayerRoughness *sample); void visit(const MultiLayer *sample); - void visit(const LatticeBasis *sample); + void visit(const ParticleComposition *sample); void visit(const MesoCrystal *sample); void visit(const Particle *sample); void visit(const ParticleCoreShell *sample); @@ -81,7 +81,7 @@ private: std::string defineFormFactors() const; std::string defineParticles() const; std::string defineCoreShellParticles() const; - std::string defineLatticeBases() const; + std::string defineParticleCompositions() const; std::string defineInterferenceFunctions() const; std::string defineParticleLayouts() const; std::string defineRoughnesses() const; diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h index bd1ebfa42509ebf0dd7839a206a937873a2b57ae..c3d721048413c1a72d367d0426895c55e8505e2f 100644 --- a/Core/Tools/inc/SampleMaterialVisitor.h +++ b/Core/Tools/inc/SampleMaterialVisitor.h @@ -51,7 +51,7 @@ public: void visit(const Particle *sample); void visit(const ParticleDistribution *sample); - void visit(const LatticeBasis *sample); + void visit(const ParticleComposition *sample); void visit(const MesoCrystal *sample); void visit(const ParticleCoreShell *sample); diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h index 582e53556ae1b9f5e8e16d5ab7acbc307dd3081d..f68e083ef10aaed0a5d295ff1d1630136ba3e11b 100644 --- a/Core/Tools/inc/SamplePrintVisitor.h +++ b/Core/Tools/inc/SamplePrintVisitor.h @@ -48,7 +48,7 @@ public: void visit(const Particle *sample); void visit(const ParticleDistribution *sample); - void visit(const LatticeBasis *sample); + void visit(const ParticleComposition *sample); void visit(const MesoCrystal *sample); void visit(const ParticleCoreShell *sample); diff --git a/Core/Tools/src/LabelSample.cpp b/Core/Tools/src/LabelSample.cpp index 0ee39e1951b4459dc7c8232e5e932cd3c6d1ad25..44e1843fea874f54445f412059e9365577f48bb7 100644 --- a/Core/Tools/src/LabelSample.cpp +++ b/Core/Tools/src/LabelSample.cpp @@ -13,10 +13,10 @@ // // ************************************************************************** // -#include <LatticeBasis.h> #include <iostream> #include "LabelSample.h" #include "ParticleCoreShell.h" +#include "ParticleComposition.h" LabelSample::LabelSample() { @@ -59,8 +59,8 @@ std::string LabelSample::getLabel(const IParticle *sample) return m_ParticleCoreShellLabel[core_shell_particle]; if (const Particle *particle = dynamic_cast<const Particle*>(sample)) return m_ParticleLabel[particle]; - if (const LatticeBasis *lattice_basis = dynamic_cast<const LatticeBasis*>(sample)) - return m_LatticeBasisLabel[lattice_basis]; + if (const ParticleComposition *lattice_basis = dynamic_cast<const ParticleComposition*>(sample)) + return m_ParticleCompositionLabel[lattice_basis]; throw Exceptions::NotImplementedException("LabelSample::getLabel: called" " for unknown IParticle type"); } @@ -75,9 +75,9 @@ std::string LabelSample::getLabel(const ILayout *sample) return m_ILayoutLabel[sample]; } -std::string LabelSample::getLabel(const LatticeBasis *sample) +std::string LabelSample::getLabel(const ParticleComposition *sample) { - return m_LatticeBasisLabel[sample]; + return m_ParticleCompositionLabel[sample]; } std::map<const IFormFactor *,std::string>* LabelSample::getFormFactorMap() @@ -125,9 +125,9 @@ std::map<const ILayout *,std::string>* LabelSample::getParticleLayoutMap() return &m_ILayoutLabel; } -std::map<const LatticeBasis *, std::string> *LabelSample::getLatticeBasisMap() +std::map<const ParticleComposition *, std::string> *LabelSample::getParticleCompositionMap() { - return &m_LatticeBasisLabel; + return &m_ParticleCompositionLabel; } void LabelSample::insertMaterial(const IMaterial *sample) @@ -210,11 +210,11 @@ void LabelSample::setLabel(const ParticleCoreShell *sample) m_ParticleCoreShellLabel[sample] = inter.str(); } -void LabelSample::setLabel(const LatticeBasis *sample) +void LabelSample::setLabel(const ParticleComposition *sample) { std::ostringstream inter; - inter << "LatticeBasis_" << m_LatticeBasisLabel.size()+1; - m_LatticeBasisLabel[sample] = inter.str(); + inter << "ParticleComposition_" << m_ParticleCompositionLabel.size()+1; + m_ParticleCompositionLabel[sample] = inter.str(); } diff --git a/Core/Tools/src/PyGenVisitor.cpp b/Core/Tools/src/PyGenVisitor.cpp index 82880adc6d1f0df151ee2377770c88bd69dfd6d8..db0693165ada613d6b250a30544398ab1c389159 100644 --- a/Core/Tools/src/PyGenVisitor.cpp +++ b/Core/Tools/src/PyGenVisitor.cpp @@ -211,7 +211,7 @@ void PyGenVisitor::visit(const MultiLayer *sample) m_label->setLabel(sample); } -void PyGenVisitor::visit(const LatticeBasis *sample) +void PyGenVisitor::visit(const ParticleComposition *sample) { m_label->setLabel(sample); } @@ -266,7 +266,7 @@ std::string PyGenVisitor::defineGetSample() const result << defineFormFactors(); result << defineParticles(); result << defineCoreShellParticles(); - result << defineLatticeBases(); + result << defineParticleCompositions(); result << defineInterferenceFunctions(); result << defineParticleLayouts(); result << defineRoughnesses(); @@ -686,18 +686,18 @@ std::string PyGenVisitor::defineCoreShellParticles() const return result.str(); } -std::string PyGenVisitor::defineLatticeBases() const +std::string PyGenVisitor::defineParticleCompositions() const { - if (m_label->getLatticeBasisMap()->size() == 0) return ""; + if (m_label->getParticleCompositionMap()->size() == 0) return ""; std::ostringstream result; result << std::setprecision(12); result << "\n\t# Defining collection of particles with specific positions\n"; - std::map<const LatticeBasis *,std::string>::iterator it = - m_label->getLatticeBasisMap()->begin(); + std::map<const ParticleComposition *,std::string>::iterator it = + m_label->getParticleCompositionMap()->begin(); - while (it != m_label->getLatticeBasisMap()->end()) + while (it != m_label->getParticleCompositionMap()->end()) { - result << "\t" << it->second << " = LatticeBasis()\n"; + result << "\t" << it->second << " = ParticleComposition()\n"; for (size_t i=0; i<it->first->getNbrParticles(); ++i) { std::vector<kvector_t> position_vector = it->first->getParticlePositions(i); for (size_t j=0; j<position_vector.size(); ++j) { diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp index a13361caa2b5f8b68d0a9d06a9527722d11569ae..5a3357113e916b0b24a8f5ac3b5f8afd271603ef 100644 --- a/Core/Tools/src/SampleMaterialVisitor.cpp +++ b/Core/Tools/src/SampleMaterialVisitor.cpp @@ -17,7 +17,7 @@ #include "IMaterial.h" #include "Layer.h" #include "Particle.h" -#include "LatticeBasis.h" +#include "ParticleComposition.h" void SampleMaterialVisitor::clear() @@ -100,7 +100,7 @@ void SampleMaterialVisitor::visit(const ParticleDistribution *) { } -void SampleMaterialVisitor::visit(const LatticeBasis *) +void SampleMaterialVisitor::visit(const ParticleComposition *) { } diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp index bc63687e97c6814cd3aa2100045cd6e6c123335d..35d280d7d3de16424d8f8900470f43f239de57fa 100644 --- a/Core/Tools/src/SamplePrintVisitor.cpp +++ b/Core/Tools/src/SamplePrintVisitor.cpp @@ -113,7 +113,7 @@ void SamplePrintVisitor::visit(const ParticleDistribution *sample) } -void SamplePrintVisitor::visit(const LatticeBasis *sample) +void SamplePrintVisitor::visit(const ParticleComposition *sample) { print_default(sample); } diff --git a/Examples/python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py b/Examples/python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py index e9d75c878d31190c92a5100fa0d333bcbf8e0eae..50d9def4326edcd6e0263cb5ce003c2ced1e36cd 100644 --- a/Examples/python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py +++ b/Examples/python/simulation/ex03_InterferenceFunctions/Interference2DCenteredSquareLattice.py @@ -29,7 +29,7 @@ def get_sample(): position2 = kvector_t(12.5*nanometer, 12.5*nanometer, 0.0) cylinder_ff = FormFactorCylinder(3.*nanometer, 3.*nanometer) cylinder = Particle(m_particle, cylinder_ff) - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(cylinder, [position1, position2]) particle_layout.addParticle(basis) particle_layout.addInterferenceFunction(interference) diff --git a/Examples/python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py b/Examples/python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py index 47275314dc411a18fe9e1960f7a74b660d954ce6..bc85bc0c021ccacea35282d4ec25977a71a70ae3 100644 --- a/Examples/python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py +++ b/Examples/python/simulation/ex04_ComplexShapes/HexagonalLatticesWithBasis.py @@ -25,7 +25,7 @@ def get_sample(): pos0 = kvector_t(0.0, 0.0, 0.0) pos1 = kvector_t(radius, radius, numpy.sqrt(3.0)*radius) - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(sphere, [pos0, pos1]) particle_layout.addParticle(basis) 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); diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp index 81481fb74dae679ea3053153c04b21bb10b115d1..38ea8cbf5806a5916d52fce743e0f606e1129db3 100644 --- a/GUI/coregui/Models/DomainObjectBuilder.cpp +++ b/GUI/coregui/Models/DomainObjectBuilder.cpp @@ -105,7 +105,7 @@ ParticleLayout *DomainObjectBuilder::buildParticleLayout(const ParameterizedItem result->addParticle(*part_distr, depth, abundance); } } else if (children[i]->modelType() == Constants::ParticleCollectionType) { - boost::scoped_ptr<LatticeBasis> part_coll( + boost::scoped_ptr<ParticleComposition> part_coll( buildParticleCollection(*children[i], depth, abundance)); if (part_coll.get()) { result->addParticle(*part_coll, depth, abundance); @@ -178,10 +178,10 @@ ParticleCoreShell *DomainObjectBuilder::buildParticleCoreShell(const Parameteriz return result; } -LatticeBasis *DomainObjectBuilder::buildParticleCollection(const ParameterizedItem &item, +ParticleComposition *DomainObjectBuilder::buildParticleCollection(const ParameterizedItem &item, double &depth, double &abundance) const { - LatticeBasis *result = TransformToDomain::createParticleCollection(item, depth, abundance); + ParticleComposition *result = TransformToDomain::createParticleCollection(item, depth, abundance); QList<ParameterizedItem *> children = item.childItems(); for (int i = 0; i < children.size(); ++i) { double tmp_depth(0.0), tmp_abundance(0.0); @@ -308,7 +308,7 @@ void DomainObjectBuilder::addParticleToLayout(ParticleLayout *result, } } -void DomainObjectBuilder::addParticleToCollection(LatticeBasis *result, +void DomainObjectBuilder::addParticleToCollection(ParticleComposition *result, ParameterizedItem *particle_item, const IParticle &particle) const { diff --git a/GUI/coregui/Models/DomainObjectBuilder.h b/GUI/coregui/Models/DomainObjectBuilder.h index 830f034f6352f7e812c2f35b8b0d76f475825d35..2ad4239b80fdeb687a2e043df7886d7d7834ffd8 100644 --- a/GUI/coregui/Models/DomainObjectBuilder.h +++ b/GUI/coregui/Models/DomainObjectBuilder.h @@ -27,7 +27,7 @@ class Particle; class IInterferenceFunction; class Beam; class ParticleCoreShell; -class LatticeBasis; +class ParticleComposition; class ParticleDistribution; class ParameterizedItem; class LayerRoughness; @@ -47,7 +47,7 @@ private: Particle *buildParticle(const ParameterizedItem &item, double &depth, double &abundance) const; ParticleCoreShell *buildParticleCoreShell(const ParameterizedItem &item, double &depth, double &abundance) const; - LatticeBasis *buildParticleCollection(const ParameterizedItem &item, double &depth, + ParticleComposition *buildParticleCollection(const ParameterizedItem &item, double &depth, double &abundance) const; ParticleDistribution *buildParticleDistribution(const ParameterizedItem &item, double &depth, double &abundance) const; @@ -56,7 +56,7 @@ private: Beam *buildBeam(const ParameterizedItem &item) const; void addParticleToLayout(ParticleLayout *result, ParameterizedItem *particle_item, double depth, double abundance, const Particle& particle) const; - void addParticleToCollection(LatticeBasis *result, ParameterizedItem *particle_item, + void addParticleToCollection(ParticleComposition *result, ParameterizedItem *particle_item, const IParticle& particle) const; }; diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp index 5c906d5735c01ed8df8a51938658d0f08f359cec..71b67f5f6a7a737a44dc795621823c9347ecfa55 100644 --- a/GUI/coregui/Models/GUIObjectBuilder.cpp +++ b/GUI/coregui/Models/GUIObjectBuilder.cpp @@ -342,9 +342,9 @@ void GUIObjectBuilder::visit(const ParticleCoreShell *sample) m_itemToSample[coreshellItem] = sample; } -void GUIObjectBuilder::visit(const LatticeBasis *sample) +void GUIObjectBuilder::visit(const ParticleComposition *sample) { - qDebug() << "GUIObjectBuilder::visit(const LatticeBasis *)" << getLevel(); + qDebug() << "GUIObjectBuilder::visit(const ParticleComposition *)" << getLevel(); ParameterizedItem *parent = m_levelToParentItem[getLevel()-1]; ParameterizedItem *item(0); if(parent) { diff --git a/GUI/coregui/Models/GUIObjectBuilder.h b/GUI/coregui/Models/GUIObjectBuilder.h index f3de52039a8afa985c013abe1579a4f398fd9bad..a25c5284cc49dc7171d6a4496e7f599eb89c70f2 100644 --- a/GUI/coregui/Models/GUIObjectBuilder.h +++ b/GUI/coregui/Models/GUIObjectBuilder.h @@ -59,7 +59,7 @@ public: void visit(const Particle *); void visit(const ParticleDistribution *); void visit(const ParticleCoreShell *); - void visit(const LatticeBasis *); + void visit(const ParticleComposition *); void visit(const ParticleInfo *); diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp index 853411ed8a2c47a9d87b89db6188e51a63fcd7d7..6110fbb644bca26e8c435199c09381aae2306972 100644 --- a/GUI/coregui/Models/TransformToDomain.cpp +++ b/GUI/coregui/Models/TransformToDomain.cpp @@ -372,12 +372,12 @@ ParticleCoreShell *TransformToDomain::createParticleCoreShell(const Parameterize } -LatticeBasis *TransformToDomain::createParticleCollection(const ParameterizedItem &item, +ParticleComposition *TransformToDomain::createParticleCollection(const ParameterizedItem &item, double &depth, double &abundance) { depth = item.getRegisteredProperty(ParticleItem::P_DEPTH).toDouble(); abundance = item.getRegisteredProperty(ParticleItem::P_ABUNDANCE).toDouble(); - LatticeBasis *result = new LatticeBasis(); + ParticleComposition *result = new ParticleComposition(); return result; } diff --git a/GUI/coregui/Models/TransformToDomain.h b/GUI/coregui/Models/TransformToDomain.h index 416f18f833ccbf4b780c5c6e56a13ae2006b14a3..c73dfd44e27a4932ac1bfb9f22087d66c2cbf0b5 100644 --- a/GUI/coregui/Models/TransformToDomain.h +++ b/GUI/coregui/Models/TransformToDomain.h @@ -31,7 +31,7 @@ BA_CORE_API_ Particle *createParticle(const ParameterizedItem &item, double &depth, double &abundance); BA_CORE_API_ ParticleCoreShell *createParticleCoreShell(const ParameterizedItem &item, const Particle &core, const Particle &shell, double &depth, double &abundance); -BA_CORE_API_ LatticeBasis *createParticleCollection(const ParameterizedItem &item, +BA_CORE_API_ ParticleComposition *createParticleCollection(const ParameterizedItem &item, double &depth, double &abundance); BA_CORE_API_ IFormFactor *createFormFactor(const ParameterizedItem &item); BA_CORE_API_ IDistribution1D * createDistribution( diff --git a/Tests/FunctionalTests/TestPyCore/isgisaxs06.py b/Tests/FunctionalTests/TestPyCore/isgisaxs06.py index 166dbb80811d0d39ad4c4651d152648d2614ec6f..bbd4959705c74ca0e5f27b9a0284e8523a444fa1 100644 --- a/Tests/FunctionalTests/TestPyCore/isgisaxs06.py +++ b/Tests/FunctionalTests/TestPyCore/isgisaxs06.py @@ -67,7 +67,7 @@ def run_simulation_centered(): cylinder = Particle(mParticle, cylinder_ff) position1 = kvector_t(0.0, 0.0, 0.0) position2 = kvector_t(5.0*nanometer, 5.0*nanometer, 0.0) - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(cylinder, [position1, position2]) particle_layout = ParticleLayout() diff --git a/Tests/FunctionalTests/TestPyCore/mesocrystal1.py b/Tests/FunctionalTests/TestPyCore/mesocrystal1.py index 5505f9be3d5d582807780389e541328a0f5094df..b8de8f1dd6fa6b8c6bca8d454ad01ce38588067d 100644 --- a/Tests/FunctionalTests/TestPyCore/mesocrystal1.py +++ b/Tests/FunctionalTests/TestPyCore/mesocrystal1.py @@ -123,7 +123,7 @@ class MySampleBuilder(ISampleBuilder): position_1 = 1.0/3.0*(2.0*bas_a + bas_b + bas_c) position_2 = 1.0/3.0*(bas_a + 2.0*bas_b + 2.0*bas_c) positions = [ position_0, position_1, position_2 ] - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(particle, positions) npc = Crystal(basis, p_lat) diff --git a/Tests/UnitTests/TestCore/LatticeBasisTest.h b/Tests/UnitTests/TestCore/LatticeBasisTest.h deleted file mode 100644 index 40a15fade8a847e6e9823a4ae9f1bf8d37d65b18..0000000000000000000000000000000000000000 --- a/Tests/UnitTests/TestCore/LatticeBasisTest.h +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef LATTICEBASISTEST_H -#define LATTICEBASISTEST_H - -#include "LatticeBasis.h" -#include "Particle.h" -#include "Materials.h" -#include "Units.h" -#include "HomogeneousMaterial.h" -#include "ParticleInfo.h" -#include "FormFactorFullSphere.h" -#include <iostream> - - -class LatticeBasisTest : public ::testing::Test -{ -protected: - LatticeBasisTest(){} - virtual ~LatticeBasisTest(){} -}; - -TEST_F(LatticeBasisTest, LatticeBasisDefaultConstructor) -{ - LatticeBasis *lb = new LatticeBasis(); - Particle particle; - std::vector<kvector_t > positions; - positions.push_back(kvector_t(0.0,0.0,0.0)); - EXPECT_EQ("LatticeBasis",lb->getName()); - EXPECT_EQ(0, lb->getAmbientMaterial()); - EXPECT_EQ(0, lb->getNbrParticles()); - - delete lb; - -} - -TEST_F(LatticeBasisTest, LatticeBasisConstructorWithOneParameter) -{ - Particle particle; - LatticeBasis *lb = new LatticeBasis(particle); - std::vector<kvector_t > positions; - positions.push_back(kvector_t(0.0,0.0,0.0)); - EXPECT_EQ("LatticeBasis",lb->getName()); - lb->addParticle(particle, positions); - EXPECT_EQ(particle.getMaterial(),lb->getParticle(0)->getAmbientMaterial()); - EXPECT_EQ(particle.getName(),lb->getParticle(0)->getName()); - EXPECT_EQ(particle.getTransform3D(),lb->getParticle(0)->getTransform3D()); - EXPECT_EQ(particle.getMaterial(),lb->getParticle(1)->getAmbientMaterial()); - EXPECT_EQ(particle.getName(),lb->getParticle(1)->getName()); - EXPECT_EQ(particle.getTransform3D(),lb->getParticle(1)->getTransform3D()); - EXPECT_EQ(positions, lb->getParticlePositions(0)); - EXPECT_EQ(positions, lb->getParticlePositions(1)); - - HomogeneousMaterial material("Air",0.0,0.0); - lb->setAmbientMaterial(material); - EXPECT_EQ("Air", lb->getAmbientMaterial()->getName()); - EXPECT_EQ(1.0, lb->getAmbientMaterial()->getRefractiveIndex()); - - delete lb; -} - - -TEST_F(LatticeBasisTest, LatticeBasisConstructorWithTwoParameter) -{ - Particle particle; - std::vector<kvector_t > positions; - positions.push_back(kvector_t(1.0,1.0,1.0)); - LatticeBasis *lb = new LatticeBasis(particle, positions); - - EXPECT_EQ("LatticeBasis",lb->getName()); - lb->addParticle(particle, positions); - EXPECT_EQ(particle.getMaterial(),lb->getParticle(0)->getAmbientMaterial()); - EXPECT_EQ(particle.getName(),lb->getParticle(0)->getName()); - EXPECT_EQ(particle.getTransform3D(),lb->getParticle(0)->getTransform3D()); - EXPECT_EQ(particle.getMaterial(),lb->getParticle(1)->getAmbientMaterial()); - EXPECT_EQ(particle.getName(),lb->getParticle(1)->getName()); - EXPECT_EQ(particle.getTransform3D(),lb->getParticle(1)->getTransform3D()); - EXPECT_EQ(positions, lb->getParticlePositions(0)); - EXPECT_EQ(positions, lb->getParticlePositions(1)); - - HomogeneousMaterial material("Air",0.0,0.0); - lb->setAmbientMaterial(material); - EXPECT_EQ("Air", lb->getAmbientMaterial()->getName()); - EXPECT_EQ(1.0, lb->getAmbientMaterial()->getRefractiveIndex()); - - delete lb; -} - -TEST_F(LatticeBasisTest, LatticeBasisClone) -{ - LatticeBasis *lb = new LatticeBasis(); - Particle particle; - std::vector<kvector_t > positions; - positions.push_back(kvector_t(1.0,1.0,1.0)); - HomogeneousMaterial material("Air",0.0,0.0); - lb->addParticle(particle, positions); - lb->setAmbientMaterial(material); - LatticeBasis *lbClone = lb->clone(); - - EXPECT_EQ(lbClone->getName(),lb->getName()); - - EXPECT_EQ(lbClone->getParticle(0)->getAmbientMaterial()->getRefractiveIndex(),lb->getParticle(0)->getAmbientMaterial()->getRefractiveIndex()); - EXPECT_EQ(lbClone->getParticle(0)->getName(), lb->getParticle(0)->getName()); - EXPECT_EQ(lbClone->getParticle(0)->getTransform3D(),lb->getParticle(0)->getTransform3D()); - EXPECT_EQ(positions, lb->getParticlePositions(0)); - - - EXPECT_EQ("Air", lb->getAmbientMaterial()->getName()); - EXPECT_EQ(1.0, lb->getAmbientMaterial()->getRefractiveIndex()); - - delete lb; - delete lbClone; -} - - -#endif diff --git a/Tests/UnitTests/TestCore/main.cpp b/Tests/UnitTests/TestCore/main.cpp index cdf1770cd6b16cb5446d25c390388da8f9011fc9..8de161f5e498fdf4355a14cfa9324e7b0ea801f7 100644 --- a/Tests/UnitTests/TestCore/main.cpp +++ b/Tests/UnitTests/TestCore/main.cpp @@ -24,7 +24,7 @@ #include "RealParameterWrapperTest.h" #include "SimulationTest.h" #include "ThreadInfoTest.h" -#include "LatticeBasisTest.h" +#include "ParticleCompositionTest.h" #include "LayerRoughnessTest.h" #include "ParticleInfoTest.h" #include "LLDataTest.h" diff --git a/dev-tools/openmpi/pytests/ompi_meso.py b/dev-tools/openmpi/pytests/ompi_meso.py index b0d9a85f3074809a9858ba9c580acf1293e1b6fa..85ec0e43213124e95b3abcfa982d1f8f14583cc1 100644 --- a/dev-tools/openmpi/pytests/ompi_meso.py +++ b/dev-tools/openmpi/pytests/ompi_meso.py @@ -61,7 +61,7 @@ class MesoSampleBuilder(ISampleBuilder): position_1 = 1.0/3.0*(2.0*bas_a + bas_b + bas_c) position_2 = 1.0/3.0*(bas_a + 2.0*bas_b + 2.0*bas_c) pos_vector = [position_0, position_1, position_2] - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(particle, pos_vector) npc = Crystal(basis, lattice) dw_factor = self.m_sigma_lattice_length_a.value*self.m_sigma_lattice_length_a.value/6.0 diff --git a/dev-tools/openmpi/pytests/ompi_meso_cpp.py b/dev-tools/openmpi/pytests/ompi_meso_cpp.py index 7ce94b2ec01dc691a1d8e98fbf313da8c68de18e..6f7efc104959c297b989f3034f7150e7c7e1735d 100644 --- a/dev-tools/openmpi/pytests/ompi_meso_cpp.py +++ b/dev-tools/openmpi/pytests/ompi_meso_cpp.py @@ -60,7 +60,7 @@ class MesoSampleBuilder(ISampleBuilder): position_1 = 1.0/3.0*(2.0*bas_a + bas_b + bas_c) position_2 = 1.0/3.0*(bas_a + 2.0*bas_b + 2.0*bas_c) pos_vector = [position_0, position_1, position_2] - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(particle, pos_vector) npc = Crystal(basis, lattice) dw_factor = self.m_sigma_lattice_length_a.value*self.m_sigma_lattice_length_a.value/6.0 diff --git a/dev-tools/openmpi/pytests/round1_sim3_ompi.py b/dev-tools/openmpi/pytests/round1_sim3_ompi.py index b54ed8ce6ec91f3eb604b3877f347c1be130b8ad..85d4b958c3f322cc921b93fd9db1943a30f15fff 100644 --- a/dev-tools/openmpi/pytests/round1_sim3_ompi.py +++ b/dev-tools/openmpi/pytests/round1_sim3_ompi.py @@ -72,7 +72,7 @@ class MesoSampleBuilder(ISampleBuilder): position_1 = 1.0/3.0*(2.0*bas_a + bas_b + bas_c) position_2 = 1.0/3.0*(bas_a + 2.0*bas_b + 2.0*bas_c) pos_vector = [position_0, position_1, position_2] - basis = LatticeBasis() + basis = ParticleComposition() basis.addParticle(particle, pos_vector) npc = Crystal(basis, lattice) dw_factor = self.m_sigma_lattice_length_a.value*self.m_sigma_lattice_length_a.value/6.0 diff --git a/dev-tools/python-bindings/settings_core.py b/dev-tools/python-bindings/settings_core.py index 79e91a72064e11381f3d3900218b63e2196dac63..ef92da213fce414743a4d610a32a20b0362b2a86 100644 --- a/dev-tools/python-bindings/settings_core.py +++ b/dev-tools/python-bindings/settings_core.py @@ -142,7 +142,6 @@ include_classes = [ "Lattice", "Lattice1DIFParameters", "Lattice2DIFParameters", - "LatticeBasis", "Layer", "LayerInterface", "LayerRoughness", @@ -154,6 +153,7 @@ include_classes = [ "ParameterDistribution", "ParameterPool", "Particle", + "ParticleComposition", "ParticleDistribution", "ParticleCoreShell", "ParticleLayout", @@ -218,7 +218,7 @@ def ManualClassTunings(mb): cl.member_function("createTrigonalLattice").call_policies = call_policies.return_value_policy(call_policies.return_by_value) cl.member_function("setSelectionRule").include() # - cl = mb.class_("LatticeBasis") + cl = mb.class_("ParticleComposition") cl.constructors( lambda decl: bool( decl.arguments ) ).exclude() # exclude non-default constructors cl.member_functions().exclude() cl.member_function("addParticle").include() diff --git a/dev-tools/user-api/docstring.py b/dev-tools/user-api/docstring.py index 06ed5e3017659159ca90c12527e302c782b0e5cf..6457e159cf81bc2bef072b48efb32b528dfa3f86 100644 --- a/dev-tools/user-api/docstring.py +++ b/dev-tools/user-api/docstring.py @@ -42,8 +42,8 @@ user_api = [ "Lattice.getBasisVectorC", "Lattice.setSelectionRule", "Lattice2DIFParameters", - "LatticeBasis", - "LatticeBasis.addParticle", + "ParticleComposition", + "ParticleComposition.addParticle", "Layer", "Layer.setDecoration", "LayerRoughness",