SdHAnalysis is a collection of Python functions for analyzing Shubnikov-de Haas oscillations measured in pulsed and dc magnetic fields. SdHAnalysis is based on the SdHDataSet
class, which contains the raw and processed data for a single magnet sweep/pulse and includes methods for analysis and plotting. Currently, it is assumed that the resistivity is measured using a tunnel diode oscillator (i.e. SdH manifests as oscillations in frequency as a function of inverse field).
- Import data, clean it if necessary.
- Invert the magnetic field, spline fit to get evenly spaced points, and subtract a polynomial (in inverse field) magnetoresistance background signal.
- Identify peaks in the FFT corresponding to SdH and magnetic breakdown orbits, and any mixing signals or harmonics.
- Filter the oscillatory magnetoresistance signal to isolate each of the orbits of interest.
- Calculate the amplitude of magnetoresistance oscillations as a function of inverse field.
- Fit the data to theoretical models to extract materials parameters like effective mass, g-factor, Dingle temperature, and magnetic breakdown field.
SdH oscillations at many temperatures are needed to calculate effective mass (using fits to the Lifshitz–Kosevich formula). I hope to implement this calculation soon.
Calculation of the Dingle temperature and magnetic breakdown field is in general not possible from SdH unless one of the two is known from a separate measurement. I don't when I'll get around to implementing this calculation in some form.
numpy
scipy
pandas
matplotlib
detect_peaks
(author: Marcos Duarte)- For use in Jupyter notebooks
Author: Logan Bishop-Van Horn (2017)