mekanism / Mekanism

A mod for Minecraft
MIT License
1.37k stars 522 forks source link

[Enhancement] Multiblock Heat/Steam Generator #1224

Closed MagisterXero closed 8 years ago

MagisterXero commented 10 years ago

Currently, heat generators are a very low source of power generation (even given fuel sources), and they seem like they are a generator which has potential as a multiblock type generator. I'm just kind of throwing this idea out there to see if it catches any attention but here is the basic idea:

Think "Dynamic Tanks" kind of style for the multiblock capability, allowing for varied sizes of the generator. But instead of using the dynamic tank blocks as part of the outer frame, you'd instead use a series of heat generators. This would essentially make the multiblock capable of being a lava tank, but with the ability to generate power directly from it still when turned on.

Surrounding the tank in lava (perhaps instead of a "valve", we'd have a "power outlet") that would take into consideration the number of "molten" sources nearby. (Expanding up to 2 blocks outwards in all directions perhaps?) Each "Source" block would generator X amount of power, while a flowing block would generator X/2 power.

Conventional fuel sources, such as coal or anything that currently powers the heat gens would still work, but ultimately the lava would be the main source of fuel. It would also be an interesting concept when combined with Biome modifiers (much like the salination plants do), causing lava to be more or less effective, or even unnecessary for small generation amounts, in certain biomes.

This would add in a more advanced sort of heat generator that acts as a step up from the basic one, and would be much more efficient in generating power. And as a side point it would be a tank that stores lava, or other "fluids", which brings me to the next part. Because heat + water generates steam, it would be interesting to allow for water to be stored in the generator via the valves/pumps/etc. But due to the heat inside of the tank, it would be converted into steam that is usable elsewhere (a steam generator perhaps).

Ultimately the multiblock would only have 1 primary purpose at a time, which would be limited to whatever is being pumped into it. Lava would turn it into a full time heat generator, while water would turn it into a steam producing source, powered by the nearby lava outside. This would negate its power output, or just lower it to a point where it isn't outputting much at all, because the overall temperature would be fluctuating due to the water being pumped into it.

This is just a thought I'm throwing out there, since it gives way for the possibility of a rather unique method of generating steam, or simply utilizing something that works well early game, but is redundant in mid to late game. We might see more people using those heat gens again!

Nericu commented 10 years ago

I like this idea alot. It would supply some sort of power that you could use in the nether as well (for those wanting a nether base). Also what would be a use for the steam I was thinking it could be used for some sort of pressure generator or something. Also is this neccesary since hydrogen generators are fairly easy to get to after using wind turbines. In fact I tend to go from wind turbines directly to hydrogen generators without any power issues at all.

MagisterXero commented 10 years ago

The steam could be used to make way for a new type of generator overall, that generates power from turbines. Something of a power generation higher tier than all the current generators. But I could see other uses for it as well, though ultimately its main purpose would be to pave a way towards a higher tier generator, also possibly being a multi-block.

MyNameIsKodos commented 10 years ago

IIRC, Heat generators are in place as a form of starter power generation, which is why they're not very powerful. I could be wrong though.

aidancbrady commented 10 years ago

Alright, I am seriously considering this now. I need a multiblock steam turbine, and a multiblock heat-based steam generator would accompany it perfectly as a mid-tier form of power generation that trumps all the other single-block generators. If anyone has any ideas on how I could manage a multiblock turbine, please speak!

MagisterXero commented 10 years ago

I think this might all depend on the variability of the multi-block structures themselves. If the multi-blocks are static 3x3x3, then it would be one thing but allowing them to expand further beyond this size would also be a bit more interesting and scalable for power gen.

A system of customizable rotors, blades and rods for the turbine would be great if you wanted to spend the effort to make it. Different metals have different malleability (ductility?), friction generation, and torque resistance or limitations on how easily they could break. Taking this into consideration, it would nice to see a durability on these individual parts, requiring replacement parts after a while.

If the customizing system is too far out of reach though, starting from the base point to limiting to one material type would be a way to go initially. I honestly have no clue on how turbines work, so I'll defer the rest of this one to the experts on that, but I did want to throw out the idea of the interchangeable metals/materials.

taljaards commented 10 years ago

I've been keeping an eye on the 1.8 branch; with the new reactor features and now this, Big Reactors keep popping up on my head, even if I try to stop it haha. I think this is an awesome idea and would make Mekanism a much more well-rounded, feature-rich mod.

Not that is has to be, but in my opinion, Mekanism's take on reactors/turbines should be different (better, preferably 😊) than Big Reactors. Now the question arises: How can Mekanism's implementation be different/better, to give players the incentive to use them, when they already know BR and BR feels so good?

Nericu commented 10 years ago

Oh I like the idea of scalable power and the durability stuff. It would give me something to do with all my build up of ores from my digital miner.

unpairedbracket commented 10 years ago

The main issue that our steam generators will have to solve is being able to deal with enormous amounts of steam. By which I mean that while a BR steam turbine can eat at most 2,000mB/t of steam, our Fusion Reactor can easily put out 150,000mB/t, and this scales linearly with how quickly we're feeding fuel into it. With a really serious deuterium/tritium production setup, I don't see any reason why someone couldn't produce upwards of 1kB/t.

@Mierzen BigReactors was kind of my "style inspiration" when designing the reactor, I wanted to try and make a reactor that's good in some of the same ways as EroBeef's, without copying his ideas. Hopefully I've achieved this.

As far as ideas for turbines goes, I'd thought of having a single-block turbine that can take up to (say) 100B/t of steam, and turn 10B/t of it into water, generating energy. It would then pass the remaining 90B of steam, 10B of water and whatever energy is produced behind it. It would then be possible to "stack" turbines together in a line long enough to use all of the steam, and collect the condensed water from the last in the line. This has the advantage of being kind of modular and easy enough to customize (and we wouldn't have to do any actual multiblock coding), but is kind of a bit boring and simple. The main difficulty is making a more complex system without it being the same as BigReactors turbines, hopefully Aidan or someone can come up with some better ideas!

