Skip to content

Software

Most of my software can be found on my personal github page or the page of our group at BBN Technologies. Pull requests are welcome and copying encouraged!

Experiment Control Software

I am the primary developer of Auspex, the automated system for python-based experiments: a framework for performing laboratory measurements. Auspex was developed by a group that primarily performs measurements on superconducting qubits and magnetic memory elements, but its underpinnings are sufficiently general to allow for extension to arbitrary equipment and experiments. Auspex uses metaprogramming to drastically reduce the complexity of writing instrument drivers. A live plot server is used to push data to local or remote clients. Auspex integrates with QGL and Quince seamlessly to allow users to directly run experiments on qubits whose gate sequences have been defined in QGL.

Quince allows users to graphically create and manipulate nodes, and integrates with Auspex and QGL to allow users to create custom digitial signal processing pipelines for experiments. Quince is written in Python using PyQt as the graphics library. Quince may not have a particularly compelling use case for configuring multi-qubit systems given the diagram complexity, but the graphics code is sufficiently general that you might find it as a good starting point for your own project!

Simulation Software

MuView2 is an OVF (version 1 and 2) compatible viewer intended to function with Mumax and OOMMF. The C++ viewer provides a fast QT/OpenGL interface that enables users to scrub through loaded files with an animation timeline, eliminating the need for manually generating image sequences and rendering animations using several third party software packages.

EigenMag is a not-quite-yet-open-source finite difference micromagnetic eigensolver written in Julia. Eigenmag assembles and solves for eigenmodes using arbitrary micromagnetic energy terms such as exchange, demagnetization, and can easily be extended to include more novel terms such as the Dzyaloshinskii-Moriya (asymmetry exchange) interaction.

MacrospinGPU uses PyOpenCL to run macrospin simulations on the GPU over many realizations of the thermal field. A convenient Jinja2-based templating system is used to allow easy specification of physical geometry, magnetic properties, arbitrarily many spin-torque terms, and more.

MacrospinGPU

With MacrospinFP one can solve for the evolution of continuous magnetization probability distribution using the relevant (time dependent) Fokker-Planck equation on a 2D spherical manifold embedded in R^3. This problem is more computational demanding than evolution of the Stochastic LLG equation, but it is deterministic. The project leverages the open source Fenics finite element library and has been implemented in both C++ and Python. This project hasn’t been open sourced yet, but will be (hopefully) soon pending some validation against other simulation results.

MacrospinFP