Bay 12 Games Forum

Dwarf Fortress => DF Dwarf Mode Discussion => Topic started by: NecroRebel on December 03, 2010, 11:57:11 pm

Title: A Better Magma Pump Stack
Post by: NecroRebel on December 03, 2010, 11:57:11 pm
Note: There has been refinements done to the original design posted in this thread that are as effective as the original but much smaller. The best known is as follows:

Casing:
=====
=+++=
==.==
  + 
  . 


With pump added:
=====
=+++=
==%==
  % 
  . 


Pump in this example pumps from south to north. =s refer to walls, +s to floors, .s to channels, and %s to the pump tiles. Like the classic-style pump stacks, the impassible tile of each pump goes directly on top of the passable tile of the pump below. Essentially, this refined design is a classic-style pump stack with the reservoir on each level expanded into a 3x1 space in order to keep the tiles around the pumped tile warm.







As I'm sure many of you are aware, using the standard-style pump stack design on magma causes massive FPS drop. 10-level pump stacks of that style, which is shown on the wiki and is the most commonly-cited style for new players due to its efficiency, can drop a fort at 50 FPS down to 20 while they're running. 30-high stacks can drop 100 FPS forts to single digits. Clearly, this is a large problem. I have come up with an alternative to the standard pump stack design that I have found causes significantly less lag when applied to magma. No noticable amount, in fact, on my current, fairly mature fort.

Spoiler (click to show/hide)

Why, you might ask, does this design cause less lag? I cannot be certain of this, but I have my theories. My thoughts on the matter is that whenever magma moves, squares that are now adjacent to or covered in magma have their temperature recalculated. The same happens when squares cease to be adjacent to or covered in magma.

In a standard pump stack, every few steps magma suddenly appears in a single square, causing the square it is now in, the 8 squares on the same z-level adjacent to that square, the tile directly above it, and the tile directly below it to have their temperature recalculated. As magma is now not in the squares below the pump's input, the counterparts there have their temperature recalculated as well. In short, whenever a pump pulls up magma, 22 temperature recalculations are done. Multiply that by 5, 10, 50, or more, and you force quite a few processor cycles to be taken up. This happens every couple of steps, so it works out to a consistent, massive FPS drop.

My new-style pump stack, on the other hand, keeps magma adjacent to the square being pumped into and out of at all times, so the temperature of the tile the magma is being taken into and out of, as well as the 8 adjacent tiles on the same z-level, is never recalculated. Only the temperature of the squares directly above and below the pump inputs is recalculated, so only 2/11s as many temperature calculations are done. As a result, many, many fewer processor cycles get eaten by this, which equates to far, far less lag.

My own experience thus far is this: I have 2 17-z-level magma pump stacks, one of the old standard style and one of the new style. Both can be shut off with a lever when needed. With neither running, I've been getting ~25 FPS. With the old-style one running, I get ~11 FPS. With the new-style one running, I get ~24 FPS. The difference is clear; whether or not my reasoning behind why the improvement exists is correct, the improvement does exist. Take heed!



tl; dr New pump stack design for magma; perhaps 1/15th the FPS drop. Yay!
Title: Re: A Better Magma Pump Stack
Post by: Gara-nis on December 04, 2010, 12:00:04 am
Well done sir. A thousand engravings will be dedicated in your honor in my latest fort.
Title: Re: A Better Magma Pump Stack
Post by: cdrcjsn on December 04, 2010, 12:16:06 am
Put this up on the wiki.

Seriously.
Title: Re: A Better Magma Pump Stack
Post by: Vehudur on December 04, 2010, 01:10:44 am
Awesome.  I love you.
Title: Re: A Better Magma Pump Stack
Post by: Xenos on December 04, 2010, 03:01:42 am
...I wish I had known of this before I built a pump stack for DOMAIN Mk.II...well...time to redo that stack...
Title: Re: A Better Magma Pump Stack
Post by: duckInferno on December 04, 2010, 03:06:30 am
Nice, thank you for your science.  Now wiki it :D
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 04, 2010, 03:27:08 am
...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.
Quote from: The Wiki
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  :)

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  ;)
Title: Re: A Better Magma Pump Stack
Post by: Xenos on December 04, 2010, 03:35:48 am
...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.
Quote from: The Wiki
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  :)

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  ;)

