Horizontal CO2 Reactor - Yugang 鱼缸 Reactor

  • Thread starter Thread starter Yugang
  • Start date Start date
  • Tagged users Tagged users None

Yugang

Active Member
Supporting
Joined
May 8, 2023
Messages
458
Reaction score
990
Location
Hong Kong
I want to thank @Unexpected for introducing me to this new forum, but most importantly for him being the first ever to build the Horizontal CO2 Reactor. I feel honored that "Yugang Reactor" as he calls it (Yugang 鱼缸 means fish tank) is introduced in @Unexpected journal, but it would be a pity if that journal gets cluttered with too much reactor talk. So let me open a dedicated thread for discussions, questions and help on this Horizontal Reactor.

I have been experimenting for years with CO2, and at some time I took videos of my (modified) Aquamedic reactor to watch the bubbles in slow motion. To my surprise I found that the combined surface area of the bubbles was not very high for achieving a 1.5 pH drop in my 250 liter tank, and that CO2 absorbs so fast in water that the lifetime of bubbles is quite short. So .... we don't need to juggle bubbles at all, we can just create a very simple absorption interface between flowing water and a pocket of CO2 above it. The Horizontal reactor is surprisingly simple, and has some benefits that we won't find in diffusers or conventional Cerges / Griggs bubble reactors:
  • Simple rules to find the correct dimensions for any tank, a small nano tank or a huge tank the size of a swimming pool.
  • Very easy and cheap to build with plumbing materials. No fragile parts, low risk of leakage or malfunction.
  • 100% CO2 absorption efficiency
  • No need to experiment with vortices, venturis, diffusers, needles wheels, impellers / rotors, multi stage reactors - it is just a pipe with a gentle flow of water.
  • No noise
  • No mist in the tank
  • No maintenance, and stable performance over time
  • Virtually no reduction of flow from pump
  • A purging valve is optional, as the reactor will purge itself from excessive trapped air.
  • The reactor can be configured so that in the event of a failure, CO2 injection will not exceed a limit and fish cannot be gassed. Inherently safe.
  • The reactor can be configured so that we do not need a precision regulator, because the reactor controls the CO2 injection rate
1683679908412.png

Or a multi stage version ...
1683679932276.png

A detailed thread can be found on UKAPS, linked with the kind permission from Scapecrunch forum moderators #1

I am happy to help new users to verify the calculations on reactor dimensions for their tank, please send me a PM.
 
Last edited:
Welcome and thanks for posting! It's always great to see innovation in the hobby.

Is the concept essentially to provide enough water/CO2 interface that diffusion occurs to 100%?
 
Is the concept essentially to provide enough water/CO2 interface that diffusion occurs to 100%?
That's it. The rate of CO2 absorption in the reactor is proportional to the surface area. From tests on my tank (using CO2 Spray Bar, which is a similar concept) we know the relevant parameters and it is then is relatively straightforward to scale that to any other tank. These scaling factors, the 'design rules' for any other tank, are described in the linked thread on UKAPS. As we have no losses with bubbles or mist escaping from the reactor (it is just a gentle 'river' in the pipe, and has no bubbles to begin with), we will have all CO2 absorbed in the water and therefore the 100% efficiency.
 
  • Like
Reactions: Art
This is fascinating and makes a lot of sense when you see it. I have a couple 3" dia x 27-30" long running on 75 gal tanks. Would there be a similar effect if I just turned them sideways or do they need to be longer to work? CO2 enters the supply hose just prior to the reactor if that makes any difference
 
I have a couple 3" dia x 27-30" long running on 75 gal tanks. Would there be a similar effect if I just turned them sideways or do they need to be longer to work?
When we turn them sideways, we'll have a maximum surface area of about 50.000 mm2 each (750*65mm2). This is twice the reactor surface area that I have in my tank, whereas my tank volume is only slightly smaller than yours.

The most important tank parameter is the tank's surface area, since that determines the rate of CO2 outgassing when the CO2 is at its lights-on stable level. The tanks volume , as I explained in the thread has some impact on the ramping up time, but I usually take that as a second priority in calculating the reactor dimensions. So if you would give me your tank dimensions (so that I know the surface area), I can check the calculations for the reactor. But it very much looks like your reactors turned sideways will easily manage a 75 gal tank each.
CO2 enters the supply hose just prior to the reactor if that makes any difference
If you have a not too strong flow, so that the bubbles end up in the gas pocket and are not blown straight to the reactor exit, this should be no problem
 
