import numpy as np

"""
Explanation: Explantions of the data formats
The raw data for figures 1 and 2 are found the directories, data/figure_1/ and data/figure_2 respectively.
This notebook explains the different data types found in the these directories.
End of explanation
"""


mx, my, mz, E = np.load('../data/figure_1/hysteresis_loops/sim_hysteresis_FeGe_nanodisk_d150_h20.npy')

"""
Explanation: Figure 1
hysteresis_loops
The data for the hysteresis loops is found in ../data/figure_1/hysteresis_loops/sim_hysteresis_FeGe_nanodisk_d150_h*.npy where * specifies the thickness/height of the nanocylinder for 10-90nm in steps of 5nm.
These files contain the components of the average magnetisation of the sample, $m_x$, $m_y$, $m_z$ and the average energy, $E$ of the sample recorded at each field step of the hysteresis (there were 801 field steps in total for the hysteresis field swept up and down).
The data was stored as a numpy array in the form ($m_x$, $m_y$, $m_z$, $E$), and thus has a shape, (4, 801).
End of explanation
"""


mz_profile = np.load('../data/figure_1/magnetisation_profiles/hysteresis_probe_d150_h55_mz210.npy')

"""
Explanation: magnetisation_profiles
The magnetisation profile ($m_z$ sampled along the diameter, on the top surface of a nanocylinder sample) data was sampled at 100 equally spaced points along the diameter for the 35nm and 55nm nanocylinders and at 200 equally spaced points along the diameter for the 20nm samples (there were no particular reasons for the more refined sample).
../data/figure_1/figure_1/magnetisation_profiles/hysteresis_probe_d150_h55_mz*.npy where * indicates the step number in the hysteresis (801 in total), from when the data was sampled.
End of explanation
"""


state_types = np.load('../data/figure_2/phase_diagram_state_types_demag.npy')

"""
Explanation: 3d_data
Several png files of showing the 3d images of the magnetisation at various stages throughout the hysteresis of a 55nm thick nanocylinder can be found at in the directory, ../data/figure_1/3d_data/images/sim_hysteresis_FeGe_nanodisk_d150_h55_*.png, where * is the step number from the hysteresis from which the state appeared.
These images were generated from vtk files, whch can be found at `../data/figure_1/3d_data/vtk/'
using the 3D visulisation programme, Paraview (http://www.paraview.org/).
Figure 2
At each point in the hysteresis, the state type was determined through the image detection approach and saved into a multi dimensional array of the shape (H, t), with H being the external hysteresis field and t being the thickness.
The array was populated with integers ranging from 0-5, depending on the state type, where:

0: incomplete skyrmion (core down)
1: transition state (no radial symmetry)
2: skyrmion (core up)
3: target state
4: skyrmion (core down)
5: incomplete skyrmion (core up)
End of explanation
"""


