Skip to content

Hemishahuja/SG-Experiment-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stern-Gerlach Experiment Simulator

An interactive educational tool for exploring quantum mechanics through the Stern-Gerlach experiment, based on McIntyre's approach.

Overview

This simulator provides an interactive learning experience that allows students to explore quantum mechanics concepts through hands-on experimentation with the Stern-Gerlach apparatus. The implementation follows the pedagogical approach outlined in McIntyre's "Quantum Mechanics: A Paradigms Approach" which uses the SG experiment as a foundational teaching tool.

The tool has two main modes:

  1. Simulation mode: A web-based interactive simulator that allows students to manipulate SG apparatus parameters and observe outcomes
  2. Real quantum mode: Integration with IBM Quantum systems to run actual quantum experiments (requires API key)

Features

Multi-Stage Experiments

The enhanced simulator now supports multi-stage Stern-Gerlach experiments with the following capabilities:

  1. Multiple Apparatuses: Configure sequences of up to 10 Stern-Gerlach apparatuses with different magnetic field orientations
  2. Experiment Types:
    • Simple: Single apparatus measurement
    • Cascade: Particles pass through multiple apparatuses in sequence
    • Disturbance: Measurement at each stage collapses the quantum state
    • Recombination: Quantum paths can interfere when recombined
  3. Particle Tracking: Visualize individual particle paths through all stages
  4. Blocking/Recombination: Simulate blocking of specific paths and recombination of others

3D Visualization

  • Interactive 3D visualization of Stern-Gerlach apparatuses using Three.js
  • Particle path visualization through multiple stages
  • Real-time animation of beam splitting and particle movement
  • Orbit controls for viewing from any angle

Quantum State Simulation

  • Accurate quantum state evolution through multiple measurements
  • Probability calculations based on quantum mechanics principles
  • Support for different initial spin states (|+⟩, |-⟩, |+x⟩, |-x⟩)

Usage

Web Interface

  1. Open src/index.html in a web browser
  2. Select the operating mode:
    • Simulation Mode: Instant results with theoretical predictions
    • Real Quantum Mode: Execute on actual quantum hardware (requires IBM Quantum account)
  3. Configure the experiment:
    • Select experiment type from the dropdown
    • For single apparatus: Set the magnetic field angle
    • For multiple apparatuses: Add apparatuses and set their angles
    • Set the number of particles to simulate (1-10,000)
  4. Click "Run Experiment" to execute

Experiment Types

  1. Simple Experiment:

    • Single Stern-Gerlach apparatus
    • Measures probability of spin states
    • Compares experimental results with theoretical predictions
  2. Cascade Experiment:

    • Multiple apparatuses in sequence
    • Particles pass through all apparatuses
    • Demonstrates quantum state evolution
  3. Disturbance Experiment:

    • Measurement at each stage affects subsequent stages
    • Shows the effect of observation on quantum systems
    • Demonstrates wave function collapse
  4. Recombination Experiment:

    • Paths are recombined after splitting
    • Shows quantum interference effects
    • Demonstrates the principle of superposition

Programmatic Usage

The simulator can also be used programmatically:

// Import the required classes
import { SpinState, SGApparatus, SGExperimentSimulator } from './src/js/sg-simulator.js';

// Create initial state
const initialState = SpinState.plusState(); // |+⟩ state

// Create apparatus sequence
const apparatusSequence = [
    new SGApparatus(0),    // First apparatus at 0°
    new SGApparatus(90),   // Second apparatus at 90°
    new SGApparatus(45)    // Third apparatus at 45°
];

// Run simulation
const results = SGExperimentSimulator.simulate(
    initialState,
    apparatusSequence,
    1000, // Number of particles
    { experimentType: 'cascade' }
);

// Access results
console.log('Stage results:', results.stageResults);
console.log('Particle paths:', results.particlePaths);
console.log('Final counts:', { plus: results.plusCount, minus: results.minusCount });

File Structure

src/
├── index.html              # Main HTML file
├── css/
│   └── styles.css          # Styling for the UI
├── js/
│   ├── main.js             # Main application logic
│   ├── sg-simulator.js     # Core simulation logic
│   ├── quantum-backend.js  # Quantum computing backends
│   ├── visualization.js    # 3D visualization components
│   └── utils.js            # Utility functions
└── python/
    └── quantum_backend.py  # Python quantum backend (for future expansion)

tests/
├── js-tests.html           # JavaScript unit tests
├── test-multistage.html    # Multi-stage experiment tests
└── run_tests.py            # Python test runner

Dependencies

Testing

Run the test suite by opening the following files in a browser:

  • tests/js-tests.html - Unit tests for JavaScript components
  • tests/test-multistage.html - Tests for multi-stage experiments

Educational Value

This simulator helps students understand:

  • Quantum state measurement and collapse
  • The probabilistic nature of quantum mechanics
  • Wave-particle duality
  • The effect of measurement on quantum systems
  • Quantum interference and superposition
  • Non-classical correlations in quantum systems

Future Enhancements

Planned improvements include:

  • More sophisticated particle blocking/recombination
  • Additional quantum state initialization options
  • Enhanced visualization with particle animations
  • More experiment types (e.g., Bell's theorem demonstrations)
  • Integration with more quantum computing platforms
  • Mobile-responsive design

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published