Vortex® supports the real-time simulation of dynamic rigid bodies immersed in fluid, and simulates different effects due to fluid interaction, such as buoyancy, drag, lift, and added mass. The fluid simulation capabilities offered by Vortex do not provide the same level of physical realism as complex Computational Fluid Dynamics (CFD) methods but are sufficient for use in real-time, immersive simulation environments, e.g., in the context of virtual training simulators.
The buoyancy, drag and lift effects are modeled as external forces which are applied to the rigid bodies. These forces are calculated according to the shape of an object, its immersed parts in the fluid, and the velocity of the fluid relative to the object's surface. Vortex offers fluid interaction with many different shapes including primitives (boxes, spheres, capsules, cylinders), as well as mesh types (VxConvexMesh, VxTriangleMeshUVGrid, VxTriangleMeshBVTree).
Added mass is a purely inertial property. An added-mass matrix modifies the rigid body inertia; it is not simulated by adding forces as for the other phenomena. Added mass acts on the acceleration of a body, before external forces are applied.
For each volume of rigid body, the immersed volume and the relative velocity on each submerged surface are calculated to generate the resultant fluid forces. For convex and general mesh volumes, computations are done for each triangle. Consequently, when more triangles are used to define the shape, the simulation is more accurate.
Various fluid dynamics forces are computed and added to a part based on the overlap of the part's collision geometries with a volume of fluid, called a fluid state.
A fluid in Vortex is represented by Vx::VxFluidState, the interface between the Vortex fluid interaction algorithms and the fluid itself. The fluid state provides access to the fluid's properties, such as the fluid surface height at any point, the density and the velocity.
Several geometry types can be used to represent a fluid in Vortex:
- Planes (see Vx::VxPlanarFluidState)
- Heightfields (see Vx::VxHeightFieldFluidState)
- Triangle meshes (see Vx::VxTerrainFluidState)
You can add one or more fluids to your simulation. A part overlapping with a fluid will be subject to the hydrodynamic forces explained in the following sections.
The following list provides guidance to producing accurate fluid interactions:
- For best accuracy in the computation of fluid effects on a body, a triangle mesh should be used to represent the shape of the body.
- Primitive shapes (spheres, capsules, cylinders, boxes) are computationally less demanding but will also give less accurate results than meshes in the computation of buoyancy, drag or lift forces.
- If a mesh is used to represent the shape of a body, a reasonable fine triangulation of the mesh should be used with close to equilateral triangles for best results.
- Fine tuning of the mesh resolution may be required to balance computational efficiency and accuracy of the fluid interaction.
The following topics are covered in this section:
Vortex® Studio 2019b by CM Labs | Last update: 6:17 AM, 8/30/2019 — Release 2019.12.0.45 | © CM Labs Simulations Inc.