15 #ifndef BORNAGAIN_CORE_MULTILAYER_MULTILAYERUTILS_H
16 #define BORNAGAIN_CORE_MULTILAYER_MULTILAYERUTILS_H
Interface between two layers, possibly with roughness.
A roughness of interface between two layers.
A layer, with thickness (in nanometer) and material.
Our sample model: a stack of layers one below the other.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
const LayerRoughness * LayerTopRoughness(const MultiLayer &multilayer, size_t i)
Returns top roughness of layer.
std::vector< ZLimits > ParticleRegions(const MultiLayer &multilayer, bool use_slicing)
Calculate z-regions occupied by particles.
size_t IndexOfLayer(const MultiLayer &multilayer, const Layer *p_layer)
Returns the index of the given layer.
bool ContainsCompatibleMaterials(const MultiLayer &multilayer)
Returns true if the multilayer contains non-default materials of one type only.
double LayerThickness(const MultiLayer &multilayer, size_t i)
Returns thickness of layer.
const LayerInterface * LayerTopInterface(const MultiLayer &multilayer, size_t i)
Returns top interface of layer.
bool hasRoughness(const MultiLayer &sample)
const LayerInterface * LayerBottomInterface(const MultiLayer &multilayer, size_t i)
Returns bottom interface of layer.