I am trying to understand this flag better. I believe the default temperature for Monte Carlo is 0.8 but I cant find out what does that actually mean during the Monte Carlo steps. I thought the temperature varies during those steps.
Can someone either explain this to me and point me to a easy to understand paper?
The -perturb_temp option is not a general one. There's actually two distinct options with that name, for two different protocols: -FloppyTail:perturb_temp and -AnchoredDesign:perturb_temp. If you're not using one of those protocols (or a protocol which uses one of those protocols), the option will do nothing.
For FloppyTail, the -FloppyTail:perturb_temp sets the temperature of the main low resolution Monte Carlo loop. It's not a perturbation of the temperature, it's the actual kT of the Metropolis criterion itself (in the same energy units as the centroid scorefunction being used). It also only applies to the low-resolution sampling cycle. It has no effect on the high-resolution sampling in FloppyTail.
For AnchoredDesign, the -AnchoredDesign:perturb_temp option similarly sets the Metropolis temperature for a low resolution sampling phase, as well as the temperature for the kinematic loop closure-based perturbation. As with FloppyTail, it only applies to certain low-resolution sampling stages, and doesn't apply generally or to the high resolution refinement stages.
Unlike the high resolution packer, the Monte Carlo loops used in low resolution sampling for AnchoredDesign and FloppyTail are not simulated annealing. That is, they don't have varying temperatures. There's only a single temperature applied throughout the entire protocol, one that's hopefully high enought to get you out of local minima, but low enough so you don't jump out of the global minimum.
(The -AnchoredDesign:perturb_temp option also sets the Monte Carlo temperature for the ZincHeterodimerMover, but it's unlikely you'll be using that, unless you're interested in the zinc_heterodimer_design application.)