ExtensiveMoments

class ExtensiveMoments : public feasst::Analyze

Accumulate extensive moments for derivatives from fluctuations. This is currently implemented for a grand canonical ensemble:

\(N_i^j N_k^m U^p\)

where i and j are given particle types, U is the energy, and the moments are collected up to the sum of the powers,

\(j + m + p \le max_order.\)

If triplet N are needed,

\(N_i^j N_k^l N_m^o U^p\)

is collected up to

\(j + l + o + p \le max_order.\)

Public Functions

std::string header(const MonteCarlo &mc) const

Return the header for writing.

void initialize(MonteCarlo *mc)

Initialize and precompute before trials.

void update(const MonteCarlo &mc)

Perform update action.

std::string write(const MonteCarlo &mc)

Perform write action.

const Accumulator &moments(const int p, const int m, const int k, const int j, const int i) const

Return the extensive moments.

Arguments

  • max_order: maximum order cutoff for the powers (default: 3).

  • particle_types: comma-separated list of particle type names. If empty, use all particle types (default: empty).

  • triplet: if true, collect number triplets (default: false).

  • Stepper arguments.