Furnaces and heat
as of 0.8.0
No furnace in this mod has a maximum temperature. Each one settles where the heat it makes and the heat it loses balance, and both sides of that ledger are on the block info. A furnace that stalls short of its melting point reads as a number, not as a mystery.
The two families
| Family | Furnaces | Fire | State |
|---|---|---|---|
| shaft | Cold blast furnace, Cupola furnace | a raceway in front of the tuyeres, blown under pressure | derived every tick from the charge; no timers |
| reverberatory | Coke oven, Puddling furnace, Heating furnace, Crucible furnace | a Firebox bed, drawn by the stack | stored, with soak and burn timers |
A shaft furnace burns a column of charge from the bottom. A reverberatory furnace burns a fuel bed beside the work and carries the flame over a bridge to it, so the fuel never touches the metal.
The law
T_process = max(ambient, T_in - T_loss)
Heat in:
fuelFactor = clamp(1 + 0.35 * (fuelFrac - 0.20) / 0.20, 0.35, 1.25)
airFactor = 0.5 + 0.5 * clamp(blastSupply, 0, 1)
T_in = 950 + 900 * fuelFactor * airFactor + 0.35 * max(0, blastTemp - ambient)
Heat out:
T_loss = 120 + chargeLoss + 1.0 * max(0, 20 - ambient)
fuelFrac is the carbon fraction of what stands in the shaft, not a volume fraction of coke: coke
counts 1.0 per unit and charcoal 0.5, so how the rounds are laid is the one dial. airFactor is 0.5
with no blast and 1.0 at full supply, and it multiplies the coke gain, so losing the blower costs
450 C at the reference burden rather than a proportional slice. The preheat term needs blast hotter
than ambient, which only a charged cowper stove supplies; there is none in this mod, so every
furnace here runs cold blast and that term is zero.
chargeLoss is linear in how full the furnace is, which inverts the obvious intuition: topping a
marginal furnace up makes it colder, and a thin charge runs hotter and exhausts sooner.
| Machine | Charge loss at full | Transfer loss over the bridge |
|---|---|---|
| shaft furnace | 310 C | none |
| reverberatory hearth | 100 C | 100 C |
| crucible hearth | 50 C | none, the pots stand in the fire |
What a cold blast furnace reaches
Full hearth, 20 C ambient, full blast supply, so T_loss is 430 C. Iron melts at 1482 C.
| Burden carbon | fuelFactor | T_in | T_process | Melts iron |
|---|---|---|---|---|
| 10 per cent | 0.825 | 1692.5 C | 1262.5 C | no |
| 20 per cent | 1.000 | 1850.0 C | 1420.0 C | no |
| 30 per cent | 1.175 | 2007.5 C | 1577.5 C | yes |
| 34.3 per cent or richer | 1.250 (capped) | 2075.0 C | 1645.0 C | yes |
| 20 per cent, blowers off | 1.000 | 1400.0 C | 970.0 C | no |
Break-even on cold blast at a full shaft is 23.94 per cent carbon. A cold blast furnace therefore wants a richer charge than the 20 per cent reference, and pays for it in fuel. Running lean is what the steam tier is for.
A half-full shaft pays half the charge loss, so T_loss falls to 275 C and a 20 per cent charge
settles at 1575 C and melts. That is the other lever, and it costs campaign length.
The Cupola furnace melts cast iron at 1200 C, which a plain 20 per cent charge clears by 220 C on cold blast. Remelting scrap is an iron-age job; reducing ore is not.
Melt speed
factor = clamp(1 + 0.75 * (T - meltPoint) / 200, 0.5, 2.0)
Superheat buys speed on both families. A shaft furnace has no melt cycle to wait out, so the factor multiplies the burden it renders per second; a firebox furnace fires its melt cycle every 10 seconds divided by the factor. There is no second yield constant anywhere: a hotter furnace makes more iron from the same carbon.
Blast: what the burden demands
Neither the pressure a furnace needs nor the air it draws is a property of the machine. Both come out of the burden's carbon fraction, and they move in opposite directions, because the fuel layers are the permeable skeleton the blast gets through. The pressure is a threshold and not a target: a line standing below it is not drawn on at all, however much air it holds.
pressure = clamp(2.0 + (0.20 - fuelFrac) * 7.5, 1.2, 6.0) atm
draw = 14 * clamp(fuelFrac / 0.20, 0.4, 1.8) L/s per tuyere
Cold blast furnace, two tuyeres:
| Burden carbon | Pressure demanded | Draw per tuyere | Draw total |
|---|---|---|---|
| 10 per cent | 2.75 atm | 7.0 L/s | 14.0 L/s |
| 20 per cent | 2.00 atm | 14.0 L/s | 28.0 L/s |
| 30 per cent | 1.25 atm | 21.0 L/s | 42.0 L/s |
| 36 per cent or richer | 1.20 atm | 25.2 L/s | 50.4 L/s |
The Cupola furnace draws 12 L/s through its single tuyere at the reference fraction and asks the same pressure.
The air comes from a Twin-Tub Blower, which is the tier's only air source and needs nothing but an axle: a vanilla waterwheel or windmill runs it. It delivers 45 L/s at an axle speed of 1.5 or above, nothing at 0.5 or below, and raises the line to at most 2.2 atm. That ceiling is the tier gate. A 30 per cent burden asks 1.25 atm and blows easily; a 10 per cent burden asks 2.75 atm, which is above the blower's ceiling and above what Plated Piping (Straight) will hold. See Pipe networks and pressure.
Blast supply is arrived air over demanded air, and it is a cliff rather than a slope. A tuyere draws nothing unless the line at it stands at or above the pressure the burden demands, so a main a tenth of an atmosphere short delivers no air at all: supply reads zero, the air factor sits at 0.5 and the furnace runs exactly as though nothing were piped to it. There is no partial credit for being close, and raising the line to the demanded pressure is the whole of blowing a furnace in.
A lit furnace that needs blast and gets under 0.1 of its demand flags air-starved on its block info. On a shaft furnace that is a readout and nothing else: the fire goes on burning at natural draught.
Natural draught: the stack
A reverberatory furnace has no blower. Its air factor comes from its chimney instead:
airFactor = 0.5 + 0.11 * sqrt(courses) - 0.00102 * courses^2
then multiplied by 0.35 if the Chimney Damper is shut and by 0.6 if a Charge Door is open and spilling the pull into the room. A course is one air cell ringed by brick on all four sides. The curve peaks at 9 courses and declines past it: a stack built too tall makes the furnace worse rather than merely no better, and the block info names both the count standing and the count it is rated at.
Every reverberatory furnace but the Crucible furnace has its stack fixed by its own layout. The crucible furnace counts what the player built on top of its flue, which is what makes its chimney its temperature dial.
Refractory tier
Shaft furnaces and the two reverberatory hearths are laid in refractory bricks of any tier. The core takes the tier it was crafted from and wears its texture; the layout accepts any tier in the walls. Tier is appearance, not a rating. The Coke oven is ordinary fire brick throughout, deliberately, because everything downstream waits on it.
Lighting and going out
A shaft furnace is blown in through a tap. A newly built Iron Tap or Slag Tap comes plugged. An empty hand on a plugged tap breaks the plug out; a flame held against an open tap reaches in and lights the charge; 4 fire clay on an open tap stops it again. Breaking a plug refunds nothing, so blowing a furnace in costs one clay plug each time.
Ignition is positional and has nothing to do with the blast: carbon has to stand at the raceway of every column, and a flame held through an open tap lights it whatever the blowers are doing. Air is what carries a lit furnace to a melting point, not what lights it. A furnace with no blast at all burns on at an air factor of 0.5, which is natural draught. A reverberatory furnace lights instead when its bed is full and a flame is put to it.
Shaft state is derived every tick, with nothing stored:
| Reported | Means |
|---|---|
| Idle | not lit, or no carbon left at the raceway |
| Firing | burning, but the burden at the raceway is not at its melting point, or the charge is not something the furnace converts |
| Melting | burning and rendering metal |
A furnace can run Firing for a whole campaign and make nothing. That is the chill: a cold band stops its column, everything above rests on it, and a hung column never brings fresh carbon down, so a chilled furnace goes out within minutes on its own. The recovery route is to break the charge blocks out of the shaft.
Reverberatory furnaces store their state and count disruptions instead. Each of these adds one on the tick it is true:
- the bed thinned out below half its capacity
- exhaust fed back into a tuyere
- the exhaust network full
- the product pool full
- blast below 0.1 of demand, on a furnace that needs blast
One disruption gives 30 seconds of grace. Two or more give none, and the furnace goes out on that tick. A tick with no disruptions clears the counter outright.
Only the first of the five bites in this mod. The other four need cells no reverberatory furnace here has: a tuyere for the exhaust feedback and the blast floor, a gas outlet for the exhaust network, a pool for the product. They are in the shared code path for machines that carry those cells. A hearth fire is lost by letting its bed burn down past half, and by nothing else.
Tapping
A shaft furnace pools its products on the crucible floor. Iron and slag pool separately, each capped at 640 units per pool cell, and a full pool of either stops the melt, so the slag has to be flushed as well as the iron. The Cold blast furnace has three pool cells; the Cupola furnace has one.
An open tap pours continuously; there is no separate pour toggle. The iron notch sits at the crucible floor and drains the metal, the slag notch sits higher in the same wall and skims what floats. A tap considers 50 units of pool per tick and passes 0.6 of them at the iron notch and 0.8 at the cinder notch, slag being thinner.
With a canal start under the spout the metal runs off to be cast. With nothing under it, the metal solidifies at the tap and is chiselled free by hand.
What goes wrong
The furnace is lit and the temperature will not climb. Read the ledger on the block info. Either the charge is too lean, in which case the fix is richer rounds, or the blast supply is short, in which case the fix is the blower or the pipe.
The blast line will not hold pressure. An open pipe end vents to atmosphere, and a leaking run is clamped to 1 atm no matter how hard it is blown. Cap every end against a port, a valve or an outlet.
A reverberatory furnace went out on its own. Its bed burned down past half. That is the one disruption a furnace in this mod can suffer, and it puts the fire out 30 seconds later. Charge the Firebox before it thins.
The temperature is right and nothing is being made. The state says Firing, not Melting. Either the raceway's burden band is below the melting point, or the shaft holds charge the furnace does not convert, such as ore burden in a cupola, which burns, counts toward fullness and renders nothing.
A wall was knocked out and the furnace will not re-light. A breach vents the blast, so the furnace drops to natural draught while it is lit and refuses to light again once it is out. Complete the structure before putting a flame to it.
The pool stopped filling. One of the two pools is full, which stops the melt. Tap the iron and the slag both.