spin_paper/archive/experimental-scripts/true_balls.py

114 lines
3.3 KiB
Python

#!/usr/bin/env python3
"""
true_atomic_balls.py
What if the ENTIRE ATOM spins as a ball?
Not planetary motion - true rotation!
"""
import numpy as np
import scipy.constants as const
def analyze_whole_atom_spinning():
"""The entire atom as a spinning ball"""
print("TRUE ATOMIC BALL MODEL")
print("="*60)
print("The WHOLE ATOM spins, not just electron orbiting")
print()
# Constants
hbar = const.hbar
me = const.m_e
mp = const.m_p
c = const.c
k_e = const.k # Coulomb constant
e = const.e
# Hydrogen atom
r_atom = const.physical_constants['Bohr radius'][0]
# Total mass (nucleus + electron)
m_total = mp + me
# If the whole atom spins with angular momentum ℏ
I_atom = (2/5) * m_total * r_atom**2
omega = hbar / I_atom
# Surface velocity
v_surface = omega * r_atom
# Force on surface
F_centripetal = m_total * omega**2 * r_atom
# Compare to Coulomb force
F_coulomb = k_e * e**2 / r_atom**2
print(f"Whole hydrogen atom spinning:")
print(f" Radius: {r_atom*1e12:.1f} pm")
print(f" Total mass: {m_total:.3e} kg")
print(f" Angular velocity: ω = {omega:.3e} rad/s")
print(f" Surface velocity: v = {v_surface:.3e} m/s = {v_surface/c:.6f}c")
print(f" Centripetal force: {F_centripetal:.3e} N")
print(f" Coulomb force: {F_coulomb:.3e} N")
print(f" Ratio F_cent/F_coul: {F_centripetal/F_coulomb:.3e}")
# What about energy?
E_rotation = 0.5 * I_atom * omega**2
E_coulomb = -k_e * e**2 / r_atom
E_ionization = 13.6 * const.eV
print(f"\nEnergy analysis:")
print(f" Rotational energy: {E_rotation/const.eV:.3f} eV")
print(f" Coulomb energy: {E_coulomb/const.eV:.3f} eV")
print(f" Ionization energy: {E_ionization/const.eV:.3f} eV")
# The profound question
print("\n" + "="*60)
print("PHILOSOPHICAL QUESTIONS:")
print("1. Is the electron 'spread out' over the atomic volume?")
print("2. Does the whole atom rotate as one quantum object?")
print("3. Is 'orbital' motion just our interpretation of spin?")
def compare_models():
"""Compare planetary vs ball models"""
print("\n\nMODEL COMPARISON")
print("="*60)
# Constants
hbar = const.hbar
me = const.m_e
r = const.physical_constants['Bohr radius'][0]
# Planetary model (current)
L_orbital = hbar # Orbital angular momentum
v_orbital = L_orbital / (me * r)
# Ball model (proposed)
I_ball = (2/5) * me * r**2
omega_ball = hbar / I_ball
v_ball = omega_ball * r
print(f"PLANETARY MODEL (electron orbits nucleus):")
print(f" Orbital velocity: {v_orbital/const.c:.6f}c")
print(f" All angular momentum in orbit")
print(f"\nBALL MODEL (whole atom spins):")
print(f" Surface velocity: {v_ball/const.c:.6f}c")
print(f" Distributed angular momentum")
print(f" Factor difference: {v_orbital/v_ball:.1f}")
def main():
analyze_whole_atom_spinning()
compare_models()
print("\n" + "="*70)
print("REVOLUTIONARY CONCLUSION:")
print("We've been doing PLANETARY physics in atoms!")
print("True BALL physics gives different results")
print("Maybe quantum mechanics hides this distinction?")
if __name__ == "__main__":
main()