BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Two-dimensional Voigt distribution in Fourier space; corresponds to eta*Gauss + (1-eta)*Cauchy.
Definition at line 182 of file Profiles2D.h.
Public Member Functions | |
Profile2DVoigt (double omega_x, double omega_y, double gamma, double eta) | |
Profile2DVoigt (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... | |
Profile2DVoigt * | clone () const override |
std::unique_ptr< IDistribution2DSampler > | createSampler () const override |
double | decayFT2D (double qx, double qy) const override |
double | decayLengthX () const |
double | decayLengthY () const |
double | delta () const |
Angle in direct space between X- and Y-axis of distribution. More... | |
double | eta () const |
double | gamma () const |
virtual std::vector< const INode * > | nodeChildren () const |
Returns all children. More... | |
std::vector< const INode * > | nodeOffspring () const |
Returns all descendants. More... | |
double | omegaX () const |
double | omegaY () 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 | standardizedFT2D (double qx, double qy) const override |
Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1. More... | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) More... | |
Protected Member Functions | |
double | sumsq (double qx, double qy) const |
Protected Attributes | |
const double & | m_eta |
const double & | m_gamma |
const double & | m_omega_x |
const double & | m_omega_y |
std::vector< double > | m_P |
Profile2DVoigt::Profile2DVoigt | ( | std::vector< double > | P | ) |
Definition at line 199 of file Profiles2D.cpp.
References INode::checkNodeArgs().
Referenced by clone().
Profile2DVoigt::Profile2DVoigt | ( | double | omega_x, |
double | omega_y, | ||
double | gamma, | ||
double | eta | ||
) |
Definition at line 206 of file Profiles2D.cpp.
References eta(), and IProfile2D::gamma().
|
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(), 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 188 of file Profiles2D.h.
Referenced by pythonConstructor().
|
overridevirtual |
Implements IProfile2D.
Definition at line 211 of file Profiles2D.cpp.
References Profile2DVoigt(), m_eta, IProfile2D::m_gamma, IProfile2D::m_omega_x, and IProfile2D::m_omega_y.
|
overridevirtual |
Implements IProfile2D.
Definition at line 229 of file Profiles2D.cpp.
|
overridevirtual |
Implements IProfile2D.
Definition at line 222 of file Profiles2D.cpp.
References m_eta, IProfile2D::m_omega_x, IProfile2D::m_omega_y, and M_TWOPI.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Angle in direct space between X- and Y-axis of distribution.
Definition at line 42 of file Profiles2D.h.
References M_PI_2.
Referenced by Interference2DParaCrystal::FTPDF().
|
inline |
|
inlineinherited |
Definition at line 39 of file Profiles2D.h.
References IProfile2D::m_gamma.
Referenced by Profile2DCauchy::Profile2DCauchy(), Profile2DCone::Profile2DCone(), Profile2DGate::Profile2DGate(), Profile2DGauss::Profile2DGauss(), Profile2DVoigt(), and Interference2DParaCrystal::FTPDF().
|
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 |
|
inlineinherited |
|
inlinefinalvirtual |
Returns the parameter definitions, to be hard-coded in each leaf class.
Reimplemented from INode.
Definition at line 190 of file Profiles2D.h.
|
overridevirtual |
Creates the Python constructor of this class (or derived classes)
Reimplemented from IProfile2D.
Definition at line 239 of file Profiles2D.cpp.
References ASSERT, className(), m_eta, IProfile2D::m_gamma, IProfile2D::m_omega_x, IProfile2D::m_omega_y, INode::m_P, and Py::Fmt::printFunction().
|
overridevirtual |
Fourier transformed distribution for q in X,Y coordinates the original distribution (in real space) is assumed to be normalized: total integral is equal to 1.
Implements IProfile2D.
Definition at line 216 of file Profiles2D.cpp.
References m_eta, and IProfile2D::sumsq().
|
protectedinherited |
Definition at line 41 of file Profiles2D.cpp.
References IProfile2D::m_omega_x, and IProfile2D::m_omega_y.
Referenced by Profile2DCauchy::standardizedFT2D(), Profile2DGauss::standardizedFT2D(), Profile2DGate::standardizedFT2D(), Profile2DCone::standardizedFT2D(), and standardizedFT2D().
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
protected |
Definition at line 209 of file Profiles2D.h.
Referenced by clone(), decayFT2D(), eta(), pythonConstructor(), and standardizedFT2D().
|
protectedinherited |
Definition at line 61 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), clone(), IProfile2D::gamma(), IProfile2D::pythonConstructor(), and pythonConstructor().
|
protectedinherited |
Definition at line 59 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), clone(), Profile2DCauchy::createSampler(), Profile2DGauss::createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), Profile2DGauss::decayFT2D(), decayFT2D(), IProfile2D::decayLengthX(), IProfile2D::omegaX(), IProfile2D::pythonConstructor(), pythonConstructor(), and IProfile2D::sumsq().
|
protectedinherited |
Definition at line 60 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), clone(), Profile2DCauchy::createSampler(), Profile2DGauss::createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), Profile2DGauss::decayFT2D(), decayFT2D(), IProfile2D::decayLengthY(), IProfile2D::omegaY(), IProfile2D::pythonConstructor(), pythonConstructor(), and IProfile2D::sumsq().
|
protectedinherited |
Definition at line 63 of file INode.h.
Referenced by IFootprintFactor::IFootprintFactor(), INode::checkNodeArgs(), IProfile1D::pythonConstructor(), IProfile2D::pythonConstructor(), IFormFactor::pythonConstructor(), Profile1DVoigt::pythonConstructor(), and pythonConstructor().