BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Interface between two layers, possibly with roughness.
Definition at line 31 of file LayerInterface.h.
Public Member Functions | |
~LayerInterface () override | |
const Layer * | bottomLayer () const |
void | checkNodeArgs () const |
Raises exception if a parameter value is invalid. More... | |
std::string | className () const final |
Returns the class name, to be hard-coded in each leaf class that inherits from INode. More... | |
LayerInterface * | clone () const override |
Returns a clone of this ISampleNode object. More... | |
std::vector< const Material * > | containedMaterials () const |
Returns set of unique materials contained in this ISampleNode. More... | |
bool | isMagnetic () const |
Returns true if there is any magnetic material in this ISampleNode. More... | |
virtual const Material * | material () const |
Returns nullptr, unless overwritten to return a specific material. More... | |
std::vector< const INode * > | nodeChildren () const override |
Returns all children. More... | |
std::vector< const INode * > | nodeOffspring () const |
Returns all descendants. More... | |
virtual std::vector< ParaMeta > | parDefs () const |
Returns the parameter definitions, to be hard-coded in each leaf class. More... | |
const LayerRoughness * | roughness () const |
Returns roughness of the interface. More... | |
void | setRoughness (const LayerRoughness &roughness) |
Sets roughness of the interface. More... | |
const Layer * | topLayer () const |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) More... | |
Static Public Member Functions | |
static LayerInterface * | createRoughInterface (const Layer *top_layer, const Layer *bottom_layer, const LayerRoughness &roughness) |
Creates rough interface between two layers. More... | |
static LayerInterface * | createSmoothInterface (const Layer *top_layer, const Layer *bottom_layer) |
Creates smooth interface between two layers. More... | |
Protected Attributes | |
std::vector< double > | m_P |
Private Member Functions | |
LayerInterface () | |
void | setLayersTopBottom (const Layer *top_layer, const Layer *bottom_layer) |
Sets links to the layers above and below the interface. More... | |
Private Attributes | |
const Layer * | m_bottomLayer |
pointer to the layer below interface More... | |
std::unique_ptr< LayerRoughness > | m_roughness |
roughness of the interface More... | |
const Layer * | m_topLayer |
pointer to the layer above interface More... | |
|
overridedefault |
|
private |
Definition at line 19 of file LayerInterface.cpp.
Referenced by createSmoothInterface().
|
inline |
Definition at line 76 of file LayerInterface.h.
References m_bottomLayer.
|
inherited |
Raises exception if a parameter value is invalid.
Definition at line 27 of file INode.cpp.
References ASSERT, RealLimits::check(), INode::className(), INF, RealLimits::limited(), RealLimits::limitless(), INode::m_P, ParaMeta::name, RealLimits::nonnegative(), INode::parDefs(), ParaMeta::vMax, and ParaMeta::vMin.
Referenced by BarGauss::BarGauss(), BarLorentz::BarLorentz(), Bipyramid4::Bipyramid4(), Box::Box(), CantellatedCube::CantellatedCube(), Cone::Cone(), ConstantBackground::ConstantBackground(), CosineRippleBox::CosineRippleBox(), CosineRippleGauss::CosineRippleGauss(), CosineRippleLorentz::CosineRippleLorentz(), Cylinder::Cylinder(), DistributionCosine::DistributionCosine(), DistributionGate::DistributionGate(), DistributionGaussian::DistributionGaussian(), DistributionLogNormal::DistributionLogNormal(), DistributionLorentz::DistributionLorentz(), DistributionTrapezoid::DistributionTrapezoid(), Dodecahedron::Dodecahedron(), EllipsoidalCylinder::EllipsoidalCylinder(), FootprintGauss::FootprintGauss(), FootprintSquare::FootprintSquare(), FuzzySphere::FuzzySphere(), GaussSphere::GaussSphere(), HemiEllipsoid::HemiEllipsoid(), HollowSphere::HollowSphere(), HorizontalCylinder::HorizontalCylinder(), Icosahedron::Icosahedron(), LongBoxGauss::LongBoxGauss(), LongBoxLorentz::LongBoxLorentz(), PlatonicOctahedron::PlatonicOctahedron(), PlatonicTetrahedron::PlatonicTetrahedron(), Prism3::Prism3(), Prism6::Prism6(), Profile1DCauchy::Profile1DCauchy(), Profile1DCosine::Profile1DCosine(), Profile1DGate::Profile1DGate(), Profile1DGauss::Profile1DGauss(), Profile1DTriangle::Profile1DTriangle(), Profile1DVoigt::Profile1DVoigt(), Profile2DCauchy::Profile2DCauchy(), Profile2DCone::Profile2DCone(), Profile2DGate::Profile2DGate(), Profile2DGauss::Profile2DGauss(), Profile2DVoigt::Profile2DVoigt(), Pyramid2::Pyramid2(), Pyramid3::Pyramid3(), Pyramid4::Pyramid4(), Pyramid6::Pyramid6(), RotationEuler::RotationEuler(), RotationX::RotationX(), RotationY::RotationY(), RotationZ::RotationZ(), SawtoothRippleBox::SawtoothRippleBox(), SawtoothRippleGauss::SawtoothRippleGauss(), SawtoothRippleLorentz::SawtoothRippleLorentz(), Sphere::Sphere(), Spheroid::Spheroid(), TruncatedCube::TruncatedCube(), TruncatedSphere::TruncatedSphere(), and TruncatedSpheroid::TruncatedSpheroid().
|
inlinefinalvirtual |
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
Implements INode.
Definition at line 36 of file LayerInterface.h.
|
overridevirtual |
Returns a clone of this ISampleNode object.
Implements ISampleNode.
Definition at line 27 of file LayerInterface.cpp.
|
inherited |
Returns set of unique materials contained in this ISampleNode.
Definition at line 25 of file ISampleNode.cpp.
References ISampleNode::material(), and INode::nodeChildren().
Referenced by SampleUtils::Multilayer::ContainsCompatibleMaterials(), SampleToPython::initLabels(), and ISampleNode::isMagnetic().
|
static |
Creates rough interface between two layers.
Definition at line 40 of file LayerInterface.cpp.
References createSmoothInterface(), roughness(), and setRoughness().
Referenced by MultiLayer::addLayerWithTopRoughness().
|
static |
Creates smooth interface between two layers.
Definition at line 32 of file LayerInterface.cpp.
References LayerInterface().
Referenced by MultiLayer::addLayerWithTopRoughness(), and createRoughInterface().
|
inherited |
Returns true if there is any magnetic material in this ISampleNode.
Definition at line 39 of file ISampleNode.cpp.
References ISampleNode::containedMaterials().
Referenced by reSample::make().
|
inlinevirtualinherited |
Returns nullptr, unless overwritten to return a specific material.
Reimplemented in Particle, and Layer.
Definition at line 36 of file ISampleNode.h.
Referenced by ISampleNode::containedMaterials().
|
overridevirtual |
Returns all children.
Reimplemented from INode.
Definition at line 54 of file LayerInterface.cpp.
References m_roughness.
|
inherited |
Returns all descendants.
Definition at line 61 of file INode.cpp.
References INode::nodeChildren().
|
inlinevirtualinherited |
Returns the parameter definitions, to be hard-coded in each leaf class.
Reimplemented in ConstantBackground, GaussSphere, FuzzySphere, RotationEuler, RotationZ, RotationY, RotationX, Crystal, Layer, HexagonalLattice2D, SquareLattice2D, BasicLattice2D, LayerRoughness, TruncatedSpheroid, TruncatedSphere, TruncatedCube, Spheroid, Sphere, SawtoothRippleLorentz, SawtoothRippleGauss, SawtoothRippleBox, Pyramid6, Pyramid4, Pyramid3, Pyramid2, Prism6, Prism3, PlatonicTetrahedron, PlatonicOctahedron, LongBoxLorentz, LongBoxGauss, Icosahedron, HorizontalCylinder, HollowSphere, HemiEllipsoid, EllipsoidalCylinder, Dodecahedron, Cylinder, CosineRippleLorentz, CosineRippleGauss, CosineRippleBox, Cone, CantellatedCube, Box, Bipyramid4, BarLorentz, BarGauss, Profile2DVoigt, Profile2DCone, Profile2DGate, Profile2DGauss, Profile2DCauchy, Profile1DVoigt, Profile1DCosine, Profile1DTriangle, Profile1DGate, Profile1DGauss, Profile1DCauchy, MisesGaussPeakShape, MisesFisherGaussPeakShape, LorentzFisherPeakShape, GaussFisherPeakShape, IsotropicLorentzPeakShape, IsotropicGaussPeakShape, ParticleLayout, InterferenceTwin, InterferenceRadialParaCrystal, InterferenceHardDisk, Interference2DSuperLattice, Interference2DParaCrystal, Interference1DLattice, DistributionTrapezoid, DistributionCosine, DistributionLogNormal, DistributionGaussian, DistributionLorentz, DistributionGate, ResolutionFunction2DGaussian, PolFilter, FootprintSquare, and FootprintGauss.
Definition at line 51 of file INode.h.
Referenced by INode::checkNodeArgs(), and IFormFactor::pythonConstructor().
|
inline |
Returns roughness of the interface.
Definition at line 66 of file LayerInterface.h.
References m_roughness.
Referenced by MultiLayer::addLayerWithTopRoughness(), createRoughInterface(), SampleToPython::defineMultiLayers(), SampleUtils::Multilayer::hasRoughness(), SampleUtils::Multilayer::LayerTopRoughness(), and setRoughness().
|
private |
Sets links to the layers above and below the interface.
Definition at line 61 of file LayerInterface.cpp.
References ASSERT, m_bottomLayer, and m_topLayer.
void LayerInterface::setRoughness | ( | const LayerRoughness & | roughness | ) |
Sets roughness of the interface.
Definition at line 49 of file LayerInterface.cpp.
References LayerRoughness::clone(), m_roughness, and roughness().
Referenced by createRoughInterface().
|
inline |
Definition at line 71 of file LayerInterface.h.
References m_topLayer.
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
private |
pointer to the layer below interface
Definition at line 62 of file LayerInterface.h.
Referenced by bottomLayer(), and setLayersTopBottom().
|
protectedinherited |
Definition at line 63 of file INode.h.
Referenced by IFootprintFactor::IFootprintFactor(), INode::checkNodeArgs(), IProfile1D::pythonConstructor(), IProfile2D::pythonConstructor(), IFormFactor::pythonConstructor(), Profile1DVoigt::pythonConstructor(), and Profile2DVoigt::pythonConstructor().
|
private |
roughness of the interface
Definition at line 63 of file LayerInterface.h.
Referenced by nodeChildren(), roughness(), and setRoughness().
|
private |
pointer to the layer above interface
Definition at line 61 of file LayerInterface.h.
Referenced by setLayersTopBottom(), and topLayer().