BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
IReParticle Class Referenceabstract

Description

Abstract base class for reprocessed particles.

Reprocessing is necessary to handle particles that cross material layers. These particles are divided into several.

Definition at line 37 of file IReParticle.h.

Inheritance diagram for IReParticle:
[legend]
Collaboration diagram for IReParticle:
[legend]

Public Member Functions

 ~IReParticle () override=default
 
virtual double bottomZ (const IRotation *rotation) const =0
 Returns the z-coordinate of the lowest point in this shape after a given rotation. More...
 
IReParticleclone () const override=0
 
virtual double radialExtension () const =0
 Returns the (approximate in some cases) radial size of the particle of this form factor's shape. This is used for SSCA calculations. More...
 
virtual void setAmbientMaterial (const Material &)
 Passes the material in which this particle is embedded. More...
 
virtual complex_t theFF (const WavevectorInfo &wavevectors) const =0
 Returns scattering amplitude for complex wavevectors ki, kf. More...
 
virtual SpinMatrix thePolFF (const WavevectorInfo &wavevectors) const
 Returns scattering amplitude for matrix interactions. More...
 
virtual double topZ (const IRotation *rotation) const =0
 Returns the z-coordinate of the lowest point in this shape after a given rotation. More...
 
virtual void transferToCPP ()
 Used for Python overriding of clone (see swig/tweaks.py) More...
 
virtual double volume () const
 Returns the total volume of the particle of this form factor's shape. More...
 

Protected Member Functions

 IReParticle ()=default
 

Constructor & Destructor Documentation

◆ IReParticle()

IReParticle::IReParticle ( )
protecteddefault

◆ ~IReParticle()

IReParticle::~IReParticle ( )
overridedefault

Member Function Documentation

◆ bottomZ()

virtual double IReParticle::bottomZ ( const IRotation rotation) const
pure virtual

Returns the z-coordinate of the lowest point in this shape after a given rotation.

Implemented in ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

◆ clone()

IReParticle* IReParticle::clone ( ) const
overridepure virtual

Implements ICloneable.

Implemented in ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

Referenced by ReCompound::addFormFactor().

◆ radialExtension()

virtual double IReParticle::radialExtension ( ) const
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 ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

◆ setAmbientMaterial()

virtual void IReParticle::setAmbientMaterial ( const Material )
inlinevirtual

Passes the material in which this particle is embedded.

Reimplemented in ReMesocrystal, ReCoreShell, ReCompound, and ReParticle.

Definition at line 47 of file IReParticle.h.

47 {}

Referenced by ReMesocrystal::setAmbientMaterial().

◆ theFF()

virtual complex_t IReParticle::theFF ( const WavevectorInfo wavevectors) const
pure virtual

Returns scattering amplitude for complex wavevectors ki, kf.

Implemented in ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

Referenced by ReMesocrystal::theFF(), and volume().

◆ thePolFF()

SpinMatrix IReParticle::thePolFF ( const WavevectorInfo wavevectors) const
virtual

Returns scattering amplitude for matrix interactions.

Reimplemented in ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

Definition at line 20 of file IReParticle.cpp.

21 {
22  // Throws to prevent unanticipated behaviour
23  throw std::runtime_error("IReParticle::evaluatePol: is not implemented by default");
24 }

Referenced by ReMesocrystal::thePolFF().

◆ topZ()

virtual double IReParticle::topZ ( const IRotation rotation) const
pure virtual

Returns the z-coordinate of the lowest point in this shape after a given rotation.

Implemented in ReParticle, ReMesocrystal, ReCoreShell, and ReCompound.

◆ transferToCPP()

virtual void ICloneable::transferToCPP ( )
inlinevirtualinherited

Used for Python overriding of clone (see swig/tweaks.py)

Definition at line 32 of file ICloneable.h.

◆ volume()

double IReParticle::volume ( ) const
virtual

Returns the total volume of the particle of this form factor's shape.

Reimplemented in ReParticle, and ReMesocrystal.

Definition at line 26 of file IReParticle.cpp.

27 {
28  auto zero_wavevectors = WavevectorInfo::makeZeroQ();
29  return std::abs(theFF(zero_wavevectors));
30 }
virtual complex_t theFF(const WavevectorInfo &wavevectors) const =0
Returns scattering amplitude for complex wavevectors ki, kf.
static WavevectorInfo makeZeroQ()

References WavevectorInfo::makeZeroQ(), and theFF().

Here is the call graph for this function:

The documentation for this class was generated from the following files: