15 #ifndef BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
16 #define BORNAGAIN_CORE_COMPUTATION_PROCESSEDSAMPLE_H
44 const std::vector<Slice>&
slices()
const;
46 const std::vector<ProcessedLayout>&
layouts()
const;
68 void mergeRegionMap(
const std::map<
size_t, std::vector<HomogeneousRegion>>& 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.
void initLayouts(const MultiLayer &sample)
const std::vector< Slice > & slices() const
std::vector< Slice > m_slices
std::map< size_t, std::vector< HomogeneousRegion > > m_region_map
ProcessedSample(const MultiLayer &sample, const SimulationOptions &options)
void initSlices(const MultiLayer &sample, const SimulationOptions &options)
bool hasRoughness() const
double sliceTopZ(size_t i) const
kvector_t externalField() const
void addSlice(double thickness, const Material &material, const LayerRoughness *p_roughness=nullptr)
void addNSlices(size_t n, double thickness, const Material &material, const LayerRoughness *p_roughness=nullptr)
void mergeRegionMap(const std::map< size_t, std::vector< HomogeneousRegion >> ®ion_map)
double sliceBottomZ(size_t i) const
void initFresnelMap(const SimulationOptions &sim_options)
bool containsMagneticMaterial() const
std::unique_ptr< IFresnelMap > mP_fresnel_map
const IFresnelMap * fresnelMap() const
size_t numberOfSlices() const
double crossCorrSpectralFun(const kvector_t kvec, size_t j, size_t k) const
Fourier transform of the correlation function of roughnesses between the interfaces.
const std::vector< Slice > & averageSlices() const
const std::vector< ProcessedLayout > & layouts() const
double crossCorrelationLength() const
const LayerRoughness * bottomRoughness(size_t i) const
std::vector< ProcessedLayout > m_layouts
Collect the different options for simulation.
Struct that contains information on a single homogeneous region of a particle inside a single layer.