Boltzman factor in Monte Carlo simulation

Dear lammps users,

The Monte Carlo example here:

computes the Boltzman factor as:
“exp(atoms*(v_elast - v_e) / v_kT)”

My question is: why is it multiplying the numerator by number of atoms? What’s wrong with just dividing the difference in energy by kT? I mean “exp((v_elast - v_e) / v_kT)”

Note that the units are LJ in this example. Would it make a difference if units were real?

I’m also attaching the input file.


monte (3.12 KB)

In LJ units, the energy produced by thermo output (which is the pe that variable e
and thus variable elast are accessing), is normalized by the number of atoms.
The thermo_modify norm doc page explains this - it would not be normalized
for real or metal units.