opamp heating in voltage controlled current source
The IRF820 is poorly suited for this application- choose a logic-level MOSFET with a low Rds(on). Your output current will depend on the value of Rds(on) + R1 so if you stay with this circuit you would probably want Rds(on) to be extremely low compared to 10 ohms. 

Since the IRF820 may not turn on fully it may get hot. 

The TIP122 will get hot when the circuit is dropping a lot of voltage at high current- that is just the math of the situation. 
Worst case is 5V in (0.5A if the MOSFET was very low resistance) into a short, or 3.5W, which will require a heatsink of some kind. 

Finally, the amplifier output current may be large- 
if the load goes open- which will cause the op-amp to heat- add 1K in series with the base.

The resistor will also dissipate another 2.5W worst case, and that will tend to heat nearby components (the total 2.5W+3.5W = 6W which corresponds to 0.5A and 12V.

Rather than adding the power MOSFET as you did, I would tend to consider switching the input to a more precise single-supply op-amp using a CMOS analog switch. Then you have only the 10 ohm resistor to ground. The amplifier you are using is not really specified for DC applications.