Explanation of the data format

The raw data underlying the figures is stored in the file data/eigenmode_info_data_frame.csv. In this notebook we explain what this file contains and the data format.

The data is stored in CSV (= comma-separated values) format. In principle, it is human-readable. The first few lines look as follows.


In [1]:
!head -n 5 ../data/eigenmode_info_data_frame.csv


has_particle,x,y,d,d_particle,Ms_particle,Hx,Hy,Hz,N,freq,freq_diff
False,,,,,,0,0,80000.0,1,4.44366221658866,
False,,,,,,0,0,80000.0,2,5.916577999212971,
False,,,,,,0,0,80000.0,3,7.917764571095144,
False,,,,,,0,0,80000.0,4,8.415238223354994,

However, it is much more convenient to read and explore the data using pandas. To do this, we first load the CSV file into a pandas.DataFrame.


In [2]:
import pandas as pd

In [3]:
df = pd.read_csv('../data/eigenmode_info_data_frame.csv')

Using pandas we can display the data in a nice table format. The first few entries of the data frame (which correspond to the lines listed above) look as follows.


In [4]:
df.head(4)


Out[4]:
has_particle x y d d_particle Ms_particle Hx Hy Hz N freq freq_diff
0 False NaN NaN NaN NaN NaN 0 0 80000.0 1 4.443662 NaN
1 False NaN NaN NaN NaN NaN 0 0 80000.0 2 5.916578 NaN
2 False NaN NaN NaN NaN NaN 0 0 80000.0 3 7.917765 NaN
3 False NaN NaN NaN NaN NaN 0 0 80000.0 4 8.415238 NaN

Each row contains the simulation parameters and computed eigenfrequency for one of the five eigenmodes computed in a particular simulation run. The rows shown above all correspond to a simulation with no particle present, hence the missing values (marked by NaN = "not a number") for some of the parameters. For illustration, we also show a few rows corresponding to simulations which included a particle.


In [5]:
df.iloc[103:107]


Out[5]:
has_particle x y d d_particle Ms_particle Hx Hy Hz N freq freq_diff
103 True 60.0 0.0 5.0 20.0 1000000.0 0 0 80000.0 4 8.388506 -0.026732
104 True 60.0 0.0 5.0 20.0 1000000.0 0 0 80000.0 5 10.694579 0.091395
105 True 70.0 0.0 5.0 20.0 1000000.0 0 0 80000.0 1 4.447192 0.003530
106 True 70.0 0.0 5.0 20.0 1000000.0 0 0 80000.0 2 6.021694 0.105116

In each simulation run we computed the frequencies of the first five eigenmodes (N=1,...,5) of the nanodisc as illustrated in the following figures (cf. Figs. 3 and 5 in the paper). Each row in the data frame corresponds to one of these eigenmodes, either for the bare nanodisc (as illustrated on the left), or for a nanodisc with particle (as illustrated for selected modes on the right).

The meaning of the columns in the data frame is as follows:

  • has_particle: Whether a particle was present in this particular simulation. If False, the simulation computed eigenmodes of the bare disc.

  • x, y: Position of the centre of the particle relative to the centre of the nanodisc (in nanometres). The value (x,y)=(0,0) means that the particle is located above the centre of the disc.

  • d: Separation (in nanometres) of the bottom surface of the particle from the top surface of the disc. See Fig. 1(c) in the paper for illustration.

  • d_particle: Diameter of the particle (in nanometres).

  • Ms_particle: Saturation magnetisation of the particle (in A/m).

  • Hx, Hy, Hz: Strength of the external field (in A/m).

  • N: Which eigenmode of the nanodisc this row corresponds to. Valid values are N=1,...,5, corresponding to the first five eigenmodes of the disc. See figures above for illustration.

  • freq: Frequency of the eigenmode (in GHz).

  • freq_diff: Frequency shift $\Delta f$ (in GHz) of this eigenmode relative to the same mode in the bare disc (i.e., with no particle present).