BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
IProfile1D that provides a Fourier transform standardizedFT(q) in form of a pseudo-Voigt decay function eta*Gauss + (1-eta)*Cauchy, with both components starting at 1 for q=0.
Definition at line 186 of file Profiles1D.h.
Public Member Functions | |
Profile1DVoigt (double omega, double eta) | |
Profile1DVoigt (std::vector< double > P) | |
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... | |
Profile1DVoigt * | clone () const override |
std::unique_ptr< IDistribution1DSampler > | createSampler () const override |
double | decayFT (double q) const override |
Returns Fourier transform of the distribution scaled as decay function f(x)/f(0). More... | |
double | decayLength () const |
double | eta () const |
virtual std::vector< const INode * > | nodeChildren () const |
Returns all children. More... | |
std::vector< const INode * > | nodeOffspring () const |
Returns all descendants. More... | |
double | omega () const |
std::vector< ParaMeta > | parDefs () const final |
Returns the parameter definitions, to be hard-coded in each leaf class. More... | |
std::string | pythonConstructor () const override |
Creates the Python constructor of this class (or derived classes) More... | |
double | qSecondDerivative () const override |
Returns the negative of the second order derivative in q space around q=0. More... | |
double | standardizedFT (double q) const override |
Returns Fourier transform of the normalized distribution; is a decay function starting at standardizedFT(0)=1. More... | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) More... | |
Protected Attributes | |
const double & | m_eta |
const double & | m_omega |
std::vector< double > | m_P |
Profile1DVoigt::Profile1DVoigt | ( | std::vector< double > | P | ) |
Definition at line 258 of file Profiles1D.cpp.
References INode::checkNodeArgs().
Referenced by clone().
Profile1DVoigt::Profile1DVoigt | ( | double | omega, |
double | eta | ||
) |
Definition at line 265 of file Profiles1D.cpp.
References eta(), and IProfile1D::omega().
|
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(), 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 192 of file Profiles1D.h.
Referenced by pythonConstructor().
|
overridevirtual |
Implements IProfile1D.
Definition at line 270 of file Profiles1D.cpp.
References Profile1DVoigt(), m_eta, and IProfile1D::m_omega.
|
overridevirtual |
Implements IProfile1D.
Definition at line 293 of file Profiles1D.cpp.
|
overridevirtual |
Returns Fourier transform of the distribution scaled as decay function f(x)/f(0).
Implements IProfile1D.
Definition at line 281 of file Profiles1D.cpp.
References m_eta, IProfile1D::m_omega, and M_TWOPI.
|
inlineinherited |
|
inline |
|
virtualinherited |
Returns all children.
Reimplemented in ISimulation2D, ISimulation, ParticleCoreShell, ParticleComposition, Particle, MesoCrystal, IParticle, Crystal, MultiLayer, Layer, LayerInterface, ParticleLayout, InterferenceRadialParaCrystal, InterferenceFinite3DLattice, InterferenceFinite2DLattice, Interference3DLattice, Interference2DSuperLattice, Interference2DParaCrystal, Interference2DLattice, Interference1DLattice, ConvolutionDetectorResolution, IDetector, and Beam.
Definition at line 56 of file INode.cpp.
Referenced by NodeUtils::AllDescendantsOfType(), NodeUtils::ChildNodesOfType(), ISampleNode::containedMaterials(), and INode::nodeOffspring().
|
inherited |
Returns all descendants.
Definition at line 61 of file INode.cpp.
References INode::nodeChildren().
|
inlineinherited |
Definition at line 41 of file Profiles1D.h.
References IProfile1D::m_omega.
Referenced by Profile1DCauchy::Profile1DCauchy(), Profile1DCosine::Profile1DCosine(), Profile1DGate::Profile1DGate(), Profile1DGauss::Profile1DGauss(), Profile1DTriangle::Profile1DTriangle(), and Profile1DVoigt().
|
inlinefinalvirtual |
Returns the parameter definitions, to be hard-coded in each leaf class.
Reimplemented from INode.
Definition at line 194 of file Profiles1D.h.
References INF.
|
overridevirtual |
Creates the Python constructor of this class (or derived classes)
Reimplemented from IProfile1D.
Definition at line 303 of file Profiles1D.cpp.
References ASSERT, className(), m_eta, IProfile1D::m_omega, INode::m_P, and Py::Fmt::printFunction().
|
overridevirtual |
Returns the negative of the second order derivative in q space around q=0.
Implements IProfile1D.
Definition at line 288 of file Profiles1D.cpp.
References m_eta, and IProfile1D::m_omega.
|
overridevirtual |
Returns Fourier transform of the normalized distribution; is a decay function starting at standardizedFT(0)=1.
Implements IProfile1D.
Definition at line 275 of file Profiles1D.cpp.
References m_eta, and IProfile1D::m_omega.
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
protected |
Definition at line 210 of file Profiles1D.h.
Referenced by clone(), decayFT(), eta(), pythonConstructor(), qSecondDerivative(), and standardizedFT().
|
protectedinherited |
Definition at line 54 of file Profiles1D.h.
Referenced by Profile1DCauchy::clone(), Profile1DGauss::clone(), Profile1DGate::clone(), Profile1DTriangle::clone(), Profile1DCosine::clone(), clone(), Profile1DCauchy::createSampler(), Profile1DGauss::createSampler(), Profile1DGate::createSampler(), Profile1DTriangle::createSampler(), Profile1DCosine::createSampler(), Profile1DCauchy::decayFT(), Profile1DGauss::decayFT(), Profile1DTriangle::decayFT(), decayFT(), IProfile1D::decayLength(), IProfile1D::omega(), IProfile1D::pythonConstructor(), pythonConstructor(), Profile1DCauchy::qSecondDerivative(), Profile1DGauss::qSecondDerivative(), Profile1DGate::qSecondDerivative(), Profile1DTriangle::qSecondDerivative(), Profile1DCosine::qSecondDerivative(), qSecondDerivative(), Profile1DCauchy::standardizedFT(), Profile1DGauss::standardizedFT(), Profile1DGate::standardizedFT(), Profile1DTriangle::standardizedFT(), Profile1DCosine::standardizedFT(), and standardizedFT().
|
protectedinherited |
Definition at line 63 of file INode.h.
Referenced by IFootprintFactor::IFootprintFactor(), INode::checkNodeArgs(), IProfile1D::pythonConstructor(), IProfile2D::pythonConstructor(), IFormFactor::pythonConstructor(), pythonConstructor(), and Profile2DVoigt::pythonConstructor().