Skip to content

iuming/virtual-cavity-simulator

Repository files navigation

Virtual Cavity RF Simulator

Python Version License Platform Status Website

⚠️ Important Usage Guidelines

🐍 Python Version (Recommended for Scientific Applications)

  • Use for: Research, engineering calculations, precise simulations
  • Accuracy: Full numerical precision with validated LLRFLibsPy algorithms
  • Command: python advanced_cavity_gui.py

🌐 Web Version (Educational/Demo Purposes Only)

  • Use for: Educational demonstrations, basic visualization, parameter exploration
  • ⚠️ Limitations: Approximate results only - not suitable for scientific calculations
  • Note: JavaScript implementation has inherent numerical precision limitations

🌐 Project Website: https://iuming.github.io/virtual-cavity-simulator/

πŸš€ Web Demo: Try the live web version - No installation required!

A comprehensive Radio Frequency (RF) cavity simulation platform with advanced graphical user interface for accelerator physics applications. Available both as a desktop Python application and a web-based simulator that runs in your browser.

🌟 Features

πŸŽ›οΈ Real-time Multi-Parameter Control

  • Amplitude Control: 0.0-2.0 range with precision sliders
  • Phase Control: -180Β° to +180Β° real-time phase adjustment
  • Frequency Offset: Β±2000Hz detuning control
  • Beam Current: 0-0.02A beam loading simulation
  • Mode Switching: CW/Pulsed operation modes

πŸ“Š Multi-Curve Dynamic Visualization

  • Cavity Voltage: Real-time magnitude and phase monitoring
  • Reflected Power: Forward/reflected power analysis
  • Detuning: Frequency offset tracking
  • Mechanical Modes: 5-mode microphonics simulation
  • Response Curves: Parameter sweep visualization

πŸ” Advanced Data Analysis

  • Data Recording: Start/stop recording with timestamp
  • Export Formats: CSV and JSON data export
  • Historical Playback: Data replay and analysis
  • Large Dataset: 10,000+ data points buffer

πŸ§ͺ Parameter Scanning

  • Multi-Parameter: Amplitude/Phase/Frequency/Current scanning
  • Custom Ranges: User-defined scan parameters
  • Response Analysis: 20-point automatic response curves
  • Progress Tracking: Real-time scan progress display

πŸš€ Quick Start

🌐 Web Version (Recommended for Quick Testing)

No installation required! Try the simulator directly in your browser:

πŸ‘‰ Launch Web Simulator

Features:

  • Runs on any modern browser (desktop/mobile)
  • Real-time RF cavity simulation
  • Interactive parameter control
  • Data export (CSV/JSON)
  • Responsive design

πŸ–₯️ Desktop Version (Full Features)

For advanced research and maximum accuracy:

Prerequisites

# Python 3.7 or higher
python --version

# Required packages
pip install numpy matplotlib tkinter

Installation

# Clone the repository
git clone https://github.com/iuming/virtual-cavity-simulator.git
cd virtual-cavity-simulator

# Install dependencies
pip install -r requirements.txt

# Install LLRFLibsPy (required)
# Follow LLRFLibsPy installation instructions

Launch the Simulator

# Start the GUI application
python launch_gui.py

# Or run standalone simulation
python sim_cavity_standalone.py

πŸ“– Usage Guide

Basic Operation

  1. Start Simulation: Click "Start" to begin real-time simulation
  2. Parameter Control: Use sliders to adjust RF parameters
  3. Data Recording: Click "Start Recording" to save data
  4. Parameter Scanning: Select parameter and range for automatic scanning
  5. Export Data: Save results in CSV or JSON format

Advanced Features

  • Resonance Analysis: Set frequency offset to -460Hz for resonance observation
  • Transient Response: Switch to pulsed mode for transient analysis
  • Linear Region: Scan amplitude parameters to analyze linear operation
  • Beam Loading: Adjust beam current to observe loading effects

πŸ—οΈ Technical Architecture

Core Components

  • RF Source Module: Signal generation and modulation
  • Cavity Dynamics: State-space cavity model with mechanical coupling
  • Visualization Engine: Real-time multi-plot display system
  • Data Management: Recording, storage, and export functionality

Simulation Parameters

  • Time Resolution: 1 ΞΌs time steps
  • Cavity Frequency: 1.3 GHz (configurable)
  • Quality Factor: 3Γ—10⁢ (loaded)
  • Mechanical Modes: 5 modes (280, 341, 460, 487, 618 Hz)
  • Beam Parameters: Variable current 0-20 mA

πŸ“ Project Structure

virtual-cavity-simulator/
β”œβ”€β”€ advanced_cavity_gui.py     # Main GUI application
β”œβ”€β”€ sim_cavity_standalone.py   # Standalone simulation
β”œβ”€β”€ launch_gui.py              # Application launcher
β”œβ”€β”€ requirements.txt           # Python dependencies
β”œβ”€β”€ README.md                  # This file
β”œβ”€β”€ LICENSE                    # MIT license
β”œβ”€β”€ docs/                      # Documentation
β”‚   β”œβ”€β”€ installation.md        # Installation guide
β”‚   β”œβ”€β”€ user_guide.md          # User manual
β”‚   └── api_reference.md       # API documentation
β”œβ”€β”€ examples/                  # Example scripts
β”‚   β”œβ”€β”€ basic_simulation.py    # Basic usage example
β”‚   └── parameter_sweep.py     # Parameter scanning example
└── tests/                     # Unit tests
    β”œβ”€β”€ test_simulation.py     # Simulation tests
    └── test_gui.py            # GUI tests

πŸ”¬ Scientific Applications

Accelerator Physics

  • Cavity Design: RF cavity parameter optimization
  • Control System: LLRF control algorithm development
  • Microphonics: Mechanical vibration analysis
  • Beam Loading: Beam-cavity interaction studies

Research Areas

  • Superconducting Cavities: SRF cavity dynamics
  • Linear Accelerators: LINAC RF system design
  • Free Electron Lasers: FEL RF control systems
  • Storage Rings: Synchrotron RF cavity analysis

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

# Fork and clone the repository
git clone https://github.com/iuming/virtual-cavity-simulator.git

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
python -m pytest tests/

πŸ“Š Performance

  • Real-time Performance: 1000+ simulations/second
  • Memory Usage: <100MB for typical operations
  • Data Capacity: 10,000+ data points with smooth visualization
  • Platform Support: Windows, Linux, macOS

πŸ“š Documentation

πŸ› Known Issues

  • Windows Installation: Some dependencies may require Microsoft C++ Build Tools
  • Matrix Conditioning: Scipy warnings for ill-conditioned matrices (non-critical)

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Ming Liu

πŸ™ Acknowledgments

  • LLRFLibsPy Team: For the excellent RF simulation framework
  • IHEP: For supporting this research and development
  • Community: For feedback and contributions

πŸ“ˆ Citation

If you use this software in your research, please cite:

@software{liu2025virtualcavity,
  title={Virtual Cavity RF Simulator},
  author={Liu, Ming},
  year={2025},
  institution={Institute of High Energy Physics, Chinese Academy of Sciences},
  url={https://github.com/iuming/virtual-cavity-simulator}
}

πŸ”— Related Projects


⭐ Star this repository if you find it useful!

πŸ“§ Contact: For questions or support, please email mliu@ihep.ac.cn

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published