← Projects

Bohr Model Simulation

February 22, 2026

Tools: Python · C

Bohr Model Simulation: Hydrogen Atom & Quantum Mechanics

A computational physics project simulating the Bohr model of the hydrogen atom, including electron orbital dynamics, energy level calculations, emission spectra, and quantum wave functions.

Bohr Atom Visualization

Overview

This project implements a comprehensive simulation of the hydrogen atom based on Niels Bohr’s atomic model (1913). It combines classical orbital mechanics with quantum mechanical principles to visualize:

  1. Electron orbital motion in quantized energy levels
  2. Hydrogen emission spectrum (Lyman, Balmer, Paschen, Brackett series)
  3. de Broglie wave visualization on the electron orbit
  4. Quantum wavefunction evolution for a particle on a ring

Physical Background

The Hydrogen Atom

A hydrogen atom consists of:

  • 1 Proton (nucleus, positive charge)
  • 1 Electron (orbits the nucleus, negative charge)

The electron orbits the proton in quantized energy levels (not at arbitrary distances). These discrete orbital radii are called quantum states, labeled by the principal quantum number n=1,2,3,...n = 1, 2, 3, ...

Bohr Model Equations


1. Orbital Radius


The radius of the $n$-th orbit is given by:

rn=a0n2r_n = a_0 \cdot n^2

where:

  • a0=5.29×1011a_0 = 5.29 \times 10^{-11} m is the Bohr radius (ground state, n=1n=1)
  • nn is the principal quantum number (1, 2, 3, …)

2. Electron Velocity


The orbital velocity in the nn-th state:

vn=e22ϵ0hnv_n = \frac{e^2}{2\epsilon_0 h n}

where:

  • e=1.602×1019e = 1.602 \times 10^{-19} C (elementary charge)
  • ϵ0=8.854×1012\epsilon_0 = 8.854 \times 10^{-12} F/m (vacuum permittivity)
  • h=6.626×1034h = 6.626 \times 10^{-34} J·s (Planck’s constant)

3. Energy Levels


The total energy of the electron in the nn-th state:

En=13.6 eVn2E_n = -\frac{13.6 \text{ eV}}{n^2}

The negative sign indicates the electron is bound to the nucleus (ionization energy = 13.6 eV).

4. Photon Emission (Spectral Lines)


When an electron transitions from a higher energy level $n_2$ to a lower level $n_1$, it emits a photon with wavelength:

1λ=RH(1n121n22)\frac{1}{\lambda} = R_H \left( \frac{1}{n_1^2} - \frac{1}{n_2^2} \right)

where RH=1.097×107m1R_H = 1.097 \times 10^7 m^{-1} is the Rydberg constant.

The photon energy is:

Ephoton=En1En2=hf=hcλE_{\text{photon}} = E_{n_1} - E_{n_2} = h f = \frac{hc}{\lambda}

Project Structure

bohr_model/
├── main.c              # Main simulation entry point
├── bohr.h              # Header file with constants and function prototypes
├── utils.c             # Utility functions (radius, velocity, energy, wavelength)
├── specters.c          # Emission spectrum calculations (Lyman, Balmer, etc.)
├── wavefct.c           # Quantum wavefunction data (generated by simulation)
├── free_particle.c     # Free particle on a ring simulation
├── sim.py              # 3D animated visualization (Bohr orbit + de Broglie wave)
├── free_particle_sim.py # Wavefunction visualization for particle on ring
├── Makefile            # Build automation
├── data.csv            # Ground state orbital data (generated)
├── spectrum.csv        # Emission spectrum data (generated)
├── wavefct.csv         # Wavefunction evolution data (generated)
└── figue1.png          # Visualization screenshot

Console output (energy levels and spectrum):

=== BOHR MODEL - HYDROGEN ENERGY LEVELS ===

Level n | Radius (m)    | Velocity (m/s) | Energy (eV)
--------|---------------|----------------|-------------
   1    | 5.2900e-11    | 2.1877e+06     | -13.6000
   2    | 2.1160e-10    | 1.0939e+06     | -3.4000
   3    | 4.7610e-10    | 7.2923e+05     | -1.5111
   4    | 8.4640e-10    | 5.4693e+05     | -0.8500
   5    | 1.3225e-09    | 4.3754e+05     | -0.5440

=== HYDROGEN SPECTRUM (Selected Lines) ===

Balmer Series (Visible Light):
Transition | Wavelength (nm) | Energy (eV) | Color
-----------|-----------------|-------------|------------
  3 → 2    | 656.3           | 1.889       | Red (Hα)
  4 → 2    | 486.1           | 2.550       | Cyan (Hβ)
  5 → 2    | 434.0           | 2.856       | Blue (Hγ)
  6 → 2    | 410.2           | 3.022       | Violet (Hδ)

Generated files:

  • data.csv: Electron position vs. time for ground state
  • spectrum.csv: All spectral line wavelengths and energies
  • wavefct.csv: Quantum wavefunction evolution data

Key Results

1. Quantized Energy Levels

The simulation confirms that:

  • Energy levels follow En=13.6/n2E_n = -13.6/n^2 eV
  • Ground state (n=1n=1) has the lowest energy (-13.6 eV)
  • Ionization (removing electron) requires 13.6 eV

2. Hydrogen Spectrum

  • Accurately reproduces the Balmer series visible lines (observed in stellar spectra)
  • UV Lyman series (seen in quasar absorption)
  • IR Paschen/Brackett series (important in astrophysics)

3. de Broglie Wave-Particle Duality

The animation demonstrates that:

  • Exactly nn wavelengths fit around the orbit circumference
  • Wave and particle pictures are complementary
  • Quantization arises from the standing wave condition: 2πrn=nλ2\pi r_n = n\lambda

Physical Constants Used

ConstantSymbolValue
Bohr radiusa0a_05.29×10115.29 \times 10^{-11} m
Electron massmem_e9.109×10319.109 \times 10^{-31} kg
Elementary chargeee1.602×10191.602 \times 10^{-19} C
Vacuum permittivityϵ0\epsilon_08.854×10128.854 \times 10^{-12} F/m
Planck constanthh6.626×10346.626 \times 10^{-34} J·s
Speed of lightcc2.998×1082.998 \times 10^8 m/s
Rydberg constantRHR_H1.097×107m11.097 \times 10^7 m^{-1}
Ionization energy-13.6 eV

Limitations of the Bohr Model

While groundbreaking, the Bohr model has limitations:

  • Only works accurately for hydrogen-like atoms (one electron)
  • Cannot explain fine structure (spin-orbit coupling)
  • Doesn’t predict intensity of spectral lines
  • Replaced by Schrödinger equation (full quantum mechanics)

References

  1. N. Bohr, “On the Constitution of Atoms and Molecules”, Philosophical Magazine 26 (1913)
  2. A. Sommerfeld, “Atomic Structure and Spectral Lines” (1919)
  3. Griffiths, D.J., “Introduction to Quantum Mechanics”, 3rd ed. (2018)
  4. NIST Atomic Spectra Database
  5. Introduction to Quantum Mechanics