| name | physics-solver |
| description | Physics problem solving including classical mechanics, electromagnetism, thermodynamics, quantum mechanics, optics, and computational physics. Use when user asks to solve physics problems, simulate physical systems, derive equations, or do unit conversions. Triggers on "physics problem", "Newton's law", "electromagnetic", "quantum", "thermodynamics", "optics", "wave equation", "Schrödinger", "relativity", "unit conversion", "circuit analysis". |
Physics Solver
Physics computation and problem solving. Venv: source /Users/zhangmingda/clawd/.venv/bin/activate
Physical Constants
from scipy import constants as const
import numpy as np
c = const.c
h = const.h
hbar = const.hbar
k_B = const.k
e = const.e
m_e = const.m_e
m_p = const.m_p
G = const.G
N_A = const.N_A
epsilon_0 = const.epsilon_0
mu_0 = const.mu_0
sigma = const.sigma
Classical Mechanics
from sympy import *
t = symbols('t')
m, g, k, L = symbols('m g k L', positive=True)
theta = Function('theta')(t)
T = Rational(1,2) * m * (L * diff(theta, t))**2
V = -m * g * L * cos(theta)
Lag = T - V
EL = diff(diff(Lag, diff(theta, t)), t) - diff(Lag, theta)
eq = simplify(EL)
print(f"Equation of motion: {eq} = 0")
from scipy.integrate import solve_ivp
def pendulum(t, state, g=9.81, L=1.0):
theta, omega = state
return [omega, -g/L * np.sin(theta)]
sol = solve_ivp(pendulum, [0, 10], [np.pi/4, 0], max_step=0.01)
Electromagnetism
def coulomb_force(q1, q2, r):
"""Force between two charges (N)"""
return const.k * q1 * q2 / r**2
def capacitor_energy(C, V):
return 0.5 * C * V**2
def rc_discharge(V0, R, C, t):
tau = R * C
return V0 * np.exp(-t / tau)
def em_wavelength(frequency):
return const.c / frequency
def photon_energy(wavelength):
return const.h * const.c / wavelength
Quantum Mechanics
def particle_in_box(n, L, m=const.m_e):
"""Energy of nth level, box length L"""
return (n**2 * const.h**2) / (8 * m * L**2)
def hydrogen_energy(n):
"""Energy in eV"""
return -13.6 / n**2
def de_broglie(p):
return const.h / p
Thermodynamics & Statistical Mechanics
def ideal_gas_pressure(n, T, V):
return n * const.R * T / V
def carnot_efficiency(T_hot, T_cold):
return 1 - T_cold / T_hot
def planck_spectral_radiance(wavelength, T):
"""W/(m²·sr·m)"""
return (2 * const.h * const.c**2 / wavelength**5) / \
(np.exp(const.h * const.c / (wavelength * const.k * T)) - 1)
def mb_speed_dist(v, T, m):
return 4 * np.pi * (m / (2 * np.pi * const.k * T))**1.5 * \
v**2 * np.exp(-m * v**2 / (2 * const.k * T))
Unit Conversion
from scipy.constants import eV, atm, calorie, mile, inch
def eV_to_J(energy_eV): return energy_eV * eV
def J_to_eV(energy_J): return energy_J / eV
def celsius_to_kelvin(T_C): return T_C + 273.15
def atm_to_Pa(P_atm): return P_atm * atm
Problem-Solving Framework
- Identify the physical system and relevant principles
- Draw a diagram (describe it textually)
- List knowns and unknowns
- Choose appropriate equations/laws
- Solve symbolically first (SymPy), then substitute numbers
- Check units, limiting cases, and order of magnitude
- Interpret the result physically
Tips
- Always carry units through calculations
- Check dimensional consistency
- Verify with limiting cases (e.g., v << c for classical limit)
- Use SymPy for symbolic derivations, SciPy for numerical
- For complex simulations, consider specialized tools (COMSOL, OpenFOAM)