Just stick a gear assembly above the top pump.  Powertrain connects in, BAM.  Amazing pumpstack.
Title: Re: A Better Magma Pump Stack
Post by: Vehudur on December 04, 2010, 03:37:03 am
I'm going to try to retrofit my 80 z-level pump stack.  Update at 11.
Title: Re: A Better Magma Pump Stack
Post by: darkrider2 on December 04, 2010, 09:04:00 am
The forums ingenuity never ceases to amaze.
Title: Re: A Better Magma Pump Stack
Post by: Graebeard on December 04, 2010, 12:34:55 pm
That's hot.

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.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 04, 2010, 01:04:52 pm
That's hot.

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.

Quote
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.



Though actually, I think I might have come up with a refinement to this design already. Assuming my reasoning as to why it lowers lag is correct, it's the fact that magma remains adjacent to the tiles being pumped at all times. Thing is, you don't, then, need magma in every tile adjacent to the pumped tiles as I've got here. Instead, you just need enough to keep every tile adjacent to the pumped tile warm. So, how about this?

=====
=+++=
==.==
==+==
==.==
=====


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. It even has the same head-to-tail power transfer scheme as the old-style pump stacks.

Assuming this newest design has the same lag-reduction properties as the other, it should be the new standard for magma pump stacks. If it takes more processor power than the other, well, I think that less lag is a more important issue than the extra space the bigger one takes.
Title: Re: A Better Magma Pump Stack
Post by: thijser on December 04, 2010, 01:23:31 pm
What happens if you surround the entire stack with magma
mmmmm
m===m
m=+=m
m=.=m
m=+=m
m=.=m
m===m
mmmmm
m=magma (you can guess that it's surrounded by walls aswell).
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 04, 2010, 01:35:40 pm
What happens if you surround the entire stack with magma
It 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.
Title: Re: A Better Magma Pump Stack
Post by: Vehudur on December 04, 2010, 02:29:16 pm
With my 80 z-level pump stack...

I went from 7 fps to 83.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 04, 2010, 02:30:45 pm
With my 80 z-level pump stack...

I went from 7 fps to 83.
Impressive, and very, very nice  :D

Can you switch your pump stack off? What FPS do you get without it running at all? For !!SCIENCE!!, you understand  8)
Title: Re: A Better Magma Pump Stack
Post by: *Poster* on December 04, 2010, 02:34:37 pm
Definitely a candidate for a !!Science!! Award of some description.
Title: Re: A Better Magma Pump Stack
Post by: Vehudur on December 04, 2010, 02:41:01 pm
With my 80 z-level pump stack...

I went from 7 fps to 83.
Impressive, and very, very nice  :D

Can you switch your pump stack off? What FPS do you get without it running at all? For !!SCIENCE!!, you understand  8)

I don't think I can shut it off right now, but if I had to guess it'd be around 87-90.

I would have, personally, even with how good of an increase is expected I would not have expected nearly 1 fps per level of pump stack.  There must be something else that went on.  I will investigate further under better controls, you know, for !!science!!.


Also, yes, I nominate the OP for !!magma!! science of the month award.
Title: Re: A Better Magma Pump Stack
Post by: Trouserman on December 04, 2010, 03:51:31 pm
=====
=+++=
==.==
==+==
==.==
=====


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.

Perhaps head-over-head like this, instead of the full 3x3 reservoir?

=====
=+++=
==+==
==.==
==+==
==.==
=====
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 04, 2010, 04:11:51 pm
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.

That T-shaped design also isn't very extendible; the full 3x3 one you could extend endlessly, but the T-shaped one if you get more than 2 pumps long you start getting squares that aren't always next to magma, like this:

=======
=+++++=
==...==
==+++==
==...==
=======


As only the two tiles at the ends of the T's crossbar would usually be filled and the other 3 would be pump input tiles.

Quote
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.

Hm. A 2x3 reservoir would solve that concern, though:

