simulate_underwater_motion
Simulate underwater projectile trajectories by calculating motion with drag, buoyancy, and gravity forces to model realistic aquatic movement.
Instructions
Simulate underwater projectile motion with drag and buoyancy.
Uses numerical integration to simulate motion under:
- Gravity (downward)
- Buoyancy (upward, from displaced fluid)
- Drag (opposes motion)
Args:
initial_velocity: Initial velocity [x, y, z] in m/s
mass: Object mass in kg
volume: Object volume in m³
cross_sectional_area: Cross-sectional area in m²
fluid_density: Fluid density in kg/m³ (default 1000 for water)
fluid_viscosity: Fluid viscosity in Pa·s (default 1.002e-3 for water)
initial_position: Initial position [x, y, z] in m (default [0,0,0])
drag_coefficient: Drag coefficient (default 0.47 for sphere)
gravity: Gravitational acceleration in m/s² (default 9.81)
duration: Simulation duration in seconds (default 10.0)
dt: Time step in seconds (default 0.01)
Returns:
Complete trajectory, final state, max depth, and total distance
Example - Torpedo launch:
result = await simulate_underwater_motion(
initial_velocity=[20, 0, 0], # 20 m/s forward
mass=100, # kg
volume=0.05, # m³
cross_sectional_area=0.03, # m²
fluid_density=1000, # water
drag_coefficient=0.04, # streamlined
duration=30.0
)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| initial_velocity | Yes | ||
| mass | Yes | ||
| volume | Yes | ||
| cross_sectional_area | Yes | ||
| fluid_density | No | ||
| fluid_viscosity | No | ||
| initial_position | No | ||
| drag_coefficient | No | ||
| gravity | No | ||
| duration | No | ||
| dt | No |