aidancbrady commented 10 years ago

I'm thinking that maybe both having small-scale and large-scale turbines would make Mekanism unique. I did some thinking on the larger, multiblock turbines, and I think I came up with something that I'm going to stick with. I just made a little prototype of it in my test world, I dub it the "Industrial Turbine":

http://puu.sh/b36Z7/60c654a8db.png http://puu.sh/b370S/ed988d78dd.png

As you can see, on the first image, it will have a basic frame like the Dynamic Tank. The grey plastic blocks you see inside will represent stored steam, and the black blocks on the top level will be a turbine. Note the frame that goes across the fourth layer that includes the Salination Valve - the turbine will be able to accept steam from foreign sources to create energy with. These valves will also be able to output the energy that is generated from the turbine.

The second image shows a set of Dynamic Valves on the top layer - these will output particles representing the steam that is being pushed out by the turbine. The more of these you have, the faster your turbine can generate energy (and eliminate steam). As a result, the bigger a turbine you have, the faster it can process steam!

I have some ideas in mind for a steam boiler, too, that would also allow for steam to be created by means of energy. Of course, the amount of energy it would take to create the steam would equal the amount of energy it would generate if in an Industrial Steam Turbine, making it just a handy tool if you quickly need some steam on hand without the hassle of heat transfer or generation. I'll try and come up with a prototype by the end of the day today.

aidancbrady commented 10 years ago

So I came up with a name - the "Thermoelectric Steam Boiler." Although it can run without the use of electricity, I thought I'd incorporate it somehow into the name :)

MagisterXero commented 10 years ago

Looking forward to seeing this in action once it's completed! Now if only my access to the jenkins dev builds worked still... :P

aidancbrady commented 10 years ago

Thanks @MagisterXero! I left my web manager a message, hopefully he'll get back to me today.

Here is a prototype for the Thermoelectric Steam Boiler: http://puu.sh/b3aMh/0ea15e0cfd.png http://puu.sh/b3aQe/f26370167c.png

The boiler itself will consist of three separate tanks - a lava tank, a water tank, and a steam tank. These can be of varying sizes - the water and lava tanks will be separated by dividing blocks represented by soul sand in the prototype. Haven't come up with a name for these yet - perhaps "Thermoconductive Exchanger" would be good. The bigger your lava tank, the greater the heat capacity is of your boiler, and the faster it can create steam. The grey blocks represent steam created by the boiler. In regards to heat transfer, I have some ideas...I'm actually considering creating an entire new line of transmitters that will simply be used to conduct heat (Thermodynamic Conductors!). Of course, they will not exactly be "consistent" like the other networks, they will lose heat overtime.

