Intermediate scattering function

The module computes the intermediate scattering function

S_{(\alpha\beta)}(\vec k, t) = \frac{1}{N} \bigl\langle
\rho_\alpha(\vec k, t)^* \rho_\beta(\vec k, 0) \bigr\rangle

from the Fourier modes of a given pair of (partial) density fields,

\rho_\alpha(\vec k, t) = \sum_{n=1}^{N_\alpha}
\exp\boldsymbol(\text{i} \vec k \cdot \vec r_n(t)\boldsymbol) \/,

and the total number of particles N. The result is averaged over wavevectors of similar magnitude according to the shells defined by halmd.observables.utility.wavevector.

For details see, e.g., Hansen & McDonald: Theory of simple liquids, chapter 7.4.

class halmd.observables.dynamics.intermediate_scattering_function(args)

Construct instance of halmd.observables.dynamics.intermediate_scattering_function.

  • args (table) – keyword arguments
  • args.density_mode (table) – instance(s) of halmd.observables.density_mode
  • args.norm (number) – normalisation factor
  • args.label (string) – module label (optional)

instance of intermediate scattering function module

The argument density_mode is an instance or a table of up to 2 instances of halmd.observables.density_mode yielding the partial density modes \rho_\alpha(\vec k, t) and \rho_\beta(\vec k, t). They must have been constructed with the same instance of halmd.observables.utility.wavevector. Passing only one instance implies \alpha = \beta.

The optional argument label defaults to density_mode[1].label ..  "/" .. density_mode[2].label.


Disconnect module from profiler.


Acquire density mode sample.

Returns:density mode sample

The module label passed upon construction or derived from the density modes.


Module description.

class writer(args)

Construct file writer and output wavenumbers.

  • args (table) – keyword arguments
  • args.file – instance of file writer
  • args.location (string table) – location within file (optional)

file writer as returned by file:writer().

The argument location specifies a path in a structured file format like H5MD given as a table of strings. It defaults to {"dynamics", self.label, "intermediate_scattering_function"}.