Jump to content

Revise branching logic of gases


Recommended Posts

In the current system gas/liquid proceeds one tile within a path until it reaches an junction. At that point the contents alternate between each direction

This system creats a more or less fair distribution of content between both branches. However there are certain flaws in this system:

When one junction exit is already full (e.g. valve closed), the alternation will still happen and prevent any flow from progressing. The result is that the remaining exits will receive less content than they could handle. It might also create a jam on the upstream, since the content can not be processed as fast as the capacity of the system could potentially handle (lots of free tiles on the underused junction exits).

Revision: When a path is blocked, do not consider it in alternating.

 

An edge case of this is the case when a junction exit can only take a fraction of a full tiles content (e.g. only 10g of free space). This results in only 10g moving while 990 will stay in place until the next alternation. (Same jam scenario as above)

 

Revision: Split the content between both exits.

 

In some cases we might have a "main vain" of venting/plumbing where several flows flow together and might be branched into smaller compartments later-on (e.g. ventilation system of a base).

In the current version we need to build a ventilation/plumbing tree to ensure equal distribution of content. Note that valves do not help in this context for the reasons mentioned above.

Revision: Allow users to choose between fair distribution and rationalized distributions of intersections. Maybe with a special intersection device.

 

Link to comment
Share on other sites

Maybe it would be a good idea to change the junction handling to splitting quantity in general:

1 exit (straight) -> full content is moved (if space is available)

2 exit -> half content is moved (if space is available: 50/50, if only 1 exit is blocked, behavior as with 1 exit)

3 exit -> same as above but with 1/3 ratio (if 1 exit is blocked, behaviour as with 2 exit)

 

This would have several advantages:

* continous and even flow

* no jams

 

 

Possible disadvantages:

packets that would arrive with 1000g with 2-step rhythm would now arrive with 500g (or less) with 1-step rhythm. This might create more load for devices such as cooling machines.

To ensure that only full packets of gas/liquid are pushed forward, a new vent/pipe element could be added that only forwards pakets that make full use of the vent/pipe capacity.

Link to comment
Share on other sites

58 minutes ago, blash365 said:

1 exit (straight) -> full content is moved (if space is available)

2 exit -> half content is moved (if space is available: 50/50, if only 1 exit is blocked, behavior as with 1 exit)

3 exit -> same as above but with 1/3 ratio (if 1 exit is blocked, behaviour as with 2 exit)

I really like that idea. I was just thinking about something like it. One detail to add to this: when some of the exits can accept only some of the content, then all the excess should go to the rest exits. Example: 2-exit junction, 1 exit can accept 100g, second is empty, input is 800g, dividing input by 2, trying to put 400g to each exit, first one receives only 100g, 300g is the excess, second one receives 400g+300g=700g.

And one more thing - it should work for liquid pipes as well and maybe for conveyors also. Not sure about the last one though.

Link to comment
Share on other sites

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.

×
  • Create New...