=====
=+++=
=+++=
==.==
==+==
==.==
=====


We're getting back similar to the first design, of course, though it is a small improvement in its compactibility. Not as extendible as the original design, though I'm not 100% sure how well the extensibility would work with the original given that you'd have a wall of input squares blocking the far side of the reservoir from refills. Someone should apply !!SCIENCE!! to the T-shaped designs, though. Unfortunately, I'm not going to be able to do it myself for a while at least, as I lost the fort that I had been testing on to a bunch of Nightwings.
Title: Re: A Better Magma Pump Stack
Post by: thijser on December 05, 2010, 03:37:30 am
=====
==+==
=+++=
==+==
==.==
==+==
==.==
=====
And what happens if you make it like this?
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 05, 2010, 01:26:05 pm
See my comments on this design:

=====
=+++=
==+==
==.==
==+==
==.==
=====


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.
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?"
Title: Re: A Better Magma Pump Stack
Post by: doomdome on December 05, 2010, 06:11:22 pm
That's hot.

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. [...]
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.
Title: Re: A Better Magma Pump Stack
Post by: Vehudur on December 05, 2010, 06:51:56 pm
That's hot.

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. [...]
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.

Do every tile, but have it on a separate lever, because you may find yourself wanting to turn it off but not drain it.
Title: Re: A Better Magma Pump Stack
Post by: KoffeeKup on December 05, 2010, 08:33:41 pm
I'm just wondering but could we get some screen shots for this? I am having a hard time visualizing those text diagrams into actual stuff. Basically are you just filling 3x3 reservoirs that remove magma from the center keeping the walls warm so there is not much temperature change? I'll look at those typed up things again but I have never dealt with magma or pumps.

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.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 05, 2010, 10:09:26 pm
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.

Spoiler (click to show/hide)

I'll put them in the first post, too, just for people's future reference. It should be easy enough to tell how the orientation switches, since the access staircase is of course a straight column.
Title: Re: A Better Magma Pump Stack
Post by: Patchy on December 05, 2010, 10:38:50 pm
Impressive work and a most excellent example of dwarven !!Science!! for the betterment of FPS counts everywhere. I'm definately going to try installing one of these in my next fort. Most times I just leave my forges down at the magma sea to avoid building the old fps guzzler pumpstacks or at the very least install off switches on them hehe.
Title: Re: A Better Magma Pump Stack
Post by: Aner-Dyfan on December 06, 2010, 08:19:25 am
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.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 06, 2010, 12:59:51 pm
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.
Title: Re: A Better Magma Pump Stack
Post by: LealNightrunner on December 06, 2010, 01:04:24 pm
Couldn't you easily verify the theory about temperature by just turning it off on a traditional pump stack?
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 06, 2010, 01:11:38 pm
Couldn't you easily verify the theory about temperature by just turning it off on a traditional pump stack?
...
...
...
Spoiler (click to show/hide)

Yes. Yes you could.

Now why didn't I think of that?  :-[ Unfortunately, I still don't have a suitable fort with which to test these things at the moment, so testing that will have to wait a while.
Title: Re: A Better Magma Pump Stack
Post by: gtmattz on December 06, 2010, 02:57:55 pm
I like this!

I had wondered a few times why the magma stacks always seemed to kill my FPS way more than water, I don't know why I did not consider temperature as the culprit!

I am going to see if I have any working magma stacks to test turning temp on and off so as to add some supporting !!SCIENCE!! to this.
Title: Re: A Better Magma Pump Stack
Post by: Sutremaine on December 06, 2010, 04:06:11 pm
=====
=+++=
==.==
==+==
==.==
=====


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.
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.

Code: [Select]
                 *
                %%^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.

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. :)
Title: Re: A Better Magma Pump Stack
Post by: squeakyReaper on December 07, 2010, 05:42:39 pm
While not terribly efficient, I guess an "off" switch could be a flood gate built in to the side of each one.  Have two pits going down, back into the magma sea, so that when you open the flood gate the magma falls into one of the two pits.  The magma would EVENTUALLY go into the magma sea.  Still much slower than a typical magma pumpstack's off switch, but eh.