Basically, these conductors will be able to connect to heat-emitting blocks (I'll most likely add a "Thermoconductive Port" to the Fusion Reactor and this boiler for this reason) and then transfer heat to acceptors. I'm getting excited just thinking about it!

Once all this is done, I'm going to polish off the energy/item/gas/fluid teleportation systems (maybe add heat teleportation to that list!), and after adequate bug fixing, push v8. Oh, I also still need to do that whole IMC recipe system, but that shouldn't be too hard.

Stratos396 commented 10 years ago

If the water is not drained from the turbine, do you think it should slowly fill up with water, slowly lowering power output, and once all the turbine blades are fully covered, they break off and drop as "damaged turbine blades?", the damaged turbine blades cannot be used in the multiblock, although they can be placed, and smelted to give a few iron/steel?

Stratos396 commented 10 years ago

and if still left full after a while (maybe 10-20 min.?) it will explode, although with very little damage done, and send water source blocks everywhere?

Saizetsu commented 8 years ago

If you run steam through it then you'll need it to be pressurized (for the sake of science in some way) or just run steam through it with electricity powering its turbine granted that causes the issue of will it produce more than it consumes? Yes it can given enough steam.

Honestly you should also consider Geothermal power as well, deeper down the greater the heat more power, but we use steam even now as a massive power source infact that is what we use in nuclear plants. Steam, just make it modular like most of the mekanism machines.

Give us tools to make it produce more power (And a possible chance of steamsplosions) Parts or pieces to control it make it so we can recycle the water that comes from it, not enough to repower it but enough to help a loop feed.

aidancbrady commented 8 years ago

I am now working on this in the v9 branch if anyone would like to keep up with my progress. I'm starting with the Industrial Turbine, whose design I may end up slightly changing, but I also plan on implementing the Thermoelectric Boiler.

unpairedbracket commented 8 years ago

Cool! I was going to do some work on this over Christmas, but it's been a while and I couldn't remember how to un-hide the unfinished stuff that we removed to release v8. I'm looking at attempting to port to MC1.8 again, now that the scene seems to be moving that way generally. I'll try and keep merging changes from this into the 1.8.9 codebase as I'm updating it.

aidancbrady commented 8 years ago

@unpairedbracket, that sounds awesome! I'm having fun developing turbines using the new multiblock framework, I'll provide some screenshots once I have a few things finalized; they're by far the most complex multiblocks I've worked on yet. Once we have the heat conduits added back in we'll have added a whole new dimension to Mekanism.

How far did you get to completing the boilers back when you started them? I'd like to work on boilers once I finish these turbines, and I'm not sure if you'd consider the work salvageable or if I should start fresh. I won't touch the code if you want to work on it some more, otherwise just give me some direction towards your ideas.

For early/mid-game energy generation I'm thinking of adding some kind of single-block steam generators and miniature boilers, if I have the time.

I'm also going to try and extend the work you did on item/energy/etc teleportation to use my new frequency system I developed for teleporters- I think it could work quite nicely.

Do you have any other ideas for the release? Chunk-loading is something we've never really dabbled in. Regardless, let me know if you have any questions and I'd be happy to help.

unpairedbracket commented 8 years ago

I think my work on boilers was pretty preliminary, and I was thinking I'd have to go back and redo a whole bunch of it anyway, because it was pretty inefficient. If you want to get to work on it I'd say go ahead; I'll be kept busy enough with 1.8.9 and real life as it is.

I think the way I had the boilers working was that all the frame blocks would share a temperature in some kind of delegate object and heat would transfer between that and the water (Custom temperature-sensitive FluidTank subclass?) I'd think the water could use heat it absorbs to raise its heat up to 100Β°C (amount of heat this would take being proportional to the amount of water in the tank, then use any excess heat to convert some of this 100Β°C water into steam. The IFluidHandler method to inject Ξ”V more water into the tank (containing Vi water already) would take the temperature from initial temperature Ti to final temperature Tf = Ti - Ξ”V/(Vi + Ξ”V) (Ti - Tambient) [adding water at ambient temperature reduces the tank's temperature towards ambient]

The early-game boilers/steam generators sound like a good idea, so there's a bit of a feeling of progression through the industrial technologies.

Using the frequency system sounds like a good idea too - it would be good if we could keep the "creative frequencies" that allow infinite production of a fluid, gas, or energy (acting like a creative energy cube), and the ones that allow us to use these blocks as fluid/gas/energy/item void blocks as well (that might be a good thing to make an upgrade for?); these are all quite helpful in development as well as ingame.

Other than that I think chunkloading is potentially an interesting thing to look into, I'd be interested to see if we can make it different enough from the other options out there to make it worthwhile.

sinspawn1024 commented 8 years ago

[Thermoelectric Generation Matrix]

