The class Element represents a single node that can be part of multiple elements on a hotplate and runs in its own thread. The constructor accepts the initial temperature and a heat constant that should be between 0.0 (exclusive) and 1.0. The start method should start running the thread. While running the element compares the average temperatures of its neighbours with its own temperature and adjusts its current temperature using this formula:
currentTemp += (averageTemps - currentTemp) _ heatConstant
The elements own temperature can be increased or decreased by calling the method applyTempToElement using this formula:
currentTemp += (appliedTemp - currentTemp) _ heatConstant.
Because neighbour elements are running in their own threads and accessing each others temperature, careful synchronization will be needed whenever the temperature field is accessed or changed. Using the UML diagram below as a guide.