I detailed the theory behind this equation and how it is derived from a much larger equation on another forum. I have included a copy of that post below for those who want to know more about elementary thermodynamics as applied to brewing.
*** start copied posting ***
If you are mashing at around 1.25 quarts of water (strike liquor) per pound in a typical cooler setup, a quick rule of thumb is to mash-in with strike liquor that is approximately nineteen to twenty degrees Fahrenheit higher than the desired rest temperature. For example, with a strike liquor to grist ratio of 1.25 quarts for pound, mashing-in with 170F strike liquor should result in the mash coming to rest at around 150F to 151F.
Here's the math:
Twenty pounds of grain has approximately as much heat capacity (a.k.a. specific heat) as one gallon of water; therefore, a pound of grain has approximately as much heat capacity as 0.05 gallons of water (1 / 20 = 0.05) or 0.2 quarts of water (1 / 20 x 4 = 0.2).
strike_liquor_temperature = ((desired_strike_temperature x (0.2 x grist_weight_in_pounds + strike_liquor_volume_in_quarts)) - (0.2 x grist_weight_in_pounds x grist_temperature)) / strike_liquor_volume_in_quarts
What the equation shown above does is calculate the total specific heat of the mash with respect to N quarts of water. This value includes the specific heat of the grain at rest temperature. The pre-mash-in grain specific heat is subtracted from the total mash specific heat, and the difference is then divided by the strike liquor volume in quarts yielding the strike liquor temperature. The equation can be simplified to:
strike_liquor_temperature = (total_mash_specific_heat grain_specific_heat_before_mash_in) / strike_liquor_volume_in_quarts
where
total_mash_specific_heat = desired_strike_temperature x (0.2 x grist_weight_in_pounds + strike_liquor_volume_in_quarts)
grain_specific_heat_before_mash_in = 0.2 x grist_weight_in_pounds x grist_temperature
Example:
grist_weight_in_pounds = 10
grist_temperature = 72
strike_liquor_volume_in_gallons = 12.125 (1.25 quarts per pound)
desired_strike_temperature = 151F
total_mash_specific_heat = 151 x (0.2 x 10 + 12.5) = 2189.5
grain_specific_heat_at_mash_in = (0.2 x 10 x 72) = 144
strike_liquor_temperature = (2189.5 - 144) / 12.5 = 163.64F
In practice, depending on how full your mash tun is after mash-in has been completed, it will take an additional 4 to 6 degree increase in the strike liquor temperature to hit your target mash temperature due to thermal losses to the cooler itself, which is why a good strike liquor temperature for a 151F mash is around 170F when using a hot liquor to grist ratio of 1.25 quarts per pound in a non-preheated cooler-based mash tun.
The equation shown below is mathematically derived from the equation shown above. It is based on a strike liquor volume to one pound of grist ratio. This ratio holds as we increase the weight of the grist; therefore, the result holds as we scale the grist.
strike_liquor_temperature = (.2 / hot_liquor_to_grist_ratio_in_quarts_per_pound) x (desired_strike_temperature - grist_temperature) + desired_strike_temperature
grist_temperature = 72
hot_liquor_to_grist_ration_in_quarts_per_pound = 1.25
desired_strike_temperature = 151F
strike_liquor_temperature = (.2 / 1.25) x (151 - 72) + 151 = 12.64 + 151 = 163.64F
The equation shown above is equivalent to the Initial Infusion Equation in John Palmers book. I merely used more descriptive variable names. John labels desired_mash_temperature T2, grain_temperature T1, and hot_liquor_to_grist_ratio_in_quarts_per_pound r in his equation.
http://www.howtobrew.com/section3/chapter16-3.html
John Palmers Initial Infusion Equation:
Strike Water Temperature Tw = (.2/r)(T2 - T1) + T2
where:
r = The ratio of water to grain in quarts per pound
T1 = The initial temperature (¡F) of the mash
T2 = The target temperature (¡F) of the mash
Tw = The actual temperature (¡F) of the infusion water
Lets say that I was completely dumbfounded that the equation found in Johns book yielded the same answer as the more complex equation that I had been using for years. It then dawned on me that the equations had to be related, which meant the equation in Johns book had to be a very clever simplification of the equation that I had been using. I sat down with pencil and paper and performed the algebra necessary to transform the equation that I had been using into the one in Johns book. Heres the math for those who into mind numbing things:
First off, we set grist_weight_in_pounds equal to 1, which allows us to rename strike_liquor_volume_in_quarts to hot_liquor_to_grist_ratio_in_quarts_per_pound because the strike liquor volume is for one pound of grain.
strike_liquor_temperature = (desired_strike_temperature x (0.2 x 1 + hot_liquor_to_grist_ratio_in_quarts_per_pound) - (0.2 x 1 x grain_temperature)) / hot_liquor_to_grist_ratio_in_quarts_per_pound
which simplifies to:
strike_liquor_temperature = (desired_strike_temperature x (0.2 + hot_liquor_to_grist_ratio_in_quarts_per_pound) - (0.2 x grain_temperature)) / hot_liquor_to_grist_ratio_in_quarts_per_pound
Next, we divide both terms in the expression (desired_strike_temperature x (0.2 + hot_liquor_to_grist_ratio_in_quarts_per_pound)) - (0.2 x grain_temperature)) by hot_liquor_to_grist_ration_in_quart_per_pound, yielding:
strike_liquor_temperature = desired_strike_temperature x (0.2 + hot_liquor_to_grist_ratio_in_quarts_per_pound) / hot_liquor_to_grist_ratio_in_quarts_per_pound - 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound
Multiplying desired_strike_temperature through the expression (0.2 + hot_liquor_to_grist_ratio_in_quarts_per_pound) yields:
strike_liquor_temperature = (0.2 x desired_strike_temperature + desired_strike_temperature x hot_liquor_to_grist_ratio_in_quarts_per_pound) / hot_liquor_to_grist_ratio_in_quarts_per_pound - 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound
Dividing each term in the expression (0.2 x desired_strike_temperature + desired_strike_temperature x hot_liquor_to_grist_ratio_in_quarts_per_pound) by hot_liquor_to_grist_ratio_in_quarts_per_pound yields:
strike_liquor_temperature =
0.2 x desired_strike_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound + desired_strike_temperature x hot_liquor_to_grist_ratio_in_quarts_per_pound / hot_liquor_to_grist_ratio_in_quarts_per_pound
- 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound
Which reduces to:
strike_liquor_temperature =
0.2 x desired_strike_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound + desired_strike_temperature - 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound
Reordering the terms leaves use very close to the final form:
strike_liquor_temperature =
0.2 x desired_strike_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound - 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound + desired_strike_temperature
The expression
0.2 x desired_strike_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound - 0.2 x grain_temperature / hot_liquor_to_grist_ratio_in_quarts_per_pound can be reduced to (
0.2 x desired_strike_temperature - 0.2 x grain_temperature) / hot_liquor_to_grist_ratio_in_quarts_per_pound, which, in turn, can be reduced to
0.2 x (desired_strike_temperature - grain_temperature) / hot_liquor_to_grist_ratio_in_quarts_per_pound, which yields the final equation:
strike_liquor_temperature =
0.2 x (desired_strike_temperature - grain_temperature) / hot_liquor_to_grist_ratio_in_quarts_per_pound + desired_strike_temperature
which can be reordered to:
strike_liquor_temperature =
0.2 / hot_liquor_to_grist_ratio_in_quarts_per_pound x (desired_strike_temperature - grain_temperature) + desired_strike_temperature
which is the equation in John's book
Like I said, the simplification is very clever.
*** end copied posting ***