114 lines
3.3 KiB
Python
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()
|