Alright thank you. The footprint or surface area is 48"x 18", and its 21" tall. In cm 121.9 x 45.7 x 53.3
 
Let me try to explain in this post how we estimate the minimum dimensions for the Horizontal Reactor, for any tank size. This can also be found on the UKAPS site, but having learned from the discussion in that thread I hope to be able to give a better summary here. Sorry for my rambling, and a long post…

The purpose of the calculations is having an estimation for the size of the reactor, so we try to simplify the logic as much as possible and don’t need very detailed model of what happens in the tank. When we build our reactor, and it works fine, achieves at least the desired pH drop (from outgassed water) we are good enough. A couple of years ago I did some numerical modelling of measured pH curves to better understand CO2 in the tank (including plant uptake), but that level of detail would only be confusing for the purpose of our estimations right here.

Let’s first recap what happens with CO2 in our tank, from the perspective of a ‘CO2 accountant’. When we inject CO2 (reactor, 100% absorption. Diffusers with bubbles escaping to surface are less predictable) in our tank, three things can happen to any molecule that we account for:
  • CO2 concentration in the water column will increase, and as a consequence we see the pH drop.
  • CO2 from the water column (that is no longer in equilibrium with the atmosphere) will outgas at the surface. The rate of outgassing is a function of the tank surface area, the CO2 ppm in the water, and the surface agitation. The rate of outgassing (gram CO2 per hour) is NOT dependent on the tank depth/volume.
  • CO2 may be consumed by plants. Here it is important that plant consumption is generally much less (typically 10% or so) than the surface outgassing.
When we start from a fully outgassed tank (no CO2 injected for a couple of days), most of the injected CO2 will be accumulating in the water column, CO2 ppm increases and pH goes down. The rate at which CO2 ppm increases is of course smaller when we have a big tank, and it goes quicker for a small tank.

Continuing to inject, the tank CO2 ppm increases, we will see more and more outgassing at the surface up to the point where this outgassing more or less equals the rate of injection. It is important to remember that plant uptake, or life stock / microorganism respiration will not be a major factor here, and we will ignore these to keep the estimations as simple as possible.

The tank CO2 ppm will stabilise (we may call this ‘steady state’) once outgassing at the surface equals the rate of injection. Usually hobbyists target a steady state pH about 1.0 – 1.4 below the fully outgassed level, and we need a reactor that can inject as much as is needed to offset the outgassing.

Now remember that outgassing is a function of tank surface, CO2 ppm, surface agitation, but NOT of tank depth. This means that for calculating the required reactor capacity for maintaining a 1.5 pH drop steady state we only take into account the tank surface, not the volume.

During the night, when CO2 injection is off, the tank will continue to outgas and CO2 ppm will go down. The rate of outgassing (gram CO2 per hour) is mainly dependent on tank surface and agitation, and again not on tank volume (if we look in detail this is only an approximation, in reality there is a small dependency here). This means that for the reactor in the morning to replenish the outgassed CO2 we have mainly to take into account the surface area rather than the tank volume.

So in summary, both for maintaining a steady state (say constant 1.5 pH drop) and ramp up in the morning we want to scale the reactor capacity with the tank surface area. If we know how much reactor capacity was sufficient for a 1.5 pH drop in one tank, we can compare the surface area of another tank and estimate how much we need to scale up/down the reactor capacity.

The reactors capacity is proportional on the surface area between the flowing water and the CO2 pocket. As long as the water in the reactor is not stagnant (in which case we would be limited by diffusion at a boundary layer) we will not see much dependency on the flow. That is why it is recommended to have a gentle flow, as it minimizes noise and splashing of water, while still optimal CO2 absorption and reactor capacity. So in summary, we find that the reactor capacity scales with the inner dimensions of our tube, i.e. length*diameter.

Now the estimations for the reactor dimensions are straightforward.

As a first priority we want to be sure that the reactor can maintain roughly a 1.5 pH drop (from fully outgassed). I tested this on my tank, and these are the dimensions that work for me:


1683777008945.png
1683777021334.png

