The Navier-Stokes equations are a set of three dimensional non-linear equations that fully describe the motion of an incompressible fluid and can be used to calculate the rate of flow, pressure, and positions of any free surfaces. In expanded form the equations can be written as,

where u, v, w are velocities in the x, y, z directions
respectively, p is the local pressure, g, gravity, and
is the
kinematic viscosity of the fluid. The equations in Eq.(1) are
complete in that they take account of forces on a single element of liquid
from differences in pressure, diffusion, gravity, and convection. Thus, they
make an ideal model for simulating accurate internal flows such as bleeding.
Furthermore, the equations can be solved using standard finite difference
techniques [14] to yield a static 3D grid within which fluid can
move freely. So by representing internal organs using the appropriate boundary
conditions, it is possible to obtain realistic blood flow that can respond
to the effects that exist within a real patient.
A software package for solving Eq.(1) has been developed on a Silicon Graphics Workstation. A frame from a two dimensional animation of bleeding from multiple puncture wounds within the lung is shown in Figure 9. The organ geometry in this example is contrived as the Navier-Stokes model cannot handle moving walls at present. Thus, the cavities for the blood to flow into must exist beforehand instead of being forced open due to the internal pressure of the blood itself.
Figure 9: Internal bleeding from multiple puncture wounds.
The Navier-Stokes equations should be considered the perfect model for water-like liquids. The drawback to solving them is that coupling between pressure and velocity leads to a poisson equation that must be solved iteratively to take advantage of all the terms. This means that the calculation is expensive, and with present computing limitations, is not practical for a real-time system. This does not rule out the possibility of precomputing interesting behavior off-line and then playing it back as required, but this cannot adapt to a particular simulation.