MayerSampling

class MayerSampling : public feasst::Criteria

Mayer-sampling Monte Carlo acceptance criteria as described in Singh and Kofke[1]. Extrapolation in temperature is performed as descirbed in Hatch et al.[2]. The coefficients for the Taylor series extrapolation are written to file and include the factorial division.

References:

Arguments

  • trials_per_cycle: define a cycle as a number of trials (as measured by number of calls to is_accepted) default: 1e9.

  • intra_potential: index of intramolecular potential that will be used to select the move. Ignore if -1 (default: -1).

  • num_beta_taylor: number of derivatives of second virial ratio with respect to beta. (default: 0).

  • training_file: if not empty, file name to write training data (default: empty).

  • training_per_write: write every this many sets of data (default: 1e4).

  • Criteria arguments.

Public Functions

void precompute(System *system)

Disable optimization when overlap is detected.

bool is_accepted(const System &system, Acceptance *acceptance, Random *random)

Return whether or not the trial attempt should be accepted.

const Accumulator &mayer() const

Return the mayer ensemble of the full potential.

const Accumulator &mayer_ref() const

Return the mayer ensemble of the reference potential.

double second_virial_ratio() const

Return the ratio of the second virial coefficient of the full potential to the second virial coefficient of the reference potential.

double second_virial_ratio_block_stdev() const

Return the block standard deviation of the second_virial_ratio. This is computed using the error propogation formula variance formula:

\(f = mayer/mayer_ref\)

\(\sigma_f = \sqrt{(\sigma_{mayer}/mayer_ref)^2 + (f\sigma_{mayer_ref}/mayer_ref)^2}\)

int num_beta_taylor() const

Return the number of beta derivatives, starting with 1.

const std::vector<Accumulator> &beta_taylor() const

Return the beta derivatives in the mayer function f12.

double beta_taylor(const int deriv) const

Return the beta derivative in the second virial ratio by n factorial.

std::string write() const

Return a human-readable output of all data (not as brief as status).