So for a 450.000 mm2 surface tank, I need 25.400 mm2 reactor surface to achieve a 1.5 pH drop, this is a ratio of 17.7 : 1

Now as an example we take a Big Tank, 2.400 liter, with following dimensions

1683777056293.png

This tank has a surface area of 2.601.258 mm2. So we need 2.601.258 / 17.7 = 147.000 mm2 surface area in the reactor to achieve same 1.5 pH drop at a reasonable surface agitation. If we use 3 inch pipe, 75 mm, over the full 2133mm tank length, we will be good (75*2133 = 160.000 mm2) to achieve a 1.5 pH drop for this massive tank. For a real big tank we may want to limit the time it takes to achieve steady state from fully degassed water (for example after water change), so I would recommend to build in some extra capacity and choose a 4 inch pipe instead.

Same logic applies for small tanks. We could then just take a kitchen ‘Tupperware box’, or a small pipe, and calculate the surface area that we need.
 
The footprint or surface area is 48"x 18", and its 21" tall. In cm 121.9 x 45.7 x 53.3
Your tank surface area is 557.000 mm2. We would then estimate a minimum reactor surface area (internal length * diameter) of 557.00 / 17.7 = 31.000 mm2.
When we turn them sideways, we'll have a maximum surface area of about 50.000 mm2 each (750*65mm2).
So you will easily exceed the minimum and have a quite powerful horizontal reactor for your tank. Just note that it is too big for being inherently safe, so if anything goes wrong your livestock may be at risk (as with the more conventional bubble reactors or diffusers).
 
so for a 72" L x 24" W x 24" H tank i would need 97.62 sq. in. correct?

if we're using a sump (48" L x 16" W x 18" H) we would also factor that in right?
 
so for a 72" L x 24" W x 24" H tank i would need 97.62 sq. in. correct?
Correct.

if we're using a sump (48" L x 16" W x 18" H) we would also factor that in right?
Correct.
Sometimes sumps in high tech tanks are covered by a lid, to reduce CO2 losses. That would of course be a relevant factor. Same for unusually high outgassing, like 'waterfalls' in overflows (as in @Unexpected tank).
As our calculated estimation is to get the minimum reactor size it makes sense to have a look at these factors as well, and make an educated guess on the safe side. A slightly oversized reactor can easily be tuned down (for example to have designed in safety for livestock in the event of a failure), by tilting it a bit from its horizontal level so that the water exit starts to purge CO2 once the CO2 pocket reaches a certain upper limit. Or just cut the tube a bit shorter, until the desired maximum (= fish safe) pH drop is achieved.
 
Last edited:
This is for my 93 gallon cube + sump estimated total volume 106 gallons. I chose this because its almost exactly 400 Liters.

Length: 31" 787.4 mm
Width: 31" 787.4 mm
Height: 24" 609.6 mm
Volume : 377951244.096 mm3
Area: 619998.76 mm2
Gallons: 106 ---> 401.254 Liters
So...
3" (75mm) pipe over 787.4mm = 59055 mm2 to achieve a 1.5 pH drop

I do not quite grasp the calculations for the pipe though. I understand how to get the pipe area (mm2) but how exactly do I calculate for my tank size?
If this works it will solve my CO2 problem and I can gas again without spending an arm and leg. Either way I'm going to build one and test it out.
Gahhh the fun and joys of PVC hard plumbed sumps. Ill figure out a way to incorperate it.

Edit: 619998.76 mm2 tank area / 17.7 = 35028.178531073 So I only need this much? Hmm, so my 3" pipe over the length of the tank is roughly 1.6 times bigger then I'd actually need? (35028.178531073 / 59055 = 35028.178531073
 
Last edited:
I do not quite grasp the calculations for the pipe though.
I think actually you do :)

Area: 619998.76 mm2
Correct, and then divide by 17.7 gives
619998.76 mm2 tank area / 17.7 = 35028.178531073

I personally like a 3 inch pipe, as it will be easy to create a gentle flow without noise and bubbles. But as you say for the full tank length it would be a bit strong:
3" (75mm) pipe over 787.4mm = 59055 mm2
This is indeed already an oversized reactor, as you only need 35000 for the steady state. You will be able to ramp up quickly, but downside (this is your personal judgment) may be that you want to limit the reactor power to build in safety for your fish. Any reactor longer than 35*787/59= 466 mm will probably be sufficient for your tank.
 