=====
=+++===
=+++X.=
=+++===
==%====
==%==.=
==.====
=====

=====
==.====
==%==.=
==%====
=+++===
=+++X.=
=+++===
=====
Title: Re: A Better Magma Pump Stack
Post by: LealNightrunner on December 08, 2010, 12:52:28 am
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.
Title: Re: A Better Magma Pump Stack
Post by: Xenos on December 08, 2010, 01:04:16 am
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. 
Title: Re: A Better Magma Pump Stack
Post by: doomdome on December 08, 2010, 10:57:05 pm
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.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 08, 2010, 11:16:06 pm
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.

Code: [Select]
                 *
                %%^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.

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. :)
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.

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.
Title: Re: A Better Magma Pump Stack
Post by: Sutremaine on December 09, 2010, 12:02:16 am
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.[/quote]
And also to make the pressure plate accessible should the triggers need to be tweaked. Yes, that would be a lot better.
Title: Re: A Better Magma Pump Stack
Post by: NaziBad on December 12, 2010, 09:20:13 pm
What is with your code? Shouldn't it look like this:
=====
=+++=
=+++=
=+++=
==%==
==%==
== . ==
=====

=====
== . ==
==%==
==%==
=+++=
=+++=
=+++=
=====

of course, with the channels, represented by dot, in each diagram being the same ones, just on the next level down or up?
Title: Re: A Better Magma Pump Stack
Post by: Igawa on December 12, 2010, 10:06:36 pm
You sir, definitely deserve a wiki spot for this! :)


#####     #####
#+++#     ##.##
##%##     ##%##
##%##     ##%##
##.##     #+++#
#####     #####

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 very dangerous fun). 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?

Just my thoughts on implementing this newfound knowledge to an old engineering standard.

Title: Re: A Better Magma Pump Stack
Post by: The Phoenixian on December 12, 2010, 11:12:27 pm
...Dangit I knew that idea was too good to be unclaimed.

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.

Code: [Select]
Like so:

#####     #####
#¢¢¢#     #...#
##%##     ##%##
##%##     ##%##
#...#     #¢¢¢#
#####     #####

It's a clowncar of a lot of work though.
Title: Re: A Better Magma Pump Stack
Post by: Igawa on December 12, 2010, 11:20:56 pm
The biggest weakness with using hatches is that if you screw up and a hatch (plus mechanism) isn't magma safe, you end up nuking your whole stack below the level of the hatch (because a floating stack is technically in one single space). Also, aside from the workload to rig all the hatches, you might get unlucky when you 'drop' the magma down, and it will go sideways and down instead of straight down and nuke a pump.

Best way to empty a stack is shut off the intake and pump all the excess out the output end.
Title: Re: A Better Magma Pump Stack
Post by: Trouserman on December 12, 2010, 11:22:52 pm
Does the magma in the side pockets NEED to be 7/7 to heat the tiles above it?

No.  I was filling a magma reservoir to heat a seasonally frozen pool, recently, and it in fact it only melted the pool while it was filling.  The pool would sporadically refreeze, and then melt again.  Next winter, when the reservoir was 7/7 full, the pool froze and has not been reheated.  So heating seems more related to magma movement than to any particular depth.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on December 12, 2010, 11:27:37 pm
What is with your code? Shouldn't it look like this:

-snip-

of course, with the channels, represented by dot, in each diagram being the same ones, just on the next level down or up?
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.

You sir, definitely deserve a wiki spot for this! :)

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 very dangerous fun). Then, each pump layer built is already desynchronized.
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.

Quote
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.

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.
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.



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.
Title: Re: A Better Magma Pump Stack
Post by: Sutremaine on December 13, 2010, 01:27:31 pm
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.
Title: Re: A Better Magma Pump Stack
Post by: Reese on December 13, 2010, 02:57:18 pm
so, I have a question...

If the lag is cause by massive temperature recalculation, when is the temperature recalculated?

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?
Title: Re: A Better Magma Pump Stack
Post by: Igawa on December 13, 2010, 05:24:56 pm
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'.

