BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Interference function of radial paracrystal.
Definition at line 26 of file InterferenceRadialParaCrystal.h.
Public Member Functions | |
InterferenceRadialParaCrystal (double peak_distance, double damping_length) | |
Constructor of interference function of radial paracrystal. More... | |
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... | |
InterferenceRadialParaCrystal * | clone () const override |
double | dampingLength () const |
double | domainSize () const |
double | DWfactor (R3 q) const |
structureFactors the Debye-Waller factor for a given wavevector transfer More... | |
complex_t | FTPDF (double qpar) const |
double | kappa () const |
std::vector< const INode * > | nodeChildren () const override |
Returns all children. More... | |
std::vector< const INode * > | nodeOffspring () const |
Returns all descendants. More... | |
std::vector< ParaMeta > | parDefs () const final |
Returns the parameter definitions, to be hard-coded in each leaf class. More... | |
virtual double | particleDensity () const |
If defined by this interference function's parameters, returns the particle density (per area). Otherwise, returns zero or a user-defined value. More... | |
double | peakDistance () const |
double | positionVariance () const |
Returns the position variance. More... | |
double | randomSample () const |
void | setDomainSize (double size) |
Sets domain size (finite size corrections). More... | |
void | setKappa (double kappa) |
Sets size spacing coupling parameter of the Size Spacing Correlation Approximation. More... | |
void | setPositionVariance (double var) |
Sets the variance of the position for the calculation of the DW factor It is defined as the variance in each relevant dimension. More... | |
void | setProbabilityDistribution (const IProfile1D &pdf) |
Sets one-dimensional probability distribution. More... | |
virtual double | structureFactor (R3 q, double outer_iff=1.0) const |
The interference function for a given wavevector transfer. More... | |
virtual bool | supportsMultilayer () const |
Indicates if this interference function can be used with a sample (DWBA mode) More... | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) More... | |
Protected Member Functions | |
double | iff_no_inner (R3 q, double outer_iff) const |
Calculates the structure factor in the absence of extra inner structure. More... | |
Protected Attributes | |
std::vector< double > | m_P |
double | m_position_var |
Private Member Functions | |
double | iff_without_dw (R3 q) const override |
Calculates the structure factor without Debye-Waller factor. More... | |
void | init_parameters () |
Private Attributes | |
double | m_damping_length |
damping length of paracrystal Fourier transformed probability distribution of the nearest particle More... | |
double | m_domain_size |
Size of coherence domain. More... | |
double | m_kappa |
Size-spacing coupling parameter. More... | |
std::unique_ptr< IProfile1D > | m_pdf |
double | m_peak_distance |
the distance to the first neighbor peak More... | |
bool | m_use_damping_length |
InterferenceRadialParaCrystal::InterferenceRadialParaCrystal | ( | double | peak_distance, |
double | damping_length | ||
) |
Constructor of interference function of radial paracrystal.
peak_distance | average distance to the next neighbor in nanometers |
damping_length | the damping (coherence) length of the paracrystal in nanometers |
Definition at line 22 of file InterferenceRadialParaCrystal.cpp.
References RealLimits::check(), m_damping_length, m_domain_size, m_kappa, m_peak_distance, m_use_damping_length, and RealLimits::nonnegative().
Referenced by clone().
|
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().
|
inlinefinalvirtual |
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
Implements INode.
Definition at line 30 of file InterferenceRadialParaCrystal.h.
|
overridevirtual |
Implements IInterference.
Definition at line 40 of file InterferenceRadialParaCrystal.cpp.
References InterferenceRadialParaCrystal(), m_damping_length, m_domain_size, m_kappa, m_pdf, m_peak_distance, and IInterference::m_position_var.
|
inline |
|
inline |
|
inherited |
structureFactors the Debye-Waller factor for a given wavevector transfer
Definition at line 48 of file IInterference.cpp.
References IInterference::m_position_var, and IInterference::supportsMultilayer().
Referenced by IInterference::iff_no_inner(), and Interference2DSuperLattice::interferenceForXi().
complex_t InterferenceRadialParaCrystal::FTPDF | ( | double | qpar | ) | const |
Definition at line 70 of file InterferenceRadialParaCrystal.cpp.
References m_damping_length, m_pdf, m_peak_distance, and m_use_damping_length.
Referenced by iff_without_dw().
|
protectedinherited |
Calculates the structure factor in the absence of extra inner structure.
Definition at line 56 of file IInterference.cpp.
References IInterference::DWfactor(), and IInterference::iff_without_dw().
Referenced by IInterference::structureFactor().
|
overrideprivatevirtual |
Calculates the structure factor without Debye-Waller factor.
Implements IInterference.
Definition at line 93 of file InterferenceRadialParaCrystal.cpp.
References FTPDF(), m_domain_size, m_pdf, and m_peak_distance.
|
private |
double InterferenceRadialParaCrystal::kappa | ( | ) | const |
Definition at line 57 of file InterferenceRadialParaCrystal.cpp.
References m_kappa.
Referenced by setKappa().
|
overridevirtual |
Returns all children.
Reimplemented from INode.
Definition at line 88 of file InterferenceRadialParaCrystal.cpp.
References m_pdf.
|
inherited |
Returns all descendants.
Definition at line 61 of file INode.cpp.
References INode::nodeChildren().
|
inlinefinalvirtual |
Returns the parameter definitions, to be hard-coded in each leaf class.
Reimplemented from INode.
Definition at line 31 of file InterferenceRadialParaCrystal.h.
References INF.
|
inlinevirtualinherited |
If defined by this interference function's parameters, returns the particle density (per area). Otherwise, returns zero or a user-defined value.
Reimplemented in InterferenceHardDisk, InterferenceFinite2DLattice, Interference2DParaCrystal, and Interference2DLattice.
Definition at line 44 of file IInterference.h.
|
inline |
|
inlineinherited |
Returns the position variance.
Definition at line 40 of file IInterference.h.
References IInterference::m_position_var.
|
inline |
void InterferenceRadialParaCrystal::setDomainSize | ( | double | size | ) |
Sets domain size (finite size corrections).
size | size of coherence domain along the lattice main axis in nanometers |
Definition at line 65 of file InterferenceRadialParaCrystal.cpp.
References m_domain_size.
void InterferenceRadialParaCrystal::setKappa | ( | double | kappa | ) |
Sets size spacing coupling parameter of the Size Spacing Correlation Approximation.
Definition at line 52 of file InterferenceRadialParaCrystal.cpp.
References kappa(), and m_kappa.
Referenced by ExemplarySamples::createSizeDistributionSSCAModel().
|
inherited |
Sets the variance of the position for the calculation of the DW factor It is defined as the variance in each relevant dimension.
Definition at line 40 of file IInterference.cpp.
References IInterference::m_position_var.
Referenced by ExemplarySamples::createFiniteSquareLattice2D(), and ExemplarySamples::createSuperLattice().
void InterferenceRadialParaCrystal::setProbabilityDistribution | ( | const IProfile1D & | ) |
Sets one-dimensional probability distribution.
probability distribution (Fourier transform of probability density) |
Definition at line 83 of file InterferenceRadialParaCrystal.cpp.
References IProfile1D::clone(), and m_pdf.
Referenced by ExemplarySamples::createCosineRipple(), ExemplarySamples::createRadialParaCrystal(), ExemplarySamples::createSizeDistributionDAModel(), ExemplarySamples::createSizeDistributionLMAModel(), ExemplarySamples::createSizeDistributionSSCAModel(), and ExemplarySamples::createTriangularRipple().
|
virtualinherited |
The interference function for a given wavevector transfer.
Reimplemented in Interference2DSuperLattice.
Definition at line 35 of file IInterference.cpp.
References IInterference::iff_no_inner().
|
inlinevirtualinherited |
Indicates if this interference function can be used with a sample (DWBA mode)
Reimplemented in InterferenceFinite3DLattice, and Interference3DLattice.
Definition at line 47 of file IInterference.h.
Referenced by IInterference::DWfactor().
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 32 of file ICloneable.h.
|
private |
damping length of paracrystal Fourier transformed probability distribution of the nearest particle
Definition at line 60 of file InterferenceRadialParaCrystal.h.
Referenced by InterferenceRadialParaCrystal(), clone(), dampingLength(), and FTPDF().
|
private |
Size of coherence domain.
Definition at line 65 of file InterferenceRadialParaCrystal.h.
Referenced by InterferenceRadialParaCrystal(), clone(), domainSize(), iff_without_dw(), and setDomainSize().
|
private |
Size-spacing coupling parameter.
Definition at line 64 of file InterferenceRadialParaCrystal.h.
Referenced by InterferenceRadialParaCrystal(), clone(), kappa(), and setKappa().
|
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().
|
private |
Definition at line 62 of file InterferenceRadialParaCrystal.h.
Referenced by clone(), FTPDF(), iff_without_dw(), nodeChildren(), randomSample(), and setProbabilityDistribution().
|
private |
the distance to the first neighbor peak
Definition at line 59 of file InterferenceRadialParaCrystal.h.
Referenced by InterferenceRadialParaCrystal(), clone(), FTPDF(), iff_without_dw(), and peakDistance().
|
protectedinherited |
Definition at line 53 of file IInterference.h.
Referenced by IInterference::IInterference(), Interference1DLattice::clone(), Interference2DLattice::clone(), Interference2DParaCrystal::clone(), Interference2DSuperLattice::clone(), Interference3DLattice::clone(), InterferenceFinite2DLattice::clone(), InterferenceFinite3DLattice::clone(), InterferenceHardDisk::clone(), InterferenceNone::clone(), clone(), InterferenceTwin::clone(), IInterference::DWfactor(), IInterference::positionVariance(), and IInterference::setPositionVariance().
|
private |
Definition at line 63 of file InterferenceRadialParaCrystal.h.
Referenced by InterferenceRadialParaCrystal(), and FTPDF().