Ill draw something up this weekend but will have to wait on parts. PVC is quite expensive now days. Hmm a clear reactor would be 🔥❤️‍🔥🔥
 
Birth registration of my newly built reactor :)

1689855302454.png

Some features may not be strictly necessary, but I included them for further testing:
  • Acrylic pipe, transparent. Acrylic is not easy to get in HK, and the sizes are not compatible with standard PVC plumbing, so I ended up with a rather small diameter pipe and an overall design that is not very compact. I was not sure how to glue acrylic to PVC, so decided to use teflon tape for the fit. I paid about 7 USD for the acrylic.
  • The CO2 comes in through a small tube, that sticks in the water. This allows me to use it as a bubble counter, A 30 sec video, and I count the bubbles while in slow motion to have an accurate measure for the injection.
  • A gas purge valve. I will not often use it, as this reactor will be able to purge itself as described earlier.
  • A bypass, so that the flow in the reactor can be slowed down while still using the maximum flow from my FX4 pump.
  • Inlet and outlet design with 'elbows' as in below picture. The inlet will lead the water down, to reduce water splashing or making noise at high flows. The outlet will let CO2 purge when the gas pocket reaches 50% of the tube (inherent safety feature, limiting reactor max capacity).
1689856356913.png

I tested if the bypass is necessary, and tried what happened when all the flow from my FX4 (rated 2650 liter/hr) was lead through the upper reactor pipe. The reactor worked, but made some noise and the splashing of the water flow created a few bubbles that ended up in my tank. I now use the reactor with the bypass nearly fully open, and a gentle slow flow through the reactor.

I am currently using the reactor in 'overflow mode', that is that I inject CO2 at a rate that the reactor fills for 50% and starts to purge small bubbles from the exit. With this I know that I always use the same reactor capacity (not dependent on stability of my regulator), and have a stable injection rate that is fixed by the reactor geometry. I may use a pH controller in the future, in that case the overflow will give me a safety when something goes wrong, but that will have to wait until I've decided which controller to buy.
.
 
Wow, looking nice. For the acrylic to PVC gluing, Weldon40 is what most people would use. I used it way back in the day when I built a saltwater skimmer.

Please post an installed photo when you can so people can visualize how it looks on the tank.
 
Please post an installed photo when you can so people can visualize how it looks on the tank.

This is the real thing, a bit messy still and not a very good photo.

1689977411899.png

A close up, there is not much to see really - just a steady stream of water with the upper half of the reactor filled with CO2.

1689977581285.png

For my 250 liter tank I need about 25000 mm2 reactor surface, the same as the CO2 Spray Bar that I tested for more than a year. (Remember that this reactor is based on same principles as CO2 Spray Bar.) My drop checker gets yellow, so I am sure that I hit the same 1.5-1.6 pH drop as before. I broke my pH controller, so can't verify with that right now.

I am considering to shorten my reactor a bit, so that when using it in overflow mode I hit 1.0-1.2 pH drop rather than 1.5. I believe that stability of CO2 is more important than the absolute level, and that 1.5-1.6 pH drop gives only marginal better results for my plants than 1.2. Let my plants adjust with a bit more Rubisco for carbon capture, and then I can save a lot of CO2 and time pruning too fast growing plants :)

Actually I do not believe the transparent acrylic is worth it for most users, I just wanted to have it (to show off) to test the limits of operation. From the surface ripple I can get a feeling how much flow, or when the water is virtually stagnant and limiting the capacity off the reactor. I can count the bubbles injected, which is not really necessary in overflow mode. I can see what happens if I push too much flow through the reactor. I will share any new insights, and feel that most users can save money and time, make a more compact reactor, with a simple PVC pipe. This is also what @Unexpected did and I want to thank him once again for pioneering this reactor.
 
Last edited:
I find this interesting. My CO2 is on at 0515 and lights are on at 0800 and CO2 off at 1500. I would expect I would have algae, but this tank is nearly void of it. I’m wondering if I should push harder and have CO2 come on later to maintain a more consistent peak CO2? @Yugang IMG_0271.png3 day trend.
IMG_0272.png
 
Back
Top