Some implications if this is true, aside from a pump stack built from the top down 'instantly' transporting magma to the top in 1 tick (with no extra temp recalculation), is that if you place, say, a noble, in one of the input/output chambers somewhere in the pump stack, he won't burn to death, despite the fact that he HAD to have been immersed in magma at some point during tick generation (otherwise, the magma could never have reached the top: it still had to go through the stack).

Edit: Just thought of this...I'm a bit rusty on my DF pump logic. If it worked like you said, and magma was pumped from bottom to top in 1 step, what about the next step? Does it 'push' the 5/7 or 6/7 or whatever stack which is still sitting next to the pump out of the way? If it doesn't, won't that eventually cause each input/output chamber to fill?
Title: Re: A Better Magma Pump Stack
Post by: Reese on December 13, 2010, 05:51:25 pm
eventually, yes.  Just like pressure will fill an area completely and afterwards your pump stack will have magma in each chamber, taht won't change.  What does change is that due to the order of operations, only one chunk of magma will be moving within the stack at any given time, rather than each chunk shifting 1 Z-level.

basically, once the stack is full, you should get the effect a chunk of empty space moving down the stack 1 Z-level at a time.
(it's similar to the way electronics are some times visualized with positive flow even though the reality of it is negative particles moving in the other direction- darn you, Benjamin Franklin!)
Title: Re: A Better Magma Pump Stack
Post by: Trouserman on December 13, 2010, 08:46:02 pm
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'.

I don't think the temperature is recalculated for every square, every tick.  I suspect that certain squares are marked for recalculation as magma moves, or other events happen which affect temperature.  So, as magma moves up this stack, the relevant squares are probably marked.  The temperature calculations could be either fast or slow, depending on how they are optimized, as we see from the stacks in this thread.
Title: Re: A Better Magma Pump Stack
Post by: FearfulJesuit on December 13, 2010, 09:15:55 pm
My dear sir, you deserve a !!Nobel Prize!!.

We need !!Nobel Prizes!! for !!SCIENCE!!.
Title: Re: A Better Magma Pump Stack
Post by: BuGGaTon on December 19, 2010, 07:31:35 am
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
Title: Re: A Better Magma Pump Stack
Post by: Musashi on December 19, 2010, 07:54:08 am
My dear sir, you deserve a !!Nobel Prize!!.

We need !!Nobel Prizes!! for !!SCIENCE!!.
You mean something like a !!Shorast Prize!! instead, right?
Title: Re: A Better Magma Pump Stack
Post by: Sizik on January 06, 2011, 01:52:52 am
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

The %% is the pump, X is an up/down staircase, and O is either a glass door or a wall, neither of which would be particularly effective given the fact that you can walk right past it diagonally.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on January 06, 2011, 02:11:37 am
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
Sorry I didn't get this sooner; I hadn't noticed anyone had posted recently.

The %%s are, as Sizik says, the pumps. In the upper of the two pictures, it pumps from south to north, and in the lower from north to south. The X is indeed an up/down staircase. The O is a constructed wall; for access to the reservoir, I had mined out one of the tiles that access it diagonally, but needed to seal that again so magma wouldn't flood my access stairs, hence the wall.

The wall is intentionally placed such that dwarves can still get by it to the passable tile of the pump to service it if necessary by passing through diagonally, and is in fact very effective at what it's meant to do, unlike what Sizik says, which is stop the magma from flooding anything  :P
Title: Re: A Better Magma Pump Stack
Post by: ikkonoishi on January 06, 2011, 02:46:11 am
I thought of something I want to try when I get home. Magma is chunky right? So once you pull it up a level it shouldn't flow away unless it gets pressurized. So if you build something like...

....
..X.
..+.
....

....
.+X.
.+..
....


Put the walkable side of the pump on the lime +(floor), and possibly a gear on the orange for extra support. X is a staircase of course. So long as !!everything!! is magma safe there shouldn't be a problem.
Title: Re: A Better Magma Pump Stack
Post by: Reese on January 06, 2011, 04:39:55 am
Magma is chunky right? So once you pull it up a level it shouldn't flow away unless it gets pressurized.

nope, magma will spread out just like water if there's an empty tile for it to spread in to.

also, not sure about your diagrams there, a pump is 1x2 tiles, not 1x1
Title: Re: A Better Magma Pump Stack
Post by: ikkonoishi on January 06, 2011, 08:11:02 am
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.
Basically this arrangement should end up looking like...


~~X~
~%%~
~~~~

~~X~
~%%~
~~~~

With everything full of magma except the blocking pump block. However it turns out I'm to tired after work to bother with it at the moment so !!science!! will have to wait.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on January 06, 2011, 11:20:40 am
Magma gets pseudo-pressurized when it goes through pumps. Pumped magma functions identically to pumped water, and so can and will flow away quite quickly when you've got any holes in your system.

I'm more just wondering what the purpose of your design there is. It seems inferior to the simple T-shaped design discussed earlier, as it basically is the T-design except without walls preventing magma from flooding the access routes. So, it just takes more magma to fill, runs constantly since it probably can't actually fill itself due to the pressurized magma from the top being able to teleport to the bottom, and has a somewhat larger footprint.
Title: Re: A Better Magma Pump Stack
Post by: ikkonoishi on January 07, 2011, 12:37:08 am
Mostly ease of designation, and construction. Magma shouldn't be able to teleport down to the bottom because the bottom will already be full of magma. Or at least thats the theory. Like I said I haven't tested it because I was too tired after work yesterday. With luck today will be the day. Note that the dots are all open space. Its just basically a giant tube full of pumps. As the pumps run magma flows up the tube. Make it so a pump fills the bottom of the tube separately from the stack, and you can't get any backflow. Another way to do it would be..


XXXX
X%%X
X%%X
XXXX


Mirror it horizontally on each floor. You get two pumps per level this way.

edit: Tested it. Nothing special really. Easy to set up, and gets the magma up there. Making it all out of iron or glass is annoying though.
Title: Re: A Better Magma Pump Stack
Post by: Valguris on February 24, 2011, 07:17:32 am
I'm for this design:

Code: [Select]
=====
=+++=
=+++=
==.==
==+==
==.==
=====

To drain it all:

At top pump output, instead of:
Code: [Select]
======
.%%+++
======
make
Code: [Select]
======
.%%++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. :)
You can easily modify already built pumpstacks.
Title: Re: A Better Magma Pump Stack
Post by: Edosurist on April 13, 2011, 08:26:21 pm

