From a36c2ca99bae8c32b2954a5a6e403bfe5210ea7d Mon Sep 17 00:00:00 2001 From: Walter Van Herck <w.van.herck@fz-juelich.de> Date: Thu, 20 Dec 2012 10:49:53 +0100 Subject: [PATCH] Fixed compile errors from Ali's branch --- App/src/StandardSamples.cpp | 182 ++++++++++----------- Core/Core.pro | 28 ++-- Core/FormFactors/inc/FormFactorBox.h | 2 +- Core/FormFactors/inc/FormFactorEllipsoid.h | 2 +- Core/FormFactors/inc/FormFactorPrism6.h | 2 +- Core/FormFactors/inc/FormFactorSphere.h | 4 +- Core/FormFactors/inc/FormFactors.h | 1 + Core/FormFactors/src/FormFactorSphere.cpp | 130 +++++++-------- 8 files changed, 175 insertions(+), 176 deletions(-) diff --git a/App/src/StandardSamples.cpp b/App/src/StandardSamples.cpp index b27485bde8a..86e1e640049 100644 --- a/App/src/StandardSamples.cpp +++ b/App/src/StandardSamples.cpp @@ -238,56 +238,56 @@ ISample *StandardSamples::MultilayerOffspecTestcase2b() /* ************************************************************************* */ // Functional test: Box /* *************************************************************************/ -ISample *StandardSamples::FormFactors_Box() -{ - MultiLayer *p_multi_layer = new MultiLayer(); - complex_t n_air(1.0, 0.0); - complex_t n_substrate(1.0-4e-6, 2e-8); - complex_t n_particle(1.0-5e-4, 2e-8); - const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); - const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); - Layer air_layer; - air_layer.setMaterial(p_air_material); - Layer substrate_layer; - substrate_layer.setMaterial(p_substrate_material); - ParticleDecoration particle_decoration( - new Particle(n_particle, new FormFactorBox(5.0*Units::nanometer, 5.0*Units::nanometer, 5.0*Units::nanometer) ) ); - - particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); - LayerDecorator air_layer_decorator(air_layer, particle_decoration); - - p_multi_layer->addLayer(air_layer_decorator); - p_multi_layer->addLayer(substrate_layer); - return p_multi_layer; -} - +//ISample *StandardSamples::FormFactors_Box() +//{ +// MultiLayer *p_multi_layer = new MultiLayer(); +// complex_t n_air(1.0, 0.0); +// complex_t n_substrate(1.0-4e-6, 2e-8); +// complex_t n_particle(1.0-5e-4, 2e-8); +// const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); +// const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); +// Layer air_layer; +// air_layer.setMaterial(p_air_material); +// Layer substrate_layer; +// substrate_layer.setMaterial(p_substrate_material); +// ParticleDecoration particle_decoration( +// new Particle(n_particle, new FormFactorBox(5.0*Units::nanometer, 5.0*Units::nanometer, 5.0*Units::nanometer) ) ); +// +// particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); +// LayerDecorator air_layer_decorator(air_layer, particle_decoration); +// +// p_multi_layer->addLayer(air_layer_decorator); +// p_multi_layer->addLayer(substrate_layer); +// return p_multi_layer; +//} +// /* ************************************************************************* */ // Functional test: Ellipsoid /* *************************************************************************/ -ISample *StandardSamples::FormFactors_Ellipsoid() -{ - MultiLayer *p_multi_layer = new MultiLayer(); - complex_t n_air(1.0, 0.0); - complex_t n_substrate(1.0-4e-6, 2e-8); - complex_t n_particle(1.0-5e-4, 2e-8); - const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); - const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); - Layer air_layer; - air_layer.setMaterial(p_air_material); - Layer substrate_layer; - substrate_layer.setMaterial(p_substrate_material); - ParticleDecoration particle_decoration( - new Particle(n_particle, new FormFactorEllipsoid(4.0*Units::nanometer, 5.0*Units::nanometer, 6.0*Units::nanometer) ) ); - - particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); - LayerDecorator air_layer_decorator(air_layer, particle_decoration); - - p_multi_layer->addLayer(air_layer_decorator); - p_multi_layer->addLayer(substrate_layer); - return p_multi_layer; -} +//ISample *StandardSamples::FormFactors_Ellipsoid() +//{ +// MultiLayer *p_multi_layer = new MultiLayer(); +// complex_t n_air(1.0, 0.0); +// complex_t n_substrate(1.0-4e-6, 2e-8); +// complex_t n_particle(1.0-5e-4, 2e-8); +// const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); +// const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); +// Layer air_layer; +// air_layer.setMaterial(p_air_material); +// Layer substrate_layer; +// substrate_layer.setMaterial(p_substrate_material); +// ParticleDecoration particle_decoration( +// new Particle(n_particle, new FormFactorEllipsoid(4.0*Units::nanometer, 5.0*Units::nanometer, 6.0*Units::nanometer) ) ); +// +// particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); +// LayerDecorator air_layer_decorator(air_layer, particle_decoration); +// +// p_multi_layer->addLayer(air_layer_decorator); +// p_multi_layer->addLayer(substrate_layer); +// return p_multi_layer; +//} @@ -295,58 +295,58 @@ ISample *StandardSamples::FormFactors_Ellipsoid() // Functional test: Prism6 /* *************************************************************************/ -ISample *StandardSamples::FormFactors_Prism6() -{ - MultiLayer *p_multi_layer = new MultiLayer(); - complex_t n_air(1.0, 0.0); - complex_t n_substrate(1.0-5e-6, 2e-8); - complex_t n_particle(1.0-6e-4, 2e-8); - const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); - const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); - Layer air_layer; - air_layer.setMaterial(p_air_material); - Layer substrate_layer; - substrate_layer.setMaterial(p_substrate_material); - ParticleDecoration particle_decoration( - new Particle(n_particle, new FormFactorPrism6(4.0*Units::nanometer, 5.0*Units::nanometer) ) ); - - particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); - LayerDecorator air_layer_decorator(air_layer, particle_decoration); - - p_multi_layer->addLayer(air_layer_decorator); - p_multi_layer->addLayer(substrate_layer); - return p_multi_layer; -} +//ISample *StandardSamples::FormFactors_Prism6() +//{ +// MultiLayer *p_multi_layer = new MultiLayer(); +// complex_t n_air(1.0, 0.0); +// complex_t n_substrate(1.0-5e-6, 2e-8); +// complex_t n_particle(1.0-6e-4, 2e-8); +// const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); +// const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); +// Layer air_layer; +// air_layer.setMaterial(p_air_material); +// Layer substrate_layer; +// substrate_layer.setMaterial(p_substrate_material); +// ParticleDecoration particle_decoration( +// new Particle(n_particle, new FormFactorPrism6(4.0*Units::nanometer, 5.0*Units::nanometer) ) ); +// +// particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); +// LayerDecorator air_layer_decorator(air_layer, particle_decoration); +// +// p_multi_layer->addLayer(air_layer_decorator); +// p_multi_layer->addLayer(substrate_layer); +// return p_multi_layer; +//} /* ************************************************************************* */ // Functional test: Full Sphere /* *************************************************************************/ -ISample *StandardSamples::FormFactors_FullSphere() -{ - MultiLayer *p_multi_layer = new MultiLayer(); - complex_t n_air(1.0, 0.0); - complex_t n_substrate(1.0-3e-6, 2e-8); - complex_t n_particle(1.0-5e-4, 2e-8); - const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); - const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); - Layer air_layer; - air_layer.setMaterial(p_air_material); - Layer substrate_layer; - substrate_layer.setMaterial(p_substrate_material); - ParticleDecoration particle_decoration( - new Particle(n_particle, new FormFactorFullSphere(4.0*Units::nanometer) ) ); - - particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); - LayerDecorator air_layer_decorator(air_layer, particle_decoration); - - p_multi_layer->addLayer(air_layer_decorator); - p_multi_layer->addLayer(substrate_layer); - return p_multi_layer; -} - - +//ISample *StandardSamples::FormFactors_FullSphere() +//{ +// MultiLayer *p_multi_layer = new MultiLayer(); +// complex_t n_air(1.0, 0.0); +// complex_t n_substrate(1.0-3e-6, 2e-8); +// complex_t n_particle(1.0-5e-4, 2e-8); +// const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air); +// const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate); +// Layer air_layer; +// air_layer.setMaterial(p_air_material); +// Layer substrate_layer; +// substrate_layer.setMaterial(p_substrate_material); +// ParticleDecoration particle_decoration( +// new Particle(n_particle, new FormFactorFullSphere(4.0*Units::nanometer) ) ); +// +// particle_decoration.addInterferenceFunction(new InterferenceFunctionNone()); +// LayerDecorator air_layer_decorator(air_layer, particle_decoration); +// +// p_multi_layer->addLayer(air_layer_decorator); +// p_multi_layer->addLayer(substrate_layer); +// return p_multi_layer; +//} +// +// diff --git a/Core/Core.pro b/Core/Core.pro index 787ec2e0648..c1b63cee59a 100644 --- a/Core/Core.pro +++ b/Core/Core.pro @@ -5,7 +5,7 @@ TARGET = ScattCore TEMPLATE = lib CONFIG += plugin # to remove versions from file name QT -= core gui -CONFIG += BUILD_PYTHON_BOOST_MODULE # to generate python interface +#CONFIG += BUILD_PYTHON_BOOST_MODULE # to generate python interface # including common project properties include($$PWD/../shared.pri) @@ -42,18 +42,22 @@ SOURCES += \ Algorithms/src/OpticalFresnel.cpp \ Algorithms/src/ResolutionFunction2DSimple.cpp \ \ + FormFactors/src/FormFactorBox.cpp \ + FormFactors/src/FormFactorCrystal.cpp \ + FormFactors/src/FormFactorCylinder.cpp \ + FormFactors/src/FormFactorDecoratorTransformation.cpp \ FormFactors/src/FormFactorDWBA.cpp \ FormFactors/src/FormFactorDWBAConstZ.cpp \ - FormFactors/src/FormFactorDecoratorTransformation.cpp \ - FormFactors/src/FormFactorCylinder.cpp \ + FormFactors/src/FormFactorEllipsoid.cpp \ FormFactors/src/FormFactorFullSphere.cpp \ FormFactors/src/FormFactorGauss.cpp \ + FormFactors/src/FormFactorLorentz.cpp \ FormFactors/src/FormFactorParallelepiped.cpp \ FormFactors/src/FormFactorPrism3.cpp \ + FormFactors/src/FormFactorPrism6.cpp \ FormFactors/src/FormFactorPyramid.cpp \ - FormFactors/src/FormFactorLorentz.cpp \ + FormFactors/src/FormFactorSphere.cpp \ FormFactors/src/FormFactorWeighted.cpp \ - FormFactors/src/FormFactorCrystal.cpp \ FormFactors/src/IFormFactorBorn.cpp \ \ Geometry/src/BasicVector3D.cpp \ @@ -154,24 +158,28 @@ HEADERS += \ Algorithms/inc/ResolutionFunction2DSimple.h \ Algorithms/inc/ThreadInfo.h \ \ - FormFactors/inc/FormFactorDWBA.h \ - FormFactors/inc/FormFactorDWBAConstZ.h \ + FormFactors/inc/FormFactorBox.h \ + FormFactors/inc/FormFactorCrystal.h \ + FormFactors/inc/FormFactorCylinder.h \ FormFactors/inc/FormFactorDecoratorDebyeWaller.h \ FormFactors/inc/FormFactorDecoratorFactor.h \ FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h \ FormFactors/inc/FormFactorDecoratorPositionFactor.h \ FormFactors/inc/FormFactorDecoratorRefractiveIndex.h \ FormFactors/inc/FormFactorDecoratorTransformation.h \ - FormFactors/inc/FormFactorCylinder.h \ + FormFactors/inc/FormFactorDWBA.h \ + FormFactors/inc/FormFactorDWBAConstZ.h \ + FormFactors/inc/FormFactorEllipsoid.h \ FormFactors/inc/FormFactorFullSphere.h \ FormFactors/inc/FormFactorGauss.h \ + FormFactors/inc/FormFactorLorentz.h \ FormFactors/inc/FormFactorParallelepiped.h \ FormFactors/inc/FormFactorPrism3.h \ + FormFactors/inc/FormFactorPrism6.h \ FormFactors/inc/FormFactorPyramid.h \ - FormFactors/inc/FormFactorLorentz.h \ FormFactors/inc/FormFactors.h \ + FormFactors/inc/FormFactorSphere.h \ FormFactors/inc/FormFactorSphereGaussianRadius.h \ - FormFactors/inc/FormFactorCrystal.h \ FormFactors/inc/FormFactorWeighted.h \ FormFactors/inc/IFormFactor.h \ FormFactors/inc/IFormFactorBorn.h \ diff --git a/Core/FormFactors/inc/FormFactorBox.h b/Core/FormFactors/inc/FormFactorBox.h index 4a374c771f4..6d219ba47bc 100644 --- a/Core/FormFactors/inc/FormFactorBox.h +++ b/Core/FormFactors/inc/FormFactorBox.h @@ -15,7 +15,7 @@ //! @author Scientific Computing Group at FRM II //! @date Oct 1, 2012 -#include "IFormFactor.h" +#include "IFormFactorBorn.h" #include "IStochasticParameter.h" class FormFactorBox : public IFormFactorBorn diff --git a/Core/FormFactors/inc/FormFactorEllipsoid.h b/Core/FormFactors/inc/FormFactorEllipsoid.h index 8c00a00655a..08bf274814f 100644 --- a/Core/FormFactors/inc/FormFactorEllipsoid.h +++ b/Core/FormFactors/inc/FormFactorEllipsoid.h @@ -14,7 +14,7 @@ //! @author Scientific Computing Group at FRM II //! @date Oct 1, 2012 -#include "IFormFactor.h" +#include "IFormFactorBorn.h" #include "IStochasticParameter.h" class FormFactorEllipsoid : public IFormFactorBorn diff --git a/Core/FormFactors/inc/FormFactorPrism6.h b/Core/FormFactors/inc/FormFactorPrism6.h index a6d454bb39d..3c6afa11bec 100644 --- a/Core/FormFactors/inc/FormFactorPrism6.h +++ b/Core/FormFactors/inc/FormFactorPrism6.h @@ -13,7 +13,7 @@ //! @author Scientific Computing Group at FRM II //! @date Jun 27, 2012 -#include "IFormFactor.h" +#include "IFormFactorBorn.h" #include "IStochasticParameter.h" diff --git a/Core/FormFactors/inc/FormFactorSphere.h b/Core/FormFactors/inc/FormFactorSphere.h index eabf94893e9..c834460e8da 100644 --- a/Core/FormFactors/inc/FormFactorSphere.h +++ b/Core/FormFactors/inc/FormFactorSphere.h @@ -14,7 +14,7 @@ //! @author Scientific Computing Group at FRM II //! @date 03.07.2012 -#include "IFormFactor.h" +#include "IFormFactorBorn.h" #include "IStochasticParameter.h" @@ -36,7 +36,7 @@ public: virtual int getNumberOfStochasticParameters() const { return 3; } - virtual double getHeight() const { return m_radius, m_height; } + virtual double getHeight() const { return m_height; } protected: virtual complex_t evaluate_for_q(const cvector_t &q) const; diff --git a/Core/FormFactors/inc/FormFactors.h b/Core/FormFactors/inc/FormFactors.h index b58e7431798..5d4754d0142 100644 --- a/Core/FormFactors/inc/FormFactors.h +++ b/Core/FormFactors/inc/FormFactors.h @@ -14,6 +14,7 @@ //! @author Scientific Computing Group at FRM II //! @date Jun 27, 2012 +#include "FormFactorBox.h" #include "FormFactorPyramid.h" #include "FormFactorCylinder.h" #include "FormFactorPrism3.h" diff --git a/Core/FormFactors/src/FormFactorSphere.cpp b/Core/FormFactors/src/FormFactorSphere.cpp index 3242a92c790..d00e985023b 100644 --- a/Core/FormFactors/src/FormFactorSphere.cpp +++ b/Core/FormFactors/src/FormFactorSphere.cpp @@ -45,73 +45,63 @@ FormFactorSphere* FormFactorSphere::clone() const complex_t FormFactorSphere::evaluate_for_q(const cvector_t &q) const { -// double R = mp_radius->getCurrent(); - complex_t qx = q.x(); - complex_t qy = q.y(); - complex_t qz = q.z(); - double R = m_radius; - double H = m_height; - double Z = .4; +//// double R = mp_radius->getCurrent(); +// complex_t qx = q.x(); +// complex_t qy = q.y(); +// complex_t qz = q.z(); +// double R = m_radius; +// double H = m_height; +// double Z = .4; +// +// complex_t iqzZ = complex_t(0.0, 1.0)*qz*Z; +// complex_t z_part= std::exp(iqzZ); +//// complex_t iqz(H-R) = complex_t(0.0, 1.0)*qz*(H-R); +// complex_t a_part = std::exp(iqz(H -R)); +// +// +// +// complex_t Rz = pow((R*R-z*z), 1/2); +// complex_t q_parallel = pow((qx*qx - qy*qy), 1/2); + +// complex_t qR = std::sqrt( std::norm(q.x()) + std::norm(q.y()) + std::norm(qz) )*R; +// complex_t radial; +// if (std::abs(qR) < Numeric::double_epsilon) { +// radial = volume; +// } +// else { +// +// /* +// double zl = R-H; +// double zu = R; +// double rzl = pow((r*r - z*z), 1/2) +// +// fzl= rzl; +// fzu = rzu; +// +// double fz = -H*(fzl+fzu)/2; +// +// radial = exp abc _part 2.pi.x) J1(q_parallel * Rz) +// +// // way1 (standard) +// //radial = 3*volume*(std::sin(qR) - qR*std::cos(qR))/(qR*qR*qR); +// +// // way2 (fast) +// +// +// // way3 (experimental) +// // complex_t xsin, xcos; +// // MathFunctions::FastSinCos(qR, xsin, xcos); +// // radial = 3*volume*(xsin - qR*xcos)/(qR*qR*qR); +// +// +// */ +// } +// +// return radial*z_part; + + (void)q; + return complex_t(0.0, 0.0); - complex_t iqzZ = complex_t(0.0, 1.0)*qz*Z; - complex_t z_part= std::exp(iqzZ); -// complex_t iqz(H-R) = complex_t(0.0, 1.0)*qz*(H-R); - complex_t a_part = std::exp(iqz(H -R)); - - - - complex_t Rz = pow((R*R-z*z), 1/2); - complex_t q_parallel = pow((qx*qx - qy*qy), 1/2); - - - - - - - - - - - - - - - - complex_t qR = std::sqrt( std::norm(q.x()) + std::norm(q.y()) + std::norm(qz) )*R; - complex_t radial; - if (std::abs(qR) < Numeric::double_epsilon) { - radial = volume; - } - else { - - /* - double zl = R-H; - double zu = R; - double rzl = pow((r*r - z*z), 1/2) - - fzl= rzl; - fzu = rzu; - - double fz = -H*(fzl+fzu)/2; - - radial = exp abc _part 2.pi.x) J1(q_parallel * Rz) - - // way1 (standard) - //radial = 3*volume*(std::sin(qR) - qR*std::cos(qR))/(qR*qR*qR); - - // way2 (fast) - - - // way3 (experimental) - // complex_t xsin, xcos; - // MathFunctions::FastSinCos(qR, xsin, xcos); - // radial = 3*volume*(xsin - qR*xcos)/(qR*qR*qR); - - - */ - } - - return radial*z_part; } @@ -125,7 +115,7 @@ void FormFactorSphere::print(std::ostream &ostr) const } -for (zk=0;zk<=2;zk+0.01) { - - k[zk]=zk -} +//for (zk=0;zk<=2;zk+0.01) { +// +// k[zk]=zk +//} -- GitLab