Railcraft

Railcraft

34M Downloads

Steam Brainstorming

CovertJaguar opened this issue · 3 comments

commented

Vexatos: the more I read about power systems, the more I finally want to make my own but I can't
Vexatos: the only content mod I made so far is Factum Opus, and that one required months of designing
Vexatos: and it's tiny
Vexatos: Implementing the power system I had in mind two years ago would be so much effort
Vexatos: Not to mention that by that time PneumaticCraft and FSP came along and implemented something similar but much more simplified
Vexatos: My plan was to have genuinely realistic pneumatic systems powered by pressurized steam. I have a 5-page design doc on that along
Vexatos: alone*
Vexatos: from two or three years ago
Vexatos: But simulating steam flow in tubes is hard, not to mention that I wouldn't be able to ever finish the mod :X
Vexatos: What a pity.
Vexatos: hydrodynamics are so much fun though :X
CovertJaguar09/17/2016
I find myself in need of some steam pipes you know...even if all you can contribute is ideas it would be help
MrConductorBOT09/17/2016
Vexatos: Oh
Vexatos: uuuh
Vexatos: well
Vexatos: Your steam is a fluid in the forge sense
Vexatos: That is the first issue
Vexatos: Hmm
Vexatos: Wait, didn't I already talk about the system in here?
CovertJaguar: probably but talk is cheap
CovertJaguar: make a github issue if you get serious ;)
Vexatos: Well
Vexatos: the idea was to have realistic steam flow
Vexatos: in every sense of the word
Vexatos: you'd have some pressure chamber producing steam
Vexatos: a boiler
Vexatos: it'd eject steam through a valve at a certain speed
Vexatos: you specify by choosing the valve
CovertJaguar: hopefully you don't mean full sim fluid dynamics, minecraft wouldn't like that much =P
Vexatos: (vales would have different sizes)
Vexatos: Our machines would not "consume steam"
Vexatos: once the steam goes through the valve into the pipe
Vexatos: it'll obviously move to the place with the least pressure
Vexatos: i.e. a valve that is not connected to any boiler
Vexatos: but to open air
Vexatos: there the steam will be ejected
Vexatos: Maybe there could be condensers too
Vexatos: which would be huge
Vexatos: but for now, it'd just waste the steam
Vexatos: so, steam flows from high pressure boiler to low pressure open space
Vexatos: and obviously would turn any turbine along the way
CovertJaguar: how do you keepo that from being an infinite source of power?
Vexatos: Huh?
Vexatos: You need to fuel the boiler
CovertJaguar: no, on the turbine side
Vexatos: well the turbine needs steam to flow through it to turn
Vexatos: so you need to keep producing steam
CovertJaguar: it lets steam through, what keeps you from piping it into another turbine
Vexatos: pressure
Vexatos: if there is no open valve
CovertJaguar: techincally a tubrine is an open valve
Vexatos: pressure will equalize around the system
Vexatos: and there will be no flow
Vexatos: it is not
Vexatos: let me.... draw it
CovertJaguar: so the turbine acts as a half closed valve?
Vexatos: no
CovertJaguar: its lets steam through yes?
Vexatos: yes
CovertJaguar: oh..I suppose its the pressure diferantal that generates power
CovertJaguar: so if you put one beyond the first, the pressure equalizes on both more or less
CovertJaguar: both sides of the first
Player: hmm it may be possible to model a turbine as a resistor
CovertJaguar: sorry none of my physics courses covered fluid dynamics and pressure systems =S
Player: pV=nR
T?
Vexatos: Behold
Vexatos: my master-level drawing skills
CovertJaguar: oh dear
CovertJaguar: with an intro like that..
Vexatos: http://i.imgur.com/1MSRibD.png

