Jump to content
  • Advertisement
Sign in to follow this  

Whats a good mathematical model for heat transfer?

This topic is 1672 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Well basically I have  one main heat variable wich increases and decreases by its modifyers.
Now the interesting part for me is, that how would I transfer the heat dynamically to another variable?

For a good example, heat transfer from oil to water in cars. The oil Heats up and if the water is colder than the oil, it heats up to the same temperature, but it wont do this instantly. It takes some time to transfer heat from one fluid to another.

If possible Id like to ignore if/else sentences and do it all mathematically, this way it would stay dynamic.


So to start things of, obviously I need  a heattransfer variable, so the higher this is the faster the transfer takes place. I'd like to keep this 1.0 at highest, where the heat transfer is almost instant., so a variable of 0.3 would give smoother transfer.
And I also need a cooling variable, so that the heat can be cooled down if its higher than the desired temperature. Same criteria for heating applys to cooling.

As I understand I have to take use of a formula like this:

// decrease
transfer -= (constant + transfer)*transferspeed*dT;
// increase
transfer += (constant - transfer)*transferspeed*dT;

right? But how could I write it as close to a single line code with cooling included ?



Also how to make it so that the desired heat will also decrease, because its a heat transfer procedure.  As a law of physics theres no such thing as a free lunch.


Edited by vadevaman

Share this post

Link to post
Share on other sites

Start by thinking about it as heat energy, not as temperature.

You can get temperature from the internal energy by having the mass and thermal heat capacity of the objects.

The difference in temperature drives a flow of heat energy between the objects.

A thermal resistance slows this flow.


It works like Ohms law.  (E=IR)

But with thermal-ness it would be (T = QR)

where T is temperature delta, Q is heat flow, R is thermal resistance.


How you calculate R is the crux of how complicated your system is!  For a simple "looks good enough" you can just base it on surface area of the objects in contact with a scaling factor. 

For a more accurate effect, you'd have to deal with things like arriving at a convection coefficient which is brilliantly convoluted to calculate.  For round objects there are some natural logs that show up in the calculation of R.  There are Nussault numbers and Prandl numbers.  You can go nuts here.


Your specific example of heat transfer from oil->water is an example of a heat exchanger.


If you can be more specific about what you need to accomplish, we can advise you better.

Share this post

Link to post
Share on other sites

You may want to use a relatively simple heat transfer simulation.




Thermal units (BTUs) are driven by temperature differences. I've shown it as linear but it's actually a higher order curve.


The oil is at one temperature. Near the radiator wall there's a transfer region whose coefficient is oil dependent. The radiator wall has a coefficient, as does the water.


Given oil and water temperatures, setup equations for each transfer region and solve for the temperature at each interface.

Share this post

Link to post
Share on other sites
Simple version: The amount of heat transferred per unit of time is proportional to the difference in temperature. The constant of proportionality is what controls how fast the transfer happens.
  // Each timestep

  transfer_heat = control_variable * timestep_length * (object_B.temp - object_A.temp);
  object_A.temp += transfer_heat / object_A.heat_capacity;
  object_B.temp -= transfer_heat / object_B.heat_capacity;
Edited by Álvaro

Share this post

Link to post
Share on other sites

Depends on the type of heat transfer and how detailed you want. Are you trying to model conduction and convection or radiation as well? Conduction and convection are pretty simple, but radiation takes a bit of code. For a simple model with conduction and convection, the resistive model is a good one.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!