calculate_venturi_effect
Compute throat velocity, pressure drop, and volumetric flow rate for fluid flowing through a constriction, applying the continuity equation and Bernoulli's principle.
Instructions
Calculate Venturi effect (flow through constriction).
Uses continuity equation and Bernoulli's principle.
Args:
inlet_diameter: Inlet diameter in meters
throat_diameter: Throat (constriction) diameter in meters
inlet_velocity: Inlet velocity in m/s
fluid_density: Fluid density in kg/m³
Returns:
Dict containing:
- throat_velocity: Velocity at throat in m/s
- pressure_drop: Pressure drop from inlet to throat in Pascals
- flow_rate: Volumetric flow rate in m³/s
Example - Venturi meter:
result = await calculate_venturi_effect(
inlet_diameter=0.1, # 10 cm
throat_diameter=0.05, # 5 cm
inlet_velocity=2.0, # m/s
fluid_density=1000 # water
)
# throat_velocity = 8 m/s (4x area reduction)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inlet_diameter | Yes | ||
| throat_diameter | Yes | ||
| inlet_velocity | Yes | ||
| fluid_density | Yes |
Implementation Reference
- Async tool handler for calculate_venturi_effect that wraps the core logic. Decorated with @tool for MCP registration. Accepts inlet_diameter, throat_diameter, inlet_velocity, fluid_density and returns throat_velocity, pressure_drop, flow_rate.
async def calculate_venturi_effect( inlet_diameter: float, throat_diameter: float, inlet_velocity: float, fluid_density: float, ) -> dict: """Calculate Venturi effect (flow through constriction). Uses continuity equation and Bernoulli's principle. Args: inlet_diameter: Inlet diameter in meters throat_diameter: Throat (constriction) diameter in meters inlet_velocity: Inlet velocity in m/s fluid_density: Fluid density in kg/m³ Returns: Dict containing: - throat_velocity: Velocity at throat in m/s - pressure_drop: Pressure drop from inlet to throat in Pascals - flow_rate: Volumetric flow rate in m³/s Example - Venturi meter: result = await calculate_venturi_effect( inlet_diameter=0.1, # 10 cm throat_diameter=0.05, # 5 cm inlet_velocity=2.0, # m/s fluid_density=1000 # water ) # throat_velocity = 8 m/s (4x area reduction) """ from ..fluid_advanced import VenturiEffectRequest, calculate_venturi_effect as calc_venturi request = VenturiEffectRequest( inlet_diameter=inlet_diameter, throat_diameter=throat_diameter, inlet_velocity=inlet_velocity, fluid_density=fluid_density, ) response = calc_venturi(request) return response.model_dump() - src/chuk_mcp_physics/tools/fluid.py:497-538 (registration)The @tool decorator on line 497 registers calculate_venturi_effect as an MCP tool in the tools/fluid.py module.
@tool # type: ignore[arg-type] async def calculate_venturi_effect( inlet_diameter: float, throat_diameter: float, inlet_velocity: float, fluid_density: float, ) -> dict: """Calculate Venturi effect (flow through constriction). Uses continuity equation and Bernoulli's principle. Args: inlet_diameter: Inlet diameter in meters throat_diameter: Throat (constriction) diameter in meters inlet_velocity: Inlet velocity in m/s fluid_density: Fluid density in kg/m³ Returns: Dict containing: - throat_velocity: Velocity at throat in m/s - pressure_drop: Pressure drop from inlet to throat in Pascals - flow_rate: Volumetric flow rate in m³/s Example - Venturi meter: result = await calculate_venturi_effect( inlet_diameter=0.1, # 10 cm throat_diameter=0.05, # 5 cm inlet_velocity=2.0, # m/s fluid_density=1000 # water ) # throat_velocity = 8 m/s (4x area reduction) """ from ..fluid_advanced import VenturiEffectRequest, calculate_venturi_effect as calc_venturi request = VenturiEffectRequest( inlet_diameter=inlet_diameter, throat_diameter=throat_diameter, inlet_velocity=inlet_velocity, fluid_density=fluid_density, ) response = calc_venturi(request) return response.model_dump()