This repository contains Julia code developed for the paper Locations of JNR skyrmions, written by myself and Josh Cork.
Given an initialised skyrmions the method make_JNR! allows one to define its pion field by the approximation of Harland-Sutcliffe. In addition, JNR_positions and plot_JNR_positions allow one to find the locations of consituent JNR skyrmions defined by poles and weights. To use these functions, download jnr_skyrmions.jl and in Julia run include("/.../jnr_skyrmions.jl").
tutorial.jl demonstrates how the code may be used. In addition, all the main functions have been given documentation to aid usability.
I shall not give a complete list of system requirements, but as a rough guideline:
- the code was written in Julia version 1.9.0,
- a basic essential requirement is to have Skyrmions3D installed in Julia (this code was developed with the current version of that package as of April 2025),
- to use additional features beyond the most basic
make_JNR!command, one requires the Julia packages Optim, IntervalArithmetic, IntervalRootFinding, ForwardDiff, StaticArrays, and LinearAlgebra.
I have also added an python notebook jnr_poncelet_configuration.ipynb which lets one visualise the configuration of Poncelet (i.e. the circumcircle, inellipse, and foci of that ellipse) that arise from 2-skyrmion JNR data. That notebook is also available (non-interactively) as a google colab notebook.