Vexatos: that is how it works
Vexatos: in hydrodynamics, flow only exists if there is a place to flow to
CovertJaguar: mmk....what's the circular arrow?
Vexatos: a place of lower internal energy
Vexatos: in the case of gases, it is the want to minimize pressure
Vexatos: the turning of the turbine
Vexatos: this would be a converter of steam to rotational energy
Vexatos: which might power a motor
CovertJaguar: but if you string 10 turbines end to end...which a open valve at the end....there would be flow yes?
Vexatos: sure, but each turbine has some resistance
Vexatos: moment of inertia
CovertJaguar: which does what to the steam?
Vexatos: slow down flow
Vexatos: you can either spin one turbing fast
Vexatos: or three turbines slow
CovertJaguar: how is flow modeled?
Vexatos: that is why this mod will never happen :P
Player: turbines reduce pressure and increase volume
Vexatos: by increasing volume*
Vexatos: It would also convert some of the kinetic energy of the steam
Vexatos: into rotational energy
CovertJaguar: I suppose you probably could model it after eletricity
Vexatos: therefore lowering the speed
Vexatos: of the steam
Vexatos: it would also produce vortices and THIS is where the mod will never happen
Vexatos: :D
CovertJaguar: abstraction...come on!
Vexatos: vortices would mean one turbine is better than three
Vexatos: which is kind of what I'd want
CovertJaguar: hmm
Vexatos: because one turbine chamber would obviously produce fewer of them than three
Vexatos: but yea, that could be "ignored"
Vexatos: for the sake of not having to employ a €10000 fluidynamic simulation program
CovertJaguar: wouldn't that be a fixed cost per turbine
CovertJaguar: assume otherwise 1 == 3, but add the fixed cost to flow and 1 : 3
Vexatos: Maybe
Vexatos: What a turbine would do
Vexatos: E = 0.5 mv² as you know, and it's also E = 0.5 * J * (v/r)²
CovertJaguar will need to look that up probably
Vexatos: the relevant variables are the radius of the turbine
Vexatos: its moment of inertia
Vexatos: the velocity and pressure of the steam
Vexatos: and the volume of the entire network
Vexatos: note that velocity is also the same across the entire network
Vexatos: unless you have valves
Vexatos: pressure and velocity are linked
MrConductorBOT09/17/2016
CovertJaguar: if it can be abstracted sufficiently to run on a toaster, I could provide the models and framework if you want to make the mechanics work, it might be possible to build it on top of the Charge net code so that it runs detached from the world in the same way as charge now does
Vexatos: the moment of inertia specifies how hard it is to push the turbine, i.e. how much speed will be lost. If it's too high it won't move at all as the energy required to do so would supercede the energy gained from moving from HP to LP
Vexatos: as that is basically what fluid speed is
CovertJaguar: ah I kinds of got it for a moment
CovertJaguar: no idea how to model that though
Vexatos: http://i.imgur.com/LU8UyAH.png

CovertJaguar: that's a fair bit of math to do one every block in the graph
Vexatos: This is the work steam would perform
Vexatos: on a valve
Vexatos: http://imgur.com/wHaLN44 the arrow is the gravity
Imgur
Imgur: The most awesome images on the Internet

Vexatos: (I'm referring to my German lecture mostly :P)
Forecaster: the RimWorld manager mod is interesting
CovertJaguar: manager is awesome
Forecaster: it's not super useful early game :P
Vexatos: the thing that actually moves a turbine is α = sqrt( 2 * p * A / J) / t
Vexatos: pressure p, area that the steam hits A, turbine's moment of inertia J and time t (would be 0.05 for one tick I guess)
Vexatos: it'd require way too much math to be feasible
Vexatos: as it'd also require stuff like max speed due to friction, the actual energy lost inside the steam, etc.
Vexatos: It's really not feasible at all
Vexatos: but maybe you can come up with something more simplified
Vexatos: Oh
Vexatos: and let's not talk about intersections :3
Vexatos: I'd just completely forbid having more than one input and one output side on a steam pipe
Vexatos: because intersections are fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun in hydrodynamics
Vexatos: (read: "death")
Vexatos: I am glad I'm not a turbine engineer
Vexatos: yo Player, why are EU's devices called LV, MV and HV when it's not voltage but current that changes D:
CovertJaguar: because abstraction
Vexatos: but "high-current" is a term too D:
Vexatos: Hmmm
Vexatos: We need a new power system and define the tiers as high or low-currant
Forecaster: you know children use this stuff right? :P
Vexatos: defined by the amount of currants in the machines
Vexatos: ::
Forecaster: who have no interest in accurate electrical terms
Vexatos: it'd work through the distribution of black and redcurraants
Vexatos: and gather energy through entropy created by mixing them
Vexatos: best power system
Vexatos: CovertJaguar, please convert your charge to berries immediately
Forecaster: https://youtu.be/DTobZ37Zxjo
YouTube
Forecaster
Stream Announcement
Forecaster: yey
Forecaster: new game
Forecaster: \o/
Player: Vexatos: it is voltage
CovertJaguar: lol
Vexatos: whut
Vexatos: but it's EU/t ._.
Vexatos: that's literally current
Player: you can send 5000000000 eu/t to a batbox just fine
Player: it just has to be in = 32 eu packets ;)
Vexatos: yea but there is nothing that sends more than one packet per tick
Vexatos: is there
CovertJaguar ponders whether it would be possible to model steam with just pressure and mass
Vexatos: CovertJaguar, you need volume
Vexatos: volume is crucial
Vexatos: to get the pressure
Vexatos: but with only volume and mass
CovertJaguar: why? volume is derrived from pressure
Vexatos: it could be possible
CovertJaguar: and mass
Vexatos: other way around
Vexatos: pressure is derived from mass and volume
Vexatos: P = nRT / V
CovertJaguar: well ok, the pipes can have volume
asie: hi
CovertJaguar: it would be a fixed value
Vexatos: asie, what do you think about my berry-based energy system
CovertJaguar: but the only ones we really operate on are mass and pressure, or maybe just mass
asie: Vexatos: shrug too busy installing IDEA on my laptop and beginning work on MixinApplier
Vexatos: you need mass, volume and temperature, then it would work
CovertJaguar: because if we have mass and volume then pressure is implied
Vexatos: volume would be constant, yes
CovertJaguar: stop adding variables!
CovertJaguar: I'm trying to remove them
CovertJaguar: hrm...but I suppose temperature is important too
Vexatos: as long as you do not change the network, volume would stay constant I guess
Vexatos: temperature is undirected movement of molecules
Vexatos: it's literally what pressure is
Vexatos: More m means more things that move, more T means more movement per thing
Vexatos: more V means more space to move, i.e. less pressure
CovertJaguar: I know and don't care, all temperature means is whether your steam turns to water ie less pressure
CovertJaguar: but lets say temperature is constant too
Vexatos: https://s3-us-west-2.amazonaws.com/courses-images-archive-read-only/wp-content/uploads/sites/887/2015/06/23214405/CNX_Chem_10_04_H2OPhasDi2.jpg

