BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
MultiLayer Class Reference

Description

Our sample model: a stack of layers one below the other.

Example of system of 4 layers (3 interfaces):

vacuum      layer 0
---------   interface 0    z=0.0
Fe, 20A     layer 1
---------   interface 1    z=-20.0
Cr, 40A     layer 2
---------   interface 2    z=-60.0
substrate   layer 3
Inheritance diagram for MultiLayer:

Public Member Functions

 MultiLayer (std::string name="Unnamed")
 
 ~MultiLayer () override
 
void addLayer (const Layer &layer)
 
void addLayerWithTopRoughness (const Layer &layer, const LayerRoughness &roughness)
 
std::string className () const final
 
MultiLayerclone () const override
 
double crossCorrLength () const
 Returns cross correlation length of roughnesses between interfaces. More...
 
R3 externalField () const
 Returns the external field applied to the sample (units: A/m) More...
 
const Layerlayer (size_t i_layer) const
 Returns layer with given index. More...
 
const LayerInterface * layerInterface (size_t i_interface) const
 Returns interface with given index. More...
 
std::vector< const INode * > nodeChildren () const override
 
size_t numberOfLayers () const
 
RoughnessModel roughnessModel () const
 
const std::string & sampleName () const
 
void setCrossCorrLength (double crossCorrLength)
 Sets cross correlation length of roughnesses between interfaces. More...
 
void setExternalField (R3 ext_field)
 Sets the external field applied to the sample (units: A/m) More...
 
void setRoughnessModel (RoughnessModel roughnessModel)
 
void setSampleName (const std::string &name)
 

Constructor & Destructor Documentation

◆ MultiLayer()

MultiLayer::MultiLayer ( std::string  name = "Unnamed")

◆ ~MultiLayer()

MultiLayer::~MultiLayer ( )
override

Member Function Documentation

◆ addLayer()

void MultiLayer::addLayer ( const Layer layer)

◆ addLayerWithTopRoughness()

void MultiLayer::addLayerWithTopRoughness ( const Layer layer,
const LayerRoughness roughness 
)

◆ className()

std::string MultiLayer::className ( ) const
final

◆ clone()

MultiLayer* MultiLayer::clone ( ) const
override

◆ crossCorrLength()

double MultiLayer::crossCorrLength ( ) const

Returns cross correlation length of roughnesses between interfaces.

◆ externalField()

R3 MultiLayer::externalField ( ) const

Returns the external field applied to the sample (units: A/m)

◆ layer()

const Layer* MultiLayer::layer ( size_t  i_layer) const

Returns layer with given index.

◆ layerInterface()

const LayerInterface* MultiLayer::layerInterface ( size_t  i_interface) const

Returns interface with given index.

◆ nodeChildren()

std::vector<const INode*> MultiLayer::nodeChildren ( ) const
override

◆ numberOfLayers()

size_t MultiLayer::numberOfLayers ( ) const

◆ roughnessModel()

RoughnessModel MultiLayer::roughnessModel ( ) const

◆ sampleName()

const std::string& MultiLayer::sampleName ( ) const

◆ setCrossCorrLength()

void MultiLayer::setCrossCorrLength ( double  crossCorrLength)

Sets cross correlation length of roughnesses between interfaces.

◆ setExternalField()

void MultiLayer::setExternalField ( R3  ext_field)

Sets the external field applied to the sample (units: A/m)

◆ setRoughnessModel()

void MultiLayer::setRoughnessModel ( RoughnessModel  roughnessModel)

◆ setSampleName()

void MultiLayer::setSampleName ( const std::string &  name)