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

Fluxes now declared via 'using'

parent 4e5eb0db
No related branches found
No related tags found
1 merge request!214Core: get rid of ISpecularStrategy hierarchy
Showing
with 29 additions and 17 deletions
......@@ -24,11 +24,12 @@
#include "Base/Vector/Vectors3D.h"
#include <memory>
class Fluxes;
class IFlux;
class IPixel;
class WavevectorInfo;
using Fluxes = std::vector<std::unique_ptr<const IFlux>>;
//! Data stucture containing both input and output of a single detector cell.
//! @ingroup simulation
......
......@@ -20,7 +20,6 @@
#ifndef BORNAGAIN_RESAMPLE_FLUX_IFLUX_H
#define BORNAGAIN_RESAMPLE_FLUX_IFLUX_H
#include "Base/Types/Complex.h"
#include "Base/Vector/EigenCore.h"
#include <memory>
#include <vector>
......@@ -46,9 +45,5 @@ public:
virtual Eigen::Vector2cd getKz() const = 0;
};
// prefer trivial inheritance over 'using' declaration to allow forward declarations 'class Fluxes'
class Fluxes : public std::vector<std::unique_ptr<const IFlux>> {
};
#endif // BORNAGAIN_RESAMPLE_FLUX_IFLUX_H
#endif // USER_API
......@@ -21,6 +21,7 @@
#define BORNAGAIN_RESAMPLE_FLUX_SCALARFLUX_H
#include "Resample/Flux/IFlux.h"
#include "Base/Types/Complex.h"
//! Specular reflection and transmission coefficients in a layer in case
//! of scalar interactions between the layers and the scattered particle.
......
......@@ -14,6 +14,7 @@
#include "Resample/Processed/ProcessedSample.h"
#include "Base/Utils/Assert.h"
#include "Resample/Flux/IFlux.h"
#include "Resample/Options/SimulationOptions.h"
#include "Resample/Processed/ParticleRegions.h"
#include "Resample/Processed/ProcessedLayout.h"
......
......@@ -25,12 +25,14 @@
#include <memory>
#include <vector>
class Fluxes;
class IFlux;
class Material;
class MultiLayer;
class ProcessedLayout;
class SimulationOptions;
using Fluxes = std::vector<std::unique_ptr<const IFlux>>;
//! Data structure that contains all the necessary data for scattering calculations.
//!
//! If the usage of average materials is requested, layers and particles are sliced into multiple
......
......@@ -15,6 +15,7 @@
#include "Resample/Specular/SpecularMagneticStrategy.h"
#include "Base/Const/PhysicalConstants.h"
#include "Base/Utils/Assert.h"
#include "Resample/Flux/MatrixFlux.h"
#include "Resample/Slice/KzComputation.h"
#include "Resample/Slice/Slice.h"
#include "Resample/Slice/SliceStack.h"
......
......@@ -20,12 +20,15 @@
#ifndef BORNAGAIN_RESAMPLE_SPECULAR_SPECULARMAGNETICSTRATEGY_H
#define BORNAGAIN_RESAMPLE_SPECULAR_SPECULARMAGNETICSTRATEGY_H
#include "Resample/Flux/MatrixFlux.h"
#include "Sample/Multilayer/RoughnessModels.h"
#include "Base/Vector/Vectors3D.h"
#include <Eigen/Core>
#include <memory>
#include <vector>
class IFlux;
class SliceStack;
using Fluxes = std::vector<std::unique_ptr<const IFlux>>;
//! Implements the magnetic Fresnel computation with Nevot-Croce roughness
//!
......
......@@ -16,11 +16,13 @@
#include "Base/Math/Constants.h"
#include "Base/Math/Functions.h"
#include "Base/Utils/Assert.h"
#include "Resample/Flux/ScalarFlux.h"
#include "Resample/Slice/KzComputation.h"
#include "Resample/Slice/Slice.h"
#include "Resample/Slice/SliceStack.h"
#include "Sample/Interface/LayerRoughness.h"
#include "Sample/Multilayer/Layer.h"
#include "Sample/Multilayer/RoughnessModels.h"
#include <Eigen/Dense>
#include <stdexcept>
......
......@@ -20,13 +20,14 @@
#ifndef BORNAGAIN_RESAMPLE_SPECULAR_SPECULARSCALARSTRATEGY_H
#define BORNAGAIN_RESAMPLE_SPECULAR_SPECULARSCALARSTRATEGY_H
#include "Resample/Flux/ScalarFlux.h"
#include "Base/Vector/Vectors3D.h"
#include "Sample/Multilayer/RoughnessModels.h"
#include <memory>
#include <vector>
class IFlux;
class SliceStack;
using Fluxes = std::vector<std::unique_ptr<const IFlux>>;
//! Implements the scalar Fresnel computation
//!
......
......@@ -13,6 +13,7 @@
// ************************************************************************************************
#include "Resample/Specular/TransitionMagneticNevot.h"
#include "Resample/Flux/MatrixFlux.h"
namespace {
......
......@@ -20,9 +20,10 @@
#ifndef BORNAGAIN_RESAMPLE_SPECULAR_TRANSITIONMAGNETICNEVOT_H
#define BORNAGAIN_RESAMPLE_SPECULAR_TRANSITIONMAGNETICNEVOT_H
#include "Resample/Specular/SpecularMagneticStrategy.h"
#include <memory>
#include <vector>
#include <Eigen/Core>
#include <utility>
class MatrixFlux;
//! Implements the magnetic Fresnel computation with Nevot-Croce roughness
//!
......@@ -32,8 +33,10 @@
//! document "Polarized Implementation of the Transfer Matrix Method"
namespace Compute::MagneticNevotCroceTransition {
std::pair<Eigen::Matrix2cd, Eigen::Matrix2cd>
backwardsSubmatrices(const MatrixFlux& coeff_i, const MatrixFlux& coeff_i1, double sigma);
}
#endif // BORNAGAIN_RESAMPLE_SPECULAR_TRANSITIONMAGNETICNEVOT_H
......
......@@ -15,6 +15,7 @@
#include "Resample/Specular/TransitionMagneticTanh.h"
#include "Base/Math/Constants.h"
#include "Base/Math/Functions.h"
#include "Resample/Flux/MatrixFlux.h"
namespace {
......
......@@ -20,7 +20,10 @@
#ifndef BORNAGAIN_RESAMPLE_SPECULAR_TRANSITIONMAGNETICTANH_H
#define BORNAGAIN_RESAMPLE_SPECULAR_TRANSITIONMAGNETICTANH_H
#include "Resample/Specular/SpecularMagneticStrategy.h"
#include <Eigen/Core>
#include <utility>
class MatrixFlux;
//! Implements the magnetic Fresnel computation with the analytical Tanh roughness
//!
......
#include "Base/Math/Constants.h"
#include "Resample/Flux/ScalarFlux.h"
#include "Resample/Options/SimulationOptions.h"
#include "Resample/Processed/ProcessedSample.h"
#include "Resample/Specular/SpecularScalarStrategy.h"
......
......@@ -178,10 +178,6 @@ Returns the coherent sum of the four DWBA terms for scalar scattering.
";
// File: classFluxes.xml
%feature("docstring") Fluxes "";
// File: classIDWBA.xml
%feature("docstring") IDWBA "
......
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