Elementary Monte Carlo Step

This class encapsulates the notion of performing a series of updates and then measuring observables. This represents the “smallest” unit of actual system dynamics and hence is called an “elemenary” Monte Carlo step.

template<class Hamiltonian, class Lattice>
struct EMCS

Entry point for overwriting the EMCS.

This class serves as an entry point for easily defining your own specializations of the notion of a basic sweep of the statespace of your Hamiltonians. Further uses are e.g. adding your own moves. The EMCS defines the concepts of EMCSconcept by which we mean the basic Monte Carlo sweep that in the default implementation encompasses the execution of some Wolff cluster updates and some Metropolis local updates.

To that end it has the two prototypical template parameters:

Template Parameters
  • Hamiltonian: The Hamiltonian that the Wolff algo will use.

  • Lattice: The Lattice, that the Wolff algo should use.