As @gandalf3 mentioned, Cycles is not great at this, if you want to make your render physically accurate; My approach can give you photo realistic results, which are not, however, physically accurate.
You can use a Displace modifier, a Stucci procedural texture and an empty for Texture Coordinates in order to simulate the water movement. Do ...
There is a great tutorial at blendernation.com (linked to Cycles | Water Uber Shader). The fake Caustics shader is explained in Part 1 starting from 18:03.
There has been an approach with Metropolis sampling.
There is a new Add-on by Eric Edelo, a "Fast & realistic glass shader for Cycles" called Prism.
One of its main ...
Is it has to be done in Cycles? If not, check Yafaray as an option for this kind of effects.
The trick in the scene below is the reflecting material which is 50/50 mix of Water and Mirror (shiny diffuse with 0% diffuse and 100% mirror reflection). You can adjust the proportion as per required brightness of the effect.. or should I say "realism"? :-)
It is ...
Cycles does render caustics. But since the light is traced from the camera to the lights the probability that caustics are rendered is very low.
When they are rendered most people call them fireflies or noise.
That's why the Filter Glossy in the Caustics tab is set to 1 most of the time.
When you set it to a low value (or even zero) you will see the noisy ...
To do caustics, I stepped to Luxcorerender and ended up with Appleseed-Render for Blender 2.8.
I did this with Blender 2.8 + Appleseed Render Add-on in a few minutes (just 200 Samples without denoising):
Add-on (Appleseed beta for Blender 2.8 on Discord server under: #builds)...