In the current implementation, we simulate a simple fluid flow field using techniques similar to the ones used by Wejchert and Haumann Wejchert91 for animating aerodynamics. Assuming inviscid and irrotational fluid, we can construct a model of a non-turbulent flow field with low computational cost using a set of flow primitives. These include uniform flow where the fluid velocity follow straight lines; source flow--a point from which fluid moves out from all directions; sink flow which is opposite to the source flow; and vortex flow where fluid moves around in concentric circles (see Fig. ). More complicated flow fields can be constructed by combining different flow primitives.
The fluid flow field in our implementation consists of a uniform flow with sinusoidal strength and a source flow at each cylindrical obstacle. The velocity field of the uniform flow is sin , where a is a positive real-valued parameter that represents the maximal strength of the flow; is a parameter angle and t is the animation time step--together they define the `cycle' time of the uniform flow; is the unit vector indicating the orientation of the uniform flow. The source flow velocity field (i.e., the flow velocity at a point whose 3D coordinates are given by ) at cylinder C is defined as:
where d is the shortest distance from point to the center line of the source (or axis of C), r is the radius of C and is the unit vector along d pointing outwards from the center of the source. The source flow fields are added to the uniform flow field in order to approximate the effect of fluid flowing around obstacles [Wejchert and Haumann1991].
Note that in Eq. (), the influence of the flow field on the fish's locomotion is taken into account by using the relative velocity between the surface and the fluid. In direct contrast to using non-physics-based models, here subtle locomotional behaviors exhibited when fish swim upstream or downstream or being buffeted by water currents can be easily modeled in a physically plausible way.
|Xiaoyuan Tu||January 1996|