Dataset Open Access

Dataset for "Skyrmion states in thin confined polygonal nanostructures"

Pepper, Ryan Alexander; Beg, Marijan; Cortes-Ortuno, David; Kluyver, Thomas; Bisotti, Marc-Antonio; Carey, Rebecca; Vousden, Mark; Albert, Maximilian; Wang, Weiwei; Hovorka, Ondrej; Fangohr, Hans

This dataset provides micromagnetic simulation data collected from a series of computational experiments on the effects of polygonal system shape on the energy of different magnetic states in FeGe. The data here form the results of the study ‘Skyrmion states in thin confined polygonal nanostructures.’

The dataset is split into several directories:


square-samples and triangle-samples

These directories contain final state ‘relaxed’ magnetization fields for square and triangle samples respectively. The files within are organised into directories such that a sample of side length d = 40nm and which was subjected to an applied field of 500mT is labelled d40b500. Within each directory are twelve VTK unstructured grid format files (with file extension “.vtu”). These can be viewed in a variety of programmes; as of the time of writing we recommend either ParaView or MayaVi. The twelve files correspond to twelve simulations for each sample simulated, corresponding to twelve states from which each sample was relaxed - these are described in the paper which this dataset accompanies, but we note the labels are:

‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘h’, ‘u’, ‘r1’, ‘r2’, ‘r3’, ‘h2’, ‘h3’


  • 0 - 4 are incomplete to overcomplete skyrmions,
  • h, h2 and h3 are helical states with different periodicities
  • r1-r3 are different random states
  • u is the uniform magnetisation

The vtu files are labelled according to parameters used in the simulation. For
example, a file labelled ‘160_10_3_0_u_wd000000.vtu’ encodes that:

  1. The simulation was of a sample with side length 160nm.

  2. The simulation was of a sample of thickness 10nm.

  3. The maximum length of an edge in the finite element mesh of the sample was 3nm.

  4. The system was relaxed from the ‘u’.

  5. ‘wd’ encodes that the simulation was performed with a full demagnetizing

square-npys and triangle-npys

These directories contain computed information about each of the final states stored in square-samples and triangle-samples. This information is stored in NumPy npz files, and can be read in Python straightforwardly using the function numpy.load. Within each npz file, there are 8 arrays, each with 12 elements. These arrays are:

  1. ‘E’ - corresponds to the total energy of the relaxed state.
  2. ‘E_exchange’ - corresponds to the Exchange energy of the relaxed state.
  3. ‘E_demag’ - corresponds to the Demagnetizing energy of the relaxed state.
  4. ‘E_dmi’ - corresponds to the Dzyaloshinskii-Moriya energy of the relaxed state.
  5. ‘E_zeeman’ - corresponds to the Zeeman energy of the relaxed state.
  6. ‘S’ - Calculated Skyrmion number of the relaxed state.
  7. ‘S_abs’ - Calculated absolute Skyrmion number - see paper for calculation details.
  8. ‘m_av’ - Computed normalised average magnetisation in x, y, and z directions for relaxed state

The twelve elements here correspond to the aforementioned twelve states relaxed from, and the ordering of the array is that of the order given above.

square-classified and triangle-classified

These directories contain a labelled dataset which gives details about what the final state in each simulation is. The files are stored as plain text, and are labelled with the following structure (the meanings of which are defined in the paper which this dataset accompanies):

  1. iSk - Incomplete Skyrmion
  2. Sk, or a number n followed by Sk - n Skyrmions in the state.
  3. He - A helical state
  4. Target - A target state.

The files contain the names of png files which are generated from the vtu files in the format ‘d_165b_350_2.png’. This example, if found in the ‘Sk.txt’ file, means that the sample which was 165nm in side length and which was relaxed under a field of 350mT from initial state 2 was found at equilibrium in a Skyrmion state.


square-pngs and triangle-pngs

These directories contain generated pngs from the vtu files. These are included for convenience as they take several hours to generate. Each directory contains three subdirectories:


This directory contains the simulation results from all samples, in the format ‘d_165b_350_2.png’, which means that the image contained here is that of the 165nm side length sample relaxed under a 350mT field from initial state 2.


This directory contains the images which correspond to the lowest energy state found from all of the initial states. These are labelled as ‘d_180b_50.png’, such that the image contained in this file is the the lowest energy state found from all twelve simulations of the 180nm sidelength under a 50mT field.


This directory contains the images which correspond to the states relaxed only from the uniform state. These are labelled such that an image labelled ‘d_55b_100.png’ is the state found from relaxing a 180nm sample under a 100mT applied field.


These are the generated phase diagrams which are found in the paper.


This folder contains Python scripts which generate the png files mentioned above, and also the phase diagram figures for the paper this dataset accompanies. The scripts are labelled descriptively with what they do - for e.g. ’’ contains the script which loads vtu files and generates the png files. The exception here is ’’ which provides functions used across multiple scripts. These scripts can be modified - for example; the function 'export_vector_field' has many options which can be adjusted to, for example, plot different components of the magnetization.

In order to run the scripts reproducibly, in the root directory we have provided a Makefile which builds each component. In order to reproduce the figures yourself, on a Linux system, ParaView must be installed. The Makefile has been tested on Ubuntu 16.04 with ParaView 5.0.1. In addition, a number of Python dependencies must also be installed. These are:

  • scipy >=0.19.1
  • numpy >= 1.11.0
  • matplotlib == 1.5.2
  • pillow>=3.1.2

We have included a requirements.txt file which specifies these dependencies; they can be installed by running 'pip install -r requirements.txt' from the directory.

Once all dependencies are installed, simply run the command ‘make’ from the shell to build the Docker image and generate the figures. Note the scripts will take a long time to run - at the time of writing the runtime will be on the order of several hours on a high-specification desktop machine. For convenience, we have therefore included the generated figures within the repository (as noted above). It should be noted that for the versions used in the paper, adjustments have been made after the generation of the figures, (for e.g. to add images of states within the metastability figure, and overlaying boundaries in the phase diagrams).

If you want to reproduce only the phase diagrams, and not the pngs, the command ‘make phase-diagrams’ will do so. This is the smallest part of the figure reproduction, and takes around 5 minutes on a high-specification desktop.

Files (5.9 GB)
Name Size
5.9 GB Download
All versions This version
Views 5959
Downloads 1313
Data volume 77.3 GB77.3 GB
Unique views 5858
Unique downloads 1010


Cite as