BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
ProcessedSample (const MultiLayer &sample, const SimulationOptions &options) | |
~ProcessedSample () | |
size_t | numberOfSlices () const |
const std::vector< Slice > & | slices () const |
const std::vector< Slice > & | averageSlices () const |
const std::vector< ProcessedLayout > & | layouts () const |
const IFresnelMap * | fresnelMap () const |
double | crossCorrelationLength () const |
kvector_t | externalField () const |
const LayerRoughness * | bottomRoughness (size_t i) const |
double | sliceTopZ (size_t i) const |
double | sliceBottomZ (size_t i) const |
bool | containsMagneticMaterial () const |
bool | hasRoughness () const |
double | crossCorrSpectralFun (const kvector_t kvec, size_t j, size_t k) const |
Private Member Functions | |
void | initSlices (const MultiLayer &sample, const SimulationOptions &options) |
void | initLayouts (const MultiLayer &sample) |
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 | initBFields () |
void | mergeRegionMap (const std::map< size_t, std::vector< HomogeneousRegion >> ®ion_map) |
void | initFresnelMap (const SimulationOptions &sim_options) |
Private Attributes | |
std::unique_ptr< IFresnelMap > | mP_fresnel_map |
std::vector< Slice > | m_slices |
double | m_top_z |
bool | m_polarized |
std::vector< ProcessedLayout > | m_layouts |
double | m_crossCorrLength |
kvector_t | m_ext_field |
std::map< size_t, std::vector< HomogeneousRegion > > | m_region_map |
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 slices and the average material is calculated for each slice.
Definition at line 37 of file ProcessedSample.h.
ProcessedSample::ProcessedSample | ( | const MultiLayer & | sample, |
const SimulationOptions & | options | ||
) |
Definition at line 40 of file ProcessedSample.cpp.
References anonymous_namespace{ProcessedSample.cpp}::CreateFresnelMap(), initBFields(), initFresnelMap(), initLayouts(), initSlices(), m_slices, and mP_fresnel_map.
|
default |
size_t ProcessedSample::numberOfSlices | ( | ) | const |
Definition at line 53 of file ProcessedSample.cpp.
References m_slices.
Referenced by DepthProbeComputationTerm::compute(), RoughMultiLayerComputation::compute(), ProfileHelper::ProfileHelper(), and sliceBottomZ().
const std::vector< Slice > & ProcessedSample::slices | ( | ) | const |
Definition at line 58 of file ProcessedSample.cpp.
References m_slices.
Referenced by RoughMultiLayerComputation::get_refractive_term(), and RoughMultiLayerComputation::get_sum8terms().
const std::vector< Slice > & ProcessedSample::averageSlices | ( | ) | const |
Definition at line 63 of file ProcessedSample.cpp.
References mP_fresnel_map.
Referenced by ProfileHelper::ProfileHelper().
const std::vector< ProcessedLayout > & ProcessedSample::layouts | ( | ) | const |
const IFresnelMap * ProcessedSample::fresnelMap | ( | ) | const |
Definition at line 73 of file ProcessedSample.cpp.
References mP_fresnel_map.
Referenced by DepthProbeComputationTerm::compute(), and RoughMultiLayerComputation::get_sum8terms().
double ProcessedSample::crossCorrelationLength | ( | ) | const |
Definition at line 78 of file ProcessedSample.cpp.
References m_crossCorrLength.
Referenced by RoughMultiLayerComputation::compute().
kvector_t ProcessedSample::externalField | ( | ) | const |
Definition at line 83 of file ProcessedSample.cpp.
References m_ext_field.
const LayerRoughness * ProcessedSample::bottomRoughness | ( | size_t | i | ) | const |
Definition at line 88 of file ProcessedSample.cpp.
References m_slices.
Referenced by RoughMultiLayerComputation::compute(), crossCorrSpectralFun(), RoughMultiLayerComputation::get_sum8terms(), and ProfileHelper::ProfileHelper().
double ProcessedSample::sliceTopZ | ( | size_t | i | ) | const |
Definition at line 96 of file ProcessedSample.cpp.
References m_top_z, and sliceBottomZ().
Referenced by DepthProbeComputationTerm::compute().
double ProcessedSample::sliceBottomZ | ( | size_t | i | ) | const |
Definition at line 103 of file ProcessedSample.cpp.
References m_slices, m_top_z, and numberOfSlices().
Referenced by DepthProbeComputationTerm::compute(), crossCorrSpectralFun(), ProfileHelper::ProfileHelper(), and sliceTopZ().
bool ProcessedSample::containsMagneticMaterial | ( | ) | const |
Definition at line 116 of file ProcessedSample.cpp.
References m_polarized.
bool ProcessedSample::hasRoughness | ( | ) | const |
double ProcessedSample::crossCorrSpectralFun | ( | const kvector_t | kvec, |
size_t | j, | ||
size_t | k | ||
) | const |
Fourier transform of the correlation function of roughnesses between the interfaces.
Definition at line 130 of file ProcessedSample.cpp.
References bottomRoughness(), LayerRoughness::getSigma(), LayerRoughness::getSpectralFun(), m_crossCorrLength, and sliceBottomZ().
Referenced by RoughMultiLayerComputation::compute().
|
private |
Definition at line 152 of file ProcessedSample.cpp.
References addNSlices(), addSlice(), ZLimits::isFinite(), MultiLayer::layer(), MultiLayerUtils::LayerTopRoughness(), ZLimits::lowerLimit(), m_top_z, OneSidedLimit::m_value, anonymous_namespace{SlicedCylindersBuilder.cpp}::n_slices(), MultiLayer::numberOfLayers(), MultiLayerUtils::ParticleRegions(), ZLimits::upperLimit(), and SimulationOptions::useAvgMaterials().
Referenced by ProcessedSample().
|
private |
Definition at line 208 of file ProcessedSample.cpp.
References anonymous_namespace{ProcessedSample.cpp}::ContainsMagneticMaterial(), MultiLayer::layer(), MultiLayerUtils::LayerThickness(), m_layouts, m_polarized, m_slices, m_top_z, mergeRegionMap(), mP_fresnel_map, and MultiLayer::numberOfLayers().
Referenced by ProcessedSample().
|
private |
Definition at line 223 of file ProcessedSample.cpp.
References m_slices.
Referenced by addNSlices(), and initSlices().
|
private |
Definition at line 233 of file ProcessedSample.cpp.
References addSlice().
Referenced by initSlices().
|
private |
Definition at line 248 of file ProcessedSample.cpp.
References m_ext_field, m_slices, Slice::Magnetic_Permeability, and BasicVector3D< T >::z().
Referenced by ProcessedSample().
|
private |
Definition at line 259 of file ProcessedSample.cpp.
References m_region_map.
Referenced by initLayouts().
|
private |
Definition at line 269 of file ProcessedSample.cpp.
References anonymous_namespace{ProcessedSample.cpp}::CreateAverageMaterialSlices(), m_region_map, m_slices, mP_fresnel_map, and SimulationOptions::useAvgMaterials().
Referenced by ProcessedSample().
|
private |
Definition at line 70 of file ProcessedSample.h.
Referenced by averageSlices(), fresnelMap(), initFresnelMap(), initLayouts(), and ProcessedSample().
|
private |
Definition at line 71 of file ProcessedSample.h.
Referenced by addSlice(), bottomRoughness(), hasRoughness(), initBFields(), initFresnelMap(), initLayouts(), numberOfSlices(), ProcessedSample(), sliceBottomZ(), and slices().
|
private |
Definition at line 72 of file ProcessedSample.h.
Referenced by initLayouts(), initSlices(), sliceBottomZ(), and sliceTopZ().
|
private |
Definition at line 73 of file ProcessedSample.h.
Referenced by containsMagneticMaterial(), and initLayouts().
|
private |
Definition at line 74 of file ProcessedSample.h.
Referenced by initLayouts(), and layouts().
|
private |
Definition at line 75 of file ProcessedSample.h.
Referenced by crossCorrelationLength(), and crossCorrSpectralFun().
|
private |
Definition at line 76 of file ProcessedSample.h.
Referenced by externalField(), and initBFields().
|
private |
Definition at line 77 of file ProcessedSample.h.
Referenced by initFresnelMap(), and mergeRegionMap().