After reading the above, I’d like to propose a multiblock energy conversion device that would be both customizable and scalable from very early-game all the way to end-game power production. Its game mechanic would be reminiscent of Big Reactors (BR), but would be unique to and consistent with Mekanism. I am calling it the Thermoelectric Generation Matrix (TGM). I apologize, this is about to be a long explanation, but I promise it'll be worth the read!

Overview The TGM gamifies real technologies and thermodynamic principles. In short, it inputs a thermal fluid – a hot liquid or gas – and outputs RF. Early-game TGMs would use Lava, mid-game TGMs would use Exhaust Gas, and end-game TGMs would use Steam from reactors. The selection and arrangement of constituent blocks would customize the TGM to handle various heat sources.

The exterior would consist of a Controller, Casings, Glass, and various Ports; the interior would consist of Mass Transfer Pipes, Heat Transfer Tubes, and Thermoelectric Cells. Mass Transfer Pipes determine how much fluid the TGM can handle; Heat Transfer Tubes determine how efficiently heat is converted to RF; and Thermoelectric Cells determine how much RF can be output and stored. Each of the three interior component types would come in basic, advanced, elite, and ultimate tiers, which is what allows TGMs to scale all the way from second day power generation all the way to the end-game Fusion Reactors.

sinspawn1024 commented 8 years ago

[Thermoelectric Generation Matrix]

Formation The TGM would add the following blocks to the mod:

β€’ Generator Casing – TGM structure blocks β€’ Generator Glass – TGM aesthetic blocks β€’ Generator Controller – UI block β€’ Generator Port – fluid input/output and energy output β€’ Generator Combustor – burns fuels to create Combustion Exhaust β€’ Mass Transfer Pipe (basic/advanced/elite/ultimate) – transports thermal fluids through the TGM β€’ Heat Transfer Tubes (basic/advanced/elite/ultimate) – extract heat from thermal fluids β€’ Thermoelectric Cell (basic/advanced/elite/ultimate) – converts heat to power β€’ (optional) Generator control port – allows TGM to be controlled by redstone or ComputerCraft/OpenComputers

The Thermoelectric Generation Matrix would be formed similarly to the Energized Induction Matrix, but with stricter construction rules (like the multiblocks from BR). In order to be valid, the TGM would probably follow rules like the following:

  1. The multiblock must be a cuboid.
  2. The edges must be Generator Casings.
  3. There must be exactly one Generator Controller placed on a face of the structure.
  4. The rest of the exterior may consist of only Generator Casings, Glass, and Ports.
  5. The interior may contain only Mass Transfer Pipes, Heat Transfer Tubes, Thermoelectric Cells, and/or Lava source blocks (or optionally other hot things, e.g. blazing pyrotheum, etc.).
  6. Mass Transfer Pipes must in a straight line* from one face of the TGM to the opposite face, and begin and end with a Generator Port (or Combustor Port) on the exterior faces.
  7. Heat Transfer Tubes must be directly adjacent to at least one Mass Transfer Pipe.
  8. (optional) Thermoelectric Cells must be placed so that they touch one another on at least one face, with at least one touching a Power Port. (This is so that they conduct energy between one another to the power port.) *The thought of having things in a straight line makes the TGM prismatic, which not only makes it more like how such a device would probably actually be made, but also makes it easier to validate the structure.
sinspawn1024 commented 8 years ago

[Thermoelectric Generation Matrix]

Progression Early Game The entry level TGM would essentially be a multiblock version of the Heat Generator, but better. A hollow cuboid is built with Casings, one or more Thermoelectric Cells are placed inside, and the remaining space is filled with Lava. Like a Heat Generator, for every face of a Thermoelectric Cell in contact with the Lava, a fixed amount of RF/t is produced. Since there's slightly more involved with making a TGM than just using heat generators, I suggest that the TGM puts out some more power than the Heat Generator.

Mid Game When just making a bigger Lava based TGM isn't keeping up with growing power needs, it would become necessary to move to a more sophisticated one: one that burns fuels. The Lava in the interior would first be swapped out for Mass Transfer Pipes, Heat Transfer Tubes, and Thermoelectric Cells. At one end of each Mass Transfer Pipe would be placed a Generator Combustor Port with a Generator Port on the opposite end. After the multiblock formed, accessing the Controller would reveal that a new item and fluid inventory alongside the normal two fluid inventories. Combustible items, liquids, or gases can be pumped into a Port, and the TGM would burn them and produce a certain amount of hot Exhaust Gas, which in turn would be consumed, resulting in power. Better fuels would produce more and/or better Exhaust Gas, resulting in more power. Optionally, when a Combustor is operating, particles could be emitted from the Port at the opposite end, mimicking exhaust leaving.

