- 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.
40d:Specific heat
The SPEC_HEAT token
The SPEC_HEAT token controls 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 [1] [2] [3].
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 degree Kelvin, or exactly the more rarely reported cp in Joules per kilogram per degree Kelvin.
It is not understood why the game uses the °C or °K scale here, while using the °DF = °F + 9968 scale elsewhere.
Sample specific heats as used by Dwarf Fortress
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 | not in raws |
Alcohol, ethyl, 100 proof | 3856 | not in raws |
Beef, carcass, not frozen | 2850 | not in raws |
Charcoal | ≈ 1000 | not in raws |
Cheese, Cheddar, aged 60 weeks | 3012 | not in raws |
Coke | 850 | not in raws |
Glass, crystal | ≈ 500 | not in raws |
Glass, silica | 790 | not in raws |
Sand | 835 | not in raws |
Silk (silkworm?) | ≈ 1380 | not in raws |
Silk (hornet) | ≈ 1500 | not in raws |
Silk (spider, viscid) | ≈ 1400 | not in raws |
Water, liquid, at STP | 4218 | not in raws |
Water, solid, at STP | 2114 | not in raws |
Wood [†] | 1700 to 2900 | 420, hardcoded |
[*] Note the inconsistency in the Carbon values.
[†] 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 [4]
The default value for SPEC_HEAT is 409. However, default values are not established for the various creature_product_SPEC_HEAT tokens.
[5] and [6] have tables with other materials’ specific heats.
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. J/g°C is equal to J/g°K
Sometimes references will give specific heat in calories per gram Kelvin, or calories per kilogram Kelvin. To convert calories per gram Kelvin to DF units, multiply by 4184. To convert calories per kilogram Kelvin to DF 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 degree Kelvin. Btu/lb°F is equal to cal/g°K. So just multiply by 4184 to convert to DF units.
Sometimes references will report specific heat of liquids or gases in Joules (or calories) per mole per degree 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.