- Use for: Research, engineering calculations, precise simulations
- Accuracy: Full numerical precision with validated LLRFLibsPy algorithms
- Command:
python advanced_cavity_gui.py
- 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.
- 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
- 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
- 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
- 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
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
For advanced research and maximum accuracy:
# Python 3.7 or higher
python --version
# Required packages
pip install numpy matplotlib tkinter# 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# Start the GUI application
python launch_gui.py
# Or run standalone simulation
python sim_cavity_standalone.py- Start Simulation: Click "Start" to begin real-time simulation
- Parameter Control: Use sliders to adjust RF parameters
- Data Recording: Click "Start Recording" to save data
- Parameter Scanning: Select parameter and range for automatic scanning
- Export Data: Save results in CSV or JSON format
- 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
- 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
- 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
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
- Cavity Design: RF cavity parameter optimization
- Control System: LLRF control algorithm development
- Microphonics: Mechanical vibration analysis
- Beam Loading: Beam-cavity interaction studies
- Superconducting Cavities: SRF cavity dynamics
- Linear Accelerators: LINAC RF system design
- Free Electron Lasers: FEL RF control systems
- Storage Rings: Synchrotron RF cavity analysis
We welcome contributions! Please see our Contributing Guidelines for details.
# 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/- 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
- Windows Installation: Some dependencies may require Microsoft C++ Build Tools
- Matrix Conditioning: Scipy warnings for ill-conditioned matrices (non-critical)
This project is licensed under the MIT License - see the LICENSE file for details.
Ming Liu
- Email: mliu@ihep.ac.cn
- Institution: Institute of High Energy Physics, Chinese Academy of Sciences
- ORCID: 0000-0001-6239-1180
- LLRFLibsPy Team: For the excellent RF simulation framework
- IHEP: For supporting this research and development
- Community: For feedback and contributions
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}
}- LLRFLibsPy - Low-Level RF Library for Python
- pythonSoftIOC - Python Soft IOC Framework
β Star this repository if you find it useful!
π§ Contact: For questions or support, please email mliu@ihep.ac.cn