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,k\) are particle types, and the powers \(j,m,p\) are collected from 0 to a maximum order cutoff.

Public Functions

ExtensiveMoments(const argtype &args = argtype())

args:

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

std::string header(const Criteria &criteria, const System &system, const TrialFactory &trials) const

Return the header for writing.

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)

Write the moments by serialization of a 5d accumulator. If checkpoints do not work, this file can be read using feasst_deserialize

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

Return the extensive moments.