Actions

Difference between revisions of "Furnace temperature and pressure math"

From Unofficial Stationeers Wiki

Line 1: Line 1:
 +
=== Introduction ===
 +
This page is about using math to predict how combustions in furnaces behaves. It's not about engineering or design.
  
=== Furnace behaviour ===
+
The furnace is one of the most important objects in the entire game, but it's also complicated and hard to use, especially when making alloys and super-alloys. As of writing, there are several loop holes that makes a furnace easier to control (insulating a furnace inside a fully welded frame, or keeping a furnace in a sealed room with vaccum, or surrounding a furnace with an atmosphere with the same temperature as the gas inside of the furnace; it's also possible to manipulate the Air Conditioner into superheating gas to avoid using fuel, which is aided by the fact that insulated pipes and tanks never loose temperature). Should the game suddenly patch any of these things, this page could be helpful, but right now there is abosolutely no need to know any of this.
*Only the gas inside the furnace have a temperature (the furnace itself has no temperature, nor will it take heat away from the gas inside)
 
*No side reactions have been observed (fuel can be mixed with any other gas with predictable results)
 
*For a combustion to occur, the gas must have at least 5% each of both O2 and H2
 
*For a combustion to occur, there must be a minimum pressure of 10 kPa ''(0.2.2733.13309 changelog)''
 
*A combustion will consume 95% of the limiting ingredient, O2 or H2 (if there is 10 mol H2, and excess O2, 0.5 mol H2 will remain afterwards)
 
*Combustion reaction formula: 1 O2 + 2 H2 -> 6 CO2 + 3 X + 593 107.3684 J ''(this energy value is an approximation, see discussions for details)''
 
*Each press of ignite adds 5 J of energy to the furnace (only the advanced furnace was tested) ''(see discussions)''
 
*A furnace built in a sealed room with vacuum will not loose temperature (this is seen during the furnace tutorial), nor will a furnace built partially/completely inside a fully welded frame.
 
*Ores placed in a furnace will release gases, this reduces the temperature and increases the mols of gas.
 
*Ingots placed in a furnace will reduce the temperature (~half compared to the ore, only copper tested) without releasing gas.
 
*Inserted ores/ingots are processed at a speed of 10 per second, so 5 seconds per stack of 50.
 
 
 
Regular furnace
 
*The inlet pipe will only allow gas to enter the furnace, and it will only do so if the pressure in the pipe is higher than the pressure inside the furnace. This behaviour is similar to that of the pressure regulator.
 
*The outlet pipe acts like an extension of the furnace, increasing it's volume by 100L per pipe section, and it can be used as an alternative inlet point if so desired (but it acts a little bit quirky, the pipe and the furnace will have different %gas proportions when doing so, because the gas will only move when there is a pressure difference between the two). A larger furnace volume basically only means it will require a bit more gas, +10% more mol for each unsealed pipe section attached to it, everything else will be the same. The number of junctions on a pipe doesn't matter, the volume is always 100L.
 
*Removing pipes connected to the outlet side should be avoided when the furnace is filled with fuel, doing so can cause some of the gas to vanish permanently.
 
 
 
Advanced furnace
 
*The inlet pipe is the only place where gas can enter the furnace (not counting the ore slot). It has a built in volume pump.
 
*The outlet pipe is the only place where gas can exit the furnace. It has a built in volume pump.
 
*Unlike the regular furnace, the advanced one always have a volume of 1000 L, regardless of how many pipes are attached to it. This saves a little bit of fuel.
 
 
 
 
 
=== Known errors of the math formulas ===
 
 
 
The following formulas were created by hand, no data mining or peeking into the game code. They have a tiny unexplained error that can appear in the 6th digit and it's most noticeable at very low fuel pressures.
 
 
 
 
 
=== Using perfect O2 + 2 H2 fuel ===
 
 
 
'''Temperature peak'''
 
 
 
*T(after) = ( T(before)*61.9 + 563452 ) / 234.515
 
**T(after) is the temperature in Kelvin after ignition
 
**T(before) is the temperature in Kelvin before ignition
 
**The 563452 value is the released energy per mol at 95% combustion efficiency, the full energy isn't released
 
**61.9 is the heat capacity for 1 mol O2 and 2 mol H2, the sum of their specific heat values, the mol amounts comes from the reaction formula
 
**234.515 is the heat capacity for the gas obtained when 1 mol O2 and 2 mol H2 combusts with 95% efficiency (243.6 * 0.95 + 61.9 * 0.05)
 
*The number of mol combusted doesn't actually matter for the temperature, it will always reach the same value. More fuel will however release more total energy which means it takes longer for the furnace to cool down.
 
*The equation can be arrived at by using the released energy per mol and the specific heat per mol of the mixture before and after combustion, also account for the 95% combustion efficiency.
 
 
 
'''Pressure peak'''
 
 
 
*P(after) = 2.9 * P(before) * T(after) / T(before)
 
**P(after) is the pressure in Pa after ignition
 
**P(before) is the pressure in Pa before ignition
 
**T(after) is the temperature in Kelvin after ignition
 
**T(before) is the temperature in Kelvin before ignition
 
**2.9 is the multiple of the number of mol inside the furnace after combustion with 95% efficiency based on the reaction formula
 
*The equation can be made from two sets of PV=nRT (one before and one after combustion), linking them via n (combustion makes 3 mols of gas turn into 9 mols), and adjust for the 95% combustion efficiency.
 
 
 
 
 
=== Using diluted fuel ===
 
  
Unreactive gases can be added before the ignition to increase pressure and decrease temperature. An excess of either O2 or H2 also counts as unreactive. These equations can be used to predict the Temperature and Pressure inside the furnace after ignition. It's also possible to use this in reverse, and calculate the mixture of fuel and dilutant that is needed to reach a desired Temperature and Pressure upon ignition, more about that below.
+
There are two MIPS programs included (click the links to expand/collpase the code), that can do the math on this page inside the game. The first script predicts what temperature and pressure a furnace will reach when it's ignited, based on the gas currently inside of it. The second script is used to predict how much perfect fuel (33.3 oxygen and 66.7% volatiles) and how much other gas (not fuel) that needs to be combined in a furnace to reach a desired temperature and pressure on ignition.
  
 
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}">
 
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}">
Line 62: Line 11:
 
#if combustion can't occur, display current temperature and pressure
 
#if combustion can't occur, display current temperature and pressure
  
