• Create Account

Whats a good mathematical model for heat transfer?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

5 replies to this topic

157
Like
0Likes
Like

Posted 16 May 2014 - 01:51 AM

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 ?

Edit:

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.

Thanks!

Edited by vadevaman, 16 May 2014 - 02:07 AM.

#2godmodder  Members

805
Like
1Likes
Like

Posted 16 May 2014 - 05:43 AM

The real way is to use something like Fourier's law like in this article.

Though that might be overkill for your purposes.

#3CombatWombat  Members

617
Like
2Likes
Like

Posted 16 May 2014 - 06:51 AM

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.

#4Buckeye  GDNet+

10739
Like
1Likes
Like

Posted 16 May 2014 - 07:02 AM

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.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

#5Álvaro  Members

20235
Like
1Likes
Like

Posted 16 May 2014 - 07:02 AM

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, 16 May 2014 - 07:21 AM.

1880
Like
1Likes
Like

Posted 16 May 2014 - 12:01 PM

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.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.