72 lines
2.0 KiB
Python
72 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
spinning_ball_physics.py
|
|
|
|
What if atoms are literally spinning balls?
|
|
Let's use proper rotational mechanics.
|
|
"""
|
|
|
|
import numpy as np
|
|
import scipy.constants as const
|
|
|
|
def analyze_spinning_ball(name, mass_kg, radius_m, L_quantum):
|
|
"""Analyze as actual spinning sphere"""
|
|
|
|
c = const.c
|
|
|
|
# For solid sphere: I = (2/5)mr²
|
|
I = (2/5) * mass_kg * radius_m**2
|
|
|
|
# Angular momentum L = Iω
|
|
omega = L_quantum / I
|
|
|
|
# Surface velocity
|
|
v_surface = omega * radius_m
|
|
|
|
# Centripetal acceleration at surface
|
|
a_centripetal = omega**2 * radius_m
|
|
|
|
# "Weight" on surface
|
|
F_surface = mass_kg * a_centripetal
|
|
|
|
print(f"\n{name}:")
|
|
print(f" Moment of inertia: I = {I:.2e} kg⋅m²")
|
|
print(f" Angular velocity: ω = {omega:.2e} rad/s")
|
|
print(f" Surface velocity: v = {v_surface:.2e} m/s = {v_surface/c:.3f}c")
|
|
print(f" Centripetal acceleration: a = {a_centripetal:.2e} m/s²")
|
|
print(f" Surface 'weight': F = {F_surface:.2e} N")
|
|
|
|
if v_surface > c:
|
|
print(f" ⚠️ IMPOSSIBLE: Surface moving faster than light!")
|
|
|
|
return v_surface, F_surface
|
|
|
|
def main():
|
|
print("SPINNING BALL ANALYSIS - PROPER ROTATIONAL MECHANICS")
|
|
print("="*60)
|
|
print("Treating atoms/particles as actual spinning spheres")
|
|
|
|
hbar = const.hbar
|
|
me = const.m_e
|
|
mp = const.m_p
|
|
|
|
# Test cases
|
|
cases = [
|
|
# Name, mass, radius, angular momentum
|
|
("Hydrogen atom", me, 5.29e-11, hbar), # Bohr radius
|
|
("Proton", mp, 0.875e-15, hbar/2), # Spin-1/2
|
|
("Electron", me, 2.82e-15, hbar/2), # Classical electron radius
|
|
]
|
|
|
|
for case in cases:
|
|
analyze_spinning_ball(*case)
|
|
|
|
print("\n" + "="*60)
|
|
print("KEY INSIGHT:")
|
|
print("At small radii, spinning balls hit speed of light limit!")
|
|
print("This suggests quantum 'spin' is NOT classical rotation")
|
|
print("We need a different model for quantum scales")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|