Blender as a fluid dynamics simulator
(This answer was updated for Blender V2.82 and higher)

As it was mentioned above, it depends on what you want to do. 

If you want to go all scientific and have simulation data that you want to analyze then you should use a free software called DualSPHysics, http://dual.sphysics.org/, which specifically deals with fluid dynamics. They are using it to simulate sea shore erosion, brake wall effectiveness and so on, here is an example for usage https://www.youtube.com/watch?v=EvSDFRfJToQ or in Blender https://www.youtube.com/watch?v=U6lloRvgoXA. There is also a Blender plugin for this software which is called VisualSPHysics, https://github.com/EPhysLab-UVigo/VisualSPHysics. 
If you actually want to analyze the data then you may need to also use a software called ParaView, https://www.paraview.org/, which is a data analysis software. You can see what happens to velocities, pressures and a multitude of info.

If only accurate visuals are the main objective then from blender V2.82 and up has a new fluid, smoke and fire simulation engine called Mantaflow based on the FLIP solver. Mantaflow replaces the old fluid simulation engine which used the Lattice Boltzmann based method of particle based fluid simulations, https://en.wikipedia.org/wiki/Lattice_Boltzmann_methods. Blender V2.82 Beta is available as a daily build here https://builder.blender.org/download/ but it will be released as the main version in a few days of this article update.

There is also a paid version plugin for fluid simulations called FLIP Fluids, https://blendermarket.com/products/flipfluids, which is a matured plugin for Blender V2.79 and now they have it for Blender V2.8x as well. 
Mantaflow is like FLIP Fluids but it is capable to do more then the paid one. Mantaflow can already deal with smoke simulation whereas FLIP Fluids exclusively deals with fluids only. Currently, at the time of writing this, Mantaflow cannot deal with viscosity changes but FLIP Fluid can. In future, Mantaflow will be able to deal with viscosity.  

FLIP Fluids and Mantaflow are using very similar methods of calculating the fluid dynamics. They both use a FLIP solver, which is a type of hybrid between a particle based and volume based fluid simulation. It stands for FLluid Implicit Particle solver. It can generate Foam, Bubbles, Spray and it is faster than the SPH solver system, discussed below.

DualSPHysics uses Smoothed Particle Hydrodynamics, SPH, to solve fluid dynamics problems which can also be used to simulate other than fluids such as solid mechanics, https://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics. This fluid dynamics solver is a volume based simulation. It creates accurate simulation data that can be later analyzed either numerically or visually with external software such as PraView, see above. Because it provides detailed calculation data it can be 10-100 times slower then the FLIP method but it is the ideal one for research.

Hope this extra info will help you out with your project.