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". 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/maxalbert/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/maxalbert/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/maxalbert/paper-supplement-nanoparticle-sensing.git cd paper-supplement-nanoparticle-sensing
-
Make sure that you have all required dependencies installed (see below; we recommend the installation using conda if possible).
-
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
.
In order to execute the notebooks, the following dependencies are required.
python
ipython
jupyter
matplotlib
(>= 1.5)numexpr
pandas
(>= 0.18)statsmodels
You can install them using pip
as follows:
pip install ipython jupyter matplotlib numexpr pandas statsmodels
However, be aware that this may potentially take a long time (and you may need to install additional dependencies via your distribution's package manager).
Alternatively, if you have conda
installed (which comes with the Anaconda distribution
or can be installed via Miniconda) then the recommended (and much faster) way to install these dependencies
is by running the following command from the toplevel of this repository:
conda env create -f environment.yml
This will create a conda environment called particle-sensing
which contains all the required dependencies.
Don't forget to activate the new environment before running the notebooks:
source activate particle-sensing # on Linux/Unix
activate particle-sensing # on Windows