alias furnace d0
+
alias furnace d0       #advanced or regular
alias consoleTemp d1    #small LED display
+
alias consoleTemp d1    #console, small LED
alias consolePres d2    #small LED display
+
alias consolePres d2    #console, small LED
  
 
alias ratioOx r5
 
alias ratioOx r5
Line 135: Line 84:
 
</pre>
 
</pre>
 
</div>
 
</div>
 +
<br>
 +
 +
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that calculates how to mix fuel and a diluting gas to reach a desired temperature and pressure}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that calculates how to mix fuel and a diluting gas to reach a desired temperature and pressure}}">
 +
<pre>
 +
#A script for calculating how to dilute fuel inside a..
 +
#..furnace to reach a desired temperature and pressure
 +
 +
# OBS! This script requires perfect fuel (O2 + 2 H2)
 +
# The diluting gas can be anything, even a mix
 +
# Temperature of fuel and dilutant can be different
 +
 +
#Inputs are desired temperature (K) and pressure (kPa)
 +
#Outputs are the pressure of fuel (kPa) and..
 +
#..the total pressure (kPa) after adding dilutant
 +
 +
alias inputTemp d0          #logic memory
 +
alias inputPres d1          #logic memory
 +
alias outputFuel d2        #console, small LED
 +
alias outputTotal d3        #console, small LED
 +
alias fuelAnalyzer d4      #pipe analyzer
 +
alias dilutantAnalyzer d5  #pipe analyzer
 +
 +
alias oldTmix r10
 +
alias Tmix r11
 +
alias fuelSpecificHeat r12
 +
alias dilutantSpecificHeat r13
 +
alias ratioFuel r14
 +
alias pressureBefore r15
 +
 +
main:
 +
yield
 +
#calculate specific heat values
 +
div r0 61.9 3
 +
move fuelSpecificHeat r0
 +
move r3 13
 +
move r4 5
 +
jal specficHeatCalculation
 +
 +
#calculate how to reach input values
 +
l r5 fuelAnalyzer Temperature 
 +
l r6 inputTemp Setting
 +
l r7 dilutantAnalyzer Temperature
 +
move oldTmix r5
 +
iterate:
 +
jal fuelRatioCalculation
 +
jal temperatureMixCalculation
 +
sub r0 Tmix oldTmix
 +
abs r0 r0
 +
move oldTmix Tmix
 +
bgt r0 1 iterate
 +
blt ratioFuel 0.15 noCombustion
 +
 +
#calculate total fuel+dilutant pressure
 +
l r8 inputPres Setting
 +
mul r1 ratioFuel 1.9
 +
add r1 r1 1
 +
mul r1 r1 r6
 +
mul r0 r8 Tmix
 +
div pressureBefore r0 r1
 +
 +
#calculate fuel pressure
 +
mul r0 pressureBefore r5
 +
mul r0 ratioFuel r0
 +
div r0 r0 Tmix
 +
 +
#check for too high input temperature
 +
bgt r0 pressureBefore noCombustion
 +
 +
#display
 +
s outputFuel Setting r0
 +
s outputTotal Setting pressureBefore
 +
j main
 +
 +
noCombustion:
 +
s outputFuel Setting -1
 +
s outputTotal Setting -1
 +
j main
 +
 +
fuelRatioCalculation:
 +
div r0 563452 3
 +
sub r4 fuelSpecificHeat dilutantSpecificHeat
 +
mul r1 r5 r4
 +
add r0 r0 r1
 +
mul r1 r6 r4
 +
sub r0 r0 r1
 +
div r1 172.615 3
 +
mul r1 r6 r1
 +
sub r0 r0 r1
 +
sub r1 r6 r5
 +
mul r1 r1 dilutantSpecificHeat
 +
div ratioFuel r1 r0
 +
j ra
 +
 +
temperatureMixCalculation:
 +
sub r4 1 ratioFuel
 +
mul r0 dilutantSpecificHeat r4
 +
mul r1 ratioFuel fuelSpecificHeat
 +
add r3 r0 r1
 +
mul r0 r7 r4
 +
mul r0 r0 dilutantSpecificHeat
 +
mul r1 r5 ratioFuel
 +
mul r1 r1 fuelSpecificHeat
 +
add r0 r0 r1
 +
div Tmix r0 r3
 +
j ra
 +
 +
specficHeatCalculation:
 +
l r5 dr4 RatioOxygen
 +
l r6 dr4 RatioVolatiles
 +
l r7 dr4 RatioCarbonDioxide
 +
l r8 dr4 RatioPollutant
 +
l r9 dr4 RatioNitrogen
 +
l r10 dr4 RatioNitrousOxide
 +
mul r0 r5 21.1
 +
mul r1 r6 20.4
 +
add r0 r0 r1
 +
mul r1 r7 28.2
 +
add r0 r0 r1
 +
mul r1 r8 24.8
 +
add r0 r0 r1
 +
mul r1 r9 20.6
 +
add r0 r0 r1
 +
mul r1 r10 23
 +
add rr3 r0 r1
 +
j ra
 +
 +
### End Script ###
 +
 +
</pre>
 +
</div>
 +
 +
=== Furnace behaviour ===
 +
*Only the gas inside the furnace have a temperature (the furnace itself has no temperature, nor will it take heat away from the gas inside)
 +
*No side reactions have been observed (fuel can be mixed with any other gas with predictable results)
 +
*For a combustion to occur, the gas must have at least 5% each of both O2 and H2
 +
*For a combustion to occur, there must be a minimum pressure of 10 kPa ''(0.2.2733.13309 changelog)''
 +
*A combustion will consume 95% of the limiting ingredient, O2 or H2 (if there is 10 mol H2, and excess O2, 0.5 mol H2 will remain afterwards)
 +
*Combustion reaction formula: 1 O2 + 2 H2 -> 6 CO2 + 3 X + 593 107.3684 J ''(this energy value is an approximation, see discussions for details)''
 +
*Each press of ignite adds 5 J of energy to the furnace (only the advanced furnace was tested) ''(see discussions)''
 +
*A furnace built in a sealed room with vacuum will not loose temperature (this is seen during the furnace tutorial), nor will a furnace built partially/completely inside a fully welded frame.
 +
*Ores placed in a furnace will release gases, this reduces the temperature and increases the mols of gas.
 +
*Ingots placed in a furnace will reduce the temperature (~half compared to the ore, only copper tested) without releasing gas.
 +
*Inserted ores/ingots are processed at a speed of 10 per second, so 5 seconds per stack of 50.
 +
 +
