class TransitionMatrix : public feasst::Bias
Transition matrix flat histogram bias.
Direct calculation of liquid–vapor phase equilibria from transition matrix Monte Carlo simulation https://doi.org/10.1063/1.1572463
Elucidating the effects of adsorbent flexibility on fluid adsorption using simple models and flat-histogram sampling methods. https://doi.org/10.1063/1.4884124
A count of all accepted transitions between macrostates is used for a newly developed sweep metric.
Note that transitions to macrostates that have not yet been sampled are unbiased. This can lead to long initialization times, depending on your choice of the chemical potential. For example, if a simulation begins with zero particles and attempts a particle insertion, this insertion is unlikely to be accepted if the chemical potential is very low (favoring less particles). This can lead to very low initialization times. This issue can be overcome with the use of WLTM, which instead uses Wang-Landau to initialize the transition matrix. This makes WLTM less sensitive than TM to the choice of chemical potential in terms of efficiency.
TransitionMatrix(argtype args = argtype())
min_visits: A sweep is performed when all macrostates are visited by another macrostate this number of times (default: 100).
average_visits: A sweep is performed when macrostates are visited by another macrostate more than this average number of times (default: 0).
min_sweeps: Number of sweeps required for completion.
reset_sweeps: The ‘phase’ counter increments from 0 to 1 when reset_sweeps are completed (default: -1 [counter will never increment])
new_sweep: if set to 1, use new sweep definition of “the minimum number
of accepted transitions for each possible” (default: 0).
void update(const int macrostate_old, const int macrostate_new, const double ln_metropolis_prob, const bool is_accepted, const bool is_endpoint, const Macrostate ¯o)
int min_sweeps() const
Return the minimum sweeps required for completion.
int reset_sweeps() const
Return the reset_sweeps parameter.
int num_iterations_to_complete() const
Return the number of iterations required for completion. In TransitionMatrix and WLTM, this is the minimum number of sweeps. In WangLandau, this is the minimum number of flatness checks. Afterward, check again for completeness.
void set_num_iterations_to_complete(const int iteration)
Set the number of iterations required for completion.
- TransitionMatrix(argtype args = argtype())