class Scattering : public feasst::Analyze

Compute the scattering intensity.

\(F(\vec{q}) = \sum f_i(|\vec{q}|R_i) \exp(-i \vec{q} \cdot \vec{r}_i)\)

where \(r\) is the position of site \(i\), \(q\) is the frequency and \(f_i\) are the scattering lengths, assumed to be spherical with a radius, \(R_i = \sigma_i\).

\(f(qR) = 3 V(R) \frac{\sin(qR)-qR\cos(qr)}{q^3R^3}\),

\(V(R)=\frac{4}{3}\pi R^3\).

The intensity, \(I\), is then given by the \(F(\vec{q})\) multiplied by its complex conjugate:

\(I(q) = |F(\vec{q})|^2\).

Public Functions

void initialize(Criteria *criteria, System *system, TrialFactory *trial_factory)

Initialize and precompute before trials.

void update(const Criteria &criteria, const System &system, const TrialFactory &trial_factory)

Perform update action.

std::string write(const Criteria &criteria, const System &system, const TrialFactory &trial_factory)

Perform write action.


  • num_frequency: the number of linearly spaced frequencies between the largest and the smallest, 2*pi/minimum_domain_length (default: 100).

  • Stepper arguments.