CovertJaguar: I mean you could run a pipe 5k blocks if you want, but I'm not sure I'd care enough model it
Vexatos: so the volume is constant in a network
Vexatos: and T is constant as soon as the boiler is fully heated up
Vexatos: Unless your steam should stay being a forge fluid and you don't want to add custom fluid properties
CovertJaguar: assume the boiler is black box that just adds steam mass
CovertJaguar: it can be both you know
Vexatos: look at that image, choose a temperature and you know at which point steam will turn back into water
Vexatos: that was another thing in my design document
Vexatos: if the pressure would get too low, it would condense and mess up the piping
Vexatos: you'd be forced to do some plumbing
CovertJaguar: yes...well I'd just make it so you need a condenser to turn it back into water
Vexatos: mhm-hm
CovertJaguar: I dunno...that's mighty fiddly
Vexatos: as I said
Vexatos: my ideas are not feasible
CovertJaguar: your ideas are mistargeted
Vexatos: Nope
Vexatos: I have ideas for fun
Vexatos: and I had fun writing the document
Vexatos: so mission accomplished
CovertJaguar: yes, we are not building a realist phyics sim
Vexatos: I am not
Vexatos: I am thinking about building one
Vexatos: there's a difference :P
Vexatos: I'll most likely never actually do it.
Vexatos: I can' really do it
CovertJaguar: well if you want to make a mod out of it, you should be thinking about making a game mechanic, not a physics sim ;)
Vexatos: So I guess the temperature would stay constant at some temperature (which one?)
CovertJaguar: doesn't matter really
Vexatos: it does
Vexatos: above 375°C and 22.1 MPa it would become superheated
CovertJaguar: its arbitrary, and changable to get the desired result
Vexatos: or supercritical
Vexatos: and having massively different properties
CovertJaguar: more unneed variables
Vexatos: like not being contendes
Vexatos: condensed*
CovertJaguar: all steam will behaive the same, even if 5k c
Vexatos: You'd need to choose whether your steam is normal or supercritical :P
CovertJaguar: well at least for the prototype
Vexatos: p = mRT / (M*V)
Vexatos: that is your equation
CovertJaguar: is there a relevant gameplay element to the difference?
Vexatos: it's all constant except for m
Vexatos: in your case
Vexatos: there is because IC2 has both types of steam
Vexatos: :P
Vexatos: I guess you can just not care
Vexatos: but it's more important to choose a temperature for the equation
CovertJaguar: I only care if I can give the user a reason to care
CovertJaguar: if it just tweaks some number, no one cares
Vexatos: then you could turn RT / M into one magic number
Vexatos: and m and V would be the only variables
Vexatos: V only changing if you add or remove blocks, obviously
Forecaster: this all sounds like it'll require a calculator rewrite
Forecaster: :P
CovertJaguar: mhm...so the boiler would have a fixed pressure, and only add mass if the pressure in the pipe is lower
CovertJaguar: well once heated up at least
CovertJaguar: so that would be the brake mechanic that prevents infinite pressure
CovertJaguar: turbines would a let a fixes amount of mass past each tick without generating power from it (the turbine tax)
CovertJaguar: the rest would be used based on the implied pressure to generate power
CovertJaguar: this could work
Vexatos: R/M is 461.9 J/(kg * K) by the way
Vexatos: or m²/s²/K if you prefer
CovertJaguar: R/M?
Vexatos: the two actual constants in the equation
CovertJaguar: oh
Vexatos: Since you haven't decided on a T yet :P
Vexatos: it's the heat capacity of steam
Vexatos: as an ideal gas
CovertJaguar: I'd probably leave the existing mechanics in place, though possibly disabled in the config, the boiler would probably not need to change much I think, though I'd need to think about how to convert from one to the other
CovertJaguar: anyway, I need to get to bed
Vexatos: bai
CovertJaguar: tomorrow I have a road trip to undertake

commented

Due to how complicated this is, this is probably going to be held off for quite a while. There are other things that are of higher priority that will be required before this is feasible. When this is implemented, it should be implemented fully, and that will take a significant amount of attention. Some expansion of the existing steam mechanics are probably a good idea however in the interim.

commented

image
Are you trying to play with this -.-?

commented

no, we do not have ideal gas law in minecraft