I added a 2nd wavemaker pump yesterday. It does make the maximum wave I can generate larger and gives more options for flow patterns. But it sure made the coding more complicated.
For timing, I found that when the pumps precisely alternate (the 2nd turns on the exact moment 1st turns off) they fight each other a bit from momentum of the water they have already started pushing when the prop cuts off. So I tweaked the timing so that there is a 75ms delay (5% of wave the cycle) after one pump cuts off before the next starts up.
Then there is wave scaling. My goal was to have a pattern that hits these 4 points and smoothly transitions between them:
Low tide. Both wavemakers 100%. Sump 0% (Waves crashing over the reef, no tidal flow)
Rising tide (midpoint). Wavemaker West 100%, Wavemaker East 0%, Sump 100% (the tide is coming in, when a wave passes overhead the water takes 2 steps forward, 1 step back)
High tide. Both wavemakers 0%. Sump 0% (deeper water lets the waves pass over the reef with minimal disturbance, no tidal flow)
Falling tide (midpoint). Wavemaker West 0%, Wavemaker East 100%, Sump 100% (the tide is going out, when a wave passes overhead the water takes 1 step forward, 2 steps back)
I may have just been tired last night and not running at full capacity, but working out reasonable equations to accomplish that took a lot longer than I expected. After I failed to work it out on paper, I ended up simulating random equations on the computer, looking at the computer generated graphs pattern until I found something that looked right.
After more trial-and-error than I would like to admit, I finally ended up with a pattern that looks good (at least when graphed) and hits my 4 points.

The equations are:
Wavemaker West = ( 1 - tide.height% )*(1 + tide.slope%)
Wavemaker East = ( 1 - tide.height% )*(1 - tide.slope%)
Sump Pump = sqrt( abs( tide.slope% ) )+0.1
And just to be clear: I don't believe that the fish or coral care about any of this - at all. But I find it fun.
For timing, I found that when the pumps precisely alternate (the 2nd turns on the exact moment 1st turns off) they fight each other a bit from momentum of the water they have already started pushing when the prop cuts off. So I tweaked the timing so that there is a 75ms delay (5% of wave the cycle) after one pump cuts off before the next starts up.
Then there is wave scaling. My goal was to have a pattern that hits these 4 points and smoothly transitions between them:
Low tide. Both wavemakers 100%. Sump 0% (Waves crashing over the reef, no tidal flow)
Rising tide (midpoint). Wavemaker West 100%, Wavemaker East 0%, Sump 100% (the tide is coming in, when a wave passes overhead the water takes 2 steps forward, 1 step back)
High tide. Both wavemakers 0%. Sump 0% (deeper water lets the waves pass over the reef with minimal disturbance, no tidal flow)
Falling tide (midpoint). Wavemaker West 0%, Wavemaker East 100%, Sump 100% (the tide is going out, when a wave passes overhead the water takes 1 step forward, 2 steps back)
I may have just been tired last night and not running at full capacity, but working out reasonable equations to accomplish that took a lot longer than I expected. After I failed to work it out on paper, I ended up simulating random equations on the computer, looking at the computer generated graphs pattern until I found something that looked right.
After more trial-and-error than I would like to admit, I finally ended up with a pattern that looks good (at least when graphed) and hits my 4 points.
The equations are:
Wavemaker West = ( 1 - tide.height% )*(1 + tide.slope%)
Wavemaker East = ( 1 - tide.height% )*(1 - tide.slope%)
Sump Pump = sqrt( abs( tide.slope% ) )+0.1
And just to be clear: I don't believe that the fish or coral care about any of this - at all. But I find it fun.
Last edited:




