Frequency-based nanoparticle sensing over large field ranges using the ferromagnetic resonances of a magnetic nanodisc: supplementary material
This repository accompanies the paper "Frequency-based nanoparticle sensing over large field ranges using the ferromagnetic resonances of a magnetic nanodisc" (https://iopscience.iop.org/article/10.1088/0957-4484/27/45/455502).
It provides the data underlying the figures in the paper as well as Jupyter notebooks to reproduce those figures. The latest version of this repository can be found at https://github.com/fangohr/paper-supplement-nanoparticle-sensing
Authors: Maximilian Albert, Marijan Beg, Dmitri Chernyshenko, Marc-Antonio Bisotti, Rebecca L. Carey, Hans Fangohr and Peter Metaxas.
The directory notebooks/
contains Jupyter notebooks for the relevant figures in the paper.
On Github you can view them directly in the browser:
- Fig. 2: Dipole field visualisation
- Fig. 4: Frequency dependence on external field strength
- Fig. 7: Frequency change vs. lateral particle position
- Fig. 8: Frequency change vs. particle-disc separation
- Fig. 9(a): Frequency change vs. particle M_S
- Fig. 9(b): Frequency change vs. particle size
- Fig. 9(c): Frequency change for the fundamental mode for various external field strengths
The raw data is available in the file data/eigenmode_info_data_frame.csv, which is a CSV (= comma-separated values) file containing the simulation parameters and computed resonant frequencies for all performed simulations. All notebooks use this data to generate the figures. The data format is explained in the notebook Explanation of the data format.
The easiest way to execute the notebooks without installing anything is to launch a cloud Jupyter server using Binder. You can access it here:
http://mybinder.org/repo/fangohr/paper-supplement-nanoparticle-sensing
In order to run the notebooks on your own computer, follow the steps below.
-
Clone this repository and change into the newly created directory:
git clone https://github.com/fangohr/paper-supplement-nanoparticle-sensing.git cd paper-supplement-nanoparticle-sensing
-
Install all required dependencies. Tested for Python 3.9 to Python 3.11. First, create a virtual environment (or conda environment if you prefer):
python -m venv venv-paper source venv-paper/bin/activate
Then install the required libraries:
pip install -r requirements.txt
-
Start a notebook server:
jupyter notebook
This will open a browser window with a dashboard showing the contents of this repository.
-
Navigate to the
notebooks/
folder and open any of the.ipynb
files. You can reproduce the associated figure by selecting the menu itemCell -> Run All
.
- 11 February 2023: changed from conda-environment to requirements.txt, added CI, updated notebooks to execute with latest matplotlib.