Listen to some of these success stories:

With my 80 z-level pump stack...

I went from 7 fps to 83.
bravo, well done. does anybody want to start up the Urist Prizes?
Title: Re: A Better Magma Pump Stack
Post by: nordak on May 29, 2011, 03:14:49 am
Just a thought, temperatures can be turned off, less calculations euqals less fps... so you only have the drop from flow....  just my theory...
Title: Re: A Better Magma Pump Stack
Post by: Lytha on May 29, 2011, 04:10:10 am
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.
Title: Re: A Better Magma Pump Stack
Post by: Brambled on June 07, 2011, 07:38:46 pm
Is there anyone out there that can do a short video of them building this using a texture pack?  I am having a ton of trouble trying to figure this out and there are no videos of this at all some reason.
Title: Re: A Better Magma Pump Stack
Post by: Werdna on June 08, 2011, 01:55:25 pm
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.

Yes, but shutting temperatures off would be a quick way for someone to confirm the 'lag' hypothesis - that the lag savings between the two stack methods was from temp calc savings.
Title: Re: A Better Magma Pump Stack
Post by: The Grackle on June 08, 2011, 03:53:10 pm
For converting an old pump-stack w/o redesigning the whole thing, you could dig vertical shafts/chimneys alongside the stack and then pump magma into them.  (Separate shafts. Not connected to the reservoirs at all.)   Those shafts would keep whatever tiles you need permanently heated.  Also you could have the bottom of these shafts attached to floodgates so that you could drain the whole thing very quickly.  Obviously, this would be easier for below ground stacks than for constructed towers.
Title: Re: A Better Magma Pump Stack
Post by: Thundercraft on June 12, 2011, 12:00:05 am
What an awesome discovery by NecroRebel! 8) I'm glad that magma pumps don't have to be such FPS hogs. However, I still have a few questions:

