16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_RESAMPLE_PROCESSED_RESAMPLE_H
21 #define BORNAGAIN_RESAMPLE_PROCESSED_RESAMPLE_H
24 #include <heinz/Vectors3D.h>
34 using Fluxes = std::vector<std::unique_ptr<const IFlux>>;
45 bool forcePolarized =
false);
52 const std::vector<reLayout>&
layouts()
const;
std::vector< std::unique_ptr< const IFlux > > Fluxes
Defines class SliceStack.
Interface to access reflection/transmission coefficients. Realized by ScalarFlux and MatrixFlux.
A wrapper for underlying material implementation.
Our sample model: a stack of layers one below the other.
Collect the different options for simulation.SimulationOptions.
Data structure containing the data of a single slice, for calculating the Fresnel coefficients.
Data structure that contains preprocessed data for a single layout.
Data structure that contains all the necessary data for scattering calculations.
const Slice & avgeSlice(size_t i) const
size_t numberOfSlices() const
double sliceTopZ(size_t i) const
static reSample make(const MultiLayer &sample, const SimulationOptions &options, bool forcePolarized=false)
Factory method that wraps the private constructor.
double crossCorrSpectralFun(R3 kvec, size_t j, size_t k) const
Fourier transform of the correlation function of roughnesses between the interfaces.
bool hasRoughness() const
bool polarizing() const
Contains magnetic material, or nonzero magnetic field.
const MultiLayer & m_sample
std::vector< reLayout > m_layouts
const std::vector< reLayout > & layouts() const
bool containsMagneticMaterial() const
Fluxes fluxesIn(const R3 &k) const
double sliceBottomZ(size_t i) const
Fluxes fluxesOut(const R3 &k) const
reSample(const reSample &)=delete
const MultiLayer & sample() const
const SliceStack & averageSlices() const