BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Interface for two-dimensional distributions in Fourier space.
Definition at line 29 of file Profiles2D.h.
Public Member Functions | |
IProfile2D (const std::vector< double > &PValues) | |
void | checkNodeArgs () const |
Raises exception if a parameter value is invalid. More... | |
virtual std::string | className () const =0 |
Returns the class name, to be hard-coded in each leaf class that inherits from INode. More... | |
IProfile2D * | clone () const override=0 |
virtual std::unique_ptr< IDistribution2DSampler > | createSampler () const =0 |
virtual double | decayFT2D (double qx, double qy) const =0 |
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 |
virtual std::vector< ParaMeta > | parDefs () const |
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... | |
virtual double | standardizedFT2D (double qx, double qy) const =0 |
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 |
IProfile2D::IProfile2D | ( | const std::vector< double > & | PValues | ) |
Definition at line 26 of file Profiles2D.cpp.
|
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().
|
pure virtualinherited |
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
Implemented in Particle, SphericalDetector, SpecularSimulation, ScatteringSimulation, OffspecSimulation, DepthProbeSimulation, PoissonBackground, ConstantBackground, GaussSphere, FuzzySphere, RotationEuler, RotationZ, RotationY, RotationX, IdentityRotation, ParticleCoreShell, ParticleComposition, MesoCrystal, Crystal, MultiLayer, Layer, Lattice3D, HexagonalLattice2D, SquareLattice2D, BasicLattice2D, LayerRoughness, LayerInterface, 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, InterferenceNone, InterferenceHardDisk, InterferenceFinite3DLattice, InterferenceFinite2DLattice, Interference3DLattice, Interference2DSuperLattice, Interference2DParaCrystal, Interference2DLattice, Interference1DLattice, DistributionTrapezoid, DistributionCosine, DistributionLogNormal, DistributionGaussian, DistributionLorentz, DistributionGate, ResolutionFunction2DGaussian, ConvolutionDetectorResolution, PolFilter, RectangularDetector, FootprintSquare, FootprintGauss, and Beam.
Referenced by INode::checkNodeArgs(), ExemplarySamples::createBasic2DParaCrystalWithFTDis(), IProfile1D::pythonConstructor(), pythonConstructor(), IFormFactor::pythonConstructor(), and IFormFactor::shapeName().
|
overridepure virtual |
Implements ICloneable.
Implemented in Profile2DVoigt, Profile2DCone, Profile2DGate, Profile2DGauss, and Profile2DCauchy.
Referenced by Interference2DLattice::setDecayFunction(), and Interference2DParaCrystal::setProbabilityDistributions().
|
pure virtual |
Implemented in Profile2DVoigt, Profile2DCone, Profile2DGate, Profile2DGauss, and Profile2DCauchy.
|
pure virtual |
Implemented in Profile2DVoigt, Profile2DCone, Profile2DGate, Profile2DGauss, and Profile2DCauchy.
|
inline |
|
inline |
|
inline |
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 |
Definition at line 39 of file Profiles2D.h.
References m_gamma.
Referenced by Profile2DCauchy::Profile2DCauchy(), Profile2DCone::Profile2DCone(), Profile2DGate::Profile2DGate(), Profile2DGauss::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().
|
inline |
|
inline |
|
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().
|
virtual |
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(), m_gamma, m_omega_x, m_omega_y, INode::m_P, and Py::Fmt::printFunction().
Referenced by SampleToPython::defineInterferences().
|
pure virtual |
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.
Implemented in Profile2DVoigt, Profile2DCone, Profile2DGate, Profile2DGauss, and Profile2DCauchy.
Referenced by Interference2DParaCrystal::FTPDF().
|
protected |
Definition at line 41 of file Profiles2D.cpp.
References m_omega_x, and m_omega_y.
Referenced by Profile2DCauchy::standardizedFT2D(), Profile2DGauss::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.
|
protected |
Definition at line 61 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), gamma(), pythonConstructor(), and Profile2DVoigt::pythonConstructor().
|
protected |
Definition at line 59 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), Profile2DCauchy::createSampler(), Profile2DGauss::createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), Profile2DGauss::decayFT2D(), Profile2DVoigt::decayFT2D(), decayLengthX(), omegaX(), pythonConstructor(), Profile2DVoigt::pythonConstructor(), and sumsq().
|
protected |
Definition at line 60 of file Profiles2D.h.
Referenced by Profile2DCauchy::clone(), Profile2DGauss::clone(), Profile2DGate::clone(), Profile2DCone::clone(), Profile2DVoigt::clone(), Profile2DCauchy::createSampler(), Profile2DGauss::createSampler(), Profile2DGate::createSampler(), Profile2DCone::createSampler(), Profile2DCauchy::decayFT2D(), Profile2DGauss::decayFT2D(), Profile2DVoigt::decayFT2D(), decayLengthY(), omegaY(), pythonConstructor(), Profile2DVoigt::pythonConstructor(), and sumsq().
|
protectedinherited |
Definition at line 63 of file INode.h.
Referenced by IFootprintFactor::IFootprintFactor(), INode::checkNodeArgs(), IProfile1D::pythonConstructor(), pythonConstructor(), IFormFactor::pythonConstructor(), Profile1DVoigt::pythonConstructor(), and Profile2DVoigt::pythonConstructor().