Lawnmower Man Posted January 18, 2019 Share Posted January 18, 2019 After getting frustrated by having too many dedicated gas/liquid pipes running around my base, I switched to a design where a single ring of pipes goes around my core base, and producers/consumers connect to it over the shortest distance. While multiplexing different gases and liquids requires extra care and attention, I find that it cleans up the piping considerably. Just wondering if folks with more mature bases also do multiplexing or if they run dedicated lines everywhere? For those who would like to try the idea, here are the constraints and some usage tips: Obviously, there can't be more than 1 kg/s gas or 10 kg/s liquid on the bus at any time. If you need to move more than 500 g/s gas or 5 kg/s liquid for more than a short time, you should use a dedicated line. The limitation only applies to the bus segment between the producer and consumer. It's nice to keep them close together if possible, because then different parts of the bus can handle high volume, and the total volume of producers + consumers can be > the global pipe throughput. Since you can choose to flow the bus CW or CCW, choose the direction that creates the shortest average path between all producers/consumers. When taking fluid off the bus, use a standard element sensor + shutoff to conserve energy. Spoiler These have problematic behavior on backup, but if you follow the design rules, the bus itself will never block, and if your offramp blocks, that's ok. The packets will just make another round until it opens up. You need the bridge right after the shutoff because if you have two offramps in a row, packets can ping-pong between the ambiguous sinks. Although it is very tempting to run pipes inside walls, it is slightly more convenient to run them next to walls so you don't have to jog the pipes out for an offramp. When putting fluid onto the bus, always use a bridge! The bus traffic must always have priority, so producers *must* be able to tolerate blocking. Spoiler Ideally, the bus will only contain full packets. That is how you obtain maximum throughput. However, many producers do not generate full packets (gas pumps, natgas gens, polymer presses, etc.), so you will often need a concentrator. Since the bus can sometimes have long stretches of blocking, it is also useful to have a buffer line going to the onramp. If you need a consistent average flow rate, the concentrator should go *before* the buffer line (e.g., natgas going from storage to gens). If want a lot of buffer, just use a reservoir (e.g., pumping out a collection of junk gases at a low point). I don't remember where I first saw the concentrator logic, but the Buffer should be set to 1s to release one packet at a time, and the Filter is set to the delay between packets (3s results in 250 g/s if all packets are full). Because automation is sloppy, sometimes two packets will escape at once. Deal with it. Use insulated pipes everywhere!!! This is especially important if you are sloppy like me and accidentally suck steam into your gas pumps. If it's cool steam (< 110C or so), it will condense in a short distance and wreck your pipes. If they are insulated, the packets might survive an entire loop. Obviously, build an offramp for steam. I use igneous, which is generally good enough, but I probably have enough ceramic to spam that everywhere now. I use insulated pipes everywhere except inside my core base. This allows me to, for instance, store NatGas at the geyser temp (150c) without leaking heat everywhere, transfer H2 at 70C, move near-steam water across the map, pump crude around 110C up to my volcano, etc. Some of my use cases: Since I have 2 electrolyzers, I concentrate my H2 at 3s Filter, which is close to the 224 g/s theoretical production rate. This lets me put my electrolyzers close to my geysers, and my hydro gens far away in my Power Room. I heat water condensed from my steam vents to 99C before feeding them into my electrolyzers, for maximum heat deletion. I also send this water down to my oil well. Near my oil well, I have a cool water vent that I cool down to 25C for my main base pool, using my crude oil basin as a heat sink for an AT. When I have enough water in the pool, I send the rest over to the steam vent room to lower the average temp. So I have both hot and cold water packets on the bus, which means that I need to use two filters to get the right packets into my pool. Spoiler The electrolyzers generate 1.9 kg/s of O2, so they have a dedicated distribution network, obviously. Link to comment Share on other sites More sharing options...
Neotuck Posted January 18, 2019 Share Posted January 18, 2019 How do you get 1.9kg/s O2 from only 2 electrolyzers? Link to comment Share on other sites More sharing options...
Lawnmower Man Posted January 18, 2019 Author Share Posted January 18, 2019 53 minutes ago, Neotuck said: How do you get 1.9kg/s O2 from only 2 electrolyzers? Sorry, 1.7 kg. Was doing the math in my head and not very well, apparently. Link to comment Share on other sites More sharing options...
Craigjw Posted January 18, 2019 Share Posted January 18, 2019 I played around with a ring bus once, however, the volume of gassesl/iquids was too high. I don't bother any more. Link to comment Share on other sites More sharing options...
beowulf2010 Posted January 18, 2019 Share Posted January 18, 2019 I've also tried it a couple times. My computer didn't like the sheer amount of liquid and gas continually circling the base. Might be better now that fluid is multi threaded. Link to comment Share on other sites More sharing options...
KittenIsAGeek Posted January 18, 2019 Share Posted January 18, 2019 There are some benefits to your idea, but it wouldn't work in my base. Usually when I'm moving a liquid or a gas, I'm using up most of the pipe's capacity. Its a major drawback of the system -- for example, if you use water, polluted water, and petroleum on a single loop, then the total 'use' amount can never add up to more than 10kg/s. Even with less than total capacity, you run into some problems. Lets say that you're running two Electrolyzers (1000g/s water each), one petroleum generator (2000g/s petrol in, 750g/s polluted water out), and a carbon skimmer (1000g/s water in, 1000g/s polluted water out) all on the same piping network. Your total flow rate = 6750g/s of fluids -- 67.5% of your pipe's capacity. You'll have to make sure that your inputs are rate limited, but only submit full packets. So you want one packet of 10kg water rather than 5 packets of 2kg water, or you may end up starving your generator. Lets say that you have a pump adding 3kg/s water (the rate necessary to run both electrolyzers and the skimmer). If water has the priority, then you'll end up with only water getting added to the system in 3kg packets. Lets say that instead, petrol has priority and a pump is adding 2kg/s of petrol to your pipe. When the water reaches the point where the pump is adding petrol to the line, it will wait until there's an empty spot -- except that there won't be, because the petrol pump is continually adding 2kg packets to the line, holding the water back. So you need a method to group each producer's packets into a single packet that will sufficiently provide for consumers down the line. For this example, lets assume that you're somehow perfectly alternating fluid packets within your loop: Water, petrol, polluted water. We'll also assume that you're adding packets that sufficiently allow for 100% up-time. Your electrolyzers, for example, need enough water to operate for 3 cycles before the next packet of water comes along. So each packet of water needs to be at least 6kg. The next water consumer will be the skimmer, which will also need enough water for 3 cycles, so that means a total water packet size of 9kg -- almost capacity for your pipes. Your petrol generator needs a single packet to be at least 6kg of petrol, and your total polluted water added to the network will be 5250g for every 3 rounds your devices operate. Everything looks good from a math perspective. However, there's another problem: What if things get out of sync? Remember, the above example assumes that you're perfectly alternating the three packets of liquid within the pipes. What if something goes wrong and you get, say, two packets of petrol in a row? Now you've got 1 packet water, 2 packets petrol, 1 packet polluted water. This means that your electrolyzers and scrubber will need to run for FOUR rounds, for a total consumption of 12kg water until the next packet comes along. Your pipe has a limit of 10kg per packet, so something is going to stop operating due to a lack of sufficient water. If any set of consumers need more than 1 full packet of its associated fluid, things are going to get really tough. Lets add another electrolyzer to the mix. Now your total requirement for every-third-packet means you would need 12kg packets of water. This doesn't work. So lets change your pattern. Now you're adding two packets water, one packet petrol, one packet polluted water. You can add two 6kg packets of water, or one 10kg, one 2kg. Just so long as the two packets add to 12. But you need 4 rounds of petrol for the generator now, so that's 8kg, so it works. Also, your polluted water is OK at this point as well. Now lets add a second generator. Four rounds of operation for two generators is 16kg of petrol. Your new packet cycle must be 2 packets water, two packets petrol, one packet polluted water. Oops, that's 5 packets. OK, so we need to operate for 5 rounds. That's 20kg of water split into two packets, 20kg petrol, and 8750kg/s polluted water. As long as you guarantee perfect distribution, you're fine, but the moment things get out of sync it will start a cascading failure and something will end up starved for resources until you can recalibrate. Also, you can no longer add any producers or consumers to your network. You can eliminate some of the headache by having a sufficient buffer in front of each consumer, but the closer you are to the capacity of your pipes (10kg/s), the more difficult it will be to maintain the system without something losing resources. Finally, there's some temperature problems. Unless all of your pipes are insulated Insulation pipes, the temperatures of your fluids are going to mix. This could be good or bad. Lets take some extreme examples. Suppose you have a loop with petrol and LOX for fueling a rocket. Even if you're using insulated ceramic pipes, your LOX will cool down the petrol and the petrol will warm the LOX. In this example, your LOX will evaporate to Oxygen and break your pipes. If you cool the petrol down to just shy of freezing, then the LOX will end up cooling the petrol enough to freeze solid and break the pipes -- and the LOX will still warm enough to turn to gas and break the pipes. This is because some thermal energy gets transferred to the pipes. In the case of insulated ceramic, if the fluids continually move, it make take a handful of rounds before the problem presents itself. If something happens and flow stops for any reason (consumer's buffer is full, or one fluid's priority stops the flow temporarily while it is added to the network), the problem will occur almost immediately. In the case outlined at the top of my post, this temperature drift probably won't be an issue -- provided the petrol is warmer than 0c and cooler than 100c. Anyway, its a nice idea, @Lawnmower Man, but you'll have to make sure to watch for the potential issues. In your original post, you cover them pretty good, I just wanted to be clear where the problems start to occur. The closer to 100% capacity you get, and the greater the temperature difference between your elements, the more problems you'll have. Link to comment Share on other sites More sharing options...
Lawnmower Man Posted January 18, 2019 Author Share Posted January 18, 2019 Well, it's clearly a bad idea to rely on the bus to deliver packets with any kind of timing precision. After all, I made it clear that your packet might miss its stop due to a backup and make a full trip around. So, any consumers need to buffer their inputs for a full loop, at the minimum. I send both H2 from electrolyzers and NatGas from my geyser to my power station on the other side of the map over the bus, and it works just fine...because I have several reservoirs right next to my generators. I even have a reservoir on the production side of the H2 line so my electrolyzers don't get blocked if the bus gets busy. For extreme temps, I agree that dedicated lines are probably best for the thermal isolation. However, I think that you can probably share fluids within a 100 C range or so without much trouble. And yes, I explicitly said to insulate the bus (and pretty much all your pipes, really). I think what you're missing is that on average, half of your producers will never conflict, or you're running the bus in the wrong direction. I find it very useful to have buffers on my consumers and producers anyway, because even dedicated lines experience interruptions when I accidentally (or intentionally) break a pipe for remodeling. And having many pipes running in parallel, or even close to each other, increases the odds that I will want to move one of them to make room for a new one. It also means a lot more bridges or relayout to reduce crossings. If your base is mature and stable and you don't need to move things around much, then dedicated pipes make sense, because you can spend time optimizing their layout, minimizing crossings, etc. But I am still building lots of stuff all over my map and moving things around, so fixed pipes are a bigger cost for me. Link to comment Share on other sites More sharing options...
beowulf2010 Posted January 18, 2019 Share Posted January 18, 2019 Wow. I never even considered that you were running multiple liquids through a single bus... I had 4 separate liquid loops for hot/cold water and germy/"clean" polluted water... Of course this was before the pipe elemental sensors. Link to comment Share on other sites More sharing options...
cblack Posted January 19, 2019 Share Posted January 19, 2019 This is the equivalent of a sushi belt in Factorio. I like it, but with throughput for many things such a big concern for me, I probably won't use it. Well, maybe if I build a remote outpost that needs several things supplied from the main base. Link to comment Share on other sites More sharing options...
Lawnmower Man Posted January 19, 2019 Author Share Posted January 19, 2019 6 minutes ago, cblack said: This is the equivalent of a sushi belt in Factorio. I like it, but with throughput for many things such a big concern for me, I probably won't use it. Well, maybe if I build a remote outpost that needs several things supplied from the main base. Hah! Love kaiten sushi! I was trying to think how much fluid mature bases would push around. But my geysers all together only push about 360 g/s of gas and 5 kg/s of liquid average. Obviously, converting liquid to gas a la electrolyzers will generate a large gas flow, so I'm guessing that it's mostly end-game rocket stuff that creates large flows in mature bases. I haven't even started on rockets, so just guessing there. What are the big flow producers in your base? Link to comment Share on other sites More sharing options...
cblack Posted January 19, 2019 Share Posted January 19, 2019 Oxygen flow right now is the main thing, and is off the charts right as I'm trying to make a large quantity of LOX for rocketry. I probably should have just built another electrolyzer dedicated to rocket fuel, but I'm lazy. As for fluid, petroleum and PW are flowing fast, and trying to put those two on the same bus-- well, let's just say I don't even want to think about it. The polluted water line alone is fairly complex as I'm really trying to reduce the amount of times a liquid flows through a pump. This leads to a lot of complex piping and automation in order to "read" the fluid level in a group of reservoirs, and if there's excess fluid, trying to route it to machines (e.g. metal refinery) before dumping it in a tank as a last resort. Link to comment Share on other sites More sharing options...
Miravlix Posted January 20, 2019 Share Posted January 20, 2019 Not sure about the huge ring sorter. I just make a small ring that sort the different gas/liquids into tanks and if that fill up into an unlimited tank. So it takes 250 power to get items from gathering to usage, unless I don't use it fast enough and need unlimited storage, then it for GAS uses 750 power. Spoiler Link to comment Share on other sites More sharing options...
SharraShimada Posted January 20, 2019 Share Posted January 20, 2019 In my case, i use the whole capacity of the pipes most of the time. (Oxygen, water...) so there is no space left for other things in my pipes. External i use it sometimes. For example a combined clorine/nat-gas pipe, because the soruces where close. Link to comment Share on other sites More sharing options...
Lawnmower Man Posted January 20, 2019 Author Share Posted January 20, 2019 1 hour ago, Miravlix said: Not sure about the huge ring sorter. I just make a small ring that sort the different gas/liquids into tanks and if that fill up into an unlimited tank. So it takes 250 power to get items from gathering to usage, unless I don't use it fast enough and need unlimited storage, then it for GAS uses 750 power. Hide contents I'm trying to avoid anything exploity, like infinitely dense storage. Even so, once you get your stuff into a central storage, you still need to get it out to where you want to use it, and it's the distribution network for low-medium volume that interests me. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.
Please be aware that the content of this thread may be outdated and no longer applicable.