v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "40d:Specific heat"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (wot's a kelvingram?)
m (Changed categorization Template:Category from links to main)
 
(23 intermediate revisions by 13 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{quality|Fine|16:38, 7 October 2012 (UTC)}}{{av}}
== The SPEC_HEAT token ==
 
  
The <b>SPEC_HEAT</b> token controls a material's specific heat capacity.
+
The various SPEC_HEAT tokens control a material's '''specific heat''' capacity.
  
Specific heat is not a temperature.  It is, more or less, the amount of energy it takes to raise the temperature of the material from one temperature to another.  Gold, for instance, has a very low specific heat, so it takes very little energy to raise its temperature by one degree.  Water, with a very high specific heat, takes 32 times as much energy to raise its temperature by one degree.  For more information, see [http://en.wikipedia.org/wiki/Specific_heat_capacity] [http://hypertextbook.com/physics/thermal/heat-sensible/] [http://scienceworld.wolfram.com/physics/SpecificHeat.html].
+
Specific heat is not a temperature.  It is, more or less, the amount of energy it takes to raise the temperature of the material from one temperature to another.  Gold, for instance, has a very low specific heat, so it takes very little energy to raise its temperature by one degree.  Water, with a very high specific heat, takes 32 times as much energy to raise its temperature by one degree.  For more information, see [[wikipedia:Specific heat capacity|Wikipedia]] [http://hypertextbook.com/physics/thermal/heat-sensible/ hypertextbook], and [http://scienceworld.wolfram.com/physics/SpecificHeat.html scienceworld].
  
 
<!-- this needs verification, so I'm yanking it:
 
<!-- this needs verification, so I'm yanking it:
As <b>Dwarf Fortress</b> does not have a concept of insulation, <b>SPEC_HEAT</b> can be used to &ldquot;cheat&rdquot; by causing a material which <u>should</u> be quite insulative to actually take more energy to heat up, or lose more energy to cool down, than more normal materials. The result is a material which, if used in clothing, will keep a dwarf form freezing longer than normal cloth or leather would. -->
+
As '''Dwarf Fortress''' does not have a concept of insulation,'''SPEC_HEAT''' can be used to "cheat" by causing a material which ''should'' be quite insulative to actually take more energy to heat up, or lose more energy to cool down, than more normal materials. The result is a material which, if used in clothing, will keep a dwarf form freezing longer than normal cloth or leather would. -->
<b>SPEC_HEAT</b> appears to be in units of <b>J kg<sup>-1 </sup>K<sup>-1</sup></b> at <b>STP</b>; i.e. <b>1000</b> times the normally reported <b>c<sub>p</sub></b> in Joules per gram per degree Kelvin, or exactly the more rarely reported <b>c<sub>p</sub></b> in Joules per kilogram per degree Kelvin.
+
'''SPEC_HEAT''' appears to be in units of '''J kg<sup>-1 </sup>K<sup>-1</sup>''' at '''STP'''; i.e. '''1000''' times the normally reported '''c<sub>p</sub>''' in joules per gram per kelvin, or exactly the more rarely reported '''c<sub>p</sub>''' in joules per kilogram per kelvin.
  
It is not understood why the game uses the <b>&deg;C</b> or <b>&deg;K</b> scale here, while using the <b>&deg;DF</b> = <b>&deg;F + 9968</b> scale elsewhere.
+
It is not understood why the game uses the '''&deg;C''' or '''K''' scale here, while using the '''&deg;U''' = '''&deg;F + 9968''' scale elsewhere.
  
 
=== Sample specific heats as used by Dwarf Fortress ===
 
=== Sample specific heats as used by Dwarf Fortress ===
  
{| border="1" cellpadding="2" width="100%"
+
The following values are from Dwarf Fortress version 0.28.181.40d, though most also apply to other versions as well.
 +
 
 +
{| class="wikitable"
 
! width="50%" | Material
 
! width="50%" | Material
! width="25%" | <b>c<sub>p</sub></b> in <b>J kg<sup>-1 </sup>K<sup>-1</sup></b>
+
! width="25%" | c<sub>p</sub> in J kg<sup>-1 </sup>K<sup>-1</sup>
! width="25%" | <b>DF</b> uses
+
! width="25%" | DF uses
  
 
|-
 
|-
Line 35: Line 36:
  
 
|-
 
|-
| Carbon (Graphite) [[Creature_Tokens/SPEC_HEAT#footnote1|&#91;&#42;&#93;]]
+
| Carbon (Graphite)
<!-- http://invsee.asu.edu/nmodules/Carbonmod/thermprp.html
 
http://hypertextbook.com/physics/thermal/heat-sensible/ -->
 
 
| 710
 
| 710
 
| 409
 
| 409
  
 
|-
 
|-
| Carbon (Diamond) [[Creature_Tokens/SPEC_HEAT#footnote1|&#91;&#42;&#93;]]
+
| Carbon (Diamond)
 
| 519
 
| 519
 
| 409
 
| 409
Line 89: Line 88:
 
| Alcohol, ethyl, anhydrous
 
| Alcohol, ethyl, anhydrous
 
| 2440
 
| 2440
| not in raws
+
| 2440 (default for plant alcohol)
  
 
|-
 
|-
Line 97: Line 96:
  
 
|-
 
|-
| Beef, carcass, not frozen <!-- http://www.engineeringtoolbox.com/specific-heat-capacity-food-d_295.html -->
+
| Meat (beef, carcass, not frozen) <!-- http://www.engineeringtoolbox.com/specific-heat-capacity-food-d_295.html -->
 
| 2850
 
| 2850
| not in raws
+
| 4181
  
 
|-
 
|-
 
| Charcoal
 
| Charcoal
 
| &asymp; 1000
 
| &asymp; 1000
| not in raws
+
| 409 (hardcoded)
  
 
|-  
 
|-  
| Cheese, Cheddar, aged 60 weeks <!-- http://jds.fass.org/cgi/reprint/73/7/1671.pdf  You really can find anything on the Internet! -->
+
| Cheese (Cheddar, aged 60 weeks) <!-- http://jds.fass.org/cgi/reprint/73/7/1671.pdf  You really can find anything on the Internet! -->
 
| 3012
 
| 3012
| not in raws
+
| 4181 (0.31), 2000 (40d)
  
 
|-
 
|-
 
| Coke
 
| Coke
 
| 850
 
| 850
| not in raws
+
| 409 (hardcoded)
  
 
|-
 
|-
 
| Glass, crystal <!-- http://en.wikipedia.org/wiki/Specific_heat_capacity -->
 
| Glass, crystal <!-- http://en.wikipedia.org/wiki/Specific_heat_capacity -->
 
| &asymp; 500
 
| &asymp; 500
| not in raws
+
| 700 (hardcoded)
  
 
|-
 
|-
| Glass, silica <!-- http://www.engineeringtoolbox.com/specific-heat-solids-d_154.html http://www.gutenberg.org/files/22657/22657-h/chapters/measurement.html ->>
+
| Glass, silica <!-- http://www.engineeringtoolbox.com/specific-heat-solids-d_154.html http://www.gutenberg.org/files/22657/22657-h/chapters/measurement.html -->
 
| &asymp; 840
 
| &asymp; 840
| not in raws
+
| 700 (hardcoded)
  
 
|-
 
|-
 
| Granite <!-- http://en.wikipedia.org/wiki/Specific_heat_capacity -->
 
| Granite <!-- http://en.wikipedia.org/wiki/Specific_heat_capacity -->
 
| 790
 
| 790
| not in raws
+
| 800 (default for all stone)
  
 
|-
 
|-
 
| Sand
 
| Sand
 
| 835
 
| 835
| not in raws
+
| 835 (hardcoded)
  
 
|-
 
|-
Line 149: Line 148:
 
| Silk (spider, viscid) <!-- http://www.doitpoms.ac.uk/tlplib/bioelasticity/printall.php -->
 
| Silk (spider, viscid) <!-- http://www.doitpoms.ac.uk/tlplib/bioelasticity/printall.php -->
 
| &asymp; 1400
 
| &asymp; 1400
| not in raws
+
| 420 (0.31), 1000 (40d)
  
 
|-
 
|-
 
| Water, liquid, at STP
 
| Water, liquid, at STP
 
| 4218
 
| 4218
| not in raws
+
| 4181 (hardcoded)
  
 
|-
 
|-
 
| Water, solid, at STP
 
| Water, solid, at STP
 
| 2114
 
| 2114
| not in raws
+
| 4181 (hardcoded)
  
 
|-
 
|-
 
| Wood [[Creature_Tokens/SPEC_HEAT#footnote2|&#91;&dagger;&#93;]]
 
| Wood [[Creature_Tokens/SPEC_HEAT#footnote2|&#91;&dagger;&#93;]]
 
| 1700 to 2900
 
| 1700 to 2900
| 420, hardcoded
+
| 420 (hardcoded prior to 0.31)
  
 
|-
 
|-
 
|}
 
|}
 
<!-- if anyone knows a better way to do footnotes, go for it. -->
 
<!-- if anyone knows a better way to do footnotes, go for it. -->
<small id="footnote1"><tt>&#91;&#42;&#93;</tt><small>&nbsp;&nbsp;Note the inconsistency in the Carbon values.</small></small><br/>
 
 
<small id="footnote2"><tt>&#91;&dagger;&#93;</tt><small>&nbsp;&nbsp;The specific heat of wood varies somewhat between different species.  However, the variance is dominated by the moisture content of the wood.  Moreover, wet wood behaves very differently below freezing.  See [http://www.fpl.fs.fed.us/documnts/fplgtr/fplgtr09.pdf]</small></small><br/>
 
<small id="footnote2"><tt>&#91;&dagger;&#93;</tt><small>&nbsp;&nbsp;The specific heat of wood varies somewhat between different species.  However, the variance is dominated by the moisture content of the wood.  Moreover, wet wood behaves very differently below freezing.  See [http://www.fpl.fs.fed.us/documnts/fplgtr/fplgtr09.pdf]</small></small><br/>
 
<!-- <small id="footnote3"><tt>&#91;&Dagger;&#93;</tt><small>&nbsp;&nbsp;footnote 3 text</small></small><br/> -->
 
<!-- <small id="footnote3"><tt>&#91;&Dagger;&#93;</tt><small>&nbsp;&nbsp;footnote 3 text</small></small><br/> -->
 
----
 
----
  
The default value for <b>SPEC_HEAT</b> is <b>409</b>, except for <b>STONE</b> types, which get <b>800</b>.  However, default values are not established for the various <b>creature_product_SPEC_HEAT</b> tokens.
+
The default value for '''SPEC_HEAT''' depends on the material and on the version of Dwarf Fortress in question.
  
 
----
 
----
[http://en.wikipedia.org/wiki/Specific_heat_capacity#Table_of_specific_heat_capacities] and [http://www.engineeringtoolbox.com/specific-heat-solids-d_154.html] have tables with other materials&rsquo; specific heats.
+
[[wikipedia:Specific heat capacity#Table of specific heat capacities|Wikipedia]] and [http://www.engineeringtoolbox.com/specific-heat-solids-d_154.html engineeringtoolbox] have tables with other materials' specific heats.
 +
 
 +
References may report specific heat in joules per gram per degree Celsius. Because the Celsius and Kelvin systems use the same scale, differing only in their zero points, this is exactly the same as reporting in joules per gram per kelvin. '''J/g&deg;C''' is equal to '''J/gK'''.
  
References may report specific heat in Joules per gram per degree Celsius. Because Celcius and Kelvin use the same scale, differing only in their zero points, this is exactly the same as reporting in Joules per gram per degree Kelvin.&nbsp;&nbsp;<b>J/g&deg;C</b> is equal to <b>J/g&deg;K</b>
+
Sometimes references will give specific heat in calories per gram kelvin, or calories per kilogram kelvin. To convert calories per gram kelvin to '''&deg;U''', multiply by '''4184'''.  To convert calories per kilogram kelvin to '''&deg;U''' units, multiply by '''4.184'''.
  
Sometimes references will give specific heat in calories per gram kelvin, or calories per kilogram kelvinTo convert calories per gram kelvin to <b>DF</b> units, multiply by <b>4184</b>.  To convert calories per kilogram kelvin to <b>DF</b> units, multiply by <b>4.184</b>.
+
Older references may give specific heat in B.T.U. per pound per degree Fahrenheit1 B.T.U. per pound per degree Fahrenheit is by definition equal to 1 calorie per gram per kelvin.  '''Btu/lb&deg;F''' is equal to '''cal/gK'''. So just multiply by '''4184''' to convert to '''&deg;U'''.
  
Older references may give specific heat in B.T.U. per pound per degree Fahrenheit1 B.T.U. per pound per degree Fahrenheit is by definition equal to 1 calorie per gram per degree Kelvin<b>Btu/lb&deg;F</b> is equal to <b>cal/g&deg;K</b>So just multiply by <b>4184</b> to convert to <b>DF</b> units.
+
Sometimes references will report specific heat of liquids or gases in joules (or calories) per [[wikipedia:Mole (unit)|mole]] per kelvinThe symbol for this is '''C<sup>p</sup>''' (with a capital C). This is less useful for our purposes, as you will need to know the molecular weight (in grams per mole) of the compound to convert it.
 +
:An example: the molar heat capacity of ethyl alcohol is 113 Joules per mole per degree Centigrade.  The molecular weight of ethyl alcohol is 46.07 grams per moleDivide 113 J/mol&deg;C by 46.07 g/mol, resulting in 2.45 J/g&deg;CMultiply by 1000 g/kg, resulting in 2450 J/kg&deg;C.  That is our desired result in '''DF''' units.
  
Sometimes references will report specific heat of liquids or gases in Joules (or calories) per [http://en.wikipedia.org/wiki/Mole_(unit) mole] per degree Kelvin.  The symbol for this is <b>C<sup>p</sup></b> (with a capital C).  This is less useful for our purposes, as you will need to know the molecular weight (in grams per mole) of the compound to convert it. 
+
Note that specific ''latent'' heat is a different concept; do not use those values for '''SPEC_HEAT'''.
:An example: the molar heat capacity of ethyl alcohol is 113 Joules per mole per degree Centigrade.  The molecular weight of ethyl alcohol is 46.07 grams per mole.  Divide 113 J/mol&deg;C by 46.07 g/mol, resulting in 2.45 J/g&deg;C.  Multiply by 1000 g/kg, resulting in 2450 J/kg&deg;C.  That is our desired result in <b>DF</b> units.
 
  
Note that specific <u>latent</u> heat is a different concept; do not use those values for <b>SPEC_HEAT</b>.
+
{{Category|Modding}}
 +
{{Category|Tokens}}

Latest revision as of 13:01, 4 January 2023

This article is about an older version of DF.

The various SPEC_HEAT tokens control a material's specific heat capacity.

Specific heat is not a temperature. It is, more or less, the amount of energy it takes to raise the temperature of the material from one temperature to another. Gold, for instance, has a very low specific heat, so it takes very little energy to raise its temperature by one degree. Water, with a very high specific heat, takes 32 times as much energy to raise its temperature by one degree. For more information, see Wikipedia hypertextbook, and scienceworld.

SPEC_HEAT appears to be in units of J kg-1 K-1 at STP; i.e. 1000 times the normally reported cp in joules per gram per kelvin, or exactly the more rarely reported cp in joules per kilogram per kelvin.

It is not understood why the game uses the °C or K scale here, while using the °U = °F + 9968 scale elsewhere.

Sample specific heats as used by Dwarf Fortress[edit]

The following values are from Dwarf Fortress version 0.28.181.40d, though most also apply to other versions as well.

Material cp in J kg-1 K-1 DF uses
Adamantine n/a 7500
Aluminum 897 900
Copper 385 385
Carbon (Graphite) 710 409
Carbon (Diamond) 519 409
Gold 129.1 129
Iron, cast ≈500 450
Iron, pig >500 500
Iron, pure 443 450
Iron, wrought 480-500 450
Nickel 444 444
Zinc 388 390
Alcohol, ethyl, anhydrous 2440 2440 (default for plant alcohol)
Alcohol, ethyl, 100 proof 3856 not in raws
Meat (beef, carcass, not frozen) 2850 4181
Charcoal ≈ 1000 409 (hardcoded)
Cheese (Cheddar, aged 60 weeks) 3012 4181 (0.31), 2000 (40d)
Coke 850 409 (hardcoded)
Glass, crystal ≈ 500 700 (hardcoded)
Glass, silica ≈ 840 700 (hardcoded)
Granite 790 800 (default for all stone)
Sand 835 835 (hardcoded)
Silk (silkworm?) ≈ 1380 not in raws
Silk (hornet) ≈ 1500 not in raws
Silk (spider, viscid) ≈ 1400 420 (0.31), 1000 (40d)
Water, liquid, at STP 4218 4181 (hardcoded)
Water, solid, at STP 2114 4181 (hardcoded)
Wood [†] 1700 to 2900 420 (hardcoded prior to 0.31)

[†]  The specific heat of wood varies somewhat between different species. However, the variance is dominated by the moisture content of the wood. Moreover, wet wood behaves very differently below freezing. See [1]


The default value for SPEC_HEAT depends on the material and on the version of Dwarf Fortress in question.


Wikipedia and engineeringtoolbox have tables with other materials' specific heats.

References may report specific heat in joules per gram per degree Celsius. Because the Celsius and Kelvin systems use the same scale, differing only in their zero points, this is exactly the same as reporting in joules per gram per kelvin. J/g°C is equal to J/gK.

Sometimes references will give specific heat in calories per gram kelvin, or calories per kilogram kelvin. To convert calories per gram kelvin to °U, multiply by 4184. To convert calories per kilogram kelvin to °U units, multiply by 4.184.

Older references may give specific heat in B.T.U. per pound per degree Fahrenheit. 1 B.T.U. per pound per degree Fahrenheit is by definition equal to 1 calorie per gram per kelvin. Btu/lb°F is equal to cal/gK. So just multiply by 4184 to convert to °U.

Sometimes references will report specific heat of liquids or gases in joules (or calories) per mole per kelvin. The symbol for this is Cp (with a capital C). This is less useful for our purposes, as you will need to know the molecular weight (in grams per mole) of the compound to convert it.

An example: the molar heat capacity of ethyl alcohol is 113 Joules per mole per degree Centigrade. The molecular weight of ethyl alcohol is 46.07 grams per mole. Divide 113 J/mol°C by 46.07 g/mol, resulting in 2.45 J/g°C. Multiply by 1000 g/kg, resulting in 2450 J/kg°C. That is our desired result in DF units.

Note that specific latent heat is a different concept; do not use those values for SPEC_HEAT.