I’m not sure why you need to calculate the thermal mass and then feed that back into the final answer.
{% set thermal_mass = 0.75 * thickness * (temp_meat - temp_amb) %}
{{ (temp_meat - temp_amb) / thermal_mass }}
is simply equal to:
{{ 1/ (0.75 * thickness) }}
since:
(temp_meat - temp_amb) / thermal_mass = (temp_meat - temp_amb) / (0.75 * thickness * ((temp_meat - temp_amb))
and the (temp_meat - temp_amb) on the top and bottom cancels out.
I’m also confused about the units of that equation. It seems to me that they will be “1/cm” not “degrees/min”
Here is the units in the equation broken down:
(degrees - degrees)/0.75 * cm * (degrees - degrees)
And where does the .75 value actually come from? And then later where does the .5 cooling correction factor come from? What exactly are those numbers based on? I poked around online and couldn’t find that heat transfer equation anywhere.
The “.75 * thickness” number may work for a thin piece of meat where the thickness allows for the internal temperature to change rather quickly but I’m not sure if it would work the same with a pork butt that’s 4 inches thick.
And it doesn’t take into account the shape of the meat. A meatball will have a different heat transfer than a hamburger patty since in the patty almost all of the heat is coming in from the top & bottom sides (so more quickly) vs a ball where the heat from in every direction equally. That is called surface to mass ratio.
That and I’m sure the number would be different if the meat was more dry vs more moist (no injection of marinade vs injection) since the specific heat capacity of the extra internal liquid will change how much heat needs to be absorbed by the mass to change by 1 degree vs a drier piece of meat that will by definition have less moisture and more solids per unit volume so the mass will heat up faster. What is the ratio of specific heat capacity in muscle fiber vs water?
There are so many variables (including instrumentation measurement errors and variability) to take into account that I’m not sure that any one formula will give exact results for all situations.
Which I why I used real world measurements in my approximation formula. You are updating yours every 2 minutes but I update mine every 5 minutes.
Lastly I’m not sure that it would work exactly as posted by copy/paste since in the code block above you have two “input_number:” domain keys. If you copy it as is then the second one would override the first and not create the first input number (food_temp_done)
that should be changed to:
# Input for the target temperature of the food
input_number:
food_temp_done:
name: Food Done Temp
initial: 195
min: 0
max: 200
step: 1
# Input for the thickness of the food (in inches)
food_thickness:
name: Food Thickness (in)
initial: 2
min: 0.5
max: 5
step: 0.1