BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
IProfile1D consisting of one cosine wave [1+cos(pi*x/omega) if |x|<omega, and 0 otherwise]; its Fourier transform standardizedFT(q) starts at standardizedFT(0)=1.
Definition at line 161 of file Profiles1D.h.
Public Member Functions | |
Profile1DCosine (double omega) | |
Profile1DCosine (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... | |
Profile1DCosine * | 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 |
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... | |
virtual std::string | pythonConstructor () const |
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_omega |
std::vector< double > | m_P |
Profile1DCosine::Profile1DCosine | ( | std::vector< double > | P | ) |
Definition at line 215 of file Profiles1D.cpp.
References INode::checkNodeArgs().
Referenced by clone().
Profile1DCosine::Profile1DCosine | ( | double | omega | ) |
Definition at line 221 of file Profiles1D.cpp.
References 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(), 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 167 of file Profiles1D.h.
|
overridevirtual |
Implements IProfile1D.
Definition at line 226 of file Profiles1D.cpp.
References Profile1DCosine(), and IProfile1D::m_omega.
|
overridevirtual |
Implements IProfile1D.
Definition at line 249 of file Profiles1D.cpp.
References IProfile1D::m_omega.
|
overridevirtual |
Returns Fourier transform of the distribution scaled as decay function f(x)/f(0).
Implements IProfile1D.
Definition at line 239 of file Profiles1D.cpp.
References ASSERT.
|
inlineinherited |
|
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(), Profile1DGate::Profile1DGate(), Profile1DGauss::Profile1DGauss(), Profile1DTriangle::Profile1DTriangle(), and Profile1DVoigt::Profile1DVoigt().
|
inlinefinalvirtual |
Returns the parameter definitions, to be hard-coded in each leaf class.
Reimplemented from INode.
Definition at line 169 of file Profiles1D.h.
References INF.
|
virtualinherited |
Creates the Python constructor of this class (or derived classes)
Reimplemented in Profile1DVoigt.
Definition at line 39 of file Profiles1D.cpp.
References ASSERT, INode::className(), 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 244 of file Profiles1D.cpp.
References 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 231 of file Profiles1D.cpp.
References IProfile1D::m_omega, M_PI, and Math::sinc().
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
protectedinherited |
Definition at line 54 of file Profiles1D.h.
Referenced by Profile1DCauchy::clone(), Profile1DGauss::clone(), Profile1DGate::clone(), Profile1DTriangle::clone(), clone(), Profile1DVoigt::clone(), Profile1DCauchy::createSampler(), Profile1DGauss::createSampler(), Profile1DGate::createSampler(), Profile1DTriangle::createSampler(), createSampler(), Profile1DCauchy::decayFT(), Profile1DGauss::decayFT(), Profile1DTriangle::decayFT(), Profile1DVoigt::decayFT(), IProfile1D::decayLength(), IProfile1D::omega(), IProfile1D::pythonConstructor(), Profile1DVoigt::pythonConstructor(), Profile1DCauchy::qSecondDerivative(), Profile1DGauss::qSecondDerivative(), Profile1DGate::qSecondDerivative(), Profile1DTriangle::qSecondDerivative(), qSecondDerivative(), Profile1DVoigt::qSecondDerivative(), Profile1DCauchy::standardizedFT(), Profile1DGauss::standardizedFT(), Profile1DGate::standardizedFT(), Profile1DTriangle::standardizedFT(), standardizedFT(), and Profile1DVoigt::standardizedFT().
|
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().