...I wish I had known of this before I built a pump stack for DOMAIN Mk.II...well...time to redo that stack...If you can figure out a good way of retrofitting old-style pump stacks into the new-style without too much difficulty, I'm sure many people would appreciate that. I'm not sure what that would look like, myself; you'd probably have to put in a lot of constructed floors in order to accomodate the changed power-transfer-hole and walkable square locations.
Nice, thank you for your science. Now wiki it :D
Put this up on the wiki.
Seriously.
Because a magma pumpstack is known to cause massive amouts of lag a new type of pump stack was developed that causes a much smaller drop in FPS. If you change the single tile magma chamber at the output of every pump into a 3 by 3 area instead of 1 by 1 then the lag because aprox 1/15 of that caused by the origenal pump stack. This only goes for magma.I was going to suggest waiting until other people have !!SCIENCE!!'ed the design to put it on the wiki, but it looks like someone has put a few words on the subject up already. I don't mind that someone else did this; I've not edited any wikis, myself, so wouldn't really know how to format it or such stuff :)
...I wish I had known of this before I built a pump stack for DOMAIN Mk.II...well...time to redo that stack...If you can figure out a good way of retrofitting old-style pump stacks into the new-style without too much difficulty, I'm sure many people would appreciate that. I'm not sure what that would look like, myself; you'd probably have to put in a lot of constructed floors in order to accomodate the changed power-transfer-hole and walkable square locations.Nice, thank you for your science. Now wiki it :DPut this up on the wiki.
Seriously.Quote from: The WikiBecause a magma pumpstack is known to cause massive amouts of lag a new type of pump stack was developed that causes a much smaller drop in FPS. If you change the single tile magma chamber at the output of every pump into a 3 by 3 area instead of 1 by 1 then the lag because aprox 1/15 of that caused by the origenal pump stack. This only goes for magma.I was going to suggest waiting until other people have !!SCIENCE!!'ed the design to put it on the wiki, but it looks like someone has put a few words on the subject up already. I don't mind that someone else did this; I've not edited any wikis, myself, so wouldn't really know how to format it or such stuff :)
Once additional !!SCIENCE!! is done, if the design holds up as valid, it might be good to put this design under a seperate section on the pump (http://df.magmawiki.com/index.php/Pump) page instead of just stuck into the text of the generic pump stack section. It is a fairly significant deviation from the norm, after all, and the changes aren't really well-explained in what is there now. As I said, though, I'm not really sure how to do that myself, so if someone else would like to, feel free ;)
That's hot.You could have a lever-linked hatch over the input square of the bottom pump. Open it, and the pumps fill the reservoirs, but close it and the pumps will keep working, eventually emptying each floors' little reservoir to 1/7 all around, which will then dry. It would take significantly longer to clear than a standard stack, but would be possible.
The only downside I can see is that this design can't be fully "cleared" by shutting off primary access to the magma.
As far as retrofitting, it seems like it would involve a bit of work. In a traditional stack, the pumps line up head to tail all the way up. In this version, it seems like all the heads are stacked in a line all the way up. I think that means you'll have to re-channel/floor every other story in the stack.That was my thought as well. Since you have to shift the pump on every other level 1 tile to get its input in the right place, you'd have to floor over the old input and power-transfer squares and channel new ones on every other level in addition to mining out each floor's little reservoir.
What happens if you surround the entire stack with magmaIt should work similarly to the design in my previous post, except it takes more space, and it doesn't block the pumped tiles themselves from getting rapidly heated and cooled. It would probably be less laggy than the normal design, but more laggy than mine, and thus inferion when combined with the significantly-large space it takes.
With my 80 z-level pump stack...Impressive, and very, very nice :D
I went from 7 fps to 83.
With my 80 z-level pump stack...Impressive, and very, very nice :D
I went from 7 fps to 83.
Can you switch your pump stack off? What FPS do you get without it running at all? For !!SCIENCE!!, you understand 8)
=====
=+++=
==.==
==+==
==.==
=====
Red squares are kept warm at all times. Basically, it's just a standard pump stack with the single output tile extended into a 3x1 reservoir. Magma fills the 2 extra cross tiles on the T-shape, and those two magma-filled tiles keep the tiles next to the pumping tile on the same z-level warm, reducing required temperature recalculations just as the version I posted last night. This version would be very easy to retrofit as well; just dig or channel out those extra tiles on every level, then let each level fill.
Do those extra cross tiles stay filled in this design, though? Each pump is outputting to the intake tile of the pump above, so it will be sucked up before it has a chance to spread to the cross tiles. Meanwhile, fluid from the cross tiles will spread to the intake tile, and eventually be depleted. With the head-over-head design, the magma in the output tile can spread both to the next pump's intake, and to replenish the cross tiles. Or so it seems to me.That is a concern. I suspect that if you let the cross tiles fill before you run the stack that they won't empty very quickly, or at all, as the pump's filling of the input tile takes precedence over simple fluid spreading. However, if the input at the bottom of the stack doesn't fill quick enough, you'd start getting 2/7 tiles pulled up, and then spreading would being to be an issue.
Perhaps head-over-head like this, instead of the full 3x3 reservoir?I'm not sure how much of an improvement this is, since fluids often don't path diagonally very well. I'm worried that the supply pump's output wouldn't go into the ends of the T any more than they would without the head-over-head design.
=====
=+++=
==+==
==.==
==+==
==.==
=====
=====
=+++=
==+==
==.==
==+==
==.==
=====
I think the extra top square at the top is superfluous, since it doesn't keep anything warm that the two wing tiles on the T don't, while also having the problem of "will magma get to them?"Do those extra cross tiles stay filled in this design, though? Each pump is outputting to the intake tile of the pump above, so it will be sucked up before it has a chance to spread to the cross tiles. Meanwhile, fluid from the cross tiles will spread to the intake tile, and eventually be depleted. With the head-over-head design, the magma in the output tile can spread both to the next pump's intake, and to replenish the cross tiles. Or so it seems to me.That is a concern. I suspect that if you let the cross tiles fill before you run the stack that they won't empty very quickly, or at all, as the pump's filling of the input tile takes precedence over simple fluid spreading. However, if the input at the bottom of the stack doesn't fill quick enough, you'd start getting 2/7 tiles pulled up, and then spreading would being to be an issue.
[-snip-]
]I'm not sure how much of an improvement this is, since fluids often don't path diagonally very well. I'm worried that the supply pump's output wouldn't go into the ends of the T any more than they would without the head-over-head design.
Or you could have the central tile in each of the 3x3 areas be a switch-ed hatch (same switch as the one which turns off the pumps, or would they be opposite then?), with the bottom dumping back into your magma source. When you pull the switch to turn off the pumps, the 3x3 areas will all dump their magma into your magma sea/volcano/pipe.That's hot.You could have a lever-linked hatch over the input square of the bottom pump. Open it, and the pumps fill the reservoirs, but close it and the pumps will keep working, eventually emptying each floors' little reservoir to 1/7 all around, which will then dry. It would take significantly longer to clear than a standard stack, but would be possible. [...]
The only downside I can see is that this design can't be fully "cleared" by shutting off primary access to the magma.
Or you could have the central tile in each of the 3x3 areas be a switch-ed hatch (same switch as the one which turns off the pumps, or would they be opposite then?), with the bottom dumping back into your magma source. When you pull the switch to turn off the pumps, the 3x3 areas will all dump their magma into your magma sea/volcano/pipe.That's hot.You could have a lever-linked hatch over the input square of the bottom pump. Open it, and the pumps fill the reservoirs, but close it and the pumps will keep working, eventually emptying each floors' little reservoir to 1/7 all around, which will then dry. It would take significantly longer to clear than a standard stack, but would be possible. [...]
The only downside I can see is that this design can't be fully "cleared" by shutting off primary access to the magma.
Edit: I think i figured it out, its just a pump stack but with a 3x3 magma reservoir. I explained it to my self in my own question. Would love pictures still.Easy enough; I've still got backups from the now-lost fort I was working on at the time, after all.
Does this new pump stack design help with water pump stacks as well at all? It's not recalculating the temperature of the stone, but it is defining it as wet isn't it? Maybe it will help.It might, but I've never heard of water stacks causing anywhere near the level of lag that magma stacks do. It could be something to check, but I'd guess that toggling the surrounding stone to damp/not damp isn't as processor-intensive as toggling it to warm/not warm and recalculating what temperature it's at.
Couldn't you easily verify the theory about temperature by just turning it off on a traditional pump stack?...
How about building the pump stack so that it's always on, but the on / off switch is linked to a floodgate at the output tile of the top pump? But perhaps that would only delay the depletion of the cross tiles. If that's the case, then splitting the stack's time between output and refilling would keep the tile temperatures within the stack constant.=====
=+++=
==.==
==+==
==.==
=====
Red squares are kept warm at all times. Basically, it's just a standard pump stack with the single output tile extended into a 3x1 reservoir. Magma fills the 2 extra cross tiles on the T-shape, and those two magma-filled tiles keep the tiles next to the pumping tile on the same z-level warm, reducing required temperature recalculations just as the version I posted last night. This version would be very easy to retrofit as well; just dig or channel out those extra tiles on every level, then let each level fill.
Do those extra cross tiles stay filled in this design, though? Each pump is outputting to the intake tile of the pump above, so it will be sucked up before it has a chance to spread to the cross tiles. Meanwhile, fluid from the cross tiles will spread to the intake tile, and eventually be depleted.
*
%%^X
pump stack <-777####
X = floodgate connected to on / off switch
Pressure plate connected to gear; engages gear at magma levels 0/7 to 6/7
Pump stack itself is always powered
In theory this would cause the area beyond the floodgate to fill in pulses, with the non-filling periods never being long enough to force extra temperature calculations. In practice (assuming the theory is correct) it may be better to allow the output tile to drop to 5/7 to give the stack adequate time to refill.The one concern I have about draining a magma pump stack like that is that all that magma that's flowing off (and presumably down back to the sea, or wherever you're pumping it from) has been pressurized by at least part of the magma pump stack, and may risk bubbling up through other unintended openings.Magma doesnt pressurize like water does. It just moves really fast on one z-level.
It pressurizes when it goes through a pump, though... and pump stacks are made of pumps.The one concern I have about draining a magma pump stack like that is that all that magma that's flowing off (and presumably down back to the sea, or wherever you're pumping it from) has been pressurized by at least part of the magma pump stack, and may risk bubbling up through other unintended openings.Magma doesnt pressurize like water does. It just moves really fast on one z-level.
How about building the pump stack so that it's always on, but the on / off switch is linked to a floodgate at the output tile of the top pump? But perhaps that would only delay the depletion of the cross tiles. If that's the case, then splitting the stack's time between output and refilling would keep the tile temperatures within the stack constant.Hmm... Maybe. Probably better to use a door (or hatch over the last pump's input) so it's quicker to switch on/off when it needs to. Another thing to try out.Code: [Select]*
In theory this would cause the area beyond the floodgate to fill in pulses, with the non-filling periods never being long enough to force extra temperature calculations. In practice (assuming the theory is correct) it may be better to allow the output tile to drop to 5/7 to give the stack adequate time to refill.
%%^X
pump stack <-777####
X = floodgate connected to on / off switch
Pressure plate connected to gear; engages gear at magma levels 0/7 to 6/7
Pump stack itself is always powered
I might or might not have gotten the values for the pressure plates the wrong way round, as I haven't touched DF since April. :)
It pressurizes when it goes through a pump, though... and pump stacks are made of pumps.Magma only pressurizes while the pumps are running. Magma "pressure" in Dwarf Fortress is more just magma new teleporting to the end of the magma-filled area, so if there's no new magma coming in due to the pumps being off, no pseudo-pressure exists.
Like so:
##### #####
#¢¢¢# #...#
##%## ##%##
##%## ##%##
#...# #¢¢¢#
##### #####
Does the magma in the side pockets NEED to be 7/7 to heat the tiles above it?
What is with your code? Shouldn't it look like this:It's because I decided to use the [ code ] tags to ensure that every character was the same width, which is often beneficial for creating diagrams so every column of chracters is actually lined up. I probably should've used the [ tt ] teletype tags, which have the same effect but don't put them in a seperate window and so don't shrink everything, but oh well.
-snip-
of course, with the channels, represented by dot, in each diagram being the same ones, just on the next level down or up?
You sir, definitely deserve a wiki spot for this! :)Powering the stack while it's being built isn't actually dangerous, as the magma chambers on each layer are of course sealed anyway. If you've got leaks, it's actually probably safer to have just the one level leaking at once instead of all of them suddenly starting when you finally start the whole thing up, so when practical running power to the bottom level is probably a good idea.
This is the general layout for an 'ideal' floating pump stack (least space used, least flows, least mechanisms). As stated before though it may have problems with magma staying in the side pockets. One possible workaround is to build from the bottom up and 'prime' each input/output layer as you go with a pump operator. Perhaps no magma needs to be in the stack, even, and the 'priming' is done solely to desynchronize the whole stack, which *may* lead magma to fill the side pockets. This will almost certainly be more micromanagement in the construction phase, as no pumps in the middle can be pre-built (as with any floating stack, but extra delay in between placing pumps due to getting some lazy dorf to the finished pump), but you can still desync the stack from both the top and the bottom and then link them in the middle. Or hey, power/pump the whole stack WHILE building (can be verydangerousfun). Then, each pump layer built is already desynchronized.
If the numbers people are posting are true, then there's already no doubt that you need some extra magma floating around in your pump system. Now the question is how little can you get away with, and how simple can you make the stack. Does the magma in the side pockets NEED to be 7/7 to heat the tiles above it? Is there a difference between 7/7 and 1/7 for heating the side walls and floor? Can something simple like desynchronizing your stack provide the means to solve this problem?When I started the design up for the first time, it didn't immediately fill each reservoir all the way, so there were 1/7 magma tiles on many levels. I noticed no increase in FPS between the first time I ran it when it wasn't 100% full and the second time when it was, so it's probably just a matter of "is magma present in adjacent tiles?," not "how much magma?"
...Dangit I knew that idea was too good to be unclaimed.Yeah, most means of draining magma reservoirs in general take a fair amount of effort, and this design of course makes it so that there are dozens. It's tricky and dangerous work, but then again everything involving magma is.
Anyways, Under "brilliantly stupid" you could solve the cleanup problems by replacing the floors with hatches (or more likely bridges) and channeling out the sides of the uptake tiles.
-snip-
It's a clowncar of a lot of work though.
Anyways, Under "brilliantly stupid" you could solve the cleanup problems by replacing the floors with hatches (or more likely bridges) and channeling out the sides of the uptake tiles.You just need a raising bridge if you're pumping into a 1x3 area. Raise it up and all the magma just goes away.
I've found that pumps pump in the reverse of the order they build, so a stack built from the bottom up will pump upwards one Z-level per step, but a pump stack built from the top down will move whatever is at the bottom to the top in one step. the pumps end up feeding whatever they are pumping to the next pump's input right before the next pump pumps.
The real question is: if a chunk of magma is moved up in a single round, is temperature recalculated for each Z-level the magma occupies, or does it only calculate temperature for the starting and ending tiles?
If temperature is calculated using the state of game determined at the end of each tick, then yes, this makes sense. Going out on a limb, lets assume Toady programmed the game to have every object do it's thing, one turn at a time, then when everything has moved, other calculations are done, such as temperature, per each square on the map, and then after all this is done, it is synchronized into a 'tick'.
My dear sir, you deserve a !!Nobel Prize!!.You mean something like a !!Shorast Prize!! instead, right?
We need !!Nobel Prizes!! for !!SCIENCE!!.
what are the %% items? What are the OXs? I use Mayday's graphics mod so a Pump looks like Xx I think.
Could you insert a key? I think I've just worked out that the O is a magma safe wall and the X is an up/down staircase... meaning the %% is the pump I would presume. The dark green pump tile is in exactly the same place (x/y coordinate) on each z-level? This guide is brilliant but for a newbie using a tileset it's a little confusing for me XD
what are the %% items? What are the OXs? I use Mayday's graphics mod so a Pump looks like Xx I think.Sorry I didn't get this sooner; I hadn't noticed anyone had posted recently.
Could you insert a key? I think I've just worked out that the O is a magma safe wall and the X is an up/down staircase... meaning the %% is the pump I would presume. The dark green pump tile is in exactly the same place (x/y coordinate) on each z-level? This guide is brilliant but for a newbie using a tileset it's a little confusing for me XD
Magma is chunky right? So once you pull it up a level it shouldn't flow away unless it gets pressurized.
also, not sure about your diagrams there, a pump is 1x2 tiles, not 1x1
Put the walkable side of the pump on the lime +(floor)The unwalkable side goes on the dark green open space. It would be better I think if I left the top row undug.
=====
=+++=
=+++=
==.==
==+==
==.==
=====
======
.%%+++
======
make======
.%%++X
====+=
====+=
====H=
======
where X is a floodgate and H is hatch cover over an empty space. Under hatch cover is a vertical shaft down to magma sea (or just big enough reservoir). So if you want to drain pumpstack, close floodgate, open hatch and turn on pumps. Full laziness. :)With my 80 z-level pump stack...bravo, well done. does anybody want to start up the Urist Prizes?
I went from 7 fps to 83.
Just a thought, temperatures can be turned off, less calculations euqals less fps... so you only have the drop from flow.... just my theory...If you turn off the temperatures, nobody gets burned to death by the magma anymore, and your carefully designed setup for the freezing water + magma trap for the caravans won't work anymore. Also, your painstakingly designed, executed, smoothed and engraved outer wall, which consists of ice, will melt.
Just a thought, temperatures can be turned off, less calculations euqals less fps... so you only have the drop from flow.... just my theory...If you turn off the temperatures, nobody gets burned to death by the magma anymore, and your carefully designed setup for the freezing water + magma trap for the caravans won't work anymore. Also, your painstakingly designed, executed, smoothed and engraved outer wall, which consists of ice, will melt.
...Also, I've now done a bit of tentative testing on the 2x3 head-over-head reservoir design, and found no significant FPS drop while it was running (it filled the magma forge works quickly, so hard to say how it'd work in the long run). It appears to work just as well as the original 3x3 design, as Trouserman's and my theorizing earlier suggested it would.I don't understand what is meant by "head-over-head". Does this mean that the "head" of the screw pump - the dark green impassible tile - is always directly above/below the "head" of the pumps on other z-levels (such as in NecroRebel's original 3x3 design in the OP)? Or does it refer to the output tile being directly above/below the input tile of the pumps on other levels?
I like that idea much more than building a drain hatch on every z-level and linking them to the same lever. However, I also really want to put a floor grate over the input square of the bottom pump. And we can't do both, can we?...The only downside I can see is that this design can't be fully "cleared" by shutting off primary access to the magma.You could have a lever-linked hatch over the input square of the bottom pump. Open it, and the pumps fill the reservoirs, but close it and the pumps will keep working, eventually emptying each floors' little reservoir to 1/7 all around, which will then dry. It would take significantly longer to clear than a standard stack, but would be possible.
Beware that fully submerged (i.e. 7/7 depth) fortifications will not block the passage of creatures that swim in water (or magma) - wall grates and vertical bars work, but they are vulnerable to building destroyers.I had hoped that since magma does not have a natural flow, like water does, then it would not push creatures through the same way. But it sounds like they can get pushed through magma, too.
Screw pumps can pull water through a grate, floor bars, or a constructed fortification on the Z-level below. {source (http://df.magmawiki.com/index.php/DF2010:Screw_pump#Notes)}
Note that constructed fortifications do not have walkable floors above them, while carved fortifications do. {source (http://df.magmawiki.com/index.php/Fortification#Building_Fortifications)}I was thinking, perhaps, that a constructed fortification could be built on the z-level below the bottom pump, allowing it to draw magma while - hopefully - preventing any creatures from entering the room above. But I haven't tested that yet.
I don't understand what is meant by "head-over-head". Does this mean that the "head" of the screw pump - the dark green impassible tile - is always directly above/below the "head" of the pumps on other z-levels (such as in NecroRebel's original 3x3 design in the OP)? Or does it refer to the output tile being directly above/below the input tile of the pumps on other levels?Yes, the "head-over-head" design family referred to designs in which the impassible tile of each pump is in the same vertical shaft as all the other impassible tiles on every other pump in the stack.
I can follow the screenshot in the OP to figure out how the 3x3 design is built. But I'd much prefer to build the 2x3 design... if only I could be certain of how one level lines up with other levels.Essentially, the 2x3 design is the same as the 3x3, except with the outermost line of floors filled in with walls. So, the casing is like this:
I like that idea much more than building a drain hatch on every z-level and linking them to the same lever. However, I also really want to put a floor grate over the input square of the bottom pump. And we can't do both, can we?Well, as an alternative to a hatch on the bottom pump's intake tile, you could have a drawbridge below the bottom pump's intake tile. The bridge and mechanisms would have to be magma-safe, but when the bridge is raised, it would seal the stack's intake, thus allowing the stack to clear itself.
I refuse to build a magma pump stack without incorporating some sort of creature filtration system to ensure a forgotten beast or some such can not sneak through the magma and into the bottom of the pump stack. If that were to happen, it might destroy the bottom pump and the whole thing would collapse! :o
A locked floor grate over the input is the only guaranteed safety I can think of, since building destroyers can not destroy buildings on a z-level above. Perhaps I should be satisfied with a locked floor grate on the bottom pump's input and a lever-linked hatch on the input of the pump above that level for draining - resulting in being able to drain all but the bottom pump? That, or I might get away with a drain hatch in the output of the first pump's reservoir to drain that too.
I also thought about using fortifications, but... the wiki warns about that (http://df.magmawiki.com/index.php/DF2010:Fortification):Systems that filter out water should work identically with magma. A constructed fortification may or may not prevent creatures and/or magma from getting to your pumps. I've never found much problem with magma creatures, myself, so I'm not entirely sure how much you need to worry about it.
-snip-
I was thinking, perhaps, that a constructed fortification could be built on the z-level below the bottom pump, allowing it to draw magma while - hopefully - preventing any creatures from entering the room above. But I haven't tested that yet.
The only other method I can think of is the "river filter" system of multiple diagonal fortifications. (See this post (http://www.bay12forums.com/smf/index.php?topic=68838.msg1699879#msg1699879)) But I don't know how that would work with magma and magma creatures.
...Mind you, as mentioned in the first post, the head-over-head designs are generally worse than a head-over-tail design with a 3x1 reservoir on each level instead of the standard pump stack's 1x1.Ah! Somehow, I missed the fact that the OP had been edited recently (May 29'th). :-[ Yeah, that 3x1 head-over-tail design, being almost identical to the standard water pump tower, is easy to understand and would take less space. But has anyone tested whether these designs are expandable to accommodate multiple pumps per level?
Ah! Somehow, I missed the fact that the OP had been edited recently (May 29'th). :-[ Yeah, that 3x1 head-over-tail design, being almost identical to the standard water pump tower, is easy to understand and would take less space. But has anyone tested whether these designs are expandable to accommodate multiple pumps per level?Most of the designs don't accommodate multiple pumps per level well. If you want more than 2 pumps per level, just adding an extra square at the ends of the reservoirs, as the 3x1 design does, isn't sufficient to keep everything warm, so you'd need at least one extra tile on the far side of the place that is being pumped. The 3x3, or rather 3x(2+however many pumps you have) design, avoids that in theory, but the problem is that if you don't have sufficient input at the bottom your reservoirs will begin to be drained and the far side of each from the pump itself doesn't get refilled well.
Yes, it's exactly like a normal pump stack except for the expanded reservoirs, so the 2 tiles of each pump is directly above the 2 tiles of the pump below it, and each pump pumps out of the center of the reservoir that the pump below fills. There are other ways to do it, but they're less space-efficient and don't really have any benefits.Thanks :D
I've made a 100 level pump stack with the standard 1 tile reservoir and my fps only dropped slightly, less then it does before seiges.