calculate_reynolds_number
Calculates Reynolds number using velocity, characteristic length, fluid density, and dynamic viscosity to classify flow as laminar, transitional, or turbulent.
Instructions
Calculate Reynolds number: Re = ρvL/μ.
Determines flow regime (laminar, transitional, turbulent).
Args:
velocity: Flow velocity in m/s
characteristic_length: Characteristic length in meters (pipe diameter, etc.)
fluid_density: Fluid density in kg/m³
dynamic_viscosity: Dynamic viscosity in Pa·s (water=0.001, air=1.8e-5)
Returns:
Dict containing:
- reynolds_number: Re (dimensionless)
- flow_regime: "laminar" (Re<2300), "transitional" (2300-4000), "turbulent" (Re>4000)
Example - Water in pipe:
result = await calculate_reynolds_number(
velocity=2.0, # m/s
characteristic_length=0.05, # 5cm diameter
fluid_density=1000, # water
dynamic_viscosity=0.001
)
# Re = 100,000 → turbulent
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| velocity | Yes | ||
| characteristic_length | Yes | ||
| fluid_density | Yes | ||
| dynamic_viscosity | Yes |
Implementation Reference
- MCP tool handler (async) that defines the calculate_reynolds_number tool. Accepts velocity, characteristic_length, fluid_density, and dynamic_viscosity as parameters, creates a ReynoldsNumberRequest, delegates to the core calculation, and returns a dict.
@tool # type: ignore[arg-type] async def calculate_reynolds_number( velocity: float, characteristic_length: float, fluid_density: float, dynamic_viscosity: float, ) -> dict: """Calculate Reynolds number: Re = ρvL/μ. Determines flow regime (laminar, transitional, turbulent). Args: velocity: Flow velocity in m/s characteristic_length: Characteristic length in meters (pipe diameter, etc.) fluid_density: Fluid density in kg/m³ dynamic_viscosity: Dynamic viscosity in Pa·s (water=0.001, air=1.8e-5) Returns: Dict containing: - reynolds_number: Re (dimensionless) - flow_regime: "laminar" (Re<2300), "transitional" (2300-4000), "turbulent" (Re>4000) Example - Water in pipe: result = await calculate_reynolds_number( velocity=2.0, # m/s characteristic_length=0.05, # 5cm diameter fluid_density=1000, # water dynamic_viscosity=0.001 ) # Re = 100,000 → turbulent """ from ..fluid_advanced import ReynoldsNumberRequest, calculate_reynolds_number as calc_reynolds request = ReynoldsNumberRequest( velocity=velocity, characteristic_length=characteristic_length, fluid_density=fluid_density, dynamic_viscosity=dynamic_viscosity, ) response = calc_reynolds(request) return response.model_dump() - src/chuk_mcp_physics/tools/fluid.py:454-455 (registration)Tool registered via @tool decorator on the async calculate_reynolds_number function, making it available as an MCP tool.
@tool # type: ignore[arg-type] async def calculate_reynolds_number(