calculate_spring_mass_period
Compute oscillation period, frequency, and angular frequency of a spring-mass system from mass and spring constant.
Instructions
Calculate period of spring-mass system: T = 2π√(m/k).
Natural oscillation frequency of a mass attached to a spring.
Independent of amplitude (for ideal springs).
Args:
mass: Mass in kg
spring_constant: Spring constant k in N/m
Returns:
Dict containing:
- period: T in seconds
- frequency: f in Hz
- angular_frequency: ω in rad/s
Tips for LLMs:
- Heavier mass → longer period (slower oscillation)
- Stiffer spring → shorter period (faster oscillation)
- ω = 2πf = √(k/m)
Example - Mass on spring:
result = await calculate_spring_mass_period(
mass=0.5, # 500g mass
spring_constant=20.0 # N/m
)
# T ≈ 0.99s, f ≈ 1.01 Hz
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mass | Yes | ||
| spring_constant | Yes |
Implementation Reference
- src/chuk_mcp_physics/tools/oscillations.py:49-88 (registration)@tool-decorated async wrapper that registers 'calculate_spring_mass_period' as an MCP tool endpoint. Converts function params to request model, calls core calculation, returns dict.
@tool # type: ignore[arg-type] async def calculate_spring_mass_period( mass: float, spring_constant: float, ) -> dict: """Calculate period of spring-mass system: T = 2π√(m/k). Natural oscillation frequency of a mass attached to a spring. Independent of amplitude (for ideal springs). Args: mass: Mass in kg spring_constant: Spring constant k in N/m Returns: Dict containing: - period: T in seconds - frequency: f in Hz - angular_frequency: ω in rad/s Tips for LLMs: - Heavier mass → longer period (slower oscillation) - Stiffer spring → shorter period (faster oscillation) - ω = 2πf = √(k/m) Example - Mass on spring: result = await calculate_spring_mass_period( mass=0.5, # 500g mass spring_constant=20.0 # N/m ) # T ≈ 0.99s, f ≈ 1.01 Hz """ from ..oscillations import SpringMassPeriodRequest, calculate_spring_mass_period as calc_period request = SpringMassPeriodRequest( mass=mass, spring_constant=spring_constant, ) response = calc_period(request) return response.model_dump()