Regular furnace
 +
*The inlet pipe will only allow gas to enter the furnace, and it will only do so if the pressure in the pipe is higher than the pressure inside the furnace. This behaviour is similar to that of the pressure regulator.
 +
*The outlet pipe acts like an extension of the furnace, increasing it's volume by 100L per pipe section, and it can be used as an alternative inlet point if so desired (but it acts a little bit quirky, the pipe and the furnace will have different %gas proportions when doing so, because the gas will only move when there is a pressure difference between the two). A larger furnace volume basically only means it will require a bit more gas, +10% more mol for each unsealed pipe section attached to it, everything else will be the same. The number of junctions on a pipe doesn't matter, the volume is always 100L.
 +
*Removing pipes connected to the outlet side should be avoided when the furnace is filled with fuel, doing so can cause some of the gas to vanish permanently.
 +
 +
Advanced furnace
 +
*The inlet pipe is the only place where gas can enter the furnace (not counting the ore slot). It has a built in volume pump.
 +
*The outlet pipe is the only place where gas can exit the furnace. It has a built in volume pump.
 +
*Unlike the regular furnace, the advanced one always have a volume of 1000 L, regardless of how many pipes are attached to it. This saves a little bit of fuel.
 +
 +
 +
=== Known errors of the math formulas ===
 +
 +
The following formulas were created by hand, no data mining or peeking into the game code. They have a tiny unexplained error that can appear in the 6th digit and it's most noticeable at very low fuel pressures.
 +
 +
 +
=== Using perfect O2 + 2 H2 fuel ===
 +
 +
'''Temperature peak'''
 +
 +
*T(after) = ( T(before)*61.9 + 563452 ) / 234.515
 +
**T(after) is the temperature in Kelvin after ignition
 +
**T(before) is the temperature in Kelvin before ignition
 +
**The 563452 value is the released energy per mol at 95% combustion efficiency, the full energy isn't released
 +
**61.9 is the heat capacity for 1 mol O2 and 2 mol H2, the sum of their specific heat values, the mol amounts comes from the reaction formula
 +
**234.515 is the heat capacity for the gas obtained when 1 mol O2 and 2 mol H2 combusts with 95% efficiency (243.6 * 0.95 + 61.9 * 0.05)
 +
*The number of mol combusted doesn't actually matter for the temperature, it will always reach the same value. More fuel will however release more total energy which means it takes longer for the furnace to cool down.
 +
*The equation can be arrived at by using the released energy per mol and the specific heat per mol of the mixture before and after combustion, also account for the 95% combustion efficiency.
 +
 +
'''Pressure peak'''
 +
 +
*P(after) = 2.9 * P(before) * T(after) / T(before)
 +
**P(after) is the pressure in Pa after ignition
 +
**P(before) is the pressure in Pa before ignition
 +
**T(after) is the temperature in Kelvin after ignition
 +
**T(before) is the temperature in Kelvin before ignition
 +
**2.9 is the multiple of the number of mol inside the furnace after combustion with 95% efficiency based on the reaction formula
 +
*The equation can be made from two sets of PV=nRT (one before and one after combustion), linking them via n (combustion makes 3 mols of gas turn into 9 mols), and adjust for the 95% combustion efficiency.
 +
 +
 +
=== Using diluted fuel ===
  
 +
Unreactive gases can be added before the ignition to increase pressure and decrease temperature. An excess of either O2 or H2 also counts as unreactive.
  
 
'''Temperature peak'''
 
'''Temperature peak'''
Line 383: Line 518:
  
 
=== Calculating how to reach a desired Temperature and Pressure on ignition ===
 
=== Calculating how to reach a desired Temperature and Pressure on ignition ===
 
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that calculates how to mix fuel and a diluting gas to reach a desired temperature and pressure}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that calculates how to mix fuel and a diluting gas to reach a desired temperature and pressure}}">
 
<pre>
 
#A script for calculating how to dilute fuel..
 
#..to reach a desired temperature and pressure..
 
#..on ignition
 
 
# OBS! This script requires perfect fuel (O2 + 2 H2)
 
# A normal furnace can't have any pipes on the output
 
# The diluting gas can be anything, even a mix
 
# Temperature of fuel and dilutant can be different
 
 
#Inputs are desired temperature and pressure (kPa)
 
#Outputs are the pressure of fuel (kPa) and..
 
#..the total pressure (kPa) after adding dilutant
 
 
alias inputTemp d0          #logic memory
 
alias inputPres d1          #logic memory
 
alias outputFuel d2        #console, small LED
 
alias outputTotal d3        #console, small LED
 
alias fuelAnalyzer d4      #pipe analyzer
 
alias dilutantAnalyzer d5  #pipe analyzer
 
 
alias oldTmix r10
 
alias Tmix r11
 
alias fuelSpecificHeat r12
 
alias dilutantSpecificHeat r13
 
alias ratioFuel r14
 
alias pressureBefore r15
 
 
main:
 
yield
 
#calculate specific heat values
 
div r0 61.9 3
 
move fuelSpecificHeat r0
 
move r3 13
 
move r4 5
 
jal specficHeatCalculation
 
 
#calculate how to reach input values
 
l r5 fuelAnalyzer Temperature 
 
l r6 inputTemp Setting
 
l r7 dilutantAnalyzer Temperature
 
move oldTmix r5
 
iterate:
 
jal fuelRatioCalculation
 
jal temperatureMixCalculation
 
sub r0 Tmix oldTmix
 
abs r0 r0
 
move oldTmix Tmix
 
bgt r0 1 iterate
 
blt ratioFuel 0.15 noCombustion
 
 
#calculate total fuel+dilutant pressure
 
l r8 inputPres Setting
 
mul r1 ratioFuel 1.9
 
add r1 r1 1
 
mul r1 r1 r6
 
mul r0 r8 Tmix
 
div pressureBefore r0 r1
 
 
#calculate fuel pressure
 
mul r0 pressureBefore r5
 
mul r0 ratioFuel r0
 
div r0 r0 Tmix
 
 
#check for too high input temperature
 
bgt r0 pressureBefore noCombustion
 
 
#display
 
s outputFuel Setting r0
 
s outputTotal Setting pressureBefore
 
j main
 
 
noCombustion:
 
s outputFuel Setting -1
 
s outputTotal Setting -1
 
j main
 
 
fuelRatioCalculation:
 
div r0 563452 3
 
sub r4 fuelSpecificHeat dilutantSpecificHeat
 
mul r1 r5 r4
 
add r0 r0 r1
 
mul r1 r6 r4
 
sub r0 r0 r1
 
div r1 172.615 3
 
mul r1 r6 r1
 
sub r0 r0 r1
 
sub r1 r6 r5
 
mul r1 r1 dilutantSpecificHeat
 
div ratioFuel r1 r0
 
j ra
 
 
temperatureMixCalculation:
 
sub r4 1 ratioFuel
 
mul r0 dilutantSpecificHeat r4
 
mul r1 ratioFuel fuelSpecificHeat
 
add r3 r0 r1
 
mul r0 r7 r4
 
mul r0 r0 dilutantSpecificHeat
 
mul r1 r5 ratioFuel
 
mul r1 r1 fuelSpecificHeat
 
add r0 r0 r1
 
div Tmix r0 r3
 
j ra
 
 
specficHeatCalculation:
 
l r5 dr4 RatioOxygen
 
l r6 dr4 RatioVolatiles
 
l r7 dr4 RatioCarbonDioxide
 
l r8 dr4 RatioPollutant
 
l r9 dr4 RatioNitrogen
 
l r10 dr4 RatioNitrousOxide
 
mul r0 r5 21.1
 
mul r1 r6 20.4
 
add r0 r0 r1
 
mul r1 r7 28.2
 
add r0 r0 r1
 
mul r1 r8 24.8
 
add r0 r0 r1
 
mul r1 r9 20.6
 
add r0 r0 r1
 
mul r1 r10 23
 
add rr3 r0 r1
 
j ra
 
 
### End Script ###
 
</pre>
 
</div>
 
  
 
There are only 4 variables required for this calculation.
 
There are only 4 variables required for this calculation.
Line 529: Line 534:
 
Diluting the fuel can be done in the furnace directly or in pipes outside of it. There are good and bad points with both ways. Diluting outside fits the advanced furnace best (the built-in volume pump can easily move all of the prepared gas inside), diluting inside fits the regular furnace best (the exhaust outlet can be used as an inlet but it's a little bit quirky, and diluting in pipes outside means not all of the prepared gas can be moved into the furnace (the pipe directly on the furnace inlet will hold on to some of the diluted fuel) so extra gas must always be prepared).
 
Diluting the fuel can be done in the furnace directly or in pipes outside of it. There are good and bad points with both ways. Diluting outside fits the advanced furnace best (the built-in volume pump can easily move all of the prepared gas inside), diluting inside fits the regular furnace best (the exhaust outlet can be used as an inlet but it's a little bit quirky, and diluting in pipes outside means not all of the prepared gas can be moved into the furnace (the pipe directly on the furnace inlet will hold on to some of the diluted fuel) so extra gas must always be prepared).
  
It is worth noting that for some temperatures and pressures suitable for advanced alloys, the calculation can suggest a fuel ratio below 0.15. This will not work however, since it means having less than 5% oxygen, that mix will not combust (unless the dilutant contains extra oxygen).  
+
It is worth noting that for some temperatures and pressures suitable for advanced alloys, the calculation can suggest a fuel ratio below 0.15. This will not work however, since it means having less than 5% oxygen, that mix will not combust (unless the dilutant contains extra oxygen). This is a particular problem with Waspalloy (400-800K, 50+MPa), that can be solved by having oxygen in the diluting gas, or by igniting the furnace prematurely before all the dilutant has been added.
  
 
The dilution can be double checked by using the tablet and looking at the mol% values for the fuel mix. If the outlet on the regular furnace was used as an inlet, the first gas that entered there will have been mostly pushed back into the furnace, making the mol% values diffrent but the total number of mol are still the same.
 
The dilution can be double checked by using the tablet and looking at the mol% values for the fuel mix. If the outlet on the regular furnace was used as an inlet, the first gas that entered there will have been mostly pushed back into the furnace, making the mol% values diffrent but the total number of mol are still the same.

Revision as of 09:03, 18 October 2021

Introduction

This page is about using math to predict how combustions in furnaces behaves. It's not about engineering or design.

The furnace is one of the most important objects in the entire game, but it's also complicated and hard to use, especially when making alloys and super-alloys. As of writing, there are several loop holes that makes a furnace easier to control (insulating a furnace inside a fully welded frame, or keeping a furnace in a sealed room with vaccum, or surrounding a furnace with an atmosphere with the same temperature as the gas inside of the furnace; it's also possible to manipulate the Air Conditioner into superheating gas to avoid using fuel, which is aided by the fact that insulated pipes and tanks never loose temperature). Should the game suddenly patch any of these things, this page could be helpful, but right now there is abosolutely no need to know any of this.

There are two MIPS programs included (click the links to expand/collpase the code), that can do the math on this page inside the game. The first script predicts what temperature and pressure a furnace will reach when it's ignited, based on the gas currently inside of it. The second script is used to predict how much perfect fuel (33.3 oxygen and 66.7% volatiles) and how much other gas (not fuel) that needs to be combined in a furnace to reach a desired temperature and pressure on ignition.

#prediction of the ignition temperature and pressure of a furnace
#if combustion can't occur, display current temperature and pressure

alias furnace d0        #advanced or regular
alias consoleTemp d1    #console, small LED
alias consolePres d2    #console, small LED

alias ratioOx r5
alias ratioVol r6
alias specificHeat r12
alias fuel r13
alias temp r14
alias pres r15

define energyReleased 563452
define specificHeatInc 172.615
define gasMolInc 5.7

main:
yield
#calculate the specific heat of the gas mix
l r5 furnace RatioOxygen
l r6 furnace RatioVolatiles
l r7 furnace RatioCarbonDioxide
l r8 furnace RatioPollutant
l r9 furnace RatioNitrogen
l r10 furnace RatioNitrousOxide
l r11 furnace RatioWater
mul r0 r5 21.1
mul r1 r6 20.4
add r0 r0 r1
mul r1 r7 28.2
add r0 r0 r1
mul r1 r8 24.8
add r0 r0 r1
mul r1 r9 20.6
add r0 r0 r1
mul r1 r10 23
add r0 r0 r1
mul r1 r11 72
add specificHeat r0 r1
#calculate the fuel amount
div ratioVol ratioVol 2
min fuel ratioOx ratioVol
#calculate Temp after ignition
mul r0 fuel specificHeatInc
add r0 r0 specificHeat
mul r1 fuel energyReleased
l r2 furnace Temperature
mul r2 r2 specificHeat
add r1 r1 r2
div temp r1 r0
#calculate Pressure after ignition
l r0 furnace Temperature
l r1 furnace Pressure
mul r2 fuel gasMolInc
add r2 r2 1
mul r2 r2 temp
mul r2 r2 r1
div pres r2 r0
#check if pressure <10kPa and ratios <0.05
blt r1 10 noCombustion
blt ratioOx 0.05 noCombustion
blt ratioVol 0.05 noCombustion
j displayResults
noCombustion:
move temp r0
move pres r1
displayResults:
s consoleTemp Setting temp
s consolePres Setting pres
j main

### End Script ###


#A script for calculating how to dilute fuel inside a..
#..furnace to reach a desired temperature and pressure

# OBS! This script requires perfect fuel (O2 + 2 H2)
# The diluting gas can be anything, even a mix
# Temperature of fuel and dilutant can be different

#Inputs are desired temperature (K) and pressure (kPa)
#Outputs are the pressure of fuel (kPa) and..
#..the total pressure (kPa) after adding dilutant

alias inputTemp d0          #logic memory
alias inputPres d1          #logic memory
alias outputFuel d2         #console, small LED
alias outputTotal d3        #console, small LED
alias fuelAnalyzer d4       #pipe analyzer
alias dilutantAnalyzer d5   #pipe analyzer

alias oldTmix r10
alias Tmix r11
alias fuelSpecificHeat r12
alias dilutantSpecificHeat r13
alias ratioFuel r14
alias pressureBefore r15

main:
yield
#calculate specific heat values
div r0 61.9 3
move fuelSpecificHeat r0
move r3 13
move r4 5
jal specficHeatCalculation

#calculate how to reach input values
l r5 fuelAnalyzer Temperature   
l r6 inputTemp Setting
l r7 dilutantAnalyzer Temperature
move oldTmix r5
iterate:
jal fuelRatioCalculation
jal temperatureMixCalculation
sub r0 Tmix oldTmix
abs r0 r0
move oldTmix Tmix
bgt r0 1 iterate
blt ratioFuel 0.15 noCombustion

#calculate total fuel+dilutant pressure
l r8 inputPres Setting
mul r1 ratioFuel 1.9
add r1 r1 1
mul r1 r1 r6
mul r0 r8 Tmix
div pressureBefore r0 r1

#calculate fuel pressure
mul r0 pressureBefore r5
mul r0 ratioFuel r0
div r0 r0 Tmix

#check for too high input temperature
bgt r0 pressureBefore noCombustion

#display
s outputFuel Setting r0
s outputTotal Setting pressureBefore
j main

noCombustion:
s outputFuel Setting -1
s outputTotal Setting -1
j main

fuelRatioCalculation:
div r0 563452 3
sub r4 fuelSpecificHeat dilutantSpecificHeat
mul r1 r5 r4
add r0 r0 r1
mul r1 r6 r4
sub r0 r0 r1
div r1 172.615 3
mul r1 r6 r1
sub r0 r0 r1
sub r1 r6 r5
mul r1 r1 dilutantSpecificHeat
div ratioFuel r1 r0
j ra

temperatureMixCalculation:
sub r4 1 ratioFuel 
mul r0 dilutantSpecificHeat r4
mul r1 ratioFuel fuelSpecificHeat
add r3 r0 r1
mul r0 r7 r4
mul r0 r0 dilutantSpecificHeat 
mul r1 r5 ratioFuel
mul r1 r1 fuelSpecificHeat
add r0 r0 r1
div Tmix r0 r3
j ra

specficHeatCalculation:
l r5 dr4 RatioOxygen
l r6 dr4 RatioVolatiles
l r7 dr4 RatioCarbonDioxide
l r8 dr4 RatioPollutant
l r9 dr4 RatioNitrogen
l r10 dr4 RatioNitrousOxide
mul r0 r5 21.1
mul r1 r6 20.4
add r0 r0 r1
mul r1 r7 28.2
add r0 r0 r1
mul r1 r8 24.8
add r0 r0 r1
mul r1 r9 20.6
add r0 r0 r1
mul r1 r10 23
add rr3 r0 r1
j ra

### End Script ###

Furnace behaviour

  • Only the gas inside the furnace have a temperature (the furnace itself has no temperature, nor will it take heat away from the gas inside)
  • No side reactions have been observed (fuel can be mixed with any other gas with predictable results)
  • For a combustion to occur, the gas must have at least 5% each of both O2 and H2
  • For a combustion to occur, there must be a minimum pressure of 10 kPa (0.2.2733.13309 changelog)
  • A combustion will consume 95% of the limiting ingredient, O2 or H2 (if there is 10 mol H2, and excess O2, 0.5 mol H2 will remain afterwards)
  • Combustion reaction formula: 1 O2 + 2 H2 -> 6 CO2 + 3 X + 593 107.3684 J (this energy value is an approximation, see discussions for details)
  • Each press of ignite adds 5 J of energy to the furnace (only the advanced furnace was tested) (see discussions)
  • A furnace built in a sealed room with vacuum will not loose temperature (this is seen during the furnace tutorial), nor will a furnace built partially/completely inside a fully welded frame.
  • Ores placed in a furnace will release gases, this reduces the temperature and increases the mols of gas.
  • Ingots placed in a furnace will reduce the temperature (~half compared to the ore, only copper tested) without releasing gas.
  • Inserted ores/ingots are processed at a speed of 10 per second, so 5 seconds per stack of 50.

Regular furnace

  • The inlet pipe will only allow gas to enter the furnace, and it will only do so if the pressure in the pipe is higher than the pressure inside the furnace. This behaviour is similar to that of the pressure regulator.
  • The outlet pipe acts like an extension of the furnace, increasing it's volume by 100L per pipe section, and it can be used as an alternative inlet point if so desired (but it acts a little bit quirky, the pipe and the furnace will have different %gas proportions when doing so, because the gas will only move when there is a pressure difference between the two). A larger furnace volume basically only means it will require a bit more gas, +10% more mol for each unsealed pipe section attached to it, everything else will be the same. The number of junctions on a pipe doesn't matter, the volume is always 100L.
  • Removing pipes connected to the outlet side should be avoided when the furnace is filled with fuel, doing so can cause some of the gas to vanish permanently.

Advanced furnace

  • The inlet pipe is the only place where gas can enter the furnace (not counting the ore slot). It has a built in volume pump.
  • The outlet pipe is the only place where gas can exit the furnace. It has a built in volume pump.
  • Unlike the regular furnace, the advanced one always have a volume of 1000 L, regardless of how many pipes are attached to it. This saves a little bit of fuel.


Known errors of the math formulas

The following formulas were created by hand, no data mining or peeking into the game code. They have a tiny unexplained error that can appear in the 6th digit and it's most noticeable at very low fuel pressures.


Using perfect O2 + 2 H2 fuel

Temperature peak

  • T(after) = ( T(before)*61.9 + 563452 ) / 234.515
    • T(after) is the temperature in Kelvin after ignition
    • T(before) is the temperature in Kelvin before ignition
    • The 563452 value is the released energy per mol at 95% combustion efficiency, the full energy isn't released
    • 61.9 is the heat capacity for 1 mol O2 and 2 mol H2, the sum of their specific heat values, the mol amounts comes from the reaction formula
    • 234.515 is the heat capacity for the gas obtained when 1 mol O2 and 2 mol H2 combusts with 95% efficiency (243.6 * 0.95 + 61.9 * 0.05)
  • The number of mol combusted doesn't actually matter for the temperature, it will always reach the same value. More fuel will however release more total energy which means it takes longer for the furnace to cool down.
  • The equation can be arrived at by using the released energy per mol and the specific heat per mol of the mixture before and after combustion, also account for the 95% combustion efficiency.

Pressure peak

  • P(after) = 2.9 * P(before) * T(after) / T(before)
    • P(after) is the pressure in Pa after ignition
    • P(before) is the pressure in Pa before ignition
    • T(after) is the temperature in Kelvin after ignition
    • T(before) is the temperature in Kelvin before ignition
    • 2.9 is the multiple of the number of mol inside the furnace after combustion with 95% efficiency based on the reaction formula
  • The equation can be made from two sets of PV=nRT (one before and one after combustion), linking them via n (combustion makes 3 mols of gas turn into 9 mols), and adjust for the 95% combustion efficiency.


Using diluted fuel

Unreactive gases can be added before the ignition to increase pressure and decrease temperature. An excess of either O2 or H2 also counts as unreactive.

Temperature peak

  • T(after) = ( T(before) * sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2)*0.5) * 563452 ) / ( sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2)*0.5) * 172.615)
    • T(after) is the temperature in Kelvin after ignition
    • T(before) is the temperature in Kelvin before ignition
    • sum(x*y) is the sum of all x*y products, used to calculate the total sum of each gas specific heat multiplied with its ratio
    • specific heat is the value given for each gas, it refers to how much energy that is needed to increase the temperature by 1K per mol
    • ratio(gas)(before) is the molecular ratio, given by the tablet as % values for each gas in the mix, before ignition
    • min(x,y) returns the smallest value of x and y
    • 563452 comes from the energy released when 1 mol O2 and 2 mol H2 combusts with 95% efficiency
    • 172.615 comes from 0.95*(243.6-61.9), this is the change in heat capacity (specific heat*number of mol) of the gas when 1 mol O2 and 2 mol H2 combusts with 95% efficiency into its new compounds
    • The equation comes from calculating the Thermal Energy (temperature*specific heat per mol) before combustion, add the released energy calculated from the ratio of O2, then divide with the specific heat per mol of the gas obtained after combustion, which is known thanks to the reaction formula, all of this becomes the temperature on ignition

same thing but easier to read

  • T(after) = ( T(before) * specificHeat(before) + fuel * 563452 ) / ( specificHeat(before) + fuel * 172.615)
    • specificHeat(before) = RatioOxygen*21.1 + RatioVolatile*20.4 + RatioCarbonDioxide*28.2 + RatioPollutant*24.8 + RatioNitrogen*20.6 + RatioNitrousOxide*23
    • fuel = min(RatioOxygen,RatioVolatile/2)
    • Notice that water isn't included. That's because this haven't been verified, but water is probably treated as a gas by the game so a good guess is that it can be included simply by adding RatioWater*72 to the specificHeat sum.

Pressure peak

  • P(after) = P(before) * T(after) * ( 1 + 5.7*min(ratio(O2), ratio(H2)*0.5) ) / T(before)
    • this expression comes from two sets of PV=nRT, one after and one before combustion. The reaction formula say that for each mol consumed O2 we gain 6 mol gas (9-3), this creates a link between the equations, n(after) = n(before)*(1+min(ratio(O2), ratio(H2)*0.5)*6), then include the 0.95 efficiency as well


Using Ice(Oxite) and Ice(Volatiles)

There is a minor difference between which ice is added first. One can also observe a fluctuation in the combustion efficiency compared to when a furnace is fueled with gas. The end result also matters a little bit on how fast the ignition button is pressed when the first ice type is added while doing larger batches.

small batch, oxite first

  • Adding 1 oxite + 1 volatile, in that order
    • Temperature: 2222K, Pressure: 2.03MPa, moles of O2/H2 combusted: 11/21, Combustion efficiency (H2 limited): 95%
  • Adding 1 oxite + 2 volatiles, in that order
    • Temperature: 2514K, Pressure: 4.13MPa, moles of O2/H2 combusted: 22/43, Combustion efficiency (H2 limited): 98%

small batch, volatiles first

  • Adding 1 volatile + 1 oxite, in that order
    • Temperature: 2224K, Pressure: 2.03MPa, moles of O2/H2 combusted: 11/21, Combustion efficiency (H2 limited): 95%
  • Adding 2 volatiles + 1 oxite, in that order
    • Temperature: 2432K, Pressure: 3.93MPa, moles of O2/H2 combusted: 21/42, Combustion efficiency (H2 limited): 95%

large batch, oxite first

  • Adding 5 oxite + 10 volatiles, in that order
    • Temperature: 2463K, Pressure: 18.76MPa, moles of O2/H2 combusted: 96/190, Combustion efficiency (H2 limited): 86%
  • Adding 8 oxite + 16 volatiles, in that order
    • Temperature: 2537K, Pressure: 33.28MPa, moles of O2/H2 combusted: 172/344, Combustion efficiency (H2 limited): 98%


The difference in combustion efficiency is a mystery. One possibility is that this deviation is a result of multiple consecutive ignitions during the same game tick as the second ice is added, and then the gassy products are added on the following tick. Whatever the reason, using ice in a furnace creates some unpredictability, which give calculations a certain degree of error. So instead of using math, it seems better to write down a table of temperatures and pressure resulting from different amounts of ice.

Empty furnace, oxite first, no pipes attached
Ice 1 oxite 2 oxite 3 oxite 4 oxite 5 oxite 6 oxite 7 oxite 8 oxite
1 volatile 2222K
2.03MPa
 ?  ?  ?  ?  ?  ? 1094K
2.59MPa
2 volatile 2514K
4.13MPa
 ?  ?  ?  ?  ?  ?  ?
3 volatile  ?  ?  ?  ?  ?  ?  ?  ?
4 volatile  ?  ?  ?  ?  ?  ?  ?  ?
5 volatile  ?  ?  ?  ?  ?  ?  ?  ?
6 volatile  ?  ?  ?  ?  ?  ?  ?  ?
7 volatile  ?  ?  ?  ?  ?  ?  ?  ?
8 volatile  ?  ?  ?  ?  ?  ?  ?  ?
9 volatile  ?  ?  ?  ?  ?  ?  ?  ?
10 volatile  ?  ?  ?  ? 2463K
18.76MPa
 ?  ? 2400K
21.40MPa
11 volatile  ?  ?  ?  ?  ?  ?  ? 2451K
23.41MPa
12 volatile  ?  ?  ?  ?  ?  ?  ?  ?
13 volatile  ?  ?  ?  ?  ?  ?  ?  ?
14 volatile  ?  ?  ?  ?  ?  ?  ?  ?
15 volatile  ?  ?  ?  ?  ?  ?  ?  ?
16 volatile  ?  ?  ?  ?  ?  ?  ? 2537K
33.28MPa


Furnace cooling rate (unfinished)

unknown

Observations

  • the rate of cooling is temperature dependent, hotter cools faster (furnace temp - surrounding temp? how do vaccum behave?)
  • the rate of cooling is time dependent (game tick speed is once per 0.5 seconds)
  • the rate of cooling is mol dependent (small amounts cool faster)
  • pipes attached to the exhaust effect the cooling rate, and since they effectively increase the volume of the furnace the amount of mol of hot gas will be different too
  • adding ores decreases the temperature (do melting cost energy? or is this just from heating the trapped gases inside the ore?)

Possible experimental setup to measure dT/dt

  • Hold a tablet with an atmos cartridge in the right hand (so it can be read when the game is paused). Aim the tablet against the furnace and pause with ESC, double tap ESC to move the game forward one tick, record the temperatures.
  • Remember to record the total amount of moles as well


Calculating how to reach a desired Temperature and Pressure on ignition

There are only 4 variables required for this calculation.

  1. Intial fuel mix temperature (furnace temperature before ignition)
  2. Desired temperature on ignition (you choose)
  3. Desired pressure on ignition (you choose)
  4. The specific heat value of the gas used to dilute the fuel (if a mix of gases is used, the specific heat to use is the average specific heat per mol, example calculation below)


The equations will give these results

  1. The ratio(fuel) in the fuel-dilutant mix. (0.75 means 75% perfect 1:2 fuel mols (O2 and H2 added together)†, the other 25% will be dilutant gas mols, making it a 1:2:1 mix of O2:H2:dilutant)
  2. The total pressure of the fuel-dilutant mix inside the furnace before ignition

†It's helpful to separate out the fuel part like this since everyone should be using pre-mixed fuel, it makes the diluting easier and has a lower risk to cause confusion when using either O2 or H2 to be the dilutant gas

To freely control the temperature and pressure, the fuel must be diluted with a non-combustable gas. This can be added either before or after ignition, doing so before ignition makes it alot easier to predict, doing so after ignition is more of an art than a science (it depends on how the furnace is built and how fast the operator can work). The method prefered here is to add the non-combustable gas before ignition.

Diluting the fuel can be done in the furnace directly or in pipes outside of it. There are good and bad points with both ways. Diluting outside fits the advanced furnace best (the built-in volume pump can easily move all of the prepared gas inside), diluting inside fits the regular furnace best (the exhaust outlet can be used as an inlet but it's a little bit quirky, and diluting in pipes outside means not all of the prepared gas can be moved into the furnace (the pipe directly on the furnace inlet will hold on to some of the diluted fuel) so extra gas must always be prepared).

It is worth noting that for some temperatures and pressures suitable for advanced alloys, the calculation can suggest a fuel ratio below 0.15. This will not work however, since it means having less than 5% oxygen, that mix will not combust (unless the dilutant contains extra oxygen). This is a particular problem with Waspalloy (400-800K, 50+MPa), that can be solved by having oxygen in the diluting gas, or by igniting the furnace prematurely before all the dilutant has been added.

The dilution can be double checked by using the tablet and looking at the mol% values for the fuel mix. If the outlet on the regular furnace was used as an inlet, the first gas that entered there will have been mostly pushed back into the furnace, making the mol% values diffrent but the total number of mol are still the same.

Calculating the fuel ratio

  • ratio(fuel) = s*( T(after) - T(before) ) / ( 187817 + T(before)*(20.633 - s) - T(after)*(78.172 - s) )
    • ratio(fuel), 1 = 100% fuel which is 33.33% O2 and 66.67% H2
    • T(after) is the chosen temperature after ignition, in K
    • T(before) is the furnace temperature before ignition, in K
    • s = specific heat of diluting gas
      • if the dilutant is a mix of gases, calculate the average specific heat in that mix per mol
      • example: 15% N2 and 85% CO2 as dilutant -> specific heat = 0.15*20.6 + 0.85*28.2 = 27.06
  • This equation comes from the equation under Using diluted fuel, it was arrived at by doing the following things
    • ratio(fuel) was introduced (which is 3 times higher than min(ratio(O2),ratio(H2)*0.5), everyone should be using pre-mixed fuel so this should make things simpler, having 1 represent 100% fuel is also more intutive than having 0.333 mean 100% fuel
    • everything is calculated per 1 mol fuel here, the original one uses per 3 mol fuel (1 mol O2 + 2 mol H2), so several values must be divided by 3
    • the dilutant (even a mix) can be treated as a single gas, which turns sum(specific heat * mol of gas (before)) into ratio(fuel)*(specific heat(O2)+2*specific heat(H2) )/3 + (1-ratio(fuel))*specific heat(dilutant)
    • min(ratio(O2),ratio(H2)*0.5) will now always be ratio(fuel)/3, so it can be replaced with that
    • without any rounding the formula is: ratio(fuel) = s*(T(after) - T(before)) / ( T(before)*(61.9/3-s) + (0.95*593107.3684/3) - T(after)*(61.9/3-s) - T(after)*(0.95*181.7/3) )

Calculating the pressure before ignition

  • P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*1.9) )
    • ratio(fuel) is the result from the temperature calculation above
    • P(after) = the chosen pressure value, in Pa
    • T(before) = temperature of fuel mix in the furnace before ignition, in K
    • T(after) = the chosen value used in the temperature calculation above, in K
  • This equation was arrived at by starting with the one under Using diluted fuel and replacing min(ratio(O2),ratio(H2)*0.5) with ratio(fuel)/3

