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 Gauss distribution in Fourier space; corresponds to normalized exp(-r^2/2) in real space with .
Definition at line 99 of file Profiles2D.h.
Public Member Functions | |
Profile2DGauss (double omega_x, double omega_y, double gamma) | |
Profile2DGauss (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... | |
Profile2DGauss * | 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 | 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... | |
virtual std::string | pythonConstructor () const |
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_gamma |
const double & | m_omega_x |
const double & | m_omega_y |
std::vector< double > | m_P |
Profile2DGauss::Profile2DGauss | ( | std::vector< double > | P | ) |
Definition at line 86 of file Profiles2D.cpp.
References INode::checkNodeArgs().
Referenced by clone().
Profile2DGauss::Profile2DGauss | ( | double | omega_x, |
double | omega_y, | ||
double | gamma | ||
) |
Definition at line 92 of file Profiles2D.cpp.
References 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(), 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 105 of file Profiles2D.h.
|
overridevirtual |
Implements IProfile2D.
Definition at line 97 of file Profiles2D.cpp.
References Profile2DGauss(), IProfile2D::m_gamma, IProfile2D::m_omega_x, and IProfile2D::m_omega_y.
|
overridevirtual |
Implements IProfile2D.
Definition at line 113 of file Profiles2D.cpp.
References IProfile2D::m_omega_x, and IProfile2D::m_omega_y.
|
overridevirtual |
Implements IProfile2D.
Definition at line 107 of file Profiles2D.cpp.
References 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().
|
inlineinherited |
Definition at line 39 of file Profiles2D.h.
References IProfile2D::m_gamma.
Referenced by Profile2DCauchy::Profile2DCauchy(), Profile2DCone::Profile2DCone(), Profile2DGate::Profile2DGate(), Profile2DGauss(), Profile2DVoigt::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 107 of file Profiles2D.h.
|
virtualinherited |
Creates the Python constructor of this class (or derived classes)
Reimplemented in Profile2DVoigt.
Definition at line 34 of file Profiles2D.cpp.
References ASSERT, INode::className(), IProfile2D::m_gamma, IProfile2D::m_omega_x, IProfile2D::m_omega_y, INode::m_P, and Py::Fmt::printFunction().
Referenced by SampleToPython::defineInterferences().
|
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 102 of file Profiles2D.cpp.
References 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(), standardizedFT2D(), Profile2DGate::standardizedFT2D(), Profile2DCone::standardizedFT2D(), and Profile2DVoigt::standardizedFT2D().
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
protectedinherited |
Definition at line 61 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), IProfile2D::gamma(), IProfile2D::pythonConstructor(), and Profile2DVoigt::pythonConstructor().
|
protectedinherited |
Definition at line 59 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), Profile2DCauchy::createSampler(), createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), decayFT2D(), Profile2DVoigt::decayFT2D(), IProfile2D::decayLengthX(), IProfile2D::omegaX(), IProfile2D::pythonConstructor(), Profile2DVoigt::pythonConstructor(), and IProfile2D::sumsq().
|
protectedinherited |
Definition at line 60 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), Profile2DCauchy::createSampler(), createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), decayFT2D(), Profile2DVoigt::decayFT2D(), IProfile2D::decayLengthY(), IProfile2D::omegaY(), IProfile2D::pythonConstructor(), Profile2DVoigt::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 Profile2DVoigt::pythonConstructor().