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.

Parameters:
  • 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)

Returns:

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()

Disconnect module from profiler.

acquire()

Acquire density mode sample.

Returns:

density mode sample

label

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

desc

Module description.

class writer(args)

Construct file writer and output wavenumbers.

Parameters:
  • args (table) – keyword arguments

  • args.file – instance of file writer

  • args.location (string table) – location within file (optional)

Returns:

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"}.