End Game Ultimately, the real point of this is to give something that is capable of handling the amount of steam produced by a Fusion Reactor, something that, at the time of writing, not a single mod is capable of doing. The Combustors would need to be removed and replaced with regular Ports, and Steam from the source of choice would then be pumped in, converted to RF, and an equal amount of water would be ejected.

sinspawn1024 commented 8 years ago

[Thermoelectric Generation Matrix]

Under the Hood Each type of thermal fluid would be associated with a β€œnominal energy density,” i.e. RF/mB. This is the maximum possible energy that can be extracted from a particular thermal fluid. For example, Steam might have a nominal energy density of 14 RF/mB, meaning that if you pumped 2000 mB/t of steam into a perfectly optimized TGM, the power output would be 28,000 RF/t (comparable to a BR Turbine).

The mechanic for determining performance is simple. The controller would have two internal fluid tanks (input and output), and a power buffer. If the structure was valid (see rules), then the behavior would be calculated when the TGM forms.

The size of the input/output tanks would determined by the number and tier of Mass Transfer Pipes in the interior: more and/or bigger pipes equal bigger tanks. Every tick, the Controller multiplies the nominal energy density of the type of fluid in the input by the amount in the tank, resulting in a nominal thermal input (RF/mB * mB = RFth), then consumes the fluid. Thus, the Mass Transfer Pipes determine the maximum feed rate through the TGM, since you can't add more than a full inventory every tick.

The conversion efficiency is determined by the Heat Transfer Tubes. Each tier (basic/advanced/elite /ultimate) has an efficiency (maybe 20% / 40% / 80% / 100%), with each tier more efficient than the last. The efficiencies of each Heat Transfer Tube block in the TGM would be averaged, and the nominal thermal input would be multiplied by the average efficiency, resulting in the power production (RFe).

Finally, the maximum power output and power buffer size would be determined by the Thermoelectric Cells. Each face generates a certain amount of energy when heated. Multiplying the maximum generation rate of that particular Thermoelectric Cell by the number of Thermoelectric Cell faces adjacent to Heat Transfer Tubes results in the maximum power output (RF). Any power production in excess of that is voided, and what remains is put in the power buffer.

The cool thing about this is that it really lets you scale the TGM to fit your particular needs... If your energy source had a very low energy density, you would want to add more Mass Transfer Pipes to be able to take more of it in. On the other hand, a high energy density fluid would require lots of Thermoelectric Cells to keep up with all the energy being produced.

sinspawn1024 commented 8 years ago

[Thermoelectric Generation Matrix]

Balancing the TGM As noted, the TGM would scale from early- to end-game. For easier entry early on, the recipes for the exterior blocks (Casings, Glass, Controller, and Ports), as well as the basic Thermoelectric Cell should be very cheap. The four tiers of interior parts for the TGM should be balanced in their recipes and performance with the following tech levels in mind:

β€’ Basic – intended for use with Lava and low grade fuels like Wood or Coal. β€’ Advanced – intended for use with advanced fuels, like Hydrogen or Oil. β€’ Elite – intended for use with a fusion reactor with an injection rate up to 10 or so β€’ Ultimate – intended for use with a fusion reactor with an injection rate over 10

This huge span of technical capability means that the cost of progression must grow exponentially, as the resources available to a player grow so quickly with energy availability. This is particularly true of someone with a Fusion Reactor. Even relatively low injection rates can give millions of RF, enough for multiple maxed out Digital Miners and a max speed ore quintupling system. So resources can be expected not to be an object.

To make the progression from an Elite TGM to an Ultimate TGM an actual challenge, I suggest adding a new alloy: Antimatter Alloy. This ultimate alloy would be created in an upgraded version of the Metallurgic Infuser: the Mattergistic Inverter, which would infuse items with Nether Stars. The machine would requires millions of RF per operation, however the energy could only be transferred to the machine by Lasers. This way, an abundance of power and resources is not enough - a system has to be built to amplify sufficient laser beams, and a player can decide whether they want to spend a ton of resources making a huge laser system to get the alloy quickly, or if they would rather put a single laser next to the machine and wait a few days.

aidancbrady commented 8 years ago

Boilers and Turbines are now complete for Mekanism v9- it's been a major project, but I'm happy it's complete :)