MuscleMuseum is a MATLAB package designed for Atomic, Molecular, and Optical (AMO) physics. It serves as an integrated solution for experimental control, data analysis, and numerical simulation. The package has several key features:
-
Object-Oriented Programming (OOP): Unlike traditional script programming in MATLAB, MuscleMuseum is fully OOP-based. This choice is essential for handling the complexity of such projects.
-
Direct Hardware Control: Leveraging MATLAB's rich set of hardware communication toolboxes, such as the Data Acquisition Toolbox, MuscleMuseum provides seamless integration for automatic hardware control.
-
Data Management with PostgreSQL: MuscleMuseum employs the robust PostgreSQL database system for efficient data management. This ensures reliable storage and retrieval of experimental data.
-
User-Friendly GUIs: The package offers intuitive Graphical User Interfaces (GUIs) developed using MATLAB App Designer.
Right now, I have implemented:
- A BEC experimental control and data analysis system (the BecExp class)
- Apps for controlling and browsing BEC experiments (BecControlPanel and BecBrowser)
- Atomic data and atomic structure handling (the Atom class)
- A single-atom master equation simulation tool (the MeSim class)
- A 1D Time-dependent Schrodinger equation (TDSE) simulation tool (the SeSim1D class)
- A 1D lattice dynamics simulation tool (the LatticeSeSim1D class)
- Some lattice band structure calculations (the OpticalLattice class)
Still under construction:
- Gross-Pitaevskii equation simulation
- Keysight function generator control
Known issues
- The database functions I wrote are not compatible with MATLAB 2023b. I need to fix this in the future.
- The database may not be accessed through VPN for now.
To use this package:
- Install MATLAB. I only tested my code with MATLAB 2023a. MATLAB 2023b is not compatible. Required MATLAB packages:
- Data Acquisition Toolbox
- Curve Fitting Toolbox
- Parallel Computing Toolbox
- Install Python that is compatible with your MATLAB version. Make sure the Python path is in your environment variable. Check if you can invoke Python in command line.
- Install ARC
- Install PostgreSQL. Set up passwords
- Download this package. You can do
git clone https://github.com/weldlabucsb/MuscleMuseum
- In MATLAB, go to the main directory of this package.
- At first setup, run
init
. Fix the issues if you see any warnings. - Run
BecControlPanel
for BEC experimental control and analysis - Run
BecBrowser
for reading BEC data. You need to mapBananaStand/ANewStart
asB:\
drive on your computer.