BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Pure virtual base class for all form factors. More...
Public Member Functions | |
IFormFactor (const NodeMeta &meta, const std::vector< double > &PValues) | |
IFormFactor * | clone () const override=0 |
Returns a clone of this ISample object. | |
IFormFactor * | createSlicedFormFactor (ZLimits limits, const IRotation &rot, kvector_t translation) const |
Creates a (possibly sliced) form factor with the given rotation and translation. | |
virtual void | setAmbientMaterial (const Material &)=0 |
Passes the material in which this particle is embedded. | |
virtual complex_t | evaluate (const WavevectorInfo &wavevectors) const =0 |
Returns scattering amplitude for complex wavevectors ki, kf. | |
virtual Eigen::Matrix2cd | evaluatePol (const WavevectorInfo &wavevectors) const |
Returns scattering amplitude for matrix interactions. | |
virtual double | volume () const |
Returns the total volume of the particle of this form factor's shape. | |
virtual double | radialExtension () const =0 |
Returns the (approximate in some cases) radial size of the particle of this form factor's shape. More... | |
virtual double | bottomZ (const IRotation &rotation) const =0 |
Returns the z-coordinate of the lowest point in this shape after a given rotation. | |
virtual double | topZ (const IRotation &rotation) const =0 |
Returns the z-coordinate of the lowest point in this shape after a given rotation. | |
virtual void | setSpecularInfo (std::unique_ptr< const ILayerRTCoefficients >, std::unique_ptr< const ILayerRTCoefficients >) |
Sets reflection/transmission info. | |
Public Member Functions inherited from ISample | |
ISample (const NodeMeta &meta, const std::vector< double > &PValues) | |
virtual const Material * | material () const |
Returns nullptr, unless overwritten to return a specific material. | |
std::vector< const Material * > | containedMaterials () const |
Returns set of unique materials contained in this ISample. | |
Public Member Functions inherited from ICloneable | |
ICloneable (const ICloneable &)=delete | |
ICloneable (ICloneable &&)=default | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) | |
Public Member Functions inherited from INode | |
INode (const NodeMeta &meta, const std::vector< double > &PValues) | |
virtual void | accept (INodeVisitor *visitor) const =0 |
Calls the INodeVisitor's visit method. | |
virtual std::string | treeToString () const |
Returns multiline string representing tree structure below the node. | |
void | registerChild (INode *node) |
virtual std::vector< const INode * > | getChildren () const |
Returns a vector of children (const). | |
virtual void | setParent (const INode *newParent) |
const INode * | parent () const |
INode * | parent () |
int | copyNumber (const INode *node) const |
Returns copyNumber of child, which takes into account existence of children with same name. | |
std::string | displayName () const |
Returns display name, composed from the name of node and it's copy number. | |
ParameterPool * | createParameterTree () const |
Creates new parameter pool, with all local parameters and those of its children. | |
Public Member Functions inherited from IParameterized | |
IParameterized (const std::string &name="") | |
IParameterized (const IParameterized &other) | |
IParameterized & | operator= (const IParameterized &other)=delete |
ParameterPool * | parameterPool () const |
Returns pointer to the parameter pool. | |
std::string | parametersToString () const |
Returns multiline string representing available parameters. | |
RealParameter & | registerParameter (const std::string &name, double *parpointer) |
void | registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm") |
void | setParameterValue (const std::string &name, double value) |
void | setVectorValue (const std::string &base_name, kvector_t value) |
RealParameter * | parameter (const std::string &name) const |
Returns parameter with given 'name'. | |
virtual void | onChange () |
Action to be taken in inherited class when a parameter has changed. | |
void | removeParameter (const std::string &name) |
void | removeVector (const std::string &base_name) |
void | setName (const std::string &name) |
const std::string & | getName () const |
Protected Member Functions | |
virtual bool | canSliceAnalytically (const IRotation &rot) const |
Checks if slicing has a fast analytical solution. | |
virtual IFormFactor * | sliceFormFactor (ZLimits limits, const IRotation &rot, kvector_t translation) const |
Actually slices the form factor or throws an exception. | |
Additional Inherited Members | |
Static Public Member Functions inherited from IParameterized | |
static std::string | XComponentName (const std::string &base_name) |
static std::string | YComponentName (const std::string &base_name) |
static std::string | ZComponentName (const std::string &base_name) |
Protected Attributes inherited from INode | |
const size_t | m_NP |
std::vector< double > | m_P |
Pure virtual base class for all form factors.
The actual form factor is returned by the complex valued function IFormFactor::evaluate, which depends on the incoming and outgoing wave vectors ki and kf. If it only depends on the scattering vector q=ki-kf, then it is a IBornFormFactor.
Other children besides IBornFormFactor are IFormFactorDecorator, FormFactorWeighted, FormFactorDWBA, FormFactorDWBAPol and FormFactorCrystal.
Definition at line 39 of file IFormFactor.h.
|
pure virtual |
Returns the (approximate in some cases) radial size of the particle of this form factor's shape.
This is used for SSCA calculations
Implemented in FormFactorSphereLogNormalRadius, FormFactorSphereGaussianRadius, FormFactorGaussSphere, FormFactorWeighted, FormFactorCrystal, FormFactorCoreShell, IProfileRipple, IFormFactorPolyhedron, FormFactorTruncatedSpheroid, FormFactorTruncatedSphere, FormFactorLongBoxLorentz, FormFactorLongBoxGauss, FormFactorHollowSphere, FormFactorHemiEllipsoid, FormFactorFullSpheroid, FormFactorFullSphere, FormFactorEllipsoidalCylinder, FormFactorDot, FormFactorCylinder, FormFactorCone, FormFactorBox, IFormFactorDecorator, FormFactorDWBAPol, FormFactorDWBA, FormFactorBAPol, and IFormFactorPrism.