Skip to content
Snippets Groups Projects
Commit d979dd8e authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

corr, only now it builds

parent 9ab3bfba
No related branches found
No related tags found
No related merge requests found
...@@ -13,7 +13,10 @@ ...@@ -13,7 +13,10 @@
// //
// ************************************************************************** // // ************************************************************************** //
#include "ISample.h"
#include "SpecularMatrix.h"
#include "SpecularSimulation.h" #include "SpecularSimulation.h"
#include <memory>
SpecularSimulation::SpecularSimulation() SpecularSimulation::SpecularSimulation()
: IParameterized("SpecularSimulation"), m_sample(0), m_alpha_i_axis(0), m_z_axis(0), : IParameterized("SpecularSimulation"), m_sample(0), m_alpha_i_axis(0), m_z_axis(0),
......
...@@ -16,12 +16,8 @@ ...@@ -16,12 +16,8 @@
#ifndef SPECULARSIMULATION_H #ifndef SPECULARSIMULATION_H
#define SPECULARSIMULATION_H #define SPECULARSIMULATION_H
//#include "MultiLayerRTCoefficients.h" #include "ICloneable.h"
#include "IParameterized.h"
#ifndef SWIG
#endif
//! @class SpecularSimulation //! @class SpecularSimulation
//! @ingroup simulation //! @ingroup simulation
...@@ -30,24 +26,24 @@ ...@@ -30,24 +26,24 @@
class BA_CORE_API_ SpecularSimulation : public ICloneable, public IParameterized class BA_CORE_API_ SpecularSimulation : public ICloneable, public IParameterized
{ {
public: public:
typedef std::shared_ptr<const ILayerRTCoefficients> LayerRTCoefficients_t; typedef std::shared_ptr<const ILayerRTCoefficients> LayerRTCoefficients_t;
typedef std::vector<LayerRTCoefficients_t> MultiLayerRTCoefficients_t; typedef std::vector<LayerRTCoefficients_t> MultiLayerRTCoefficients_t;
SpecularSimulation(); SpecularSimulation();
SpecularSimulation(const ISample& sample); SpecularSimulation(const class ISample& sample);
SpecularSimulation(std::shared_ptr<class ISampleBuilder> sample_builder); SpecularSimulation(std::shared_ptr<class ISampleBuilder> sample_builder);
virtual ~SpecularSimulation(); virtual ~SpecularSimulation();
SpecularSimulation *clone() const; SpecularSimulation* clone() const;
//! Run a simulation with the current parameter settings //! Run a simulation with the current parameter settings
void runSimulation(); void runSimulation();
//! Sets the sample to be tested //! Sets the sample to be tested
void setSample(const ISample& sample); void setSample(const class ISample& sample);
//! Returns the sample //! Returns the sample
ISample *getSample() const; ISample* getSample() const;
//! Sets the sample builder //! Sets the sample builder
void setSampleBuilder(std::shared_ptr<class ISampleBuilder> sample_builder); void setSampleBuilder(std::shared_ptr<class ISampleBuilder> sample_builder);
...@@ -56,24 +52,24 @@ public: ...@@ -56,24 +52,24 @@ public:
std::shared_ptr<class ISampleBuilder> getSampleBuilder() const; std::shared_ptr<class ISampleBuilder> getSampleBuilder() const;
//! Sets beam parameters with alpha_i of the beam defined in the range //! Sets beam parameters with alpha_i of the beam defined in the range
void setBeamParameters(double lambda, const IAxis &alpha_axis); void setBeamParameters(double lambda, const class IAxis &alpha_axis);
void setBeamParameters(double lambda, int nbins, double alpha_i_min, double alpha_i_max); void setBeamParameters(double lambda, int nbins, double alpha_i_min, double alpha_i_max);
//! set axis for evanescent wave axis //! set axis for evanescent wave axis
void setEvanescentWaveAxis(const IAxis &z_axis); void setEvanescentWaveAxis(const class IAxis &z_axis);
void setEvanescentWaveAxis(int nbins, double z_min, double z_max); void setEvanescentWaveAxis(int nbins, double z_min, double z_max);
//! returns alpha_i axis //! returns alpha_i axis
const IAxis *getAlphaAxis() const; const class IAxis* getAlphaAxis() const;
//! returns vector of reflection coefficients for all alpha_i angles for given layer index //! returns vector of reflection coefficients for all alpha_i angles for given layer index
std::vector<complex_t > getScalarR(size_t i_layer) const; std::vector<complex_t> getScalarR(size_t i_layer) const;
//! returns vector of transmission coefficients for all alpha_i angles for given layer index //! returns vector of transmission coefficients for all alpha_i angles for given layer index
std::vector<complex_t > getScalarT(size_t i_layer) const; std::vector<complex_t> getScalarT(size_t i_layer) const;
//! returns vector of Kz coefficients for all alpha_i angles for given layer index //! returns vector of Kz coefficients for all alpha_i angles for given layer index
std::vector<complex_t > getScalarKz(size_t i_layer) const; std::vector<complex_t> getScalarKz(size_t i_layer) const;
LayerRTCoefficients_t getLayerRTCoefficients(size_t i_alpha, size_t i_layer) const; LayerRTCoefficients_t getLayerRTCoefficients(size_t i_alpha, size_t i_layer) const;
...@@ -92,10 +88,10 @@ protected: ...@@ -92,10 +88,10 @@ protected:
void updateSample(); void updateSample();
//! calculates RT coefficients for multilayer without magnetic materials //! calculates RT coefficients for multilayer without magnetic materials
void collectRTCoefficientsScalar(const MultiLayer *multilayer); void collectRTCoefficientsScalar(const class MultiLayer* multilayer);
//! calculates RT coefficients for multilayer with magnetic materials //! calculates RT coefficients for multilayer with magnetic materials
void collectRTCoefficientsMatrix(const MultiLayer *multilayer); void collectRTCoefficientsMatrix(const class MultiLayer* multilayer);
//! calculates the intensity of evanescent wave //! calculates the intensity of evanescent wave
// void calculateEvanescentWaveIntensity(); // void calculateEvanescentWaveIntensity();
...@@ -106,19 +102,16 @@ protected: ...@@ -106,19 +102,16 @@ protected:
//! update data axes //! update data axes
void updateCoefficientDataAxes(); void updateCoefficientDataAxes();
ISample *m_sample; class ISample* m_sample;
std::shared_ptr<class ISampleBuilder> m_sample_builder; std::shared_ptr<class ISampleBuilder> m_sample_builder;
IAxis *m_alpha_i_axis; class IAxis* m_alpha_i_axis;
IAxis *m_z_axis; class IAxis* m_z_axis;
double m_lambda; double m_lambda;
#ifndef SWIG #ifndef SWIG
// OutputData<SpecularMatrix::MultiLayerCoeff_t> *m_scalar_data;
OutputData<MultiLayerRTCoefficients_t> m_data; OutputData<MultiLayerRTCoefficients_t> m_data;
OutputData<double> m_ewave_intensity; OutputData<double> m_ewave_intensity;
#endif #endif
}; };
#endif // SPECULARSIMULATION_H #endif // SPECULARSIMULATION_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment