PTW
And... do you need some calculation system for test all these staff you made? I can write simple app on C++ to help ou with it if I will have some time(I strongly wish I will).
Regarding what? If the simulation would work? By all accounts it should, I ran enough excel 'simulations' during my time with this. However, by all means proceed if you wish to. Toady has ultimate say in what goes in his game, but the easier we make it for him to understand and implement, the better.
ALSO- Regarding the hideous monster that is MIXING FLUIDS. I looked again at the SS13 code and saw a curiosity. They have multiple gases that remain conserved, each representing their own units... because it averages each type of gas individually.
var/list/air_gases = air.gases
for(var/id in air_gases)
air_gases[id][MOLES] /= turf_count //Averages contents of the turfs, ignoring walls and the like
Each gas has an ID and their moles are recorded individually within a tile. Pressure is the combined total of all gases. For each ID within a tile, where air_gases is the total of all gases within the tile, it averages the moles. Each type of gas is averaged individually. I'd actually torn on just how much more computationally expensive this concept is though, and my gut is saying not all that much. Since it only averages for the IDs which exist, on average it only does 3 averaging for common gases (O2,N2,CO2), and an additional averaging for temperature. Adding more gases adds another layer of checks, but only on the tiles which contain them. This isn't a bad idea for a system at all. Bit expensive, maybe, but it handles mixtures exceptionally well.
As for its use in 3 dimensional space, it already only works in 4 cardinal directions, so its a matter of adding 2 more directions up and down. there's a bit of handling involved for when air flows out into space (gets deleted), so something like that could work for open sky in DF.
EDIT: Upon subsequent testing I can absolutely confirm that - while triggering gas flow definitely causes everything in a tile to perform averaging calculations - specific moles of gas remain untarnished when mixed. I mixed O2 and Freon, and found that after filling a vacuum to roughly 100% of O2 with an average of 108 moles per tile, then releasing freon into the chamber, the moles of O2 remained roughly at 108. Definitely shows this system is the case; it averages each individually.