...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 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.

...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.
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?

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):
Quote
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.
I did notice something else, however:
Quote
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)}
Quote
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.
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.
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on June 12, 2011, 12:22:57 am
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.

Quote
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:

===== =====
==.== ==.==
==+== ==+==
==.== ==.==
=+++= =+++=
=+++= =+++=
=+++= =====
=====


The next level above and below are the same, except rotated 180 degrees around the red channel.

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.

Quote
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?

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.
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.

Quote
I also thought about using fortifications, but... the wiki warns about that (http://df.magmawiki.com/index.php/DF2010:Fortification):
-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.
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.
Title: Re: A Better Magma Pump Stack
Post by: Thundercraft on June 12, 2011, 03:52:47 am
...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?
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on June 12, 2011, 02:01:18 pm
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.

Generally, if you want more magma flow, it's probably better to have multiple intakes into the stack, as even if your intakes are in the center of a magma pool the pumps will still move it up faster than the magma can flow in. You actually will get quadruple the magma flow if you just have 4 pumps feeding the second-to-bottom pump rather than just 1. If you need even more than that, well, multiple stacks might be in order.
Title: Re: A Better Magma Pump Stack
Post by: Farmerbob on June 21, 2011, 07:39:27 am

Just out of curiosity, if the issue is a heat issue, maybe just dig some 1x1 stairwells around an old style pump stack and fill them with magma?  Static magma that never moves and maintains the temperature of the main stack.

Not sure if this would be useful or not though.  It might be good for forts with really huge pump stacks that are of the old style, you could heat their walls and get rid of the heat effects without having to completely disassemble them.

Does the wet effect have the same FPS-affecting symptoms?
Title: Re: A Better Magma Pump Stack
Post by: Root Infinity on June 21, 2011, 07:49:59 am
I actually have both a 150z-level pump stack in my current "spare" fort (Only source of water is in the third cavern layer  :(), and a magma piston that I'm slowly extending upwards (The caverns are set to maximum openness, so it's 48 z-levels down on the top from where it should be  >:() - I'm getting about three z-levels up for each z-level I drop it.

I am currently retrofitting my water pump stack to be able to switch back and forth from magma to water, using a modified version of this pump stack (it has bridges so that it can drain out any remnants of water or magma so it doesn't clog)

Title: Re: A Better Magma Pump Stack
Post by: Melissia on September 17, 2011, 08:59:57 am
A bit new to making magma pumps... on the 1x3 reservoir, how would I stack them for different Z-levels?

Like this:

Z=(first layer)
=====
=+++=
==%==
  % 
  . 


Z=(first layer)+1
  . 
  % 
==%==
=+++=
=====
  . 


... etc., reversing the pumps each z-level, each pump directly over the next?  Or is there another recommende way to do it?
Title: Re: A Better Magma Pump Stack
Post by: NecroRebel on September 18, 2011, 12:21:26 am
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.
Title: Re: A Better Magma Pump Stack
Post by: ThatAussieGuy on September 18, 2011, 02:14:01 am
You could also do Dariush's reservoir-less pumpstack.  Essentially it makes the fluid just pass straight up to the next pump without settling so it can't fall.  I think it can get a bit messy when the pumpstack stops though.  I cant remember if it improved the FPS any over NecroRebel's design.
Title: Re: A Better Magma Pump Stack
Post by: Melissia on September 18, 2011, 06:29:48 am
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

Now it's time to go play with magma for the first time and see how much fun I can have :D
Title: Re: A Better Magma Pump Stack
Post by: magic dwarf on September 21, 2011, 10:33:45 pm
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.
Title: Re: A Better Magma Pump Stack
Post by: Daenyth on September 22, 2011, 08:47:29 am
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.

Was it a magma or water stack? Do you have temperature turned off?
Title: Re: A Better Magma Pump Stack
Post by: Ethnar on September 22, 2011, 11:37:53 am
I had 149 level magma stack with temperature enabled in vanilla 31.25 and no real FPS drop after starting the engine. I've read the info on wiki about the FPS drop, but wanted to see this drop myself.