Modelling flow of fluids in general is a big research (and industrial) field. This field is called Computational Fluid Dynamics (CFD)
All CFD methods are based on the so-called Navier-Stokes equations and the continuity equation, which is nothing more than conservation of momentum and mass.
There are different flavours in the methods of discretizing these equations:
- Finite Volume
- Finite Element
- Finite Difference
Which all have pro's and cons.
In all these methods, friction is implicitly introduced by the boundary conditions. A common assumption for boundaries, as solid walls, is the so-called no-slip condition. This basically means that the local velocity at the wall is zero. This is basically nothing more than a sink of momentum via the wall shear stress. Making the model neglect friction, you should assume a zero-shear boundary, which means that the wall-normal gradient of the velocity component is zero.
As you're talking about water flows and objects, you know that these flows become turbulent. The non-linear term in the Navier-Stokes equation will be responsible for flow phenomena at lots of scales. Therefor, it is common practice to model this turbulence. Also here, we have different approaches:
- DNS: Direct Numerical Simulation: No modelling at all, but the smallest grid size is smaller than the smallest turbulent scales
- LES: Large Eddy Simulation: The Navier-Stokes equation is filtered for different scales. The largest scales are solved for, the smallest sub-filter scales are models
- RANS: Reynolds Average Navier-Stokes: The Navier-Stokes equations are averaged (over time or realizations), and the non-linear term in the velocity fluctuations (also called Reynolds stress), is modelled, often via some a so-called turbulent viscosity (and by solving additional transport equations for turbulent properties).
Advised reading may be the book by Ferziger and Peric : http://www.amazon.com/Computational-Methods-Fluid-Dynamics-Ferziger/dp/3540420746