v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

v0.34:Pressure

From Dwarf Fortress Wiki
Jump to navigation Jump to search
This article is about an older version of DF.

Dwarf Fortress features some pretty complex behavior in an attempt to simulate fluid mechanics. One aspect of this behavior is seen in the form of pressure. The basic idea here is quite simple - certain forms of fluids movement exert pressure, causing them to potentially move upwards into other areas.

Summary[edit]

Contrary to what many people may believe, pressure is not a property of a body of liquid. Pressure is simply one of 3 rules by which liquids can be moved - the others are simple gravity (when the tile beneath contains less than 7/7 of liquid and it simply falls downward) and diffusion (when the liquid levels of two adjacent tiles are averaged, possibly pushing items around).

The following types of liquid movement follow the rules of pressure:

  • Water falling downward into more water
  • River/brook source tiles (whether the map edge or the "delta" where the river itself begins) generating water
    • Lakes (surface or subterranean), oceans, and the magma sea refilling from the map edge do not exhibit pressure
  • Screw pumps moving water or magma

When a liquid is moved (or created) with pressure, it attempts to locate the nearest tile on the same Z-level as its destination tile (for falling water, this is 1 Z-level beneath its original location) by moving north, south, east, west, down, or up. As it tries to locate an appropriate destination, the liquid will first only try to move sideways and downward - only when this fails will it attempt to move upward. Pressure will not propagate through diagonal gaps.

A demonstration of pressure using U-Bends[edit]

A U-Bend is a channel that digs down, and curves back up. With pressure a fluid will be pushed up the other side of the u-bend. By understanding how pressure works in a u-bend you should be able to adapt this knowledge to use fluids in any configuration you desire without any unexpected surprises that could make life in your fortress more fun than anticipated. Water and magma both behave very differently with regards to pressure, so read carefully.

Water in a U-Bend[edit]

The key to understanding how high a z-level water will reach is to understand which tile(s) pressure is being exerted on. Pressure will cause the water level to go as high as the tile upon which pressure is being exerted, but no higher.

The following three diagrams demonstrate different ways water might behave in a u-bend. In all three cases, the water source is on the left side of the diagram and water is filling the area to the right. In the first example (Diagram A), we have water taken directly from a (flat) river used to fill a u-bend. In this case, the river is free to flow off the edge of the map, so the only pressure comes from the water tile on the top of the u-bend's left side (highlighted in green) falling downward (into the tile highlighted in red), so the water on the right side stops one level below the river itself, because even though the source tile is at river level, the destination tile (in red), whose height the water will reach because of pressure, is one z-level below the source tile.

In the next example (Diagram B), a dam has been placed, preventing the river from flowing off the edge of the map. In this case, the pressure exerted by the river source (highlighted in red) allows the water to fill up the remaining level of the u-bend. Use caution when placing a dam on your river. Note that this situation also applies on a map where the river is running into the sea. Rivers running into the sea are obviously not free to flow off the edge of the map, so the sea itself actually "dams" them.

The final example (Diagram C), demonstrates how a screw pump exerts pressure - in this case, the water fills up to the same level as the pump's output tile (highlighted in red).

With these three simple examples, you should be ready to go build your enormous plumbing masterpiece, and be relatively safe from any unanticipated flooding. If you plan to work with magma as well however, you should read further.

Diagram A Diagram B Diagram C
Undammed River Dammed River Screw Pump
÷ ÷

Magma in a U-bend[edit]

Magma does not exert pressure when it falls downward. In our first magma example (Diagram A) we show how this works by creating a short u-bend and connecting it up to a magma pipe - it simply fills the lowest point and makes no further attempt to go back up.

In the second diagram (Diagram B) we see how with the addition of a single screw pump, the entire situation changes dramatically - when the screw pump moves magma to the right side, it does so using the rules of pressure and allows the area to fill up to the level of the pump. Accidentally flooding your fortress with magma is considerably more fun than a flood of water.

  Diagram A       Diagram B
  Magma Pipe      Screw Pump
  Side View       Side View