Diluting fuel

Mixing gas is temperature sensitive. This is because pressure is used as an indirect measure of the amount of mol (n=PV/(RT)) being transfered, and pressure is also dependent on temperature. It is however possible to get around this issue with a bit of math.

A) When fuel and dilutant have the same temperature

  • Add the fuel
    • fuel pressure = ratio(fuel) * P(before)
  • Add the dilutant until the pressure P(before) is reached

B) When fuel and dilutant have different temperature

  • T(mix) = sum( T(before)*ratio(after)*sh ) / sum( ratio(after)*sh )
    • T(mix) is the temperature after combining all gases
    • T(before) is the temperature that each individual gas compound involved (O2, H2, CO2 etc) has before mixing them
    • ratio(after) is a value between 0 and 1, the %mol ratio, in the final mix
    • sh is the specific heat for each individual gas

(same thing, different way of writing it)

  • T(mix) = ( T(fuel)*ratio(fuel)*20.633 + T(dilutant)*ratio(dilutant)*s ) / ( ratio(fuel)*20.633 + ratio(dilutant)*s )
    • T(mix) is the temperature after combining the fuel and dilutant
    • T(fuel) is the temperature of the fuel before mixing
    • T(dilutant) is the temperature of the dilutant before mixing
    • ratio(fuel) is the ratio of fuel after mixing everything
    • ratio(dilutant) is the ratio of dilutant after mixing everything
    • s is the specific heat of the dilutant (if the dilutant is a mix of gases, see example under the calculation for ratio(fuel) above)

Mixing fuel and dilutant of different temperature

  • Add the fuel
    • fuel pressure = ratio(fuel) * P(before) * T(fuel) / T(mix)
  • Add the dilutant
    • keep adding until the pressure P(before) is reached
  • The temperature should now be the same as the calculated T(mix) value, unless there was warming or cooling of the gases during the mixing process (in that case, the fuel-dilutant mix has slightly too much or too little dilutant in it, use the tablet to check the ratio of H2 or O2)

Double-checking the fuel-dilutant mix

Use the tablet with the amtospherics cartridge and compare the measured mol% with one of the following equations. If neither O2 nor H2 is used as dilutant, they will both give the same result.

  • When O2 is in excess
    • ratio(H2) = ratio(fuel)*2/3
  • When H2 is in excess
    • ratio(O2) = ratio(fuel)/3


Example calculation

It's a warm and sunny day on Europa and a stationeer wants to make some invar. The desired temperature and pressure will be chosen as be the upper limit for invar, so 1500K and 20MPa. Adding ore to the furnace will reduce its temperature and increase the amount of gas (and pressure) inside of it, but the stationeer hopes that 100g of invar will be too little to have much of an effect. The furnace is exposed to the atmosphere and will be loosing temperature and pressure fairly fast which could be an issue, but making the alloy should be quick enough. The dilutant gas will be pure O2 from the atmosphere, which has a specific heat value of 21.1. The starting temperature of the fuel and the atmosphere are both at -140°C.

  • ratio(fuel) = s*( T(after) - T(before) ) / ( 187817 + T(before)*(20.633 - s) - T(after)*(78.172 - s) )
    • s = specific heat of the dilutant = 21.1
    • T(after) = 1500K (this is the chosen value)
    • T(before) = -140C = 133K (temperature inside the furnace before ignition)
  • ratio(fuel) = 0.28237
  • This is high enough for combustion to occur
    • H2 is the limiting gas so %H2 must be at least 5%, the minimum value can be expressed as %H2 = ratio(fuel)*2/3 = 5%, solving for ratio(fuel) gives us 0.075, which is the lowest ratio(fuel) at which combustion can occur

The necessary pressure of the pre-ignition fuel mix inside the furnace will be

  • P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*1.9) )
    • ratio(fuel) = 0.28237
    • P(after) = 20MPa (this is the chosen value)
    • T(before) = -140C = 133K
    • T(after) = 1500K (this is the chosen value used in the temperature calculation)
  • P(before) = 1154.1kPa

Dilution calculations

  • The needed pressure of pure fuel inside the furnace will be
    • P(fuel) = ratio(fuel) * P(before) = 0.28237 * 1154.1kPa = 325.88kPa
  • The dilutant will then be added to the furnace to reach the P(before) pressure at 1.16MPa (1154kPa rounded up)
  • The ratio of H2 inside the furnace before ignition can be checked with the tablet, it should be
    • ratio(H2) = 0.28237 * 2/3 = 0.188 = 19%

This was tested in practice. After adding fuel and dilutant the game was saved, then the furnace was ignited. Adding the ores reduced the temperature and increased the pressure a bit, which pushed the pressure up above 20MPa and out of the needed range. After waiting for the pressure to drop back down, the temperature was still high enough to make the desired alloy with several seconds to spare. In hindsight, 20MPa was a bit too high and 1500K a bit too low, better values could definately have been chosen.

Reloading the save and placing the furnace inside a welded frame to insulate it (no loss of temperature or pressure) showed the following. The furnace reached 1477K and 19.90MPa after ignition. The fuel was added with a regulator (the furnace showed: 325kPa, 133K), the fuel mix was decent but not a perfect 1:2. Then the diluting O2 was added, it was slightly too cold (the furnace now showed: 1.16MPa, 130K), so a bit too much dilutant was added to the furnace (since cold gas has a lower pressure). The dilutant was inserted via the furnace outlet, checking the mol% with the tablet showed 3% H2 in the outlet pipe and 20% inside the furnace instead of 19% in both, the total number of H2 mol was unchanged. The temperature and pressure was really close to the calculated ones, even though the execution was a bit sloppy. The observed loss of temperature could be explained by using too much dilutant, using a lower starting temperature and a flawed fuel mix. The lower pressure is related to the temperature, going from 1500K to 1477K should mean -1.5% reduction in pressure, but the change was just -0.5%, an indication that too much dilutant had been added.