15 #ifndef BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
16 #define BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
43 size_t numberOfSlices()
const;
44 const std::vector<Slice>& slices()
const;
45 const std::vector<Slice>& averageSlices()
const;
46 const std::vector<ProcessedLayout>& layouts()
const;
48 double crossCorrelationLength()
const;
51 double sliceTopZ(
size_t i)
const;
52 double sliceBottomZ(
size_t i)
const;
53 bool containsMagneticMaterial()
const;
54 bool hasRoughness()
const;
63 void addSlice(
double thickness,
const Material& material,
65 void addNSlices(
size_t n,
double thickness,
const Material& material,
68 void mergeRegionMap(
const std::map<
size_t, std::vector<HomogeneousRegion>>& region_map);
70 std::unique_ptr<IFresnelMap> mP_fresnel_map;
71 std::vector<Slice> m_slices;
74 std::vector<ProcessedLayout> m_layouts;
75 double m_crossCorrLength;
77 std::map<size_t, std::vector<HomogeneousRegion>> m_region_map;
Holds the necessary information to calculate the radiation wavefunction in every layer for different ...
A roughness of interface between two layers.
A wrapper for underlying material implementation.
Our sample model: a stack of layers one below the other.
Data structure that contains preprocessed data for a single layout.
Data structure that contains all the necessary data for scattering calculations.
double crossCorrSpectralFun(const kvector_t kvec, size_t j, size_t k) const
Fourier transform of the correlation function of roughnesses between the interfaces.
Collect the different options for simulation.
Struct that contains information on a single homogeneous region of a particle inside a single layer.