≈≈≈▒ %%≈≈≈▒ %% = Pump≈≈≈▒ ▒ ▒≈≈≈▒▒≈≈≈ = Magma ▒≈≈≈▒ ▒ ▒≈≈≈▒▒≈≈≈▒ ▒ = Solid Ground ▒≈≈≈≈≈≈≈▒ ▒≈≈≈▒▒≈≈≈≈≈▒ ▒≈≈≈▒▒▒▒▒ ▒≈≈≈▒▒▒▒▒▒▒▒

Advanced Pressure[edit]

Lazy model[edit]

Pressure is a lazy model, but will always behave like above. For example, a system on z0 receives water from a cistern z3 in amounts of ~3/tick. This system consists of a tree of passages, one tile wide, and contains 'underpasses' on z-1. Water will flow into the system to a depth of 7 before coming up on the other side of a the first underpass, as is expected. However, if faced with two underpasses, it will choose the nearest one and fill all the system on the other side of that underpass to a depth of 7 before filling the system on the other side of the far underpass. Similarly, if faced with multiple exits from the system, the whole flow will flow out of one exit, the nearest lowest one.[Verify]

Waterfalls[edit]

Waterfalls are of special concern. When drawing water from a waterfall it is important to understand that, since the water is falling on top of the river's surface, the pressure exerted when it falls down into the river will permit it to pass through U-bends that would normally not be filled when using a flat undammed river - if you tap into a river below a waterfall just as you would above it, you could very easily flood your fortress.

Neutralizing Pressure[edit]

There are three methods for neutralizing fluid pressure: diagonal connections, screw pumps, and active control systems. Knowing how to manipulate pressure as needed allows you to quickly move fluids wherever you wish in your fortress allowing you to build things a dwarf can be proud of. Note that fortifications do not neutralize pressure.

Diagonal Flow[edit]

Liquids moving via pressure can only move to orthogonally adjacent tiles. When faced with a diagonal gap, pressure will fail to move the liquid, forcing the liquid to instead spread out. By forcing fluids through a diagonal connection you can prevent pressure from propagating past a certain point.

This does not work on a vertical basis - water only travels straight up and down to different Z-levels, never diagonally.

If you wish to maintain the rate of flow after de-pressurizing, it's recommended that you have more diagonals than water tiles - that is, if the source is 3-tiles wide, you may wish 4 or more diagonal passages.

Top View
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
 > > >        ▒   >  >  >
4Z Pressure  ▒  1Z Pressure
 > > >      ▒     >  >  >
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Side View 
▒≈≈≈▒ ▒≈≈≈▒ ▒≈≈≈▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒≈≈≈≈≈≈≈≈RRR≈≈≈≈≈≈≈▒ RRR = Regulator design as seen in top view ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Pumps[edit]

Since water pressure does not propagate through pumps, it is possible to fill a pool from a "pressurized" source using a screw pump without it overflowing. Of course, there is a downside - you still have to run the pumps and due to the source water's pressure, the pump must be powered instead of run by a dwarf, as the tile the dwarf needs to stand on is filled by water. Furthermore, the pump will likely need to be powered from above or below (as water would simply flow around a gear or axle placed next to the pump), though creative setups are still possible by using additional screw pumps to transmit power.

Your vertical axles or gear assemblies need to be placed above the solid tile of the pump, and there must not be a channel over the walkable pump tile. (Water can only flow straight upward, not up and to the side at the same time.) Multiple adjacent pumps will also transfer power between themselves automatically.

Side view
                      
    Power  Water       Key
      ↓    ↓↓↓↓↓       ▒ = Normal wall
▒▒▒▒▒▒▒▒▒≈≈≈≈≈        = Wall that pressurised water would flow into if it were to be dug out
▒▒▒▒▒▒▒▒▒▒≈≈≈≈        = Regular water
_ ___▒▒▒▒▒▒▒▒≈≈        = Pressurised water
▒≈≈≈≈≈%%≈≈≈≈≈≈≈≈      %% = Pump
▒▒▒▒▒▒▒▒▒▒▒▒▒▒        = Axle
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒       _ = Floor

Do note that the screw pump will still exert pressure when filling the pool, but said pressure will be independent of the source and can be subsequently blocked by diagonal gaps.

Active control system[edit]

An active control system can allow some water flow while preventing pressurized water from overflowing. Such a setup is significantly more complicated than the other two options, but it can produce controlled amounts of water at varying depths and pressures. While there are many different ways to set up a control system, a relatively simple example is shown below:


Side view

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒≈≈≈≈≈▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
8Z Pressure ≈ |≈≈≈≈≈| ≈  2Z Pressure
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒


Two doors ('|') are connected to a control system (such as levers or a minecart loop). The control system is designed to only open one of the doors at a time. When the left door is open, the pressurized water fills a reservoir. When the right door is opened, the reservoir provides reduced pressure and limited flow. The cycling can be controlled manually (by pulling levers), or automated (minecarts, pressure plates, etc.). Throughput is limited by how quickly the doors can be cycled; pressure plates normally have a 99 tick refractory period, but clever design can reduce that significantly.

Hatches[edit]

Hatches can be placed over channels, stairs, ramps, etc. to prevent water from moving vertically but will still allow the tile to be used, even as a water source (and possibly still for fishing too). Note that the construction of a hatch over the input tile of a Pump prevents water from being pumped.

Plumbing Schemes[edit]

Using the information above, you can devise a number of ways to get the water where you want it be. The following schemes provide a starting point for noobs:

Safe well[edit]

Side view

▒▒▒▒▒▒▒▒X▒≈≈≈ <-- potable water source
▒▒▒▒▒▒▒▒X▒
  w  ▒▒OO▒
▒▒ ▒▒▒▒X▒▒
▒   ▒▒▒X▒▒
▒▒_▒▒▒▒X▒▒
▒▒     X▒▒
▒▒▒▒▒▒▒▒▒▒

Pressure regulator, Top view

▒▒▒▒
▒▒u▒ <--up stair (to water source)
▒d▒▒ <--down stair (to reservoir)
▒▒▒▒

Dig the up/down stairs ('X') near a source of good clean water (river, stream), and tunnel to the location below where you want your well. Make sure to add the pressure regulator ('OO') at the height of the well by digging another stairway diagonally adjacent to the first. Dig out the reservoir on the left side, channel down into the supply tunnel, and add a grate ('_') directly below the well (this grate keeps enemies from entering your fort via the well). Finally, channel a connection between the water source and your supply tunnel to fill the reservoir, and build your well ('w'). You can also build additional wells directly above the first, as long as you channel a clear path straight down into the reservoir.

Pillar of pools[edit]

Can be used to provide each level with a pool. A central 'pillar' of water extends all the way down and provides the water.

  • ▒ = wall
  • H = channeled out
  • ≈ = water
  • | = flood gate
  • d = down staircase
  • x = up/down staircase


Top floor, Top view

▒▒▒▒▒▒▒
 H▒d|≈≈≈ <-- water tunnel (e.g. coming from a river or your cistern)
 H▒▒▒▒▒
▒▒▒▒▒▒▒

Top -1, Top view

▒▒▒▒▒▒▒
▒≈▒x▒H
▒≈≈▒▒H
▒▒▒▒▒▒▒

Top -2, Top view

▒▒▒▒▒▒▒
 H▒x▒≈▒
 H▒▒≈≈▒
▒▒▒▒▒▒▒

Obviously, keep the central block (with up/down staircase) aligned on each level. For lower levels simply continue alternating the -1 and -2 layouts.

Don't forget to add a lever and hook it up to the top floodgate so you can shut off the main flow if you're experiencing flooding fun.

You can also add additional floodgates on each level if you like:

z-1, Top view

▒▒▒▒▒▒▒
▒≈▒x▒H
▒≈|▒▒H
▒▒▒▒▒▒▒

z-2, Top view

▒▒▒▒▒▒▒
 H▒x▒≈▒
 H▒▒|≈▒
▒▒▒▒▒▒▒


See Also[edit]