Fidimag
Fidimag is a micromagnetic and atomistic simulation package, which can be used to simulate the magnetisation of nanoscale samples of materials.
The code for Fidimag is available under an open source license on GitHub.
Contents:
Please use these instructions to build and run Fidimag on Linux or OS X. We do not currently support Windows, as none of the developers use this as their operating system, though please make a pull request with instructions or let us know if you are able to get Fidimag working on a Windows machine.
Users can run a quick convenience script in the folder Fidimag/bin by running the command:
sudo bash ubuntu_install_script.sh
Then, follow the instructions in ‘All Systems’ below.
Please install FFTW and Sundials using the scripts below, or use your package manager to do so.
install-fftw.sh
install-sundials.sh
We also need a number of Python packages:
numpy scipy cython pytest matplotlib ipywidgets pyvtk ipython
numpy
scipy
cython
pytest
matplotlib
ipywidgets
pyvtk
ipython
These can be installed through the pip package manager with:
pip install numpy scipy cython pytest matplotlib ipywidgets pyvtk ipython
You will need a relatively recent installation of CMake (> version 3) to use the Sundials script. You may also need to install development versions of
BLAS
LAPACK
though many Linux distributions come with these.
OS X has not shipped with GCC since the release of OS X Mavericks. You therefore need to install this, as the version of clang which ships does not support OpenMP. We advise that you use the brew package manager, and install gcc5. We also strongly advise that you install the Anaconda Python distribution - we do not test against the version of Python that comes with OS X.
Once you have done this, you need to specify the compiler you are using:
export CC=gcc-5
You can then follow the same installation instructions as for ‘Other Linux’, but don’t worry about BLAS and LAPACK as Anaconda takes care of these for you.
Once you’ve built Fidimag, you need to add the libraries to your LD_LIBRARY_PATH, so that Fidimag can find them. If you installed SUNDIALS and FFTW using our scripts, you can do this with the command:
export LD_LIBRARY_PATH=/path/to/fidimag/local/lib:$LD_LIBRARY_PATH
You may want to add this and another command to the file ~/.bashrc on Linux or ~/.bash_profile on OS X:
export PYTHONPATH=/path/to/fidimag:$PYTHONPATH
Adding Fidimag to your PYTHONPATH allows fidimag to be imported in Python from any directory.
If you want to check everything has worked correctly, try the command ‘make test’ from the fidimag directory - if all tests pass, then you have a working installation!
Some additional tests check Fidimag against OOMMF. To run these, you need a working OOMMF installation, and you need need to tell the system where to find it. You can do this by setting the environment variable to the directory containing oommf.tcl:
export OOMMF_PATH=/path/to/folder/containing/OOMMF
Install Docker, follow instructions at https://www.docker.com/products/docker
Pull the fidimag notebook container:
docker pull fidimag/notebook
docker run -p 30000:8888 fidimag/notebook
This command starts a Jupyter Notebook in which `fidimag <>`__ can be used. The Jupyter notebook inside the container is listening on port 8888.
The parameter -p 30000:8888 says that the port 8888 inside the container is exposed on the host system as port 30000.
-p 30000:8888
On a Linux host machine, you can connect to http://localhost:30000 to see the notebook.
http://localhost:30000
On a Mac, you need to find out the right IP address to which to connect. The information is provided by
docker-machine ip
For example, if docker-machine ip returns 192.168.99.100, then the right URL to paste into the browser on the host system is http://192.168.99.100:30000.
192.168.99.100
http://192.168.99.100:30000
[How does this work on Windows? Pull requests welcome.]
You can add the -d switch to the docker run command to detach the process:
-d
docker run
docker run -d -p 30000:8888 fidimag/notebook
docker ps lists all running containers.
docker ps
To only show the ids, we can use
id
docker ps -q
To only show the containers that was last started, we can use the -l flag:
-l
docker ps -l
To stop the last container started, we can use the docker stop ID command, where we need to find the ID first. We can do this using docker ps -l -q. Putting the commands together, we have
docker stop ID
ID
docker ps -l -q
docker stop $(docker ps -l -q)
to stop the last container we started.
We can start the docker container with the -ti switch, and we can provide bash as the command to execute:
-ti
bash
docker run -ti fidimag/notebook bash
A bash prompt appears (and we are now inside the container):
jovyan@4df962d27520:~/work$
and can start Python inside the container, and import fidimag:
jovyan@4df962d27520:~/work$ python Python 3.5.1 |Continuum Analytics, Inc.| (default, Jun 15 2016, 15:32:45) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import fidimag
We could also start IPython:
jovyan@4df962d27520:~/work$ ipython Python 3.5.1 |Continuum Analytics, Inc.| (default, Jun 15 2016, 15:32:45) Type "copyright", "credits" or "license" for more information. IPython 4.2.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]:
[The switch -t stands for Allocate a pseudo-TTY and -i for Keep STDIN open even if not attached.]
-t
Allocate a pseudo-TTY
-i
Keep STDIN open even if not attached
Often, we may have a fidimag Python script run.py we want to execute in our current working directory in the host machine. We want output files from that command to be written to the same working directory on the host machine.
run.py
We can use the container like this to achieve that:
docker run -v `pwd:/io -ti fidimag/notebook python run.py`
docker run -v `pwd
The -v `pwd:/io` tells the docker container to take the current working directory on the host (`pwd`) and mount it to the path /io on the container. The container is set up so that the default working directory is /io.
-v `pwd
`pwd`
/io
Here is an example file run.py that reads
import fidimag # to proof we can import it print("Hello from the container") # and write to a file open("data.txt", "w").write("Data from the container.\n")
This can be executed with
docker run -v `pwd`:/io -ti fidimag/notebook python hello.py
and will create a data file data.txt that is visible from the host’s working directory.
data.txt
git clone https://github.com/computationalmodelling/fidimag.git cd fidimag/doc/ipynb/ docker run -v `pwd`:/io -p 30000:8888 -d fidimag/notebook
Two alternative docker containers are available that provide only Fidimag, but not the Jupyter Notebook, nor scipy. They are available under the names fidimag/minimal-py2 and fidimag/minimal-py3. Use these names instead of fidimag/notebook in the examples above.
fidimag/minimal-py2
fidimag/minimal-py3
fidimag/notebook
The fidimag/minimal-py2 version uses Python2, the fidimag/minimal-py3 version uses Python 3.
This notebook is a guide to the essential commands required to write and run basic Fidimag simulations. It can be downloaded from the github repository, found here.
The first step is to import Fidimag. Numpy and Matplotlib are also imported for later use, to demonstrate visualising simulations results.
[1]:
import fidimag import numpy as np import matplotlib.pyplot as plt %matplotlib inline
Mesh Cell +------------+ +-----+-----+-----+-----+-----+-----+ / /| / / / / / / /| / / | +-----+-----+-----+-----+-----+-----+ | / / | dz / / / / / / /| + +------------+ | +-----+-----+-----+-----+-----+-----+ |/ -----> | | | / / / / / / /| + | | + +-----+-----+-----+-----+-----+-----+ |/ | | / | | | | | | | + | | / dy | | | | | | |/ | |/ +-----+-----+-----+-----+-----+-----+ +------------+ dx
We need to create a mesh. Meshes are created by specifying the dimensions of the finite difference cells, (dx, dy, dz) and the number of cells in each direction, (nx, ny, nz).
The cell dimensions are defined by dimensionless units. The dimensions of the mesh/cells are integrated by the parameter, unit_length.
In the the following example, the (cuboid) mesh consists of 50x20x1 cells (nx=50, ny=20 and nz=1), with each cell comprising of the dimensions, dx=3, dy=3 and dz=4. The unit_length = 1e-9 (nm).
Thus, the total size of the mesh is 150nm x 60nm x 4nm.
Required Fidimag Function
fidimag.common.CuboidMesh(nx, ny, nz, dx, dy, dz, unit_length)
[2]:
nx, ny, nz = 50, 20, 1 dx, dy, dz = 3, 3, 4 #nm unit_length = 1e-9 # define the unit length of the dx units to nm. mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, unit_length=unit_length)
Now we can create the simulation object.
A mesh is required to create a simulation object. We also give the simulation object a name. Is this case, we call the simulation object, ‘sim_tutorial_basics’
fidimag.micro.Sim(mesh, name)
[3]:
sim_name = 'sim_tutorial_basics' sim = fidimag.micro.Sim(mesh, name=sim_name)
The material specific interactions (and parameters) can now be added to the simulation object. Let’s first specify the material specific parameters:
[4]:
Ms = 1e6 # magnetisation saturation (A/m) A = 1e-12 # exchange energy constant (J/m) D = 1e-3 # DMI constant (J/m**2) Ku = 1e5 # uniaxial anisotropy constant (J/m**3) Kaxis = (0, 0, 1) # uniaxial anisotropy axis H = (0, 0, 1e3) # external magnetic field (A/m)
The simulation object, sim created earlier has a property for the saturation magnetisation, Ms which is set in the following way:
[5]:
sim.Ms = 8.0e5
Now let’s add the following interactions:
Exchange
Uniaxial Anisotropy
Dyzaloshinskii-Moriya (bulk)
Zeeman Field
Demagnetisation
Required Fidimag Functions
to a simulation object named, sim:
sim.add(interaction)
where the interactions are:
interaction
function
exchange
fidimag.micro.UniformExchange(A)
uniaxial anisotropy
fidimag.micro.UniaxialAnisotropy(Ku, axis)
DMI
fidimag.micro.DMI(D)
Zeeman
fidimag.micro.Zeeman(H0)
Demag
fidimag.micro.Demag()
[6]:
exchange = fidimag.micro.UniformExchange(A=A) sim.add(exchange) anis = fidimag.micro.UniaxialAnisotropy(Ku=Ku, axis=Kaxis) sim.add(anis) dmi = fidimag.micro.DMI(D=D) sim.add(dmi) zeeman = fidimag.micro.Zeeman(H0=H) sim.add(zeeman) demag = fidimag.micro.Demag() sim.add(demag)
So, at this point the Hamiltonian is created. Now, we can set parameters in the LLG equation. The sim object has properties for the values of alpha and gamma which are set in the following way:
[7]:
sim.driver.alpha = 0.5 sim.driver.gamma = 2.211e5 # sim.do_precession = True
You can also specfiy whether the magnetisation spins precess or not. The sim object has a property, do_precession, which can be set to either True of False. In this example, let’s have precession:
[8]:
sim.driver.do_precession = True
When both Hamiltonian and LLG equations are set, we need to set the intial magnetisation before we relax the system. Let’s set it to all point in the x-direction:
[9]:
m_init = (1,0,0) sim.set_m(m_init)
The simulation object is now set up: we’re now ready to relax the magnetisation.
In order to do so, we need to specify the value of dt for the time integration. By default this is set to dt=1e-11.
We also need to tell the simulation when to stop, through the desired stoppping precision, stopping_dmdt. By default this is set to stopping_dmdt=0.01.
The maximum number of steps, max_steps the time integrator take also needs to be specified. By default this is set to 1000.
Within the relax function, when to save the magnetisation, save_m_steps, and vtk files of the magnetisation, save_vtk_steps, are also specified. By default they are set to save every 100 steps that the integrator takes. The final magnetisation is also saved. In this example we save the spatial magnetisation every 10 time steps.
When the relax function is called, a text file containing simulation data (including time, energies and average magnetisation) is created with the name sim_name.txt.
Sub-directories for the (spatial) magnetisation and vtk files are also created with the names, sim_name_npys and sim_name_vtks respectively, where the relevant data is subsequently saved. The names of these files are m_*.npy and m_*******.vts respectively, where * is replaced with the time integrator step (with leading zeros for the vts (vtk) file).
sim.relax(dt, stopping_dmdt, max_steps, save_m_steps, save_vtk_steps)
[10]:
%%capture sim.driver.relax(dt=1e-11, stopping_dmdt=0.01, max_steps=200, save_m_steps=10, save_vtk_steps=100)
Now that a simulation has run, it is useful to inspect and visualise the generated data.
The spatial magnetisation array from the last relaxation step can be accessed via sim.spin. We also saved the spatial magnetisation for all time steps into the folder sim_basics_tutorial_npys.
sim.spin
The structure of sim.spin (and the also the data saved in the .npy files) is an 1-dimensional. For a mesh with n cells, the components are ordered as follows:
[mx(0), my(0), mz(0), mx(1), my(1), mz(1), ..., mx(n), my(n), mz(n)]
where the numbering of the mesh cell adheres to the following convention:
+-------+ .' .:| +-------+:::| | |:::| | 30 |::;+-------+-------+-------+-------+-------+ | |;' .:| 11 .' 12 .' 13 .' 14 .:| +-------+-------+:::|---+-------+-------+-------+:::| | | |:::| .' 7 .' 8 .' 9 .:|:::| | 15 | 16 |::;+-------+-------+-------+:::|:::+ | | |;' .' .' .:|:::|::' +-------+-------+-------+-------+-------+:::|:::+' | | | | | |:::|:.' | 0 | 1 | 2 | 3 | 4 |:::+' | | | | | |::' +-------+-------+-------+-------+-------+'
There are built-in functions in fidimag to restructure this 1-D array, which is useful for creating spatial plots of the magnetisation. These are
TODO: write built-in helper functions!!
[11]:
m = sim.spin m.shape = (-1,3) mz = m[:,2]
[12]:
#the data shape should be (ny,nx) rather than (nx,ny) mz.shape = (ny,nx)
[13]:
plt.pcolor(mz) plt.xlabel('x (nm)') plt.ylabel('y (nm)') plt.colorbar(label=r"m$_z$") plt.show()
It is also useful to plot the average components of m over time.
[14]:
# PYTEST_VALIDATE_IGNORE_OUTPUT %ls
1d_domain_wall.ipynb sim_tutorial_basics_vtks/ current-driven-domain-wall.ipynb spin-polarised-current-driven-skyrmion.ipynb isolated_skyrmion.ipynb spin-waves-in-periodic-system.ipynb runtimes.org standard_problem_4.ipynb sanitize_file tutorial-basics.ipynb sim_tutorial_basics_npys/ tutorial-docker-container.ipynb sim_tutorial_basics.txt
[15]:
f = fidimag.common.fileio.DataReader('sim_tutorial_basics.txt')
[16]:
mz = f.datadic['m_z'] t = f.datadic['time']
[17]:
plt.plot(t/1e-9, mz) plt.xlabel("time (ns)") plt.ylabel(r"$\left\langle \mathrm{m}_{\mathrm{z}} \right\rangle$", fontsize=14) plt.show()
[ ]:
Author: Marijan Beg
Date: 26/02/2016
This notebook can be downloaded from the github repository, found here.
The domain wall profile is computed in a one-dimenaional domain of \(L=500 \,\text{nm}\) length.
Material paremeters of the simulated material are:
exchange energy constant \(A = 1.3 \times 10^{-11} \,\text{J/m}\),
magnetisation saturation \(M_\text{s} = 8.6 \times 10^{5} \,\text{A/m}\),
anisotropy constant \(K_{1} = 1.86 \times 10^{5} \,\text{J/m}^{3}\) with \((1, 0, 0)\) axis,
anisotropy constant \(K_{2} = -0.92 \times 10^{5} \,\text{J/m}^{3}\) with \((0, 0, 1)\) axis.
from fidimag.micro import Sim from fidimag.common import CuboidMesh from fidimag.micro import UniformExchange, UniaxialAnisotropy import numpy as np import matplotlib.pyplot as plt %matplotlib inline
Firstly, the mesh is created.
# Mesh dimensions. L = 500 # diameter (nm) # Mesh discretisation. dx = dy = dz = 2 # nm mesh = CuboidMesh(nx=int(L/dx), ny=1, nz=1, dx=dx, dy=dy, dz=dz, unit_length=1e-9)
The simulation object is created, parameters set, and energies added.
# NBVAL_IGNORE_OUTPUT Ms = 8.6e5 # magnetisation saturation (A/m) A = 1.3e-11 # exchange energy constant (J/m) K1 = 1.86e5 # anisotropy energy constant (J/m**3) K2 = -0.92e5 # anisotropy energy constant (J/m**3) alpha = 0.5 # Gilbert damping gamma = 2.211e5 # gyromagnetic ration (m/As) # Create simulation object. sim = Sim(mesh) # Set simulation parameters. sim.Ms = Ms sim.driver.alpha = alpha sim.driver.gamma = gamma # Add energies. sim.add(UniformExchange(A=A)) sim.add(UniaxialAnisotropy(K1, axis=(1,0,0))) sim.add(UniaxialAnisotropy(K2, axis=(0,0,1))) # Since the magnetisation dynamics is not important in this stage, # the precession term in LLG equation can be set to artificially zero. sim.driver.do_precession = False
In order to obtain the domain wall as the relaxed state, the system must be appropriatelly initialised. In this case, the initial magnetisation is set to be in \((0, 0, 1)\) direction for \(x < 0.4L \,\text{nm}\), in \((-1, 0, 0)\) direction for \(0.4L \,\text{nm} < x < 0.6L \,\text{nm}\), and in \((0, 0, 1)\) direction for \(x > 0.6L \,\text{nm}\).
def m_init(pos): x = pos[0] if x < 0.45*L: return (1,0,0) elif x > 0.55*L: return (-1,0,0) else: return (0,1,0)
In the next step, the magnetisation is initialised, and the system is relaxed.
# NBVAL_IGNORE_OUTPUT # Initialise the system. sim.set_m(m_init) # Relax the system to its equilibrium state. sim.driver.relax(dt=1e-13, stopping_dmdt=0.01, max_steps=5000, save_m_steps=None, save_vtk_steps=None)
#1 t=1e-13 dt=1e-13 max_dmdt=2.97e+04 #2 t=2e-13 dt=1e-13 max_dmdt=2.79e+04 #3 t=3e-13 dt=1e-13 max_dmdt=2.6e+04 #4 t=4e-13 dt=1e-13 max_dmdt=2.41e+04 #5 t=5e-13 dt=1e-13 max_dmdt=2.21e+04 #6 t=6e-13 dt=1e-13 max_dmdt=2.02e+04 #7 t=7e-13 dt=1e-13 max_dmdt=1.83e+04 #8 t=8e-13 dt=1e-13 max_dmdt=1.66e+04 #9 t=9e-13 dt=1e-13 max_dmdt=1.5e+04 #10 t=1e-12 dt=1e-13 max_dmdt=1.36e+04 #11 t=1.1e-12 dt=1e-13 max_dmdt=1.22e+04 #12 t=1.2e-12 dt=1e-13 max_dmdt=1.1e+04 #13 t=1.3e-12 dt=1e-13 max_dmdt=9.97e+03 #14 t=1.4e-12 dt=1e-13 max_dmdt=9.01e+03 #15 t=1.5e-12 dt=1e-13 max_dmdt=8.16e+03 #16 t=1.6e-12 dt=1e-13 max_dmdt=7.4e+03 #17 t=1.7e-12 dt=1e-13 max_dmdt=6.73e+03 #18 t=1.8e-12 dt=1e-13 max_dmdt=6.44e+03 #19 t=1.9e-12 dt=1e-13 max_dmdt=6.27e+03 #20 t=2e-12 dt=1e-13 max_dmdt=6.1e+03 #21 t=2.1e-12 dt=1e-13 max_dmdt=5.93e+03 #22 t=2.2e-12 dt=1e-13 max_dmdt=5.76e+03 #23 t=2.3e-12 dt=1e-13 max_dmdt=5.58e+03 #24 t=2.4e-12 dt=1e-13 max_dmdt=5.41e+03 #25 t=2.5e-12 dt=1e-13 max_dmdt=5.24e+03 #26 t=2.6e-12 dt=1e-13 max_dmdt=5.07e+03 #27 t=2.7e-12 dt=1e-13 max_dmdt=4.91e+03 #28 t=2.82e-12 dt=1.23e-13 max_dmdt=4.73e+03 #29 t=2.95e-12 dt=1.23e-13 max_dmdt=4.55e+03 #30 t=3.07e-12 dt=1.23e-13 max_dmdt=4.37e+03 #31 t=3.19e-12 dt=1.23e-13 max_dmdt=4.2e+03 #32 t=3.32e-12 dt=1.23e-13 max_dmdt=4.04e+03 #33 t=3.44e-12 dt=1.23e-13 max_dmdt=3.88e+03 #34 t=3.56e-12 dt=1.23e-13 max_dmdt=3.74e+03 #35 t=3.69e-12 dt=1.23e-13 max_dmdt=3.6e+03 #36 t=3.81e-12 dt=1.23e-13 max_dmdt=3.47e+03 #37 t=3.93e-12 dt=1.23e-13 max_dmdt=3.35e+03 #38 t=4.06e-12 dt=1.23e-13 max_dmdt=3.23e+03 #39 t=4.18e-12 dt=1.23e-13 max_dmdt=3.12e+03 #40 t=4.3e-12 dt=1.23e-13 max_dmdt=3.02e+03 #41 t=4.43e-12 dt=1.23e-13 max_dmdt=2.92e+03 #42 t=4.55e-12 dt=1.23e-13 max_dmdt=2.83e+03 #43 t=4.74e-12 dt=1.86e-13 max_dmdt=2.77e+03 #44 t=4.92e-12 dt=1.86e-13 max_dmdt=2.71e+03 #45 t=5.11e-12 dt=1.86e-13 max_dmdt=2.64e+03 #46 t=5.3e-12 dt=1.86e-13 max_dmdt=2.58e+03 #47 t=5.48e-12 dt=1.86e-13 max_dmdt=2.52e+03 #48 t=5.67e-12 dt=1.86e-13 max_dmdt=2.46e+03 #49 t=5.86e-12 dt=1.86e-13 max_dmdt=2.4e+03 #50 t=6.04e-12 dt=1.86e-13 max_dmdt=2.34e+03 #51 t=6.23e-12 dt=1.86e-13 max_dmdt=2.29e+03 #52 t=6.41e-12 dt=1.86e-13 max_dmdt=2.24e+03 #53 t=6.6e-12 dt=1.86e-13 max_dmdt=2.18e+03 #54 t=6.79e-12 dt=1.86e-13 max_dmdt=2.13e+03 #55 t=6.97e-12 dt=1.86e-13 max_dmdt=2.09e+03 #56 t=7.26e-12 dt=2.82e-13 max_dmdt=2.03e+03 #57 t=7.54e-12 dt=2.82e-13 max_dmdt=1.97e+03 #58 t=7.82e-12 dt=2.82e-13 max_dmdt=1.9e+03 #59 t=8.1e-12 dt=2.82e-13 max_dmdt=1.85e+03 #60 t=8.38e-12 dt=2.82e-13 max_dmdt=1.79e+03 #61 t=8.67e-12 dt=2.82e-13 max_dmdt=1.74e+03 #62 t=8.95e-12 dt=2.82e-13 max_dmdt=1.69e+03 #63 t=9.23e-12 dt=2.82e-13 max_dmdt=1.64e+03 #64 t=9.51e-12 dt=2.82e-13 max_dmdt=1.61e+03 #65 t=9.8e-12 dt=2.82e-13 max_dmdt=1.59e+03 #66 t=1.01e-11 dt=2.82e-13 max_dmdt=1.56e+03 #67 t=1.04e-11 dt=2.82e-13 max_dmdt=1.54e+03 #68 t=1.06e-11 dt=2.82e-13 max_dmdt=1.51e+03 #69 t=1.11e-11 dt=4.23e-13 max_dmdt=1.48e+03 #70 t=1.15e-11 dt=4.23e-13 max_dmdt=1.45e+03 #71 t=1.19e-11 dt=4.23e-13 max_dmdt=1.42e+03 #72 t=1.23e-11 dt=4.23e-13 max_dmdt=1.39e+03 #73 t=1.28e-11 dt=4.23e-13 max_dmdt=1.36e+03 #74 t=1.32e-11 dt=4.23e-13 max_dmdt=1.33e+03 #75 t=1.36e-11 dt=4.23e-13 max_dmdt=1.3e+03 #76 t=1.4e-11 dt=4.23e-13 max_dmdt=1.27e+03 #77 t=1.45e-11 dt=4.23e-13 max_dmdt=1.25e+03 #78 t=1.49e-11 dt=4.23e-13 max_dmdt=1.22e+03 #79 t=1.53e-11 dt=4.23e-13 max_dmdt=1.2e+03 #80 t=1.57e-11 dt=4.23e-13 max_dmdt=1.18e+03 #81 t=1.61e-11 dt=4.23e-13 max_dmdt=1.16e+03 #82 t=1.68e-11 dt=6.4e-13 max_dmdt=1.15e+03 #83 t=1.74e-11 dt=6.4e-13 max_dmdt=1.13e+03 #84 t=1.81e-11 dt=6.4e-13 max_dmdt=1.11e+03 #85 t=1.87e-11 dt=6.4e-13 max_dmdt=1.09e+03 #86 t=1.93e-11 dt=6.4e-13 max_dmdt=1.08e+03 #87 t=2e-11 dt=6.4e-13 max_dmdt=1.06e+03 #88 t=2.06e-11 dt=6.4e-13 max_dmdt=1.04e+03 #89 t=2.13e-11 dt=6.4e-13 max_dmdt=1.03e+03 #90 t=2.19e-11 dt=6.4e-13 max_dmdt=1.01e+03 #91 t=2.26e-11 dt=6.4e-13 max_dmdt=994 #92 t=2.32e-11 dt=6.4e-13 max_dmdt=980 #93 t=2.42e-11 dt=9.91e-13 max_dmdt=969 #94 t=2.52e-11 dt=9.91e-13 max_dmdt=956 #95 t=2.62e-11 dt=9.91e-13 max_dmdt=943 #96 t=2.72e-11 dt=9.91e-13 max_dmdt=929 #97 t=2.81e-11 dt=9.91e-13 max_dmdt=915 #98 t=2.91e-11 dt=9.91e-13 max_dmdt=901 #99 t=3.01e-11 dt=9.91e-13 max_dmdt=887 #100 t=3.11e-11 dt=9.91e-13 max_dmdt=872 #101 t=3.21e-11 dt=9.91e-13 max_dmdt=863 #102 t=3.31e-11 dt=9.91e-13 max_dmdt=854 #103 t=3.41e-11 dt=9.91e-13 max_dmdt=844 #104 t=3.51e-11 dt=9.91e-13 max_dmdt=834 #105 t=3.61e-11 dt=9.91e-13 max_dmdt=823 #106 t=3.71e-11 dt=9.91e-13 max_dmdt=811 #107 t=3.81e-11 dt=9.91e-13 max_dmdt=798 #108 t=3.9e-11 dt=9.91e-13 max_dmdt=786 #109 t=4.07e-11 dt=1.61e-12 max_dmdt=768 #110 t=4.23e-11 dt=1.61e-12 max_dmdt=748 #111 t=4.39e-11 dt=1.61e-12 max_dmdt=730 #112 t=4.55e-11 dt=1.61e-12 max_dmdt=711 #113 t=4.71e-11 dt=1.61e-12 max_dmdt=690 #114 t=4.87e-11 dt=1.61e-12 max_dmdt=669 #115 t=5.03e-11 dt=1.61e-12 max_dmdt=646 #116 t=5.19e-11 dt=1.61e-12 max_dmdt=623 #117 t=5.35e-11 dt=1.61e-12 max_dmdt=600 #118 t=5.51e-11 dt=1.61e-12 max_dmdt=576 #119 t=5.67e-11 dt=1.61e-12 max_dmdt=552 #120 t=5.83e-11 dt=1.61e-12 max_dmdt=530 #121 t=5.99e-11 dt=1.61e-12 max_dmdt=509 #122 t=6.15e-11 dt=1.61e-12 max_dmdt=488 #123 t=6.31e-11 dt=1.61e-12 max_dmdt=468 #124 t=6.48e-11 dt=1.61e-12 max_dmdt=447 #125 t=6.64e-11 dt=1.61e-12 max_dmdt=434 #126 t=6.8e-11 dt=1.61e-12 max_dmdt=422 #127 t=6.96e-11 dt=1.61e-12 max_dmdt=410 #128 t=7.12e-11 dt=1.61e-12 max_dmdt=397 #129 t=7.28e-11 dt=1.61e-12 max_dmdt=384 #130 t=7.44e-11 dt=1.61e-12 max_dmdt=371 #131 t=7.6e-11 dt=1.61e-12 max_dmdt=357 #132 t=7.76e-11 dt=1.61e-12 max_dmdt=344 #133 t=7.92e-11 dt=1.61e-12 max_dmdt=331 #134 t=8.08e-11 dt=1.61e-12 max_dmdt=318 #135 t=8.24e-11 dt=1.61e-12 max_dmdt=306 #136 t=8.4e-11 dt=1.61e-12 max_dmdt=293 #137 t=8.56e-11 dt=1.61e-12 max_dmdt=281 #138 t=8.72e-11 dt=1.61e-12 max_dmdt=269 #139 t=8.88e-11 dt=1.61e-12 max_dmdt=258 #140 t=9.05e-11 dt=1.61e-12 max_dmdt=246 #141 t=9.21e-11 dt=1.61e-12 max_dmdt=235 #142 t=9.37e-11 dt=1.61e-12 max_dmdt=225 #143 t=9.53e-11 dt=1.61e-12 max_dmdt=215 #144 t=9.77e-11 dt=2.41e-12 max_dmdt=202 #145 t=1e-10 dt=2.41e-12 max_dmdt=188 #146 t=1.03e-10 dt=2.41e-12 max_dmdt=175 #147 t=1.05e-10 dt=2.41e-12 max_dmdt=162 #148 t=1.07e-10 dt=2.41e-12 max_dmdt=151 #149 t=1.1e-10 dt=2.41e-12 max_dmdt=140 #150 t=1.12e-10 dt=2.41e-12 max_dmdt=129 #151 t=1.15e-10 dt=2.41e-12 max_dmdt=120 #152 t=1.17e-10 dt=2.41e-12 max_dmdt=111 #153 t=1.19e-10 dt=2.41e-12 max_dmdt=103 #154 t=1.22e-10 dt=2.41e-12 max_dmdt=94.9 #155 t=1.24e-10 dt=2.41e-12 max_dmdt=87.7 #156 t=1.27e-10 dt=2.41e-12 max_dmdt=81 #157 t=1.29e-10 dt=2.41e-12 max_dmdt=74.9 #158 t=1.31e-10 dt=2.41e-12 max_dmdt=69.1 #159 t=1.34e-10 dt=2.41e-12 max_dmdt=63.8 #160 t=1.36e-10 dt=2.41e-12 max_dmdt=58.9 #161 t=1.4e-10 dt=3.72e-12 max_dmdt=53.3 #162 t=1.44e-10 dt=3.72e-12 max_dmdt=47.1 #163 t=1.47e-10 dt=3.72e-12 max_dmdt=41.6 #164 t=1.51e-10 dt=3.72e-12 max_dmdt=36.8 #165 t=1.55e-10 dt=3.72e-12 max_dmdt=32.5 #166 t=1.59e-10 dt=3.72e-12 max_dmdt=28.7 #167 t=1.62e-10 dt=3.72e-12 max_dmdt=25.4 #168 t=1.66e-10 dt=3.72e-12 max_dmdt=22.5 #169 t=1.7e-10 dt=3.72e-12 max_dmdt=19.9 #170 t=1.73e-10 dt=3.72e-12 max_dmdt=17.6 #171 t=1.77e-10 dt=3.72e-12 max_dmdt=15.5 #172 t=1.81e-10 dt=3.72e-12 max_dmdt=13.7 #173 t=1.85e-10 dt=3.72e-12 max_dmdt=12.1 #174 t=1.88e-10 dt=3.72e-12 max_dmdt=10.7 #175 t=1.92e-10 dt=3.72e-12 max_dmdt=9.5 #176 t=1.96e-10 dt=3.72e-12 max_dmdt=8.41 #177 t=2e-10 dt=3.72e-12 max_dmdt=7.44 #178 t=2.03e-10 dt=3.72e-12 max_dmdt=6.58 #179 t=2.07e-10 dt=3.72e-12 max_dmdt=5.83 #180 t=2.11e-10 dt=3.72e-12 max_dmdt=5.16 #181 t=2.14e-10 dt=3.72e-12 max_dmdt=4.56 #182 t=2.2e-10 dt=5.7e-12 max_dmdt=3.91 #183 t=2.26e-10 dt=5.7e-12 max_dmdt=3.25 #184 t=2.31e-10 dt=5.7e-12 max_dmdt=2.7 #185 t=2.37e-10 dt=5.7e-12 max_dmdt=2.24 #186 t=2.43e-10 dt=5.7e-12 max_dmdt=1.86 #187 t=2.49e-10 dt=5.7e-12 max_dmdt=1.54 #188 t=2.54e-10 dt=5.7e-12 max_dmdt=1.28 #189 t=2.6e-10 dt=5.7e-12 max_dmdt=1.07 #190 t=2.66e-10 dt=5.7e-12 max_dmdt=0.886 #191 t=2.71e-10 dt=5.7e-12 max_dmdt=0.737 #192 t=2.77e-10 dt=5.7e-12 max_dmdt=0.614 #193 t=2.83e-10 dt=5.7e-12 max_dmdt=0.511 #194 t=2.89e-10 dt=5.7e-12 max_dmdt=0.425 #195 t=2.94e-10 dt=5.7e-12 max_dmdt=0.354 #196 t=3e-10 dt=5.7e-12 max_dmdt=0.295 #197 t=3.06e-10 dt=5.7e-12 max_dmdt=0.246 #198 t=3.11e-10 dt=5.7e-12 max_dmdt=0.205 #199 t=3.2e-10 dt=8.66e-12 max_dmdt=0.163 #200 t=3.29e-10 dt=8.66e-12 max_dmdt=0.123 #201 t=3.37e-10 dt=8.66e-12 max_dmdt=0.0936 #202 t=3.46e-10 dt=8.66e-12 max_dmdt=0.071 #203 t=3.55e-10 dt=8.66e-12 max_dmdt=0.0539 #204 t=3.63e-10 dt=8.66e-12 max_dmdt=0.041 #205 t=3.72e-10 dt=8.66e-12 max_dmdt=0.0311 #206 t=3.81e-10 dt=8.66e-12 max_dmdt=0.0236 #207 t=3.89e-10 dt=8.66e-12 max_dmdt=0.018 #208 t=3.98e-10 dt=8.66e-12 max_dmdt=0.0137 #209 t=4.07e-10 dt=8.66e-12 max_dmdt=0.0104 #210 t=4.2e-10 dt=1.36e-11 max_dmdt=0.0073
After the system is relaxed, the magnetisation profile can be plotted.
#NBVAL_IGNORE_OUTPUT m = np.copy(sim.spin) m.shape = (-1, 3) mx = m[:, 0] my = m[:, 1] mz = m[:, 2] x_array = np.arange(0, L, dx) plt.figure(figsize=(10,6)) plt.plot(x_array, mx, label='mx') plt.plot(x_array, my, label='my') plt.plot(x_array, mz, label='mz') plt.xlabel('x (nm)') plt.ylabel('<m>') plt.xlim([0.4*L, 0.6*L]) plt.ylim([-1, 1]) plt.grid() plt.legend()
<matplotlib.legend.Legend at 0x119de3780>
import fidimag from scipy.spatial import cKDTree import numpy as np
Here we set up a simple test system to show how to simulate magnetic grains which have different anisotropy orientations and strengths.
A=1.3e-11 Ms=8.6e5 n = 40 d = 5 mesh = fidimag.common.CuboidMesh(nx=n, ny=n, nz=1, dx=d, dy=d, dz=d, unit_length=1e-9, periodicity=(False, False, False)) sim = fidimag.micro.Sim(mesh, name="Grains", driver='steepest_descent') sim.alpha = 1.0 # Create positions to be grain centres, and create a cKDTree to # perform Voronoi Tesselation np.random.seed(10) Ngrains = 15 grain_centres = np.random.uniform(0, n*d, (Ngrains, 2)) voronoi_kdtree = cKDTree(grain_centres) # Define Anisotropy Strength Ku = 1e6 # Generate random anisotropy axes axes = np.random.uniform(-1, 1, (Ngrains, 3)) # Weight them towards +z - assume grains oriented along field cooled direction axes[:, 2] += 1.0 # Normalise axes /= np.linalg.norm(axes, axis=1)[:, np.newaxis] # Generate a normal distribution of anisotropy strengths: strengths = np.random.normal(Ku, Ku*0.2, Ngrains) # We then use the cKDTree in two functions. We get the x, y position # of each micromagnetic cell, and query the tree for the region that # the cell sits in. The functions then return the axis and strength # at that region index. def K_axis(pos): x, y, z = pos _, test_point_regions = voronoi_kdtree.query(np.array([[x, y]]), k=1) region = test_point_regions[0] return axes[region] def K_mag(pos): x, y, z = pos _, test_point_regions = voronoi_kdtree.query(np.array([[x, y]]), k=1) region = test_point_regions[0] return strengths[region]
sim.set_Ms(Ms) sim.set_m((0, 0, 1), normalise=True) anisotropy = fidimag.micro.UniaxialAnisotropy(K_mag, K_axis) sim.add(anisotropy) sim.add(fidimag.micro.UniformExchange(A)) sim.add(fidimag.micro.Demag(pbc_2d=True))
To check that this looks sensible, we plot the strength of the anisotropy across the whole sample in each direction:
#NBVAL_IGNORE_OUTPUT import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import ImageGrid strength_x = anisotropy._axis[0::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) strength_y = anisotropy._axis[1::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) strength_z = anisotropy._axis[2::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) maxs = np.max([np.max(np.abs(strength_x)), np.max(np.abs(strength_y)), np.max(np.abs(strength_z))]) fig = plt.figure(figsize=(5, 3)) grid = ImageGrid(fig, 111, # as in plt.subplot(111) nrows_ncols=(1,3), axes_pad=0.15, share_all=True, cbar_location="right", cbar_mode="single", cbar_size="7%", cbar_pad=0.15, ) axes = [axis for axis in grid] axes[0].imshow(strength_x, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) axes[1].imshow(strength_y, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) im = axes[2].imshow(strength_z, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) axes[2].cax.colorbar(im) axes[2].cax.toggle_label(True) axes[0].set_title("$K_x$") axes[1].set_title("$K_y$") axes[2].set_title("$K_z$") plt.savefig("Anisotropy.png", dpi=600)
We can see that we have a granular structure in the anisotropy. We now simply minimise the system and plot the magnetisation:
#NBVAL_IGNORE_OUTPUT sim.driver.minimise(max_steps=20000, stopping_dm=1e-4, initial_t_step=1e-4, log_every=2000) print('Done')
#0 max_tau=0.0001 max_dm=0.000171 #2000 max_tau=0.0001 max_dm=0.000163 #4000 max_tau=0.0001 max_dm=0.000137 #6000 max_tau=0.0001 max_dm=0.000142 #8000 max_tau=0.0001 max_dm=0.000143 #10000 max_tau=0.0001 max_dm=0.000131 #11820 max_tau=0.0001 max_dm=0.0001 Done
The remanent Magnetisation in the z-direction is then:
#NBVAL_IGNORE_OUTPUT fidimag.common.plot(sim)
remanence = np.mean(sim.spin[2::3])*Ms print(remanence)
681223.4133387426
Author: Marijan Beg, Weiwei Wang
Date: 18 Mar 2016
The simulated sample is a 1D nanowire cuboid with \(L=1000 \,\text{nm}\) length with finite difference discretisation \(d_{x} = d_{y} = d_{z} = 2 \,\text{nm}\).
The material parameters (similar to permalloy) are:
uniaxial anisotropy constant \(K=5 \times 10^{4} \,\text{J/m}^{3}\) with \((0, 0, 1)\) easy-axis,
Gilbert damping \(\alpha = 0.5\).
After the system is relaxed to a domain wall, a spin-polarised current with \(J=1 \times 10^{12} \text{A/m}^{2}\) density is applied in the positive x direction \((1, 0, 0)\).
import matplotlib.pyplot as plt import numpy as np from fidimag.micro import Sim, UniformExchange, UniaxialAnisotropy from fidimag.common import CuboidMesh %matplotlib inline
We start by defining parameters and a function for initialising the system so that it relaxes to the domain wall.
Ms = 8.6e5 # magnetisation saturation (A/m) A = 1.3e-11 # exchange energy constant (J/m) alpha = 0.5 # Gilbert damping gamma = 2.211e5 # gyromagnetic ration (m/As) K = 5e4 # uniaxial anisotropy constant (J/m**3) J = 1e12 # spin-polarised current density (A/m**2) beta = 1 # STT parameter def init_m(pos): x = pos[0] if x < 200: return (1, 0, 0) elif 200 <= x < 300: return (0, 1, 1) else: return (-1, 0, 0)
Using this function, we create a new function which relaxes the system to its equilibrium (domain wall) state according to the problem specification.
def relax_system(mesh): # Create a simulation object. sim = Sim(mesh) # Set simulation parameters. sim.driver.set_tols(rtol=1e-8, atol=1e-8) sim.driver.alpha = alpha sim.driver.gamma = gamma sim.Ms = Ms # Add energies to the system. sim.add(UniformExchange(A=A)) sim.add(UniaxialAnisotropy(K)) # Initialise the system. sim.set_m(init_m) # Relax the system and save the state in m0.npy sim.driver.relax(dt=1e-14, stopping_dmdt=0.01, max_steps=5000, save_m_steps=None, save_vtk_steps=None) np.save('m0.npy', sim.spin)
A plot of the system’s magnetisation can be created using the following convenience function.
def plot_magnetisation(components): plt.figure(figsize=(8, 6)) comp = {'mx': 0, 'my': 1, 'mz': 2} for element in components: data = np.load(element[0]) data.shape = (-1, 3) mc = data[:, comp[element[1]]] # The label is the component and the file name plt.plot(mc, label=element[1]) plt.legend() plt.xlabel('x (nm)') plt.ylabel('mx, my') plt.grid() plt.ylim([-1.05, 1.05])
Finally, we create a function for driving a domain wall using the spin-polarised current. All npy and vtk files are saved in the **{simulation_name}_npys** and **{simulation_name}_vtks** folders, respectively.
def excite_system(mesh, time, snapshots): # Specify the stt dynamics in the simulation sim = Sim(mesh, name='dyn', driver='llg_stt') # Set the simulation parameters sim.driver.set_tols(rtol=1e-12, atol=1e-14) sim.driver.alpha = alpha sim.driver.gamma = gamma sim.Ms = Ms # Add energies to the system. sim.add(UniformExchange(A=A)) sim.add(UniaxialAnisotropy(K)) # Load the initial state from the npy file saved in the realxation stage. sim.set_m(np.load('m0.npy')) # Set the spin-polarised current in the x direction. sim.driver.jx = J sim.driver.beta = beta # The simulation will run for x ns and save # 'snaps' snapshots of the system in the process ts = np.linspace(0, time, snapshots) for t in ts: sim.driver.run_until(t) sim.save_vtk() sim.save_m()
Before we run a simulation using previously defined functions, a finite difference mesh must be created.
L = 2000 # nm dx = dy = dz = 2 # nm mesh = CuboidMesh(nx=int(L/dx), ny=1, nz=1, dx=dx, dy=dy, dz=dz, unit_length=1e-9)
Now, the system is relaxed and the domain wall equilibrium state is obtained, saved, and later used in the next stage.
#NBVAL_IGNORE_OUTPUT relax_system(mesh)
#1 t=1e-14 dt=1e-14 max_dmdt=6.47e+04 #2 t=2e-14 dt=1e-14 max_dmdt=6.48e+04 #3 t=3.05e-14 dt=1.05e-14 max_dmdt=6.48e+04 #4 t=4.09e-14 dt=1.05e-14 max_dmdt=6.47e+04 #5 t=5.14e-14 dt=1.05e-14 max_dmdt=6.47e+04 #6 t=6.19e-14 dt=1.05e-14 max_dmdt=6.45e+04 #7 t=7.23e-14 dt=1.05e-14 max_dmdt=6.43e+04 #8 t=8.28e-14 dt=1.05e-14 max_dmdt=6.41e+04 #9 t=9.33e-14 dt=1.05e-14 max_dmdt=6.38e+04 #10 t=1.04e-13 dt=1.05e-14 max_dmdt=6.35e+04 #11 t=1.23e-13 dt=1.91e-14 max_dmdt=6.29e+04 #12 t=1.42e-13 dt=1.91e-14 max_dmdt=6.21e+04 #13 t=1.61e-13 dt=1.91e-14 max_dmdt=6.11e+04 #14 t=1.8e-13 dt=1.91e-14 max_dmdt=6e+04 #15 t=1.99e-13 dt=1.91e-14 max_dmdt=5.88e+04 #16 t=2.18e-13 dt=1.91e-14 max_dmdt=5.74e+04 #17 t=2.37e-13 dt=1.91e-14 max_dmdt=5.6e+04 #18 t=2.56e-13 dt=1.91e-14 max_dmdt=5.44e+04 #19 t=2.75e-13 dt=1.91e-14 max_dmdt=5.28e+04 #20 t=3.09e-13 dt=3.37e-14 max_dmdt=5.03e+04 #21 t=3.43e-13 dt=3.37e-14 max_dmdt=4.7e+04 #22 t=3.77e-13 dt=3.37e-14 max_dmdt=4.59e+04 #23 t=4.01e-13 dt=2.47e-14 max_dmdt=4.51e+04 #24 t=4.26e-13 dt=2.47e-14 max_dmdt=4.42e+04 #25 t=4.51e-13 dt=2.47e-14 max_dmdt=4.31e+04 #26 t=4.75e-13 dt=2.47e-14 max_dmdt=4.2e+04 #27 t=5e-13 dt=2.47e-14 max_dmdt=4.07e+04 #28 t=5.25e-13 dt=2.47e-14 max_dmdt=3.92e+04 #29 t=5.49e-13 dt=2.47e-14 max_dmdt=3.77e+04 #30 t=5.74e-13 dt=2.47e-14 max_dmdt=3.61e+04 #31 t=5.99e-13 dt=2.47e-14 max_dmdt=3.45e+04 #32 t=6.37e-13 dt=3.85e-14 max_dmdt=3.23e+04 #33 t=6.76e-13 dt=3.85e-14 max_dmdt=2.96e+04 #34 t=7.14e-13 dt=3.85e-14 max_dmdt=2.75e+04 #35 t=7.52e-13 dt=3.85e-14 max_dmdt=2.64e+04 #36 t=7.91e-13 dt=3.85e-14 max_dmdt=2.52e+04 #37 t=8.29e-13 dt=3.85e-14 max_dmdt=2.46e+04 #38 t=8.68e-13 dt=3.85e-14 max_dmdt=2.4e+04 #39 t=9.06e-13 dt=3.85e-14 max_dmdt=2.32e+04 #40 t=9.45e-13 dt=3.85e-14 max_dmdt=2.23e+04 #41 t=9.83e-13 dt=3.85e-14 max_dmdt=2.15e+04 #42 t=1.02e-12 dt=3.85e-14 max_dmdt=2.15e+04 #43 t=1.06e-12 dt=3.85e-14 max_dmdt=2.13e+04 #44 t=1.1e-12 dt=3.85e-14 max_dmdt=2.1e+04 #45 t=1.14e-12 dt=3.85e-14 max_dmdt=2.06e+04 #46 t=1.18e-12 dt=3.85e-14 max_dmdt=2.01e+04 #47 t=1.21e-12 dt=3.85e-14 max_dmdt=1.94e+04 #48 t=1.25e-12 dt=3.85e-14 max_dmdt=1.87e+04 #49 t=1.29e-12 dt=3.85e-14 max_dmdt=1.79e+04 #50 t=1.33e-12 dt=3.85e-14 max_dmdt=1.71e+04 #51 t=1.37e-12 dt=3.85e-14 max_dmdt=1.63e+04 #52 t=1.41e-12 dt=3.85e-14 max_dmdt=1.54e+04 #53 t=1.44e-12 dt=3.85e-14 max_dmdt=1.49e+04 #54 t=1.48e-12 dt=3.85e-14 max_dmdt=1.47e+04 #55 t=1.52e-12 dt=3.85e-14 max_dmdt=1.44e+04 #56 t=1.56e-12 dt=3.85e-14 max_dmdt=1.41e+04 #57 t=1.6e-12 dt=3.85e-14 max_dmdt=1.37e+04 #58 t=1.64e-12 dt=3.85e-14 max_dmdt=1.33e+04 #59 t=1.68e-12 dt=3.85e-14 max_dmdt=1.28e+04 #60 t=1.71e-12 dt=3.85e-14 max_dmdt=1.24e+04 #61 t=1.75e-12 dt=3.85e-14 max_dmdt=1.2e+04 #62 t=1.79e-12 dt=3.85e-14 max_dmdt=1.19e+04 #63 t=1.83e-12 dt=3.85e-14 max_dmdt=1.17e+04 #64 t=1.87e-12 dt=3.85e-14 max_dmdt=1.16e+04 #65 t=1.91e-12 dt=3.85e-14 max_dmdt=1.13e+04 #66 t=1.94e-12 dt=3.85e-14 max_dmdt=1.11e+04 #67 t=1.98e-12 dt=3.85e-14 max_dmdt=1.09e+04 #68 t=2.02e-12 dt=3.85e-14 max_dmdt=1.06e+04 #69 t=2.06e-12 dt=3.85e-14 max_dmdt=1.03e+04 #70 t=2.1e-12 dt=3.85e-14 max_dmdt=1e+04 #71 t=2.14e-12 dt=3.85e-14 max_dmdt=9.71e+03 #72 t=2.18e-12 dt=3.85e-14 max_dmdt=9.49e+03 #73 t=2.21e-12 dt=3.85e-14 max_dmdt=9.38e+03 #74 t=2.25e-12 dt=3.85e-14 max_dmdt=9.25e+03 #75 t=2.29e-12 dt=3.85e-14 max_dmdt=9.09e+03 #76 t=2.33e-12 dt=3.85e-14 max_dmdt=8.92e+03 #77 t=2.37e-12 dt=3.85e-14 max_dmdt=8.74e+03 #78 t=2.41e-12 dt=3.85e-14 max_dmdt=8.54e+03 #79 t=2.44e-12 dt=3.85e-14 max_dmdt=8.34e+03 #80 t=2.48e-12 dt=3.85e-14 max_dmdt=8.13e+03 #81 t=2.54e-12 dt=5.79e-14 max_dmdt=7.86e+03 #82 t=2.6e-12 dt=5.79e-14 max_dmdt=7.53e+03 #83 t=2.66e-12 dt=5.79e-14 max_dmdt=7.21e+03 #84 t=2.71e-12 dt=5.79e-14 max_dmdt=6.9e+03 #85 t=2.77e-12 dt=5.79e-14 max_dmdt=6.59e+03 #86 t=2.83e-12 dt=5.79e-14 max_dmdt=6.46e+03 #87 t=2.89e-12 dt=5.79e-14 max_dmdt=6.33e+03 #88 t=2.95e-12 dt=5.79e-14 max_dmdt=6.29e+03 #89 t=3e-12 dt=5.79e-14 max_dmdt=6.23e+03 #90 t=3.06e-12 dt=5.79e-14 max_dmdt=6.15e+03 #91 t=3.12e-12 dt=5.79e-14 max_dmdt=6.06e+03 #92 t=3.18e-12 dt=5.79e-14 max_dmdt=5.96e+03 #93 t=3.24e-12 dt=5.79e-14 max_dmdt=5.85e+03 #94 t=3.29e-12 dt=5.79e-14 max_dmdt=5.73e+03 #95 t=3.35e-12 dt=5.79e-14 max_dmdt=5.6e+03 #96 t=3.41e-12 dt=5.79e-14 max_dmdt=5.48e+03 #97 t=3.47e-12 dt=5.79e-14 max_dmdt=5.36e+03 #98 t=3.52e-12 dt=5.79e-14 max_dmdt=5.23e+03 #99 t=3.58e-12 dt=5.79e-14 max_dmdt=5.11e+03 #100 t=3.64e-12 dt=5.79e-14 max_dmdt=4.99e+03 #101 t=3.7e-12 dt=5.79e-14 max_dmdt=4.87e+03 #102 t=3.76e-12 dt=5.79e-14 max_dmdt=4.76e+03 #103 t=3.81e-12 dt=5.79e-14 max_dmdt=4.65e+03 #104 t=3.87e-12 dt=5.79e-14 max_dmdt=4.54e+03 #105 t=3.93e-12 dt=5.79e-14 max_dmdt=4.45e+03 #106 t=3.99e-12 dt=5.79e-14 max_dmdt=4.38e+03 #107 t=4.08e-12 dt=8.74e-14 max_dmdt=4.28e+03 #108 t=4.16e-12 dt=8.74e-14 max_dmdt=4.17e+03 #109 t=4.25e-12 dt=8.74e-14 max_dmdt=4.08e+03 #110 t=4.34e-12 dt=8.74e-14 max_dmdt=4.02e+03 #111 t=4.43e-12 dt=8.74e-14 max_dmdt=3.96e+03 #112 t=4.51e-12 dt=8.74e-14 max_dmdt=3.89e+03 #113 t=4.6e-12 dt=8.74e-14 max_dmdt=3.82e+03 #114 t=4.69e-12 dt=8.74e-14 max_dmdt=3.75e+03 #115 t=4.77e-12 dt=8.74e-14 max_dmdt=3.68e+03 #116 t=4.86e-12 dt=8.74e-14 max_dmdt=3.61e+03 #117 t=4.95e-12 dt=8.74e-14 max_dmdt=3.53e+03 #118 t=5.04e-12 dt=8.74e-14 max_dmdt=3.46e+03 #119 t=5.12e-12 dt=8.74e-14 max_dmdt=3.38e+03 #120 t=5.21e-12 dt=8.74e-14 max_dmdt=3.31e+03 #121 t=5.3e-12 dt=8.74e-14 max_dmdt=3.25e+03 #122 t=5.39e-12 dt=8.74e-14 max_dmdt=3.2e+03 #123 t=5.47e-12 dt=8.74e-14 max_dmdt=3.15e+03 #124 t=5.56e-12 dt=8.74e-14 max_dmdt=3.1e+03 #125 t=5.65e-12 dt=8.74e-14 max_dmdt=3.05e+03 #126 t=5.74e-12 dt=8.74e-14 max_dmdt=3e+03 #127 t=5.82e-12 dt=8.74e-14 max_dmdt=2.96e+03 #128 t=5.91e-12 dt=8.74e-14 max_dmdt=2.91e+03 #129 t=6e-12 dt=8.74e-14 max_dmdt=2.86e+03 #130 t=6.09e-12 dt=8.74e-14 max_dmdt=2.82e+03 #131 t=6.17e-12 dt=8.74e-14 max_dmdt=2.78e+03 #132 t=6.26e-12 dt=8.74e-14 max_dmdt=2.73e+03 #133 t=6.35e-12 dt=8.74e-14 max_dmdt=2.69e+03 #134 t=6.44e-12 dt=8.74e-14 max_dmdt=2.65e+03 #135 t=6.52e-12 dt=8.74e-14 max_dmdt=2.61e+03 #136 t=6.61e-12 dt=8.74e-14 max_dmdt=2.57e+03 #137 t=6.7e-12 dt=8.74e-14 max_dmdt=2.53e+03 #138 t=6.78e-12 dt=8.74e-14 max_dmdt=2.49e+03 #139 t=6.87e-12 dt=8.74e-14 max_dmdt=2.45e+03 #140 t=6.96e-12 dt=8.74e-14 max_dmdt=2.42e+03 #141 t=7.05e-12 dt=8.74e-14 max_dmdt=2.38e+03 #142 t=7.13e-12 dt=8.74e-14 max_dmdt=2.35e+03 #143 t=7.22e-12 dt=8.74e-14 max_dmdt=2.31e+03 #144 t=7.31e-12 dt=8.74e-14 max_dmdt=2.29e+03 #145 t=7.4e-12 dt=8.74e-14 max_dmdt=2.27e+03 #146 t=7.48e-12 dt=8.74e-14 max_dmdt=2.25e+03 #147 t=7.57e-12 dt=8.74e-14 max_dmdt=2.23e+03 #148 t=7.66e-12 dt=8.74e-14 max_dmdt=2.21e+03 #149 t=7.75e-12 dt=8.74e-14 max_dmdt=2.18e+03 #150 t=7.83e-12 dt=8.74e-14 max_dmdt=2.16e+03 #151 t=7.92e-12 dt=8.74e-14 max_dmdt=2.14e+03 #152 t=8.01e-12 dt=8.74e-14 max_dmdt=2.12e+03 #153 t=8.1e-12 dt=8.74e-14 max_dmdt=2.1e+03 #154 t=8.18e-12 dt=8.74e-14 max_dmdt=2.08e+03 #155 t=8.27e-12 dt=8.74e-14 max_dmdt=2.06e+03 #156 t=8.36e-12 dt=8.74e-14 max_dmdt=2.04e+03 #157 t=8.45e-12 dt=8.74e-14 max_dmdt=2.02e+03 #158 t=8.53e-12 dt=8.74e-14 max_dmdt=2e+03 #159 t=8.62e-12 dt=8.74e-14 max_dmdt=1.98e+03 #160 t=8.71e-12 dt=8.74e-14 max_dmdt=1.96e+03 #161 t=8.79e-12 dt=8.74e-14 max_dmdt=1.94e+03 #162 t=8.88e-12 dt=8.74e-14 max_dmdt=1.92e+03 #163 t=8.97e-12 dt=8.74e-14 max_dmdt=1.9e+03 #164 t=9.06e-12 dt=8.74e-14 max_dmdt=1.88e+03 #165 t=9.14e-12 dt=8.74e-14 max_dmdt=1.86e+03 #166 t=9.28e-12 dt=1.32e-13 max_dmdt=1.84e+03 #167 t=9.41e-12 dt=1.32e-13 max_dmdt=1.81e+03 #168 t=9.54e-12 dt=1.32e-13 max_dmdt=1.78e+03 #169 t=9.67e-12 dt=1.32e-13 max_dmdt=1.76e+03 #170 t=9.81e-12 dt=1.32e-13 max_dmdt=1.73e+03 #171 t=1e-11 dt=2.01e-13 max_dmdt=1.7e+03 #172 t=1.02e-11 dt=2.01e-13 max_dmdt=1.66e+03 #173 t=1.04e-11 dt=2.01e-13 max_dmdt=1.63e+03 #174 t=1.06e-11 dt=2.01e-13 max_dmdt=1.59e+03 #175 t=1.08e-11 dt=2.01e-13 max_dmdt=1.57e+03 #176 t=1.1e-11 dt=2.01e-13 max_dmdt=1.54e+03 #177 t=1.12e-11 dt=2.01e-13 max_dmdt=1.52e+03 #178 t=1.14e-11 dt=2.01e-13 max_dmdt=1.5e+03 #179 t=1.16e-11 dt=2.01e-13 max_dmdt=1.47e+03 #180 t=1.18e-11 dt=2.01e-13 max_dmdt=1.45e+03 #181 t=1.2e-11 dt=2.01e-13 max_dmdt=1.43e+03 #182 t=1.22e-11 dt=2.01e-13 max_dmdt=1.41e+03 #183 t=1.24e-11 dt=2.01e-13 max_dmdt=1.38e+03 #184 t=1.26e-11 dt=2.01e-13 max_dmdt=1.36e+03 #185 t=1.28e-11 dt=2.01e-13 max_dmdt=1.34e+03 #186 t=1.3e-11 dt=2.01e-13 max_dmdt=1.32e+03 #187 t=1.32e-11 dt=2.01e-13 max_dmdt=1.3e+03 #188 t=1.34e-11 dt=2.01e-13 max_dmdt=1.28e+03 #189 t=1.36e-11 dt=2.01e-13 max_dmdt=1.26e+03 #190 t=1.38e-11 dt=2.01e-13 max_dmdt=1.24e+03 #191 t=1.4e-11 dt=2.01e-13 max_dmdt=1.22e+03 #192 t=1.42e-11 dt=2.01e-13 max_dmdt=1.21e+03 #193 t=1.44e-11 dt=2.01e-13 max_dmdt=1.19e+03 #194 t=1.46e-11 dt=2.01e-13 max_dmdt=1.17e+03 #195 t=1.48e-11 dt=2.01e-13 max_dmdt=1.15e+03 #196 t=1.51e-11 dt=3.05e-13 max_dmdt=1.14e+03 #197 t=1.54e-11 dt=3.05e-13 max_dmdt=1.12e+03 #198 t=1.58e-11 dt=3.05e-13 max_dmdt=1.1e+03 #199 t=1.61e-11 dt=3.05e-13 max_dmdt=1.08e+03 #200 t=1.64e-11 dt=3.05e-13 max_dmdt=1.06e+03 #201 t=1.67e-11 dt=3.05e-13 max_dmdt=1.05e+03 #202 t=1.7e-11 dt=3.05e-13 max_dmdt=1.03e+03 #203 t=1.73e-11 dt=3.05e-13 max_dmdt=1.01e+03 #204 t=1.76e-11 dt=3.05e-13 max_dmdt=997 #205 t=1.79e-11 dt=3.05e-13 max_dmdt=980 #206 t=1.82e-11 dt=3.05e-13 max_dmdt=965 #207 t=1.85e-11 dt=3.05e-13 max_dmdt=949 #208 t=1.88e-11 dt=3.05e-13 max_dmdt=934 #209 t=1.91e-11 dt=3.05e-13 max_dmdt=920 #210 t=1.94e-11 dt=3.05e-13 max_dmdt=905 #211 t=1.97e-11 dt=3.05e-13 max_dmdt=891 #212 t=2e-11 dt=3.05e-13 max_dmdt=878 #213 t=2.03e-11 dt=3.05e-13 max_dmdt=867 #214 t=2.06e-11 dt=3.05e-13 max_dmdt=857 #215 t=2.09e-11 dt=3.05e-13 max_dmdt=847 #216 t=2.12e-11 dt=3.05e-13 max_dmdt=837 #217 t=2.15e-11 dt=3.05e-13 max_dmdt=827 #218 t=2.18e-11 dt=3.05e-13 max_dmdt=817 #219 t=2.22e-11 dt=3.05e-13 max_dmdt=807 #220 t=2.25e-11 dt=3.05e-13 max_dmdt=798 #221 t=2.28e-11 dt=3.05e-13 max_dmdt=788 #222 t=2.31e-11 dt=3.05e-13 max_dmdt=779 #223 t=2.34e-11 dt=3.05e-13 max_dmdt=769 #224 t=2.37e-11 dt=3.05e-13 max_dmdt=760 #225 t=2.4e-11 dt=3.05e-13 max_dmdt=751 #226 t=2.43e-11 dt=3.05e-13 max_dmdt=742 #227 t=2.46e-11 dt=3.05e-13 max_dmdt=733 #228 t=2.49e-11 dt=3.05e-13 max_dmdt=724 #229 t=2.52e-11 dt=3.05e-13 max_dmdt=716 #230 t=2.55e-11 dt=3.05e-13 max_dmdt=707 #231 t=2.58e-11 dt=3.05e-13 max_dmdt=699 #232 t=2.61e-11 dt=3.05e-13 max_dmdt=691 #233 t=2.64e-11 dt=3.05e-13 max_dmdt=684 #234 t=2.67e-11 dt=3.05e-13 max_dmdt=677 #235 t=2.7e-11 dt=3.05e-13 max_dmdt=672 #236 t=2.73e-11 dt=3.05e-13 max_dmdt=667 #237 t=2.76e-11 dt=3.05e-13 max_dmdt=662 #238 t=2.79e-11 dt=3.05e-13 max_dmdt=657 #239 t=2.82e-11 dt=3.05e-13 max_dmdt=653 #240 t=2.85e-11 dt=3.05e-13 max_dmdt=649 #241 t=2.89e-11 dt=3.05e-13 max_dmdt=645 #242 t=2.92e-11 dt=3.05e-13 max_dmdt=641 #243 t=2.95e-11 dt=3.05e-13 max_dmdt=637 #244 t=2.98e-11 dt=3.05e-13 max_dmdt=634 #245 t=3.01e-11 dt=3.05e-13 max_dmdt=630 #246 t=3.04e-11 dt=3.05e-13 max_dmdt=627 #247 t=3.07e-11 dt=3.05e-13 max_dmdt=623 #248 t=3.1e-11 dt=3.05e-13 max_dmdt=620 #249 t=3.13e-11 dt=3.05e-13 max_dmdt=616 #250 t=3.16e-11 dt=3.05e-13 max_dmdt=613 #251 t=3.19e-11 dt=3.05e-13 max_dmdt=609 #252 t=3.22e-11 dt=3.05e-13 max_dmdt=606 #253 t=3.25e-11 dt=3.05e-13 max_dmdt=602 #254 t=3.28e-11 dt=3.05e-13 max_dmdt=599 #255 t=3.31e-11 dt=3.05e-13 max_dmdt=595 #256 t=3.34e-11 dt=3.05e-13 max_dmdt=591 #257 t=3.37e-11 dt=3.05e-13 max_dmdt=587 #258 t=3.4e-11 dt=3.05e-13 max_dmdt=583 #259 t=3.43e-11 dt=3.05e-13 max_dmdt=579 #260 t=3.46e-11 dt=3.05e-13 max_dmdt=575 #261 t=3.49e-11 dt=3.05e-13 max_dmdt=570 #262 t=3.53e-11 dt=3.05e-13 max_dmdt=566 #263 t=3.56e-11 dt=3.05e-13 max_dmdt=561 #264 t=3.59e-11 dt=3.05e-13 max_dmdt=557 #265 t=3.62e-11 dt=3.05e-13 max_dmdt=552 #266 t=3.65e-11 dt=3.05e-13 max_dmdt=547 #267 t=3.68e-11 dt=3.05e-13 max_dmdt=542 #268 t=3.71e-11 dt=3.05e-13 max_dmdt=537 #269 t=3.74e-11 dt=3.05e-13 max_dmdt=532 #270 t=3.77e-11 dt=3.05e-13 max_dmdt=526 #271 t=3.8e-11 dt=3.05e-13 max_dmdt=521 #272 t=3.83e-11 dt=3.05e-13 max_dmdt=516 #273 t=3.86e-11 dt=3.05e-13 max_dmdt=510 #274 t=3.89e-11 dt=3.05e-13 max_dmdt=505 #275 t=3.92e-11 dt=3.05e-13 max_dmdt=499 #276 t=3.95e-11 dt=3.05e-13 max_dmdt=493 #277 t=3.98e-11 dt=3.05e-13 max_dmdt=488 #278 t=4.01e-11 dt=3.05e-13 max_dmdt=482 #279 t=4.04e-11 dt=3.05e-13 max_dmdt=477 #280 t=4.07e-11 dt=3.05e-13 max_dmdt=471 #281 t=4.1e-11 dt=3.05e-13 max_dmdt=466 #282 t=4.13e-11 dt=3.05e-13 max_dmdt=460 #283 t=4.16e-11 dt=3.05e-13 max_dmdt=455 #284 t=4.2e-11 dt=3.05e-13 max_dmdt=454 #285 t=4.23e-11 dt=3.05e-13 max_dmdt=454 #286 t=4.26e-11 dt=3.05e-13 max_dmdt=453 #287 t=4.29e-11 dt=3.05e-13 max_dmdt=452 #288 t=4.32e-11 dt=3.05e-13 max_dmdt=452 #289 t=4.35e-11 dt=3.05e-13 max_dmdt=451 #290 t=4.38e-11 dt=3.05e-13 max_dmdt=450 #291 t=4.41e-11 dt=3.05e-13 max_dmdt=449 #292 t=4.44e-11 dt=3.05e-13 max_dmdt=448 #293 t=4.47e-11 dt=3.05e-13 max_dmdt=446 #294 t=4.5e-11 dt=3.05e-13 max_dmdt=445 #295 t=4.53e-11 dt=3.05e-13 max_dmdt=444 #296 t=4.56e-11 dt=3.05e-13 max_dmdt=442 #297 t=4.59e-11 dt=3.05e-13 max_dmdt=441 #298 t=4.62e-11 dt=3.05e-13 max_dmdt=439 #299 t=4.65e-11 dt=3.05e-13 max_dmdt=438 #300 t=4.68e-11 dt=3.05e-13 max_dmdt=437 #301 t=4.71e-11 dt=3.05e-13 max_dmdt=436 #302 t=4.74e-11 dt=3.05e-13 max_dmdt=435 #303 t=4.77e-11 dt=3.05e-13 max_dmdt=434 #304 t=4.8e-11 dt=3.05e-13 max_dmdt=433 #305 t=4.84e-11 dt=3.05e-13 max_dmdt=432 #306 t=4.87e-11 dt=3.05e-13 max_dmdt=431 #307 t=4.9e-11 dt=3.05e-13 max_dmdt=430 #308 t=4.93e-11 dt=3.05e-13 max_dmdt=429 #309 t=4.96e-11 dt=3.05e-13 max_dmdt=428 #310 t=4.98e-11 dt=2.25e-13 max_dmdt=427 #311 t=5e-11 dt=2.25e-13 max_dmdt=426 #312 t=5.02e-11 dt=2.25e-13 max_dmdt=425 #313 t=5.05e-11 dt=2.25e-13 max_dmdt=424 #314 t=5.07e-11 dt=2.25e-13 max_dmdt=423 #315 t=5.09e-11 dt=2.25e-13 max_dmdt=423 #316 t=5.11e-11 dt=2.25e-13 max_dmdt=423 #317 t=5.14e-11 dt=2.25e-13 max_dmdt=422 #318 t=5.16e-11 dt=2.25e-13 max_dmdt=422 #319 t=5.18e-11 dt=2.25e-13 max_dmdt=421 #320 t=5.2e-11 dt=2.25e-13 max_dmdt=421 #321 t=5.23e-11 dt=2.25e-13 max_dmdt=420 #322 t=5.25e-11 dt=2.25e-13 max_dmdt=420 #323 t=5.27e-11 dt=2.25e-13 max_dmdt=419 #324 t=5.29e-11 dt=2.25e-13 max_dmdt=419 #325 t=5.32e-11 dt=2.25e-13 max_dmdt=418 #326 t=5.34e-11 dt=2.25e-13 max_dmdt=418 #327 t=5.36e-11 dt=2.25e-13 max_dmdt=417 #328 t=5.39e-11 dt=2.25e-13 max_dmdt=416 #329 t=5.41e-11 dt=2.25e-13 max_dmdt=416 #330 t=5.43e-11 dt=2.25e-13 max_dmdt=417 #331 t=5.45e-11 dt=2.25e-13 max_dmdt=419 #332 t=5.48e-11 dt=2.25e-13 max_dmdt=422 #333 t=5.5e-11 dt=2.25e-13 max_dmdt=425 #334 t=5.52e-11 dt=2.25e-13 max_dmdt=427 #335 t=5.54e-11 dt=2.25e-13 max_dmdt=430 #336 t=5.57e-11 dt=2.25e-13 max_dmdt=432 #337 t=5.59e-11 dt=2.25e-13 max_dmdt=435 #338 t=5.61e-11 dt=2.25e-13 max_dmdt=437 #339 t=5.63e-11 dt=2.25e-13 max_dmdt=439 #340 t=5.66e-11 dt=2.25e-13 max_dmdt=442 #341 t=5.68e-11 dt=2.25e-13 max_dmdt=444 #342 t=5.7e-11 dt=2.25e-13 max_dmdt=446 #343 t=5.72e-11 dt=2.25e-13 max_dmdt=449 #344 t=5.75e-11 dt=2.25e-13 max_dmdt=451 #345 t=5.77e-11 dt=2.25e-13 max_dmdt=453 #346 t=5.79e-11 dt=2.25e-13 max_dmdt=455 #347 t=5.81e-11 dt=2.25e-13 max_dmdt=457 #348 t=5.84e-11 dt=2.25e-13 max_dmdt=459 #349 t=5.86e-11 dt=2.25e-13 max_dmdt=461 #350 t=5.88e-11 dt=2.25e-13 max_dmdt=463 #351 t=5.9e-11 dt=2.25e-13 max_dmdt=465 #352 t=5.93e-11 dt=2.25e-13 max_dmdt=467 #353 t=5.95e-11 dt=2.25e-13 max_dmdt=468 #354 t=5.97e-11 dt=2.25e-13 max_dmdt=470 #355 t=5.99e-11 dt=2.25e-13 max_dmdt=472 #356 t=6.02e-11 dt=2.25e-13 max_dmdt=473 #357 t=6.04e-11 dt=2.25e-13 max_dmdt=475 #358 t=6.06e-11 dt=2.25e-13 max_dmdt=477 #359 t=6.08e-11 dt=2.25e-13 max_dmdt=478 #360 t=6.11e-11 dt=2.25e-13 max_dmdt=480 #361 t=6.13e-11 dt=2.25e-13 max_dmdt=481 #362 t=6.15e-11 dt=2.25e-13 max_dmdt=483 #363 t=6.17e-11 dt=2.25e-13 max_dmdt=484 #364 t=6.2e-11 dt=2.25e-13 max_dmdt=486 #365 t=6.22e-11 dt=2.25e-13 max_dmdt=487 #366 t=6.24e-11 dt=2.25e-13 max_dmdt=488 #367 t=6.26e-11 dt=2.25e-13 max_dmdt=490 #368 t=6.29e-11 dt=2.25e-13 max_dmdt=491 #369 t=6.31e-11 dt=2.25e-13 max_dmdt=492 #370 t=6.33e-11 dt=2.25e-13 max_dmdt=494 #371 t=6.35e-11 dt=2.25e-13 max_dmdt=495 #372 t=6.38e-11 dt=2.25e-13 max_dmdt=496 #373 t=6.4e-11 dt=2.25e-13 max_dmdt=498 #374 t=6.42e-11 dt=2.25e-13 max_dmdt=499 #375 t=6.44e-11 dt=2.25e-13 max_dmdt=500 #376 t=6.47e-11 dt=2.25e-13 max_dmdt=501 #377 t=6.5e-11 dt=3.43e-13 max_dmdt=502 #378 t=6.54e-11 dt=3.43e-13 max_dmdt=504 #379 t=6.57e-11 dt=3.43e-13 max_dmdt=506 #380 t=6.6e-11 dt=3.43e-13 max_dmdt=507 #381 t=6.64e-11 dt=3.43e-13 max_dmdt=509 #382 t=6.67e-11 dt=3.43e-13 max_dmdt=510 #383 t=6.71e-11 dt=3.43e-13 max_dmdt=511 #384 t=6.74e-11 dt=3.43e-13 max_dmdt=513 #385 t=6.78e-11 dt=3.43e-13 max_dmdt=514 #386 t=6.81e-11 dt=3.43e-13 max_dmdt=515 #387 t=6.86e-11 dt=5.15e-13 max_dmdt=517 #388 t=6.91e-11 dt=5.15e-13 max_dmdt=518 #389 t=6.96e-11 dt=5.15e-13 max_dmdt=520 #390 t=7.02e-11 dt=5.15e-13 max_dmdt=521 #391 t=7.07e-11 dt=5.15e-13 max_dmdt=523 #392 t=7.12e-11 dt=5.15e-13 max_dmdt=524 #393 t=7.17e-11 dt=5.15e-13 max_dmdt=525 #394 t=7.22e-11 dt=5.15e-13 max_dmdt=526 #395 t=7.27e-11 dt=5.15e-13 max_dmdt=527 #396 t=7.35e-11 dt=7.88e-13 max_dmdt=528 #397 t=7.43e-11 dt=7.88e-13 max_dmdt=529 #398 t=7.51e-11 dt=7.88e-13 max_dmdt=530 #399 t=7.59e-11 dt=7.88e-13 max_dmdt=531 #400 t=7.67e-11 dt=7.88e-13 max_dmdt=532 #401 t=7.75e-11 dt=7.88e-13 max_dmdt=532 #402 t=7.83e-11 dt=7.88e-13 max_dmdt=533 #403 t=7.9e-11 dt=7.88e-13 max_dmdt=533 #404 t=7.98e-11 dt=7.88e-13 max_dmdt=533 #405 t=8.06e-11 dt=7.88e-13 max_dmdt=533 #406 t=8.14e-11 dt=7.88e-13 max_dmdt=533 #407 t=8.22e-11 dt=7.88e-13 max_dmdt=533 #408 t=8.3e-11 dt=7.88e-13 max_dmdt=532 #409 t=8.38e-11 dt=7.88e-13 max_dmdt=532 #410 t=8.46e-11 dt=7.88e-13 max_dmdt=531 #411 t=8.53e-11 dt=7.88e-13 max_dmdt=531 #412 t=8.61e-11 dt=7.88e-13 max_dmdt=530 #413 t=8.69e-11 dt=7.88e-13 max_dmdt=529 #414 t=8.77e-11 dt=7.88e-13 max_dmdt=529 #415 t=8.85e-11 dt=7.88e-13 max_dmdt=528 #416 t=8.93e-11 dt=7.88e-13 max_dmdt=527 #417 t=9.01e-11 dt=7.88e-13 max_dmdt=526 #418 t=9.09e-11 dt=7.88e-13 max_dmdt=524 #419 t=9.17e-11 dt=7.88e-13 max_dmdt=523 #420 t=9.24e-11 dt=7.88e-13 max_dmdt=522 #421 t=9.32e-11 dt=7.88e-13 max_dmdt=521 #422 t=9.44e-11 dt=1.21e-12 max_dmdt=519 #423 t=9.56e-11 dt=1.21e-12 max_dmdt=517 #424 t=9.68e-11 dt=1.21e-12 max_dmdt=514 #425 t=9.81e-11 dt=1.21e-12 max_dmdt=512 #426 t=9.93e-11 dt=1.21e-12 max_dmdt=509 #427 t=1e-10 dt=1.21e-12 max_dmdt=507 #428 t=1.02e-10 dt=1.21e-12 max_dmdt=504 #429 t=1.03e-10 dt=1.21e-12 max_dmdt=501 #430 t=1.04e-10 dt=1.21e-12 max_dmdt=498 #431 t=1.05e-10 dt=1.21e-12 max_dmdt=495 #432 t=1.06e-10 dt=1.21e-12 max_dmdt=491 #433 t=1.08e-10 dt=1.21e-12 max_dmdt=488 #434 t=1.09e-10 dt=1.21e-12 max_dmdt=484 #435 t=1.1e-10 dt=1.21e-12 max_dmdt=481 #436 t=1.11e-10 dt=1.21e-12 max_dmdt=477 #437 t=1.13e-10 dt=1.21e-12 max_dmdt=473 #438 t=1.14e-10 dt=1.21e-12 max_dmdt=469 #439 t=1.15e-10 dt=1.21e-12 max_dmdt=465 #440 t=1.16e-10 dt=1.21e-12 max_dmdt=461 #441 t=1.17e-10 dt=1.21e-12 max_dmdt=457 #442 t=1.19e-10 dt=1.21e-12 max_dmdt=453 #443 t=1.2e-10 dt=1.21e-12 max_dmdt=449 #444 t=1.21e-10 dt=1.21e-12 max_dmdt=444 #445 t=1.22e-10 dt=1.21e-12 max_dmdt=440 #446 t=1.23e-10 dt=1.21e-12 max_dmdt=435 #447 t=1.25e-10 dt=1.21e-12 max_dmdt=431 #448 t=1.26e-10 dt=1.21e-12 max_dmdt=426 #449 t=1.27e-10 dt=1.21e-12 max_dmdt=421 #450 t=1.28e-10 dt=1.21e-12 max_dmdt=421 #451 t=1.29e-10 dt=1.21e-12 max_dmdt=424 #452 t=1.31e-10 dt=1.21e-12 max_dmdt=426 #453 t=1.32e-10 dt=1.21e-12 max_dmdt=428 #454 t=1.33e-10 dt=1.21e-12 max_dmdt=429 #455 t=1.34e-10 dt=1.21e-12 max_dmdt=431 #456 t=1.35e-10 dt=1.21e-12 max_dmdt=432 #457 t=1.37e-10 dt=1.21e-12 max_dmdt=432 #458 t=1.38e-10 dt=1.21e-12 max_dmdt=433 #459 t=1.39e-10 dt=1.21e-12 max_dmdt=433 #460 t=1.4e-10 dt=1.21e-12 max_dmdt=433 #461 t=1.41e-10 dt=1.21e-12 max_dmdt=433 #462 t=1.43e-10 dt=1.21e-12 max_dmdt=432 #463 t=1.44e-10 dt=1.21e-12 max_dmdt=431 #464 t=1.45e-10 dt=1.21e-12 max_dmdt=430 #465 t=1.46e-10 dt=1.21e-12 max_dmdt=429 #466 t=1.48e-10 dt=1.21e-12 max_dmdt=427 #467 t=1.49e-10 dt=1.21e-12 max_dmdt=425 #468 t=1.5e-10 dt=1.21e-12 max_dmdt=423 #469 t=1.51e-10 dt=1.21e-12 max_dmdt=421 #470 t=1.52e-10 dt=1.21e-12 max_dmdt=418 #471 t=1.54e-10 dt=1.21e-12 max_dmdt=416 #472 t=1.55e-10 dt=1.21e-12 max_dmdt=413 #473 t=1.56e-10 dt=1.21e-12 max_dmdt=410 #474 t=1.57e-10 dt=1.21e-12 max_dmdt=406 #475 t=1.58e-10 dt=1.21e-12 max_dmdt=403 #476 t=1.6e-10 dt=1.21e-12 max_dmdt=399 #477 t=1.61e-10 dt=1.21e-12 max_dmdt=395 #478 t=1.62e-10 dt=1.21e-12 max_dmdt=391 #479 t=1.63e-10 dt=1.21e-12 max_dmdt=386 #480 t=1.64e-10 dt=1.21e-12 max_dmdt=382 #481 t=1.66e-10 dt=1.21e-12 max_dmdt=377 #482 t=1.67e-10 dt=1.21e-12 max_dmdt=372 #483 t=1.68e-10 dt=1.21e-12 max_dmdt=367 #484 t=1.69e-10 dt=1.21e-12 max_dmdt=362 #485 t=1.7e-10 dt=1.21e-12 max_dmdt=356 #486 t=1.72e-10 dt=1.21e-12 max_dmdt=351 #487 t=1.73e-10 dt=1.21e-12 max_dmdt=345 #488 t=1.74e-10 dt=1.21e-12 max_dmdt=339 #489 t=1.75e-10 dt=1.21e-12 max_dmdt=333 #490 t=1.77e-10 dt=1.81e-12 max_dmdt=326 #491 t=1.79e-10 dt=1.81e-12 max_dmdt=316 #492 t=1.81e-10 dt=1.81e-12 max_dmdt=307 #493 t=1.82e-10 dt=1.81e-12 max_dmdt=297 #494 t=1.84e-10 dt=1.81e-12 max_dmdt=287 #495 t=1.86e-10 dt=1.81e-12 max_dmdt=277 #496 t=1.88e-10 dt=1.81e-12 max_dmdt=267 #497 t=1.9e-10 dt=1.81e-12 max_dmdt=257 #498 t=1.92e-10 dt=1.81e-12 max_dmdt=246 #499 t=1.93e-10 dt=1.81e-12 max_dmdt=236 #500 t=1.95e-10 dt=1.81e-12 max_dmdt=226 #501 t=1.97e-10 dt=1.81e-12 max_dmdt=219 #502 t=1.99e-10 dt=1.81e-12 max_dmdt=221 #503 t=2.01e-10 dt=1.81e-12 max_dmdt=223 #504 t=2.02e-10 dt=1.81e-12 max_dmdt=224 #505 t=2.04e-10 dt=1.81e-12 max_dmdt=224 #506 t=2.06e-10 dt=1.81e-12 max_dmdt=225 #507 t=2.08e-10 dt=1.81e-12 max_dmdt=225 #508 t=2.1e-10 dt=1.81e-12 max_dmdt=224 #509 t=2.11e-10 dt=1.81e-12 max_dmdt=224 #510 t=2.13e-10 dt=1.81e-12 max_dmdt=223 #511 t=2.15e-10 dt=1.81e-12 max_dmdt=222 #512 t=2.17e-10 dt=1.81e-12 max_dmdt=220 #513 t=2.19e-10 dt=1.81e-12 max_dmdt=218 #514 t=2.21e-10 dt=1.81e-12 max_dmdt=216 #515 t=2.22e-10 dt=1.81e-12 max_dmdt=214 #516 t=2.24e-10 dt=1.81e-12 max_dmdt=212 #517 t=2.26e-10 dt=1.81e-12 max_dmdt=209 #518 t=2.28e-10 dt=1.81e-12 max_dmdt=207 #519 t=2.3e-10 dt=1.81e-12 max_dmdt=204 #520 t=2.31e-10 dt=1.81e-12 max_dmdt=201 #521 t=2.33e-10 dt=1.81e-12 max_dmdt=197 #522 t=2.35e-10 dt=1.81e-12 max_dmdt=194 #523 t=2.37e-10 dt=1.81e-12 max_dmdt=191 #524 t=2.39e-10 dt=1.81e-12 max_dmdt=187 #525 t=2.4e-10 dt=1.81e-12 max_dmdt=184 #526 t=2.42e-10 dt=1.81e-12 max_dmdt=180 #527 t=2.44e-10 dt=1.81e-12 max_dmdt=176 #528 t=2.46e-10 dt=1.81e-12 max_dmdt=172 #529 t=2.48e-10 dt=1.81e-12 max_dmdt=168 #530 t=2.49e-10 dt=1.81e-12 max_dmdt=164 #531 t=2.51e-10 dt=1.81e-12 max_dmdt=160 #532 t=2.53e-10 dt=1.81e-12 max_dmdt=156 #533 t=2.55e-10 dt=1.81e-12 max_dmdt=152 #534 t=2.57e-10 dt=1.81e-12 max_dmdt=148 #535 t=2.59e-10 dt=1.81e-12 max_dmdt=144 #536 t=2.6e-10 dt=1.81e-12 max_dmdt=140 #537 t=2.62e-10 dt=1.81e-12 max_dmdt=136 #538 t=2.64e-10 dt=1.81e-12 max_dmdt=132 #539 t=2.67e-10 dt=2.74e-12 max_dmdt=127 #540 t=2.69e-10 dt=2.74e-12 max_dmdt=121 #541 t=2.72e-10 dt=2.74e-12 max_dmdt=115 #542 t=2.75e-10 dt=2.74e-12 max_dmdt=110 #543 t=2.78e-10 dt=2.74e-12 max_dmdt=104 #544 t=2.8e-10 dt=2.74e-12 max_dmdt=98.3 #545 t=2.83e-10 dt=2.74e-12 max_dmdt=92.9 #546 t=2.86e-10 dt=2.74e-12 max_dmdt=87.7 #547 t=2.89e-10 dt=2.74e-12 max_dmdt=82.8 #548 t=2.91e-10 dt=2.74e-12 max_dmdt=78 #549 t=2.94e-10 dt=2.74e-12 max_dmdt=77.7 #550 t=2.97e-10 dt=2.74e-12 max_dmdt=78.4 #551 t=3e-10 dt=2.74e-12 max_dmdt=78.9 #552 t=3.02e-10 dt=2.74e-12 max_dmdt=79.1 #553 t=3.05e-10 dt=2.74e-12 max_dmdt=79.1 #554 t=3.08e-10 dt=2.74e-12 max_dmdt=78.9 #555 t=3.11e-10 dt=2.74e-12 max_dmdt=78.5 #556 t=3.13e-10 dt=2.74e-12 max_dmdt=77.9 #557 t=3.16e-10 dt=2.74e-12 max_dmdt=77.1 #558 t=3.19e-10 dt=2.74e-12 max_dmdt=76.2 #559 t=3.22e-10 dt=2.74e-12 max_dmdt=75.1 #560 t=3.24e-10 dt=2.74e-12 max_dmdt=73.9 #561 t=3.27e-10 dt=2.74e-12 max_dmdt=72.5 #562 t=3.3e-10 dt=2.74e-12 max_dmdt=71.1 #563 t=3.32e-10 dt=2.74e-12 max_dmdt=69.5 #564 t=3.35e-10 dt=2.74e-12 max_dmdt=67.8 #565 t=3.38e-10 dt=2.74e-12 max_dmdt=66.1 #566 t=3.41e-10 dt=2.74e-12 max_dmdt=64.2 #567 t=3.43e-10 dt=2.74e-12 max_dmdt=62.3 #568 t=3.46e-10 dt=2.74e-12 max_dmdt=60.4 #569 t=3.49e-10 dt=2.74e-12 max_dmdt=58.4 #570 t=3.52e-10 dt=2.74e-12 max_dmdt=56.4 #571 t=3.54e-10 dt=2.74e-12 max_dmdt=54.3 #572 t=3.57e-10 dt=2.74e-12 max_dmdt=52.2 #573 t=3.6e-10 dt=2.74e-12 max_dmdt=50.1 #574 t=3.63e-10 dt=2.74e-12 max_dmdt=48 #575 t=3.65e-10 dt=2.74e-12 max_dmdt=45.9 #576 t=3.68e-10 dt=2.74e-12 max_dmdt=43.8 #577 t=3.71e-10 dt=2.74e-12 max_dmdt=41.7 #578 t=3.74e-10 dt=2.74e-12 max_dmdt=39.7 #579 t=3.76e-10 dt=2.74e-12 max_dmdt=37.7 #580 t=3.79e-10 dt=2.74e-12 max_dmdt=35.8 #581 t=3.82e-10 dt=2.74e-12 max_dmdt=34 #582 t=3.85e-10 dt=2.74e-12 max_dmdt=32.2 #583 t=3.87e-10 dt=2.74e-12 max_dmdt=31.5 #584 t=3.9e-10 dt=2.74e-12 max_dmdt=31.8 #585 t=3.93e-10 dt=2.74e-12 max_dmdt=32 #586 t=3.96e-10 dt=2.74e-12 max_dmdt=32.1 #587 t=3.98e-10 dt=2.74e-12 max_dmdt=32.1 #588 t=4.01e-10 dt=2.74e-12 max_dmdt=32.1 #589 t=4.04e-10 dt=2.74e-12 max_dmdt=32 #590 t=4.06e-10 dt=2.74e-12 max_dmdt=31.8 #591 t=4.09e-10 dt=2.74e-12 max_dmdt=31.5 #592 t=4.12e-10 dt=2.74e-12 max_dmdt=31.2 #593 t=4.15e-10 dt=2.74e-12 max_dmdt=30.8 #594 t=4.17e-10 dt=2.74e-12 max_dmdt=30.3 #595 t=4.2e-10 dt=2.74e-12 max_dmdt=29.8 #596 t=4.23e-10 dt=2.74e-12 max_dmdt=29.3 #597 t=4.26e-10 dt=2.74e-12 max_dmdt=28.7 #598 t=4.28e-10 dt=2.74e-12 max_dmdt=28.1 #599 t=4.31e-10 dt=2.74e-12 max_dmdt=27.4 #600 t=4.34e-10 dt=2.74e-12 max_dmdt=26.7 #601 t=4.37e-10 dt=2.74e-12 max_dmdt=26 #602 t=4.39e-10 dt=2.74e-12 max_dmdt=25.2 #603 t=4.42e-10 dt=2.74e-12 max_dmdt=24.4 #604 t=4.45e-10 dt=2.74e-12 max_dmdt=23.6 #605 t=4.48e-10 dt=2.74e-12 max_dmdt=22.8 #606 t=4.5e-10 dt=2.74e-12 max_dmdt=21.9 #607 t=4.53e-10 dt=2.74e-12 max_dmdt=21.1 #608 t=4.57e-10 dt=4.11e-12 max_dmdt=20 #609 t=4.61e-10 dt=4.11e-12 max_dmdt=18.8 #610 t=4.65e-10 dt=4.11e-12 max_dmdt=17.5 #611 t=4.69e-10 dt=4.11e-12 max_dmdt=16.3 #612 t=4.74e-10 dt=4.11e-12 max_dmdt=15.1 #613 t=4.78e-10 dt=4.11e-12 max_dmdt=14 #614 t=4.82e-10 dt=4.11e-12 max_dmdt=13 #615 t=4.86e-10 dt=4.11e-12 max_dmdt=12.9 #616 t=4.9e-10 dt=4.11e-12 max_dmdt=13.1 #617 t=4.94e-10 dt=4.11e-12 max_dmdt=13.1 #618 t=4.98e-10 dt=4.11e-12 max_dmdt=13.2 #619 t=5.02e-10 dt=4.11e-12 max_dmdt=13.1 #620 t=5.06e-10 dt=4.11e-12 max_dmdt=13 #621 t=5.11e-10 dt=4.11e-12 max_dmdt=12.8 #622 t=5.15e-10 dt=4.11e-12 max_dmdt=12.5 #623 t=5.19e-10 dt=4.11e-12 max_dmdt=12.2 #624 t=5.23e-10 dt=4.11e-12 max_dmdt=11.8 #625 t=5.27e-10 dt=4.11e-12 max_dmdt=11.4 #626 t=5.31e-10 dt=4.11e-12 max_dmdt=11 #627 t=5.35e-10 dt=4.11e-12 max_dmdt=10.6 #628 t=5.39e-10 dt=4.11e-12 max_dmdt=10.1 #629 t=5.44e-10 dt=4.11e-12 max_dmdt=9.56 #630 t=5.48e-10 dt=4.11e-12 max_dmdt=9.03 #631 t=5.52e-10 dt=4.11e-12 max_dmdt=8.5 #632 t=5.56e-10 dt=4.11e-12 max_dmdt=7.96 #633 t=5.6e-10 dt=4.11e-12 max_dmdt=7.43 #634 t=5.64e-10 dt=4.11e-12 max_dmdt=6.91 #635 t=5.68e-10 dt=4.11e-12 max_dmdt=6.42 #636 t=5.72e-10 dt=4.11e-12 max_dmdt=5.95 #637 t=5.76e-10 dt=4.11e-12 max_dmdt=5.52 #638 t=5.81e-10 dt=4.11e-12 max_dmdt=5.5 #639 t=5.85e-10 dt=4.11e-12 max_dmdt=5.56 #640 t=5.89e-10 dt=4.11e-12 max_dmdt=5.59 #641 t=5.93e-10 dt=4.11e-12 max_dmdt=5.59 #642 t=5.97e-10 dt=4.11e-12 max_dmdt=5.55 #643 t=6.01e-10 dt=4.11e-12 max_dmdt=5.49 #644 t=6.05e-10 dt=4.11e-12 max_dmdt=5.41 #645 t=6.09e-10 dt=4.11e-12 max_dmdt=5.3 #646 t=6.13e-10 dt=4.11e-12 max_dmdt=5.17 #647 t=6.18e-10 dt=4.11e-12 max_dmdt=5.02 #648 t=6.22e-10 dt=4.11e-12 max_dmdt=4.85 #649 t=6.26e-10 dt=4.11e-12 max_dmdt=4.67 #650 t=6.3e-10 dt=4.11e-12 max_dmdt=4.48 #651 t=6.34e-10 dt=4.11e-12 max_dmdt=4.28 #652 t=6.38e-10 dt=4.11e-12 max_dmdt=4.07 #653 t=6.42e-10 dt=4.11e-12 max_dmdt=3.85 #654 t=6.46e-10 dt=4.11e-12 max_dmdt=3.63 #655 t=6.5e-10 dt=4.11e-12 max_dmdt=3.4 #656 t=6.55e-10 dt=4.11e-12 max_dmdt=3.18 #657 t=6.59e-10 dt=4.11e-12 max_dmdt=2.97 #658 t=6.63e-10 dt=4.11e-12 max_dmdt=2.76 #659 t=6.67e-10 dt=4.11e-12 max_dmdt=2.56 #660 t=6.71e-10 dt=4.11e-12 max_dmdt=2.38 #661 t=6.75e-10 dt=4.11e-12 max_dmdt=2.26 #662 t=6.79e-10 dt=4.11e-12 max_dmdt=2.31 #663 t=6.83e-10 dt=4.11e-12 max_dmdt=2.33 #664 t=6.89e-10 dt=6.18e-12 max_dmdt=2.34 #665 t=6.96e-10 dt=6.18e-12 max_dmdt=2.33 #666 t=7.02e-10 dt=6.18e-12 max_dmdt=2.28 #667 t=7.08e-10 dt=6.18e-12 max_dmdt=2.22 #668 t=7.14e-10 dt=6.18e-12 max_dmdt=2.13 #669 t=7.2e-10 dt=6.18e-12 max_dmdt=2.02 #670 t=7.27e-10 dt=6.18e-12 max_dmdt=1.91 #671 t=7.33e-10 dt=6.18e-12 max_dmdt=1.78 #672 t=7.39e-10 dt=6.18e-12 max_dmdt=1.64 #673 t=7.45e-10 dt=6.18e-12 max_dmdt=1.5 #674 t=7.51e-10 dt=6.18e-12 max_dmdt=1.35 #675 t=7.57e-10 dt=6.18e-12 max_dmdt=1.22 #676 t=7.64e-10 dt=6.18e-12 max_dmdt=1.09 #677 t=7.7e-10 dt=6.18e-12 max_dmdt=0.979 #678 t=7.76e-10 dt=6.18e-12 max_dmdt=1 #679 t=7.82e-10 dt=6.18e-12 max_dmdt=1.01 #680 t=7.88e-10 dt=6.18e-12 max_dmdt=1.01 #681 t=7.95e-10 dt=6.18e-12 max_dmdt=0.994 #682 t=8.01e-10 dt=6.18e-12 max_dmdt=0.968 #683 t=8.07e-10 dt=6.18e-12 max_dmdt=0.933 #684 t=8.13e-10 dt=6.18e-12 max_dmdt=0.891 #685 t=8.19e-10 dt=6.18e-12 max_dmdt=0.843 #686 t=8.25e-10 dt=6.18e-12 max_dmdt=0.789 #687 t=8.32e-10 dt=6.18e-12 max_dmdt=0.732 #688 t=8.38e-10 dt=6.18e-12 max_dmdt=0.672 #689 t=8.44e-10 dt=6.18e-12 max_dmdt=0.612 #690 t=8.5e-10 dt=6.18e-12 max_dmdt=0.552 #691 t=8.56e-10 dt=6.18e-12 max_dmdt=0.496 #692 t=8.63e-10 dt=6.18e-12 max_dmdt=0.448 #693 t=8.69e-10 dt=6.18e-12 max_dmdt=0.42 #694 t=8.75e-10 dt=6.18e-12 max_dmdt=0.429 #695 t=8.81e-10 dt=6.18e-12 max_dmdt=0.432 #696 t=8.87e-10 dt=6.18e-12 max_dmdt=0.43 #697 t=8.93e-10 dt=6.18e-12 max_dmdt=0.422 #698 t=9e-10 dt=6.18e-12 max_dmdt=0.41 #699 t=9.06e-10 dt=6.18e-12 max_dmdt=0.394 #700 t=9.12e-10 dt=6.18e-12 max_dmdt=0.375 #701 t=9.18e-10 dt=6.18e-12 max_dmdt=0.353 #702 t=9.28e-10 dt=9.45e-12 max_dmdt=0.323 #703 t=9.37e-10 dt=9.45e-12 max_dmdt=0.283 #704 t=9.47e-10 dt=9.45e-12 max_dmdt=0.243 #705 t=9.56e-10 dt=9.45e-12 max_dmdt=0.21 #706 t=9.65e-10 dt=9.45e-12 max_dmdt=0.184 #707 t=9.75e-10 dt=9.45e-12 max_dmdt=0.189 #708 t=9.84e-10 dt=9.45e-12 max_dmdt=0.188 #709 t=9.94e-10 dt=9.45e-12 max_dmdt=0.181 #710 t=1e-09 dt=9.45e-12 max_dmdt=0.171 #711 t=1.01e-09 dt=9.45e-12 max_dmdt=0.158 #712 t=1.02e-09 dt=9.45e-12 max_dmdt=0.142 #713 t=1.03e-09 dt=9.45e-12 max_dmdt=0.125 #714 t=1.04e-09 dt=9.45e-12 max_dmdt=0.109 #715 t=1.05e-09 dt=9.45e-12 max_dmdt=0.0946 #716 t=1.06e-09 dt=9.45e-12 max_dmdt=0.0805 #717 t=1.07e-09 dt=9.45e-12 max_dmdt=0.0812 #718 t=1.08e-09 dt=9.45e-12 max_dmdt=0.0814 #719 t=1.09e-09 dt=9.45e-12 max_dmdt=0.0792 #720 t=1.1e-09 dt=9.45e-12 max_dmdt=0.0752 #721 t=1.11e-09 dt=9.45e-12 max_dmdt=0.0697 #722 t=1.12e-09 dt=9.45e-12 max_dmdt=0.0633 #723 t=1.13e-09 dt=9.45e-12 max_dmdt=0.0564 #724 t=1.14e-09 dt=9.45e-12 max_dmdt=0.0494 #725 t=1.14e-09 dt=9.45e-12 max_dmdt=0.0425 #726 t=1.15e-09 dt=9.45e-12 max_dmdt=0.0357 #727 t=1.16e-09 dt=9.45e-12 max_dmdt=0.0356 #728 t=1.18e-09 dt=1.42e-11 max_dmdt=0.0355 #729 t=1.19e-09 dt=1.42e-11 max_dmdt=0.0338 #730 t=1.21e-09 dt=1.42e-11 max_dmdt=0.0305 #731 t=1.22e-09 dt=1.42e-11 max_dmdt=0.0262 #732 t=1.23e-09 dt=1.42e-11 max_dmdt=0.0214 #733 t=1.25e-09 dt=1.42e-11 max_dmdt=0.0166 #734 t=1.26e-09 dt=1.42e-11 max_dmdt=0.0155 #735 t=1.28e-09 dt=1.42e-11 max_dmdt=0.0156 #736 t=1.29e-09 dt=1.42e-11 max_dmdt=0.0147 #737 t=1.31e-09 dt=1.42e-11 max_dmdt=0.0131 #738 t=1.32e-09 dt=1.42e-11 max_dmdt=0.0111 #739 t=1.33e-09 dt=1.42e-11 max_dmdt=0.00887
Plot the magnetisation components of the relaxed state.
#NBVAL_IGNORE_OUTPUT plot_magnetisation([['m0.npy', 'mx'], ['m0.npy', 'my'], ['m0.npy', 'mz']])
The DW is at the maximum value of \(|m_z|\) or \(|m_y|\). Consequently, the domain wall position is:
m0_z = np.load('m0.npy').reshape(-1, 3)[:, 2] x = np.arange(len(m0_z)) index_max = np.argmax(np.abs(m0_z)) print('Maximum |m_z| at x = %s' % x[index_max])
Maximum |m_z| at x = 124
Using the obtained domain wall equilibrium state, we now simulate its motion in presence of a spin-polarised current.
#NBVAL_IGNORE_OUTPUT excite_system(mesh, 1.5e-9, 151)
We plot once again to compare the initial state with the ones after a SP current was applied.
#NBVAL_IGNORE_OUTPUT # We can plot the m_x component for a number snapshots # to observe the DW motion # We will plot the 100th and 150th files (we can also compute # until the system reaches ~5 ns to improve the effect) plot_magnetisation([['m0.npy', 'mx'], ['dyn_npys/m_100.npy', 'mx'], ['dyn_npys/m_150.npy', 'mx']]) plt.xlim([0, 200])
(0, 200)
We choose a cuboidal thin film permalloy sample measuring \(120 \times 120 \times 10 \,\text{nm}^{3}\). The choice of a cuboid is important as it ensures that the finite difference method employed by OOMMF does not introduce errors due to irregular boundaries that cannot be discretized well. We choose the thin film geometry to be thin enough so that the variation of magnetization dynamics along the out-of-film direction can be neglected. Material parameters based on permalloy are:
Exchange energy constant \(A = 1.3 \times 10^{-11} \,\text{J/m}\),
Magnetisation saturation \(M_\text{s} = 8 \times 10^{5} \,\text{A/m}\),
Gilbert damping \(\alpha = 0.008\).
An external magnetic bias field with magnitude \(80 \,\text{kA/m}\) is applied along the direction \(e = (1, 0.715, 0)\).
We choose the external magnetic field direction slightly off the sample diagonal in order to break the system’s symmetry and thus avoid degenerate eigenmodes. First, we initialize the system with a uniform out-of-plane magnetization \(m_{0} = (0, 0, 1)\). We relax the system using the Steepest Descent method. We refer to this stage of simulation as the relaxation stage, and its final relaxed magnetization configuration is saved to serve as the initial configuration for the next dynamic stage.
In the next step (dynamic stage), a simulation is started using the equilibrium magnetisation configuration from the relaxation stage as the initial configuration. Now, the direction of an external magnetic field is altered to \(e = (1, 0.7, 0)\). This simulation stage runs for \(T = 10 \,\text{ns}\) while the (average and spatially resolved) magnetization \(M(t)\) is recorded every \(\Delta t = 5 \,\text{ps}\). The Gilbert damping in this dynamic simulation stage is \(\alpha = 0.008\).
Details of this standard problem specification can be found in Ref. 1.
import numpy as np import matplotlib.pyplot as plt import scipy.fftpack import scipy.signal %matplotlib inline import fidimag Lx = Ly = 120 # nm Lz = 10 # nm dx = dy = dz = 5 # nm nx = int(Lx/dx) ny = int(Ly/dy) nz = int(Lz/dz) A = 1.3e-11 # J/m Ms = 8e5 # A/m alpha = 0.008 B_mag = 80e3 # A / m B_axis = np.array([1.0, 0.715, 0.0]) B = B_mag * B_axis / np.linalg.norm(B_axis) m_init = np.array([0, 0, 1]) t_init = 5e-9
We create and relax the system.
#NBVAL_IGNORE_OUTPUT mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, unit_length=1e-9) sim = fidimag.micro.Sim(mesh, name='relax', driver='steepest_descent') sim.driver.alpha = 1.0 sim.set_Ms(Ms) sim.set_m(m_init) sim.add(fidimag.micro.UniformExchange(A)) sim.add(fidimag.micro.Demag()) sim.add(fidimag.micro.Zeeman(B)) sim.driver.minimise(stopping_dm=1e-7, max_steps=20000) np.save('m_relax.npy', sim.spin)
#max_tau=0.01 max_dm=2.34e-05 counter=0 #max_tau=0.01 max_dm=0.00164 counter=1000 #max_tau=0.01 max_dm=4.22e-05 counter=2000 #max_tau=0.01 max_dm=1.14e-05 counter=3000 #max_tau=0.01 max_dm=4.48e-06 counter=4000 #max_tau=0.01 max_dm=2.24e-06 counter=5000 #max_tau=0.01 max_dm=1.2e-06 counter=6000 #max_tau=0.01 max_dm=6.67e-07 counter=7000 #max_tau=0.01 max_dm=3.79e-07 counter=8000 #max_tau=0.01 max_dm=2.17e-07 counter=9000 #max_tau=0.01 max_dm=1.25e-07 counter=10000 FINISHED AT: max_tau=0.01 max_dm=9.99e-08 counter=10402
We can now plot the \(z\) slice of magnetisation.
fidimag.common.plot(sim, component='all')
In the dynamic stage, we change the field, ‘shocking’ the system, and allow the system to evolve in time. This can be thought about in the same way as plucking a guitar string and exciting different modes of the string.
Nsteps = 2001 # Number of steps in dynamic stage # Change the external field B_axis = np.array([1.0, 0.7, 0.0]) B = B_mag * B_axis / np.linalg.norm(B_axis) mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, unit_length=1e-9) sim = fidimag.micro.Sim(mesh, name='dynamic', driver='llg') sim.driver.alpha = 1.0 sim.set_Ms(Ms) sim.set_m(np.load('m_relax.npy')) sim.add(fidimag.micro.UniformExchange(A)) sim.add(fidimag.micro.Demag()) sim.add(fidimag.micro.Zeeman(B)) sim.get_interaction('Zeeman').update_field(B) sim.driver.alpha = alpha ts = np.linspace(0, 10e-9, Nsteps)
#NBVAL_IGNORE_OUTPUT for i, t in enumerate(ts): if i % 50 == 0: print('Step {}, t = {}'.format(i, t)) sim.driver.run_until(t) sim.save_m() sim.save_vtk()
Step 0, t = 0.0 Step 50, t = 2.5e-10 Step 100, t = 5e-10 Step 150, t = 7.500000000000001e-10 Step 200, t = 1e-09 Step 250, t = 1.25e-09 Step 300, t = 1.5000000000000002e-09 Step 350, t = 1.7500000000000002e-09 Step 400, t = 2e-09 Step 450, t = 2.2500000000000003e-09 Step 500, t = 2.5e-09 Step 550, t = 2.7500000000000002e-09 Step 600, t = 3.0000000000000004e-09 Step 650, t = 3.25e-09 Step 700, t = 3.5000000000000003e-09 Step 750, t = 3.7500000000000005e-09 Step 800, t = 4e-09 Step 850, t = 4.250000000000001e-09 Step 900, t = 4.500000000000001e-09 Step 950, t = 4.75e-09 Step 1000, t = 5e-09 Step 1050, t = 5.250000000000001e-09 Step 1100, t = 5.5000000000000004e-09 Step 1150, t = 5.75e-09 Step 1200, t = 6.000000000000001e-09 Step 1250, t = 6.2500000000000005e-09 Step 1300, t = 6.5e-09 Step 1350, t = 6.750000000000001e-09 Step 1400, t = 7.000000000000001e-09 Step 1450, t = 7.25e-09 Step 1500, t = 7.500000000000001e-09 Step 1550, t = 7.750000000000002e-09 Step 1600, t = 8e-09 Step 1650, t = 8.250000000000001e-09 Step 1700, t = 8.500000000000002e-09 Step 1750, t = 8.75e-09 Step 1800, t = 9.000000000000001e-09 Step 1850, t = 9.25e-09 Step 1900, t = 9.5e-09 Step 1950, t = 9.750000000000001e-09 Step 2000, t = 1e-08
We read in the data files and compute the spatially averaged power spectral density, which shows the distribution of power in the excited modes.
m_0 = np.load('m_relax.npy') mxs = [] mys = [] mzs = [] for i in range(Nsteps): m = np.load('dynamic_npys/m_{}.npy'.format(i)) - m_0 mxs.append(np.mean(m[0::3])) mys.append(np.mean(m[1::3])) mzs.append(np.mean(m[2::3]))
plt.figure(figsize=(8, 6)) plt.plot(ts, mxs) plt.xlabel('t (ns)') plt.ylabel('mx average') plt.grid()
import scipy.fftpack psd = np.log10(np.abs(scipy.fftpack.fft(mxs))**2 + \ np.abs(scipy.fftpack.fft(mys))**2 + \ np.abs(scipy.fftpack.fft(mzs))**2) f_axis = scipy.fftpack.fftfreq(Nsteps, d=20e-9/4000) plt.plot(f_axis/1e9, psd) plt.xlim([0, 40]) plt.grid() plt.xlabel('f (GHz)') plt.ylabel('Psa (a.u.)') peakind = scipy.signal.find_peaks(psd, width=2)[0] plt.plot(f_axis/1e9, psd) plt.scatter(f_axis[peakind]/1e9, psd[peakind]) plt.xlim([0, 50])
(0, 50)
print("Lowest frequency peak = {} GHz".format(f_axis[peakind[0]]/1e9))
Lowest frequency peak = 8.295852073963019 GHz
Authors: Marijan Beg, Marc-Antonio Bisotti, Weiwei Wang, Ryan Pepper, David Cortes-Ortuno
Date: 26 June 2016 (Updated 24 Jan 2019)
A thin film disk sample with thickness \(t=10 \,\text{nm}\) and diameter \(d=100 \,\text{nm}\) is simulated. The material is FeGe with material parameters [1]:
exchange energy constant \(A = 8.78 \times 10^{-12} \,\text{J/m}\),
magnetisation saturation \(M_\text{s} = 3.84 \times 10^{5} \,\text{A/m}\), and
Dzyaloshinskii-Moriya energy constant \(D = 1.58 \times 10^{-3} \,\text{J/m}^{2}\).
It is expected that when the system is initialised in the uniform out-of-plane direction \(\mathbf{m}_\text{init} = (0, 0, 1)\), it relaxes to the isolated Skyrmion (Sk) state (See Supplementary Information in Ref. 1). (Note that LLG dynamics is important, which means that artificially disable the precession term in LLG may lead to other states).
from fidimag.micro import Sim from fidimag.common import CuboidMesh from fidimag.micro import UniformExchange, Demag, DMI from fidimag.common import plot import time %matplotlib inline
The cuboidal thin film mesh which contains the disk is created:
d = 100 # diameter (nm) t = 10 # thickness (nm) # Mesh discretisation. dx = dy = 2.5 # nm dz = 2 mesh = CuboidMesh(nx=int(d/dx), ny=int(d/dy), nz=int(t/dz), dx=dx, dy=dy, dz=dz, unit_length=1e-9)
Since the disk geometry is simulated, it is required to set the saturation magnetisation to zero in the regions of the mesh outside the disk. In order to do that, the following function is created:
def Ms_function(Ms): def wrapped_function(pos): x, y, z = pos[0], pos[1], pos[2] r = ((x-d/2.)**2 + (y-d/2.)**2)**0.5 # distance from the centre if r <= d/2: # Mesh point is inside the disk. return Ms else: # Mesh point is outside the disk. return 0 return wrapped_function
To reduce the relaxation time, we define a state using a python function.
def init_m(pos): x,y,z = pos x0, y0 = d/2., d/2. r = ((x-x0)**2 + (y-y0)**2)**0.5 if r<10: return (0,0, 1) elif r<30: return (0,0, -1) elif r<60: return (0, 0, 1) else: return (0, 0, -1)
Having the magnetisation saturation function, the simulation object can be created:
# FeGe material paremeters. Ms = 3.84e5 # saturation magnetisation (A/m) A = 8.78e-12 # exchange energy constant (J/m) D = 1.58e-3 # Dzyaloshinkii-Moriya energy constant (J/m**2) alpha = 1 # Gilbert damping gamma = 2.211e5 # gyromagnetic ration (m/As) # Create simulation object. sim = Sim(mesh) # sim = Sim(mesh, driver='steepest_descent') sim.Ms = Ms_function(Ms) sim.driver.alpha = alpha sim.driver.gamma = gamma # Add energies. sim.add(UniformExchange(A=A)) sim.add(DMI(D=D)) sim.add(Demag()) # Since the magnetisation dynamics is not important in this stage, # the precession term in LLG equation can be set to artificially zero. # sim.driver.do_precession = False # Initialise the system. sim.set_m(init_m)
This is the initial configuration used before relaxation:
plot(sim, component='all', z=0.0, cmap='RdBu')
Now the system is relaxed to find a metastable state of the system:
# Relax the system to its equilibrium. start = time.time() sim.driver.relax(dt=1e-13, stopping_dmdt=0.1, max_steps=10000, save_m_steps=None, save_vtk_steps=None, printing=False) end = time.time()
#NBVAL_IGNORE_OUTPUT print('Timing: ', end - start)
Timing: 77.00890803337097
sim.save_vtk()
The magnetisation components of obtained equilibrium configuration can be plotted in the following way:
We plot the magnetisation at the bottom of the sample:
and at the top of the sample:
plot(sim, component='all', z=10.0, cmap='RdBu')
and we plot the xy spin angle through the middle of the sample:
plot(sim, component='angle', z=5.0, cmap='hsv')
An alternative method for the minimisation of the energy is using a SteepestDescent method:
# Create simulation object. sim = Sim(mesh, driver='steepest_descent') sim.Ms = Ms_function(Ms) sim.driver.gamma = gamma # Add energies. sim.add(UniformExchange(A=A)) sim.add(DMI(D=D)) sim.add(Demag()) # The maximum timestep: sim.driver.tmax = 1 # Initialise the system. sim.set_m(init_m)
In this case the driver has a minimise method
minimise
start = time.time() sim.driver.minimise(max_steps=10000, stopping_dm=0.5e-4, initial_t_step=1e-2) end = time.time()
#0 max_tau=0.01 max_dm=0.0477 #1000 max_tau=0.01 max_dm=0.0022 #2000 max_tau=0.01 max_dm=0.000592 #3000 max_tau=0.01 max_dm=0.000327 #4000 max_tau=0.01 max_dm=0.000179 #5000 max_tau=0.01 max_dm=9.82e-05 #6000 max_tau=0.01 max_dm=5.43e-05 #6141 max_tau=0.01 max_dm=5e-05
Timing: 67.3641722202301
And the final state is equivalent to the one found with the LLG technique
[1] Beg, M. et al. Ground state search, hysteretic behaviour, and reversal mechanism of skyrmionic textures in confined helimagnetic nanostructures. Sci. Rep. 5, 17137 (2015).
A=1.3e-11 Ms=8.6e5 n = 40 d = 5 mesh = fidimag.common.CuboidMesh(nx=n, ny=n, nz=1, dx=d, dy=d, dz=d, unit_length=1e-9, periodicity=(True, True, False)) sim = fidimag.micro.Sim(mesh, name="Grains") sim.alpha = 1.0
# Create positions to be grain centres, and create a cKDTree to # perform Voronoi Tesselation np.random.seed(10) Ngrains = 15 grain_centres = np.random.uniform(0, n*d, (Ngrains, 2)) voronoi_kdtree = cKDTree(grain_centres) # Define Anisotropy Strength Ku = 1e6 # Generate random anisotropy axes axes = np.random.uniform(-1, 1, (Ngrains, 3)) # Weight them towards +z - assume grains oriented along field cooled direction axes[:, 2] += 1.0 # Normalise axes /= np.linalg.norm(axes, axis=1)[:, np.newaxis] # Generate a normal distribution of anisotropy strengths: strengths = np.random.normal(Ku, Ku*0.2, Ngrains) # We then use the cKDTree in two functions. We get the x, y position # of each micromagnetic cell, and query the tree for the region that # the cell sits in. The functions then return the axis and strength # at that region index. def K_axis(pos): x, y, z = pos _, test_point_regions = voronoi_kdtree.query(np.array([[x, y]]), k=1) region = test_point_regions[0] return axes[region] def K_mag(pos): x, y, z = pos _, test_point_regions = voronoi_kdtree.query(np.array([[x, y]]), k=1) region = test_point_regions[0] return strengths[region]
sim.set_m((0, 0, 1), normalise=True) sim.set_Ms(Ms) anisotropy = fidimag.micro.UniaxialAnisotropy(K_mag, K_axis) sim.add(anisotropy) sim.add(fidimag.micro.UniformExchange(A)) sim.add(fidimag.micro.Demag(pbc_2d=True))
import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import ImageGrid strength_x = anisotropy._axis[0::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) strength_y = anisotropy._axis[1::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) strength_z = anisotropy._axis[2::3].reshape(n, n) * anisotropy._Ku.reshape(n, n) maxs = np.max([np.max(np.abs(strength_x)), np.max(np.abs(strength_y)), np.max(np.abs(strength_z))]) fig = plt.figure(figsize=(5, 3)) grid = ImageGrid(fig, 111, # as in plt.subplot(111) nrows_ncols=(1,3), axes_pad=0.15, share_all=True, cbar_location="right", cbar_mode="single", cbar_size="7%", cbar_pad=0.15, ) axes = [axis for axis in grid] axes[0].imshow(strength_x, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) axes[1].imshow(strength_y, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) im = axes[2].imshow(strength_z, origin='lower', cmap='RdBu', vmin=-maxs, vmax=maxs, extent=[0, n*d, 0, n*d]) axes[2].cax.colorbar(im) axes[2].cax.toggle_label(True) axes[0].set_title("$K_x$") axes[1].set_title("$K_y$") axes[2].set_title("$K_z$") plt.savefig("Anisotropy.png", dpi=600)
We can see that we have a granular structure in the anisotropy. We now simply relax the system and plot the magnetisation:
sim.relax(dt=1e-12, stopping_dmdt=1.0, max_steps=10000, save_vtk_steps=10, printing=False) print('Done')
Done
fidimag.common.plot(sim, component='z')
521197.7929881685
[22]:
import fidimag from fidimag.micro import Sim from fidimag.common import CuboidMesh from fidimag.micro import Zeeman, Demag, DMI, UniformExchange import numpy as np import matplotlib.pyplot as plt %matplotlib inline
Here we set parameters of the system. We choose a 250 x 80 x 3 nm\(^3\) nanotrack, and apply periodicity in the x-direction to approximate an infinite nanotrack.
[43]:
dx = dy = 2.5 dz = 1.0 Lx = 250.0 Ly = 80.0 Lz = 3.0 nx = int(Lx/dx) ny = int(Ly/dy) nz = int(Lz/dz) mesh = CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, unit_length=1e-9, periodicity=(True, False, False))
We choose material parameters for Fe0.7Co0.3Si as used in the paper “Skyrmions in thin films with easy-plane magnetocrystalline anisotropy” (http://dx.doi.org/10.1063/1.4945262). We set the initial state to be uniform in the +z direction.
[44]:
Ms = 9.5e4 # magnetisation saturation (A/m) A = 4e-13 # exchange stiffness (J/m) D = 2.7e-4 # DMI constant (J/m**2) H = (0, 0, 3.8e5) # external magnetic field (A/m) K0 = D**2 / A K1 = -0.16*K0 alpha = 0.5 # Gilbert damping gamma = 2.211e5 # gyromagnetic ratio (m/As) sim = Sim(mesh) # create simulation object # Set parameters. sim.Ms = Ms sim.driver.alpha = alpha sim.driver.gamma = gamma sim.driver.do_precession = False # Add energies. sim.add(UniformExchange(A=A)) sim.add(DMI(D)) sim.add(Zeeman(H)) sim.add(Demag(pbc_2d=True)) # Seed random number generator so that this simulation is reproducible. np.random.seed(0) def m_init(pos): m = np.random.uniform(-1, 1, 3) return m sim.set_m(m_init, normalise=True)
We now relax the system to find a metastable state.
[45]:
sim.driver.relax(dt=1e-13, stopping_dmdt=0.1, max_steps=5000, save_m_steps=None, save_vtk_steps=None)
#1 t=1e-13 dt=1e-13 max_dmdt=7.78e+04 #2 t=2e-13 dt=1e-13 max_dmdt=7.99e+04 #3 t=3e-13 dt=1e-13 max_dmdt=8.02e+04 #4 t=4e-13 dt=1e-13 max_dmdt=7.76e+04 #5 t=5e-13 dt=1e-13 max_dmdt=7.97e+04 #6 t=6e-13 dt=1e-13 max_dmdt=7.75e+04 #7 t=7e-13 dt=1e-13 max_dmdt=7.6e+04 #8 t=8e-13 dt=1e-13 max_dmdt=7.94e+04 #9 t=9e-13 dt=1e-13 max_dmdt=8.26e+04 #10 t=1e-12 dt=1e-13 max_dmdt=8.09e+04 #11 t=1.1e-12 dt=1e-13 max_dmdt=7.43e+04 #12 t=1.2e-12 dt=1e-13 max_dmdt=7.65e+04 #13 t=1.3e-12 dt=1e-13 max_dmdt=7.76e+04 #14 t=1.4e-12 dt=1e-13 max_dmdt=7.48e+04 #15 t=1.5e-12 dt=1e-13 max_dmdt=7.09e+04 #16 t=1.6e-12 dt=1e-13 max_dmdt=6.41e+04 #17 t=1.7e-12 dt=1e-13 max_dmdt=6.47e+04 #18 t=1.8e-12 dt=1e-13 max_dmdt=6.4e+04 #19 t=1.9e-12 dt=1e-13 max_dmdt=6.21e+04 #20 t=2e-12 dt=1e-13 max_dmdt=6.01e+04 #21 t=2.1e-12 dt=1e-13 max_dmdt=5.71e+04 #22 t=2.2e-12 dt=1e-13 max_dmdt=5.64e+04 #23 t=2.3e-12 dt=1e-13 max_dmdt=5.48e+04 #24 t=2.4e-12 dt=1e-13 max_dmdt=5.25e+04 #25 t=2.5e-12 dt=1e-13 max_dmdt=5.1e+04 #26 t=2.6e-12 dt=1e-13 max_dmdt=5.1e+04 #27 t=2.7e-12 dt=1e-13 max_dmdt=5.02e+04 #28 t=2.8e-12 dt=1e-13 max_dmdt=4.87e+04 #29 t=2.9e-12 dt=1e-13 max_dmdt=4.65e+04 #30 t=3e-12 dt=1e-13 max_dmdt=4.38e+04 #31 t=3.1e-12 dt=1e-13 max_dmdt=4.24e+04 #32 t=3.2e-12 dt=1e-13 max_dmdt=4.19e+04 #33 t=3.3e-12 dt=1e-13 max_dmdt=4.09e+04 #34 t=3.4e-12 dt=1e-13 max_dmdt=3.95e+04 #35 t=3.5e-12 dt=1e-13 max_dmdt=3.93e+04 #36 t=3.6e-12 dt=1e-13 max_dmdt=3.92e+04 #37 t=3.7e-12 dt=1e-13 max_dmdt=4e+04 #38 t=3.8e-12 dt=1e-13 max_dmdt=4.07e+04 #39 t=3.9e-12 dt=1e-13 max_dmdt=4.07e+04 #40 t=4e-12 dt=1e-13 max_dmdt=4.08e+04 #41 t=4.1e-12 dt=1e-13 max_dmdt=4.11e+04 #42 t=4.2e-12 dt=1e-13 max_dmdt=4.12e+04 #43 t=4.3e-12 dt=1e-13 max_dmdt=4.11e+04 #44 t=4.4e-12 dt=1e-13 max_dmdt=4.09e+04 #45 t=4.5e-12 dt=1e-13 max_dmdt=4.05e+04 #46 t=4.6e-12 dt=1e-13 max_dmdt=3.99e+04 #47 t=4.7e-12 dt=1e-13 max_dmdt=3.92e+04 #48 t=4.8e-12 dt=1e-13 max_dmdt=3.84e+04 #49 t=4.9e-12 dt=1e-13 max_dmdt=3.74e+04 #50 t=5e-12 dt=1e-13 max_dmdt=3.64e+04 #51 t=5.1e-12 dt=1e-13 max_dmdt=3.53e+04 #52 t=5.2e-12 dt=1e-13 max_dmdt=3.42e+04 #53 t=5.3e-12 dt=1e-13 max_dmdt=3.3e+04 #54 t=5.4e-12 dt=1e-13 max_dmdt=3.24e+04 #55 t=5.5e-12 dt=1e-13 max_dmdt=3.2e+04 #56 t=5.6e-12 dt=1e-13 max_dmdt=3.23e+04 #57 t=5.7e-12 dt=1e-13 max_dmdt=3.24e+04 #58 t=5.8e-12 dt=1e-13 max_dmdt=3.25e+04 #59 t=5.9e-12 dt=1e-13 max_dmdt=3.28e+04 #60 t=6e-12 dt=1e-13 max_dmdt=3.3e+04 #61 t=6.1e-12 dt=1e-13 max_dmdt=3.3e+04 #62 t=6.2e-12 dt=1e-13 max_dmdt=3.3e+04 #63 t=6.3e-12 dt=1e-13 max_dmdt=3.28e+04 #64 t=6.4e-12 dt=1e-13 max_dmdt=3.25e+04 #65 t=6.5e-12 dt=1e-13 max_dmdt=3.21e+04 #66 t=6.6e-12 dt=1e-13 max_dmdt=3.17e+04 #67 t=6.7e-12 dt=1e-13 max_dmdt=3.12e+04 #68 t=6.8e-12 dt=1e-13 max_dmdt=3.11e+04 #69 t=6.9e-12 dt=1e-13 max_dmdt=3.1e+04 #70 t=7e-12 dt=1e-13 max_dmdt=3.07e+04 #71 t=7.1e-12 dt=1e-13 max_dmdt=3.04e+04 #72 t=7.2e-12 dt=1e-13 max_dmdt=3.02e+04 #73 t=7.3e-12 dt=1e-13 max_dmdt=3.01e+04 #74 t=7.4e-12 dt=1e-13 max_dmdt=3.04e+04 #75 t=7.5e-12 dt=1e-13 max_dmdt=3.06e+04 #76 t=7.6e-12 dt=1e-13 max_dmdt=3.07e+04 #77 t=7.7e-12 dt=1e-13 max_dmdt=3.07e+04 #78 t=7.8e-12 dt=1e-13 max_dmdt=3.07e+04 #79 t=7.9e-12 dt=1e-13 max_dmdt=3.05e+04 #80 t=8e-12 dt=1e-13 max_dmdt=3.03e+04 #81 t=8.1e-12 dt=1e-13 max_dmdt=2.99e+04 #82 t=8.23e-12 dt=1.27e-13 max_dmdt=2.94e+04 #83 t=8.35e-12 dt=1.27e-13 max_dmdt=2.87e+04 #84 t=8.48e-12 dt=1.27e-13 max_dmdt=2.79e+04 #85 t=8.61e-12 dt=1.27e-13 max_dmdt=2.69e+04 #86 t=8.73e-12 dt=1.27e-13 max_dmdt=2.6e+04 #87 t=8.86e-12 dt=1.27e-13 max_dmdt=2.63e+04 #88 t=8.99e-12 dt=1.27e-13 max_dmdt=2.65e+04 #89 t=9.12e-12 dt=1.27e-13 max_dmdt=2.66e+04 #90 t=9.24e-12 dt=1.27e-13 max_dmdt=2.66e+04 #91 t=9.37e-12 dt=1.27e-13 max_dmdt=2.64e+04 #92 t=9.5e-12 dt=1.27e-13 max_dmdt=2.62e+04 #93 t=9.62e-12 dt=1.27e-13 max_dmdt=2.58e+04 #94 t=9.75e-12 dt=1.27e-13 max_dmdt=2.54e+04 #95 t=9.88e-12 dt=1.27e-13 max_dmdt=2.49e+04 #96 t=1e-11 dt=1.27e-13 max_dmdt=2.44e+04 #97 t=1.01e-11 dt=1.27e-13 max_dmdt=2.43e+04 #98 t=1.03e-11 dt=1.27e-13 max_dmdt=2.42e+04 #99 t=1.04e-11 dt=1.27e-13 max_dmdt=2.39e+04 #100 t=1.05e-11 dt=1.27e-13 max_dmdt=2.36e+04 #101 t=1.06e-11 dt=1.27e-13 max_dmdt=2.33e+04 #102 t=1.08e-11 dt=1.27e-13 max_dmdt=2.29e+04 #103 t=1.09e-11 dt=1.27e-13 max_dmdt=2.24e+04 #104 t=1.1e-11 dt=1.27e-13 max_dmdt=2.19e+04 #105 t=1.11e-11 dt=1.27e-13 max_dmdt=2.13e+04 #106 t=1.13e-11 dt=1.27e-13 max_dmdt=2.07e+04 #107 t=1.14e-11 dt=1.27e-13 max_dmdt=2.01e+04 #108 t=1.15e-11 dt=1.27e-13 max_dmdt=1.99e+04 #109 t=1.17e-11 dt=1.27e-13 max_dmdt=1.98e+04 #110 t=1.18e-11 dt=1.27e-13 max_dmdt=1.97e+04 #111 t=1.19e-11 dt=1.27e-13 max_dmdt=1.95e+04 #112 t=1.2e-11 dt=1.27e-13 max_dmdt=1.93e+04 #113 t=1.22e-11 dt=1.27e-13 max_dmdt=1.9e+04 #114 t=1.23e-11 dt=1.27e-13 max_dmdt=1.88e+04 #115 t=1.24e-11 dt=1.27e-13 max_dmdt=1.84e+04 #116 t=1.25e-11 dt=1.27e-13 max_dmdt=1.86e+04 #117 t=1.27e-11 dt=1.27e-13 max_dmdt=1.93e+04 #118 t=1.28e-11 dt=1.27e-13 max_dmdt=1.99e+04 #119 t=1.29e-11 dt=1.27e-13 max_dmdt=2.05e+04 #120 t=1.3e-11 dt=1.27e-13 max_dmdt=2.1e+04 #121 t=1.32e-11 dt=1.27e-13 max_dmdt=2.15e+04 #122 t=1.33e-11 dt=1.27e-13 max_dmdt=2.19e+04 #123 t=1.34e-11 dt=1.27e-13 max_dmdt=2.22e+04 #124 t=1.36e-11 dt=1.27e-13 max_dmdt=2.25e+04 #125 t=1.37e-11 dt=1.27e-13 max_dmdt=2.27e+04 #126 t=1.38e-11 dt=1.27e-13 max_dmdt=2.28e+04 #127 t=1.39e-11 dt=1.27e-13 max_dmdt=2.28e+04 #128 t=1.41e-11 dt=1.27e-13 max_dmdt=2.27e+04 #129 t=1.42e-11 dt=1.27e-13 max_dmdt=2.26e+04 #130 t=1.43e-11 dt=1.27e-13 max_dmdt=2.24e+04 #131 t=1.44e-11 dt=1.27e-13 max_dmdt=2.21e+04 #132 t=1.46e-11 dt=1.27e-13 max_dmdt=2.18e+04 #133 t=1.47e-11 dt=1.27e-13 max_dmdt=2.14e+04 #134 t=1.48e-11 dt=1.27e-13 max_dmdt=2.09e+04 #135 t=1.5e-11 dt=1.27e-13 max_dmdt=2.04e+04 #136 t=1.51e-11 dt=1.27e-13 max_dmdt=1.99e+04 #137 t=1.52e-11 dt=1.27e-13 max_dmdt=1.93e+04 #138 t=1.53e-11 dt=1.27e-13 max_dmdt=1.88e+04 #139 t=1.55e-11 dt=1.27e-13 max_dmdt=1.88e+04 #140 t=1.56e-11 dt=1.27e-13 max_dmdt=1.88e+04 #141 t=1.58e-11 dt=1.93e-13 max_dmdt=1.88e+04 #142 t=1.6e-11 dt=1.93e-13 max_dmdt=1.86e+04 #143 t=1.62e-11 dt=1.93e-13 max_dmdt=1.84e+04 #144 t=1.64e-11 dt=1.93e-13 max_dmdt=1.81e+04 #145 t=1.65e-11 dt=1.93e-13 max_dmdt=1.78e+04 #146 t=1.67e-11 dt=1.93e-13 max_dmdt=1.79e+04 #147 t=1.69e-11 dt=1.93e-13 max_dmdt=1.82e+04 #148 t=1.71e-11 dt=1.93e-13 max_dmdt=1.83e+04 #149 t=1.73e-11 dt=1.93e-13 max_dmdt=1.84e+04 #150 t=1.75e-11 dt=1.93e-13 max_dmdt=1.85e+04 #151 t=1.77e-11 dt=1.93e-13 max_dmdt=1.84e+04 #152 t=1.79e-11 dt=1.93e-13 max_dmdt=1.82e+04 #153 t=1.81e-11 dt=1.93e-13 max_dmdt=1.8e+04 #154 t=1.83e-11 dt=1.93e-13 max_dmdt=1.78e+04 #155 t=1.85e-11 dt=1.93e-13 max_dmdt=1.78e+04 #156 t=1.87e-11 dt=1.93e-13 max_dmdt=1.77e+04 #157 t=1.89e-11 dt=1.93e-13 max_dmdt=1.76e+04 #158 t=1.91e-11 dt=1.93e-13 max_dmdt=1.75e+04 #159 t=1.92e-11 dt=1.93e-13 max_dmdt=1.73e+04 #160 t=1.94e-11 dt=1.93e-13 max_dmdt=1.71e+04 #161 t=1.96e-11 dt=1.93e-13 max_dmdt=1.68e+04 #162 t=1.98e-11 dt=1.93e-13 max_dmdt=1.64e+04 #163 t=2e-11 dt=1.93e-13 max_dmdt=1.6e+04 #164 t=2.02e-11 dt=1.93e-13 max_dmdt=1.56e+04 #165 t=2.04e-11 dt=1.93e-13 max_dmdt=1.52e+04 #166 t=2.06e-11 dt=1.93e-13 max_dmdt=1.49e+04 #167 t=2.08e-11 dt=1.93e-13 max_dmdt=1.52e+04 #168 t=2.1e-11 dt=1.93e-13 max_dmdt=1.54e+04 #169 t=2.12e-11 dt=1.93e-13 max_dmdt=1.55e+04 #170 t=2.14e-11 dt=1.93e-13 max_dmdt=1.57e+04 #171 t=2.16e-11 dt=1.93e-13 max_dmdt=1.59e+04 #172 t=2.17e-11 dt=1.93e-13 max_dmdt=1.6e+04 #173 t=2.19e-11 dt=1.93e-13 max_dmdt=1.61e+04 #174 t=2.21e-11 dt=1.93e-13 max_dmdt=1.61e+04 #175 t=2.23e-11 dt=1.93e-13 max_dmdt=1.61e+04 #176 t=2.25e-11 dt=1.93e-13 max_dmdt=1.61e+04 #177 t=2.27e-11 dt=1.93e-13 max_dmdt=1.6e+04 #178 t=2.29e-11 dt=1.93e-13 max_dmdt=1.58e+04 #179 t=2.31e-11 dt=1.93e-13 max_dmdt=1.56e+04 #180 t=2.33e-11 dt=1.93e-13 max_dmdt=1.54e+04 #181 t=2.35e-11 dt=1.93e-13 max_dmdt=1.51e+04 #182 t=2.37e-11 dt=1.93e-13 max_dmdt=1.48e+04 #183 t=2.39e-11 dt=1.93e-13 max_dmdt=1.44e+04 #184 t=2.41e-11 dt=1.93e-13 max_dmdt=1.39e+04 #185 t=2.43e-11 dt=1.93e-13 max_dmdt=1.35e+04 #186 t=2.44e-11 dt=1.93e-13 max_dmdt=1.3e+04 #187 t=2.46e-11 dt=1.93e-13 max_dmdt=1.24e+04 #188 t=2.48e-11 dt=1.93e-13 max_dmdt=1.19e+04 #189 t=2.5e-11 dt=1.93e-13 max_dmdt=1.13e+04 #190 t=2.52e-11 dt=1.93e-13 max_dmdt=1.09e+04 #191 t=2.54e-11 dt=1.93e-13 max_dmdt=1.1e+04 #192 t=2.56e-11 dt=1.93e-13 max_dmdt=1.11e+04 #193 t=2.58e-11 dt=1.93e-13 max_dmdt=1.11e+04 #194 t=2.6e-11 dt=1.93e-13 max_dmdt=1.11e+04 #195 t=2.62e-11 dt=1.93e-13 max_dmdt=1.11e+04 #196 t=2.64e-11 dt=1.93e-13 max_dmdt=1.1e+04 #197 t=2.66e-11 dt=1.93e-13 max_dmdt=1.09e+04 #198 t=2.68e-11 dt=1.93e-13 max_dmdt=1.07e+04 #199 t=2.69e-11 dt=1.93e-13 max_dmdt=1.05e+04 #200 t=2.72e-11 dt=2.89e-13 max_dmdt=1.06e+04 #201 t=2.75e-11 dt=2.89e-13 max_dmdt=1.1e+04 #202 t=2.78e-11 dt=2.89e-13 max_dmdt=1.13e+04 #203 t=2.81e-11 dt=2.89e-13 max_dmdt=1.16e+04 #204 t=2.84e-11 dt=2.89e-13 max_dmdt=1.19e+04 #205 t=2.87e-11 dt=2.89e-13 max_dmdt=1.21e+04 #206 t=2.9e-11 dt=2.89e-13 max_dmdt=1.23e+04 #207 t=2.93e-11 dt=2.89e-13 max_dmdt=1.27e+04 #208 t=2.95e-11 dt=2.89e-13 max_dmdt=1.37e+04 #209 t=2.98e-11 dt=2.89e-13 max_dmdt=1.47e+04 #210 t=3.01e-11 dt=2.89e-13 max_dmdt=1.56e+04 #211 t=3.04e-11 dt=2.89e-13 max_dmdt=1.64e+04 #212 t=3.07e-11 dt=2.89e-13 max_dmdt=1.71e+04 #213 t=3.1e-11 dt=2.89e-13 max_dmdt=1.77e+04 #214 t=3.13e-11 dt=2.89e-13 max_dmdt=1.81e+04 #215 t=3.16e-11 dt=2.89e-13 max_dmdt=1.84e+04 #216 t=3.19e-11 dt=2.89e-13 max_dmdt=1.84e+04 #217 t=3.21e-11 dt=2.89e-13 max_dmdt=1.83e+04 #218 t=3.24e-11 dt=2.89e-13 max_dmdt=1.8e+04 #219 t=3.27e-11 dt=2.89e-13 max_dmdt=1.76e+04 #220 t=3.3e-11 dt=2.89e-13 max_dmdt=1.7e+04 #221 t=3.33e-11 dt=2.89e-13 max_dmdt=1.64e+04 #222 t=3.36e-11 dt=2.89e-13 max_dmdt=1.56e+04 #223 t=3.39e-11 dt=2.89e-13 max_dmdt=1.48e+04 #224 t=3.42e-11 dt=2.89e-13 max_dmdt=1.39e+04 #225 t=3.45e-11 dt=2.89e-13 max_dmdt=1.31e+04 #226 t=3.47e-11 dt=2.89e-13 max_dmdt=1.22e+04 #227 t=3.5e-11 dt=2.89e-13 max_dmdt=1.14e+04 #228 t=3.53e-11 dt=2.89e-13 max_dmdt=1.06e+04 #229 t=3.56e-11 dt=2.89e-13 max_dmdt=9.81e+03 #230 t=3.59e-11 dt=2.89e-13 max_dmdt=9.08e+03 #231 t=3.62e-11 dt=2.89e-13 max_dmdt=8.4e+03 #232 t=3.65e-11 dt=2.89e-13 max_dmdt=8.38e+03 #233 t=3.68e-11 dt=2.89e-13 max_dmdt=8.43e+03 #234 t=3.71e-11 dt=2.89e-13 max_dmdt=8.46e+03 #235 t=3.73e-11 dt=2.89e-13 max_dmdt=8.47e+03 #236 t=3.76e-11 dt=2.89e-13 max_dmdt=8.46e+03 #237 t=3.79e-11 dt=2.89e-13 max_dmdt=8.43e+03 #238 t=3.82e-11 dt=2.89e-13 max_dmdt=8.39e+03 #239 t=3.85e-11 dt=2.89e-13 max_dmdt=8.34e+03 #240 t=3.88e-11 dt=2.89e-13 max_dmdt=8.27e+03 #241 t=3.91e-11 dt=2.89e-13 max_dmdt=8.19e+03 #242 t=3.94e-11 dt=2.89e-13 max_dmdt=8.09e+03 #243 t=3.97e-11 dt=2.89e-13 max_dmdt=7.99e+03 #244 t=3.99e-11 dt=2.89e-13 max_dmdt=7.88e+03 #245 t=4.02e-11 dt=2.89e-13 max_dmdt=7.76e+03 #246 t=4.07e-11 dt=4.5e-13 max_dmdt=7.6e+03 #247 t=4.11e-11 dt=4.5e-13 max_dmdt=7.39e+03 #248 t=4.16e-11 dt=4.5e-13 max_dmdt=7.18e+03 #249 t=4.2e-11 dt=4.5e-13 max_dmdt=6.96e+03 #250 t=4.25e-11 dt=4.5e-13 max_dmdt=6.73e+03 #251 t=4.29e-11 dt=4.5e-13 max_dmdt=6.51e+03 #252 t=4.34e-11 dt=4.5e-13 max_dmdt=6.28e+03 #253 t=4.38e-11 dt=4.5e-13 max_dmdt=6.06e+03 #254 t=4.43e-11 dt=4.5e-13 max_dmdt=5.84e+03 #255 t=4.47e-11 dt=4.5e-13 max_dmdt=5.62e+03 #256 t=4.52e-11 dt=4.5e-13 max_dmdt=5.41e+03 #257 t=4.56e-11 dt=4.5e-13 max_dmdt=5.21e+03 #258 t=4.61e-11 dt=4.5e-13 max_dmdt=5.01e+03 #259 t=4.65e-11 dt=4.5e-13 max_dmdt=4.82e+03 #260 t=4.7e-11 dt=4.5e-13 max_dmdt=4.81e+03 #261 t=4.74e-11 dt=4.5e-13 max_dmdt=4.78e+03 #262 t=4.79e-11 dt=4.5e-13 max_dmdt=4.74e+03 #263 t=4.83e-11 dt=4.5e-13 max_dmdt=4.69e+03 #264 t=4.88e-11 dt=4.5e-13 max_dmdt=4.61e+03 #265 t=4.92e-11 dt=4.5e-13 max_dmdt=4.52e+03 #266 t=4.97e-11 dt=4.5e-13 max_dmdt=4.42e+03 #267 t=5.01e-11 dt=4.5e-13 max_dmdt=4.31e+03 #268 t=5.06e-11 dt=4.5e-13 max_dmdt=4.18e+03 #269 t=5.1e-11 dt=4.5e-13 max_dmdt=4.05e+03 #270 t=5.15e-11 dt=4.5e-13 max_dmdt=3.9e+03 #271 t=5.19e-11 dt=4.5e-13 max_dmdt=3.76e+03 #272 t=5.24e-11 dt=4.5e-13 max_dmdt=3.61e+03 #273 t=5.28e-11 dt=4.5e-13 max_dmdt=3.45e+03 #274 t=5.33e-11 dt=4.5e-13 max_dmdt=3.3e+03 #275 t=5.37e-11 dt=4.5e-13 max_dmdt=3.14e+03 #276 t=5.42e-11 dt=4.5e-13 max_dmdt=2.99e+03 #277 t=5.5e-11 dt=7.86e-13 max_dmdt=2.78e+03 #278 t=5.57e-11 dt=7.86e-13 max_dmdt=2.75e+03 #279 t=5.65e-11 dt=7.86e-13 max_dmdt=2.72e+03 #280 t=5.73e-11 dt=7.86e-13 max_dmdt=2.7e+03 #281 t=5.81e-11 dt=7.86e-13 max_dmdt=2.67e+03 #282 t=5.89e-11 dt=7.86e-13 max_dmdt=2.64e+03 #283 t=5.97e-11 dt=7.86e-13 max_dmdt=2.61e+03 #284 t=6.05e-11 dt=7.86e-13 max_dmdt=2.58e+03 #285 t=6.13e-11 dt=7.86e-13 max_dmdt=2.55e+03 #286 t=6.2e-11 dt=7.86e-13 max_dmdt=2.54e+03 #287 t=6.28e-11 dt=7.86e-13 max_dmdt=2.52e+03 #288 t=6.36e-11 dt=7.86e-13 max_dmdt=2.5e+03 #289 t=6.44e-11 dt=7.86e-13 max_dmdt=2.47e+03 #290 t=6.52e-11 dt=7.86e-13 max_dmdt=2.45e+03 #291 t=6.6e-11 dt=7.86e-13 max_dmdt=2.42e+03 #292 t=6.68e-11 dt=7.86e-13 max_dmdt=2.39e+03 #293 t=6.75e-11 dt=7.86e-13 max_dmdt=2.36e+03 #294 t=6.83e-11 dt=7.86e-13 max_dmdt=2.33e+03 #295 t=6.91e-11 dt=7.86e-13 max_dmdt=2.29e+03 #296 t=6.99e-11 dt=7.86e-13 max_dmdt=2.26e+03 #297 t=7.07e-11 dt=7.86e-13 max_dmdt=2.22e+03 #298 t=7.15e-11 dt=7.86e-13 max_dmdt=2.18e+03 #299 t=7.23e-11 dt=7.86e-13 max_dmdt=2.14e+03 #300 t=7.35e-11 dt=1.2e-12 max_dmdt=2.13e+03 #301 t=7.47e-11 dt=1.2e-12 max_dmdt=2.12e+03 #302 t=7.59e-11 dt=1.2e-12 max_dmdt=2.1e+03 #303 t=7.71e-11 dt=1.2e-12 max_dmdt=2.08e+03 #304 t=7.83e-11 dt=1.2e-12 max_dmdt=2.06e+03 #305 t=7.95e-11 dt=1.2e-12 max_dmdt=2.04e+03 #306 t=8.07e-11 dt=1.2e-12 max_dmdt=2.01e+03 #307 t=8.19e-11 dt=1.2e-12 max_dmdt=1.98e+03 #308 t=8.31e-11 dt=1.2e-12 max_dmdt=1.95e+03 #309 t=8.43e-11 dt=1.2e-12 max_dmdt=1.92e+03 #310 t=8.55e-11 dt=1.2e-12 max_dmdt=1.88e+03 #311 t=8.67e-11 dt=1.2e-12 max_dmdt=1.85e+03 #312 t=8.79e-11 dt=1.2e-12 max_dmdt=1.81e+03 #313 t=8.91e-11 dt=1.2e-12 max_dmdt=1.78e+03 #314 t=9.03e-11 dt=1.2e-12 max_dmdt=1.74e+03 #315 t=9.15e-11 dt=1.2e-12 max_dmdt=1.7e+03 #316 t=9.27e-11 dt=1.2e-12 max_dmdt=1.68e+03 #317 t=9.39e-11 dt=1.2e-12 max_dmdt=1.71e+03 #318 t=9.51e-11 dt=1.2e-12 max_dmdt=1.73e+03 #319 t=9.64e-11 dt=1.2e-12 max_dmdt=1.75e+03 #320 t=9.76e-11 dt=1.2e-12 max_dmdt=1.77e+03 #321 t=9.88e-11 dt=1.2e-12 max_dmdt=1.78e+03 #322 t=1e-10 dt=1.2e-12 max_dmdt=1.8e+03 #323 t=1.01e-10 dt=1.2e-12 max_dmdt=1.81e+03 #324 t=1.02e-10 dt=1.2e-12 max_dmdt=1.83e+03 #325 t=1.04e-10 dt=1.2e-12 max_dmdt=1.84e+03 #326 t=1.05e-10 dt=1.2e-12 max_dmdt=1.84e+03 #327 t=1.06e-10 dt=1.2e-12 max_dmdt=1.88e+03 #328 t=1.07e-10 dt=1.2e-12 max_dmdt=1.94e+03 #329 t=1.08e-10 dt=1.2e-12 max_dmdt=1.99e+03 #330 t=1.1e-10 dt=1.2e-12 max_dmdt=2.04e+03 #331 t=1.11e-10 dt=1.2e-12 max_dmdt=2.09e+03 #332 t=1.12e-10 dt=1.2e-12 max_dmdt=2.13e+03 #333 t=1.13e-10 dt=1.2e-12 max_dmdt=2.16e+03 #334 t=1.14e-10 dt=1.2e-12 max_dmdt=2.2e+03 #335 t=1.16e-10 dt=1.81e-12 max_dmdt=2.23e+03 #336 t=1.18e-10 dt=1.81e-12 max_dmdt=2.27e+03 #337 t=1.2e-10 dt=1.81e-12 max_dmdt=2.29e+03 #338 t=1.22e-10 dt=1.81e-12 max_dmdt=2.31e+03 #339 t=1.23e-10 dt=1.81e-12 max_dmdt=2.32e+03 #340 t=1.25e-10 dt=1.81e-12 max_dmdt=2.31e+03 #341 t=1.27e-10 dt=1.81e-12 max_dmdt=2.31e+03 #342 t=1.29e-10 dt=1.81e-12 max_dmdt=2.29e+03 #343 t=1.31e-10 dt=1.81e-12 max_dmdt=2.26e+03 #344 t=1.33e-10 dt=1.81e-12 max_dmdt=2.23e+03 #345 t=1.34e-10 dt=1.81e-12 max_dmdt=2.2e+03 #346 t=1.36e-10 dt=1.81e-12 max_dmdt=2.16e+03 #347 t=1.38e-10 dt=1.81e-12 max_dmdt=2.12e+03 #348 t=1.4e-10 dt=1.81e-12 max_dmdt=2.07e+03 #349 t=1.42e-10 dt=1.81e-12 max_dmdt=2.02e+03 #350 t=1.43e-10 dt=1.81e-12 max_dmdt=1.97e+03 #351 t=1.45e-10 dt=1.81e-12 max_dmdt=1.91e+03 #352 t=1.47e-10 dt=1.81e-12 max_dmdt=1.86e+03 #353 t=1.49e-10 dt=1.81e-12 max_dmdt=1.8e+03 #354 t=1.51e-10 dt=1.81e-12 max_dmdt=1.74e+03 #355 t=1.52e-10 dt=1.81e-12 max_dmdt=1.69e+03 #356 t=1.54e-10 dt=1.81e-12 max_dmdt=1.63e+03 #357 t=1.56e-10 dt=1.81e-12 max_dmdt=1.57e+03 #358 t=1.58e-10 dt=1.81e-12 max_dmdt=1.51e+03 #359 t=1.6e-10 dt=1.81e-12 max_dmdt=1.46e+03 #360 t=1.61e-10 dt=1.81e-12 max_dmdt=1.41e+03 #361 t=1.64e-10 dt=2.74e-12 max_dmdt=1.34e+03 #362 t=1.67e-10 dt=2.74e-12 max_dmdt=1.27e+03 #363 t=1.7e-10 dt=2.74e-12 max_dmdt=1.2e+03 #364 t=1.72e-10 dt=2.74e-12 max_dmdt=1.13e+03 #365 t=1.75e-10 dt=2.74e-12 max_dmdt=1.08e+03 #366 t=1.78e-10 dt=2.74e-12 max_dmdt=1.07e+03 #367 t=1.81e-10 dt=2.74e-12 max_dmdt=1.06e+03 #368 t=1.83e-10 dt=2.74e-12 max_dmdt=1.05e+03 #369 t=1.86e-10 dt=2.74e-12 max_dmdt=1.04e+03 #370 t=1.89e-10 dt=2.74e-12 max_dmdt=1.02e+03 #371 t=1.92e-10 dt=2.74e-12 max_dmdt=997 #372 t=1.94e-10 dt=2.74e-12 max_dmdt=975 #373 t=1.97e-10 dt=2.74e-12 max_dmdt=951 #374 t=2e-10 dt=2.74e-12 max_dmdt=929 #375 t=2.03e-10 dt=2.74e-12 max_dmdt=924 #376 t=2.05e-10 dt=2.74e-12 max_dmdt=917 #377 t=2.08e-10 dt=2.74e-12 max_dmdt=910 #378 t=2.11e-10 dt=2.74e-12 max_dmdt=901 #379 t=2.14e-10 dt=2.74e-12 max_dmdt=891 #380 t=2.16e-10 dt=2.74e-12 max_dmdt=880 #381 t=2.19e-10 dt=2.74e-12 max_dmdt=869 #382 t=2.22e-10 dt=2.74e-12 max_dmdt=871 #383 t=2.25e-10 dt=2.74e-12 max_dmdt=881 #384 t=2.27e-10 dt=2.74e-12 max_dmdt=901 #385 t=2.3e-10 dt=2.74e-12 max_dmdt=923 #386 t=2.33e-10 dt=2.74e-12 max_dmdt=943 #387 t=2.35e-10 dt=2.74e-12 max_dmdt=961 #388 t=2.38e-10 dt=2.74e-12 max_dmdt=977 #389 t=2.41e-10 dt=2.74e-12 max_dmdt=990 #390 t=2.44e-10 dt=2.74e-12 max_dmdt=1e+03 #391 t=2.46e-10 dt=2.74e-12 max_dmdt=1.01e+03 #392 t=2.49e-10 dt=2.74e-12 max_dmdt=1.02e+03 #393 t=2.52e-10 dt=2.74e-12 max_dmdt=1.02e+03 #394 t=2.55e-10 dt=2.74e-12 max_dmdt=1.02e+03 #395 t=2.57e-10 dt=2.74e-12 max_dmdt=1.02e+03 #396 t=2.6e-10 dt=2.74e-12 max_dmdt=1.01e+03 #397 t=2.63e-10 dt=2.74e-12 max_dmdt=1.01e+03 #398 t=2.66e-10 dt=2.74e-12 max_dmdt=998 #399 t=2.68e-10 dt=2.74e-12 max_dmdt=986 #400 t=2.71e-10 dt=2.74e-12 max_dmdt=973 #401 t=2.74e-10 dt=2.74e-12 max_dmdt=957 #402 t=2.77e-10 dt=2.74e-12 max_dmdt=940 #403 t=2.79e-10 dt=2.74e-12 max_dmdt=921 #404 t=2.82e-10 dt=2.74e-12 max_dmdt=900 #405 t=2.85e-10 dt=2.74e-12 max_dmdt=898 #406 t=2.88e-10 dt=2.74e-12 max_dmdt=903 #407 t=2.92e-10 dt=4.28e-12 max_dmdt=907 #408 t=2.96e-10 dt=4.28e-12 max_dmdt=909 #409 t=3e-10 dt=4.28e-12 max_dmdt=907 #410 t=3.05e-10 dt=4.28e-12 max_dmdt=902 #411 t=3.09e-10 dt=4.28e-12 max_dmdt=893 #412 t=3.13e-10 dt=4.28e-12 max_dmdt=881 #413 t=3.18e-10 dt=4.28e-12 max_dmdt=866 #414 t=3.22e-10 dt=4.28e-12 max_dmdt=848 #415 t=3.26e-10 dt=4.28e-12 max_dmdt=828 #416 t=3.3e-10 dt=4.28e-12 max_dmdt=806 #417 t=3.35e-10 dt=4.28e-12 max_dmdt=782 #418 t=3.39e-10 dt=4.28e-12 max_dmdt=757 #419 t=3.43e-10 dt=4.28e-12 max_dmdt=731 #420 t=3.48e-10 dt=4.28e-12 max_dmdt=705 #421 t=3.52e-10 dt=4.28e-12 max_dmdt=677 #422 t=3.56e-10 dt=4.28e-12 max_dmdt=661 #423 t=3.6e-10 dt=4.28e-12 max_dmdt=654 #424 t=3.65e-10 dt=4.28e-12 max_dmdt=646 #425 t=3.69e-10 dt=4.28e-12 max_dmdt=636 #426 t=3.73e-10 dt=4.28e-12 max_dmdt=625 #427 t=3.77e-10 dt=4.28e-12 max_dmdt=613 #428 t=3.82e-10 dt=4.28e-12 max_dmdt=600 #429 t=3.86e-10 dt=4.28e-12 max_dmdt=586 #430 t=3.9e-10 dt=4.28e-12 max_dmdt=571 #431 t=3.95e-10 dt=4.28e-12 max_dmdt=555 #432 t=3.99e-10 dt=4.28e-12 max_dmdt=539 #433 t=4.03e-10 dt=4.28e-12 max_dmdt=530 #434 t=4.07e-10 dt=4.28e-12 max_dmdt=525 #435 t=4.12e-10 dt=4.28e-12 max_dmdt=518 #436 t=4.16e-10 dt=4.28e-12 max_dmdt=511 #437 t=4.2e-10 dt=4.28e-12 max_dmdt=504 #438 t=4.25e-10 dt=4.28e-12 max_dmdt=497 #439 t=4.29e-10 dt=4.28e-12 max_dmdt=490 #440 t=4.33e-10 dt=4.28e-12 max_dmdt=486 #441 t=4.37e-10 dt=4.28e-12 max_dmdt=484 #442 t=4.42e-10 dt=4.28e-12 max_dmdt=482 #443 t=4.46e-10 dt=4.28e-12 max_dmdt=479 #444 t=4.5e-10 dt=4.28e-12 max_dmdt=476 #445 t=4.54e-10 dt=4.28e-12 max_dmdt=473 #446 t=4.59e-10 dt=4.28e-12 max_dmdt=469 #447 t=4.63e-10 dt=4.28e-12 max_dmdt=472 #448 t=4.67e-10 dt=4.28e-12 max_dmdt=476 #449 t=4.72e-10 dt=4.28e-12 max_dmdt=479 #450 t=4.78e-10 dt=6.52e-12 max_dmdt=484 #451 t=4.85e-10 dt=6.52e-12 max_dmdt=488 #452 t=4.91e-10 dt=6.52e-12 max_dmdt=491 #453 t=4.98e-10 dt=6.52e-12 max_dmdt=494 #454 t=5.04e-10 dt=6.52e-12 max_dmdt=496 #455 t=5.11e-10 dt=6.52e-12 max_dmdt=497 #456 t=5.17e-10 dt=6.52e-12 max_dmdt=498 #457 t=5.24e-10 dt=6.52e-12 max_dmdt=498 #458 t=5.3e-10 dt=6.52e-12 max_dmdt=496 #459 t=5.37e-10 dt=6.52e-12 max_dmdt=495 #460 t=5.43e-10 dt=6.52e-12 max_dmdt=492 #461 t=5.5e-10 dt=6.52e-12 max_dmdt=489 #462 t=5.56e-10 dt=6.52e-12 max_dmdt=485 #463 t=5.63e-10 dt=6.52e-12 max_dmdt=480 #464 t=5.69e-10 dt=6.52e-12 max_dmdt=475 #465 t=5.76e-10 dt=6.52e-12 max_dmdt=469 #466 t=5.82e-10 dt=6.52e-12 max_dmdt=462 #467 t=5.89e-10 dt=6.52e-12 max_dmdt=454 #468 t=5.96e-10 dt=6.52e-12 max_dmdt=447 #469 t=6.02e-10 dt=6.52e-12 max_dmdt=438 #470 t=6.09e-10 dt=6.52e-12 max_dmdt=433 #471 t=6.15e-10 dt=6.52e-12 max_dmdt=433 #472 t=6.22e-10 dt=6.52e-12 max_dmdt=432 #473 t=6.28e-10 dt=6.52e-12 max_dmdt=430 #474 t=6.35e-10 dt=6.52e-12 max_dmdt=428 #475 t=6.41e-10 dt=6.52e-12 max_dmdt=425 #476 t=6.48e-10 dt=6.52e-12 max_dmdt=422 #477 t=6.54e-10 dt=6.52e-12 max_dmdt=419 #478 t=6.61e-10 dt=6.52e-12 max_dmdt=415 #479 t=6.67e-10 dt=6.52e-12 max_dmdt=412 #480 t=6.74e-10 dt=6.52e-12 max_dmdt=412 #481 t=6.8e-10 dt=6.52e-12 max_dmdt=412 #482 t=6.87e-10 dt=6.52e-12 max_dmdt=412 #483 t=6.93e-10 dt=6.52e-12 max_dmdt=411 #484 t=7e-10 dt=6.52e-12 max_dmdt=410 #485 t=7.06e-10 dt=6.52e-12 max_dmdt=408 #486 t=7.13e-10 dt=6.52e-12 max_dmdt=406 #487 t=7.19e-10 dt=6.52e-12 max_dmdt=403 #488 t=7.26e-10 dt=6.52e-12 max_dmdt=400 #489 t=7.32e-10 dt=6.52e-12 max_dmdt=396 #490 t=7.39e-10 dt=6.52e-12 max_dmdt=392 #491 t=7.46e-10 dt=6.52e-12 max_dmdt=387 #492 t=7.52e-10 dt=6.52e-12 max_dmdt=382 #493 t=7.59e-10 dt=6.52e-12 max_dmdt=377 #494 t=7.65e-10 dt=6.52e-12 max_dmdt=371 #495 t=7.72e-10 dt=6.52e-12 max_dmdt=365 #496 t=7.78e-10 dt=6.52e-12 max_dmdt=362 #497 t=7.85e-10 dt=6.52e-12 max_dmdt=359 #498 t=7.91e-10 dt=6.52e-12 max_dmdt=356 #499 t=7.98e-10 dt=6.52e-12 max_dmdt=353 #500 t=8.04e-10 dt=6.52e-12 max_dmdt=349 #501 t=8.11e-10 dt=6.52e-12 max_dmdt=345 #502 t=8.17e-10 dt=6.52e-12 max_dmdt=341 #503 t=8.24e-10 dt=6.52e-12 max_dmdt=336 #504 t=8.3e-10 dt=6.52e-12 max_dmdt=331 #505 t=8.37e-10 dt=6.52e-12 max_dmdt=326 #506 t=8.43e-10 dt=6.52e-12 max_dmdt=321 #507 t=8.5e-10 dt=6.52e-12 max_dmdt=315 #508 t=8.56e-10 dt=6.52e-12 max_dmdt=309 #509 t=8.63e-10 dt=6.52e-12 max_dmdt=304 #510 t=8.69e-10 dt=6.52e-12 max_dmdt=298 #511 t=8.76e-10 dt=6.52e-12 max_dmdt=292 #512 t=8.82e-10 dt=6.52e-12 max_dmdt=286 #513 t=8.89e-10 dt=6.52e-12 max_dmdt=279 #514 t=8.96e-10 dt=6.52e-12 max_dmdt=274 #515 t=9.02e-10 dt=6.52e-12 max_dmdt=271 #516 t=9.09e-10 dt=6.52e-12 max_dmdt=268 #517 t=9.15e-10 dt=6.52e-12 max_dmdt=264 #518 t=9.22e-10 dt=6.52e-12 max_dmdt=261 #519 t=9.28e-10 dt=6.52e-12 max_dmdt=258 #520 t=9.35e-10 dt=6.52e-12 max_dmdt=254 #521 t=9.41e-10 dt=6.52e-12 max_dmdt=251 #522 t=9.48e-10 dt=6.52e-12 max_dmdt=251 #523 t=9.54e-10 dt=6.52e-12 max_dmdt=251 #524 t=9.61e-10 dt=6.52e-12 max_dmdt=251 #525 t=9.67e-10 dt=6.52e-12 max_dmdt=251 #526 t=9.74e-10 dt=6.52e-12 max_dmdt=251 #527 t=9.8e-10 dt=6.52e-12 max_dmdt=250 #528 t=9.87e-10 dt=6.52e-12 max_dmdt=249 #529 t=9.93e-10 dt=6.52e-12 max_dmdt=248 #530 t=1e-09 dt=6.52e-12 max_dmdt=247 #531 t=1.01e-09 dt=6.52e-12 max_dmdt=246 #532 t=1.01e-09 dt=6.52e-12 max_dmdt=244 #533 t=1.02e-09 dt=9.8e-12 max_dmdt=244 #534 t=1.03e-09 dt=9.8e-12 max_dmdt=243 #535 t=1.04e-09 dt=9.8e-12 max_dmdt=242 #536 t=1.05e-09 dt=9.8e-12 max_dmdt=240 #537 t=1.06e-09 dt=9.8e-12 max_dmdt=238 #538 t=1.07e-09 dt=9.8e-12 max_dmdt=236 #539 t=1.08e-09 dt=9.8e-12 max_dmdt=235 #540 t=1.09e-09 dt=9.8e-12 max_dmdt=234 #541 t=1.1e-09 dt=9.8e-12 max_dmdt=236 #542 t=1.11e-09 dt=9.8e-12 max_dmdt=239 #543 t=1.12e-09 dt=9.8e-12 max_dmdt=241 #544 t=1.13e-09 dt=9.8e-12 max_dmdt=243 #545 t=1.14e-09 dt=9.8e-12 max_dmdt=245 #546 t=1.15e-09 dt=9.8e-12 max_dmdt=246 #547 t=1.16e-09 dt=9.8e-12 max_dmdt=247 #548 t=1.17e-09 dt=9.8e-12 max_dmdt=248 #549 t=1.18e-09 dt=9.8e-12 max_dmdt=248 #550 t=1.19e-09 dt=9.8e-12 max_dmdt=248 #551 t=1.2e-09 dt=9.8e-12 max_dmdt=247 #552 t=1.21e-09 dt=9.8e-12 max_dmdt=246 #553 t=1.22e-09 dt=9.8e-12 max_dmdt=246 #554 t=1.23e-09 dt=9.8e-12 max_dmdt=245 #555 t=1.24e-09 dt=9.8e-12 max_dmdt=243 #556 t=1.25e-09 dt=9.8e-12 max_dmdt=242 #557 t=1.26e-09 dt=9.8e-12 max_dmdt=240 #558 t=1.27e-09 dt=9.8e-12 max_dmdt=237 #559 t=1.28e-09 dt=9.8e-12 max_dmdt=238 #560 t=1.29e-09 dt=9.8e-12 max_dmdt=242 #561 t=1.3e-09 dt=9.8e-12 max_dmdt=246 #562 t=1.31e-09 dt=9.8e-12 max_dmdt=250 #563 t=1.32e-09 dt=9.8e-12 max_dmdt=253 #564 t=1.33e-09 dt=9.8e-12 max_dmdt=256 #565 t=1.34e-09 dt=9.8e-12 max_dmdt=258 #566 t=1.35e-09 dt=9.8e-12 max_dmdt=260 #567 t=1.36e-09 dt=9.8e-12 max_dmdt=262 #568 t=1.37e-09 dt=9.8e-12 max_dmdt=263 #569 t=1.38e-09 dt=9.8e-12 max_dmdt=264 #570 t=1.39e-09 dt=9.8e-12 max_dmdt=264 #571 t=1.4e-09 dt=9.8e-12 max_dmdt=264 #572 t=1.41e-09 dt=9.8e-12 max_dmdt=263 #573 t=1.41e-09 dt=9.8e-12 max_dmdt=262 #574 t=1.42e-09 dt=9.8e-12 max_dmdt=261 #575 t=1.43e-09 dt=9.8e-12 max_dmdt=261 #576 t=1.44e-09 dt=9.8e-12 max_dmdt=261 #577 t=1.45e-09 dt=9.8e-12 max_dmdt=260 #578 t=1.46e-09 dt=9.8e-12 max_dmdt=259 #579 t=1.47e-09 dt=9.8e-12 max_dmdt=258 #580 t=1.48e-09 dt=9.8e-12 max_dmdt=257 #581 t=1.49e-09 dt=9.8e-12 max_dmdt=255 #582 t=1.5e-09 dt=9.8e-12 max_dmdt=252 #583 t=1.51e-09 dt=9.8e-12 max_dmdt=250 #584 t=1.52e-09 dt=9.8e-12 max_dmdt=247 #585 t=1.53e-09 dt=9.8e-12 max_dmdt=244 #586 t=1.54e-09 dt=9.8e-12 max_dmdt=240 #587 t=1.55e-09 dt=9.8e-12 max_dmdt=236 #588 t=1.56e-09 dt=9.8e-12 max_dmdt=233 #589 t=1.57e-09 dt=9.8e-12 max_dmdt=228 #590 t=1.59e-09 dt=1.48e-11 max_dmdt=223 #591 t=1.6e-09 dt=1.48e-11 max_dmdt=216 #592 t=1.62e-09 dt=1.48e-11 max_dmdt=212 #593 t=1.63e-09 dt=1.48e-11 max_dmdt=211 #594 t=1.65e-09 dt=1.48e-11 max_dmdt=210 #595 t=1.66e-09 dt=1.48e-11 max_dmdt=208 #596 t=1.68e-09 dt=1.48e-11 max_dmdt=206 #597 t=1.69e-09 dt=1.48e-11 max_dmdt=203 #598 t=1.7e-09 dt=1.48e-11 max_dmdt=200 #599 t=1.72e-09 dt=1.48e-11 max_dmdt=196 #600 t=1.73e-09 dt=1.48e-11 max_dmdt=192 #601 t=1.75e-09 dt=1.48e-11 max_dmdt=188 #602 t=1.76e-09 dt=1.48e-11 max_dmdt=184 #603 t=1.78e-09 dt=1.48e-11 max_dmdt=181 #604 t=1.79e-09 dt=1.48e-11 max_dmdt=181 #605 t=1.81e-09 dt=1.48e-11 max_dmdt=180 #606 t=1.82e-09 dt=1.48e-11 max_dmdt=180 #607 t=1.84e-09 dt=1.48e-11 max_dmdt=178 #608 t=1.85e-09 dt=1.48e-11 max_dmdt=177 #609 t=1.87e-09 dt=1.48e-11 max_dmdt=176 #610 t=1.88e-09 dt=1.48e-11 max_dmdt=189 #611 t=1.9e-09 dt=1.48e-11 max_dmdt=208 #612 t=1.91e-09 dt=1.48e-11 max_dmdt=231 #613 t=1.92e-09 dt=1.05e-11 max_dmdt=254 #614 t=1.93e-09 dt=1.05e-11 max_dmdt=276 #615 t=1.94e-09 dt=1.05e-11 max_dmdt=301 #616 t=1.95e-09 dt=1.05e-11 max_dmdt=329 #617 t=1.96e-09 dt=1.05e-11 max_dmdt=361 #618 t=1.97e-09 dt=7.61e-12 max_dmdt=392 #619 t=1.98e-09 dt=7.61e-12 max_dmdt=420 #620 t=1.99e-09 dt=7.61e-12 max_dmdt=451 #621 t=1.99e-09 dt=7.61e-12 max_dmdt=484 #622 t=2e-09 dt=7.61e-12 max_dmdt=518 #623 t=2.01e-09 dt=7.61e-12 max_dmdt=553 #624 t=2.01e-09 dt=5.31e-12 max_dmdt=581 #625 t=2.02e-09 dt=5.31e-12 max_dmdt=603 #626 t=2.03e-09 dt=5.31e-12 max_dmdt=622 #627 t=2.03e-09 dt=5.31e-12 max_dmdt=641 #628 t=2.04e-09 dt=5.31e-12 max_dmdt=681 #629 t=2.04e-09 dt=5.31e-12 max_dmdt=728 #630 t=2.05e-09 dt=5.31e-12 max_dmdt=804 #631 t=2.05e-09 dt=5.31e-12 max_dmdt=882 #632 t=2.06e-09 dt=3.87e-12 max_dmdt=947 #633 t=2.06e-09 dt=3.87e-12 max_dmdt=1e+03 #634 t=2.06e-09 dt=3.87e-12 max_dmdt=1.05e+03 #635 t=2.07e-09 dt=3.87e-12 max_dmdt=1.09e+03 #636 t=2.07e-09 dt=3.87e-12 max_dmdt=1.13e+03 #637 t=2.08e-09 dt=3.87e-12 max_dmdt=1.16e+03 #638 t=2.08e-09 dt=3.87e-12 max_dmdt=1.18e+03 #639 t=2.08e-09 dt=3.87e-12 max_dmdt=1.19e+03 #640 t=2.09e-09 dt=3.87e-12 max_dmdt=1.19e+03 #641 t=2.09e-09 dt=3.87e-12 max_dmdt=1.18e+03 #642 t=2.09e-09 dt=3.87e-12 max_dmdt=1.16e+03 #643 t=2.1e-09 dt=3.87e-12 max_dmdt=1.14e+03 #644 t=2.1e-09 dt=3.87e-12 max_dmdt=1.11e+03 #645 t=2.11e-09 dt=3.87e-12 max_dmdt=1.07e+03 #646 t=2.11e-09 dt=3.87e-12 max_dmdt=1.03e+03 #647 t=2.11e-09 dt=3.87e-12 max_dmdt=987 #648 t=2.12e-09 dt=3.87e-12 max_dmdt=942 #649 t=2.12e-09 dt=3.87e-12 max_dmdt=895 #650 t=2.13e-09 dt=3.87e-12 max_dmdt=849 #651 t=2.13e-09 dt=3.87e-12 max_dmdt=803 #652 t=2.13e-09 dt=3.87e-12 max_dmdt=790 #653 t=2.14e-09 dt=3.87e-12 max_dmdt=776 #654 t=2.14e-09 dt=3.87e-12 max_dmdt=760 #655 t=2.15e-09 dt=3.87e-12 max_dmdt=742 #656 t=2.15e-09 dt=3.87e-12 max_dmdt=722 #657 t=2.15e-09 dt=3.87e-12 max_dmdt=701 #658 t=2.16e-09 dt=3.87e-12 max_dmdt=680 #659 t=2.16e-09 dt=3.87e-12 max_dmdt=657 #660 t=2.16e-09 dt=3.87e-12 max_dmdt=635 #661 t=2.17e-09 dt=3.87e-12 max_dmdt=613 #662 t=2.17e-09 dt=3.87e-12 max_dmdt=591 #663 t=2.18e-09 dt=3.87e-12 max_dmdt=569 #664 t=2.18e-09 dt=3.87e-12 max_dmdt=547 #665 t=2.18e-09 dt=3.87e-12 max_dmdt=526 #666 t=2.19e-09 dt=3.87e-12 max_dmdt=506 #667 t=2.19e-09 dt=3.87e-12 max_dmdt=486 #668 t=2.2e-09 dt=3.87e-12 max_dmdt=467 #669 t=2.2e-09 dt=3.87e-12 max_dmdt=448 #670 t=2.2e-09 dt=3.87e-12 max_dmdt=430 #671 t=2.21e-09 dt=3.87e-12 max_dmdt=413 #672 t=2.21e-09 dt=3.87e-12 max_dmdt=401 #673 t=2.22e-09 dt=6.42e-12 max_dmdt=386 #674 t=2.22e-09 dt=6.42e-12 max_dmdt=369 #675 t=2.23e-09 dt=6.42e-12 max_dmdt=352 #676 t=2.24e-09 dt=6.42e-12 max_dmdt=335 #677 t=2.24e-09 dt=6.42e-12 max_dmdt=320 #678 t=2.25e-09 dt=6.42e-12 max_dmdt=305 #679 t=2.26e-09 dt=6.42e-12 max_dmdt=291 #680 t=2.26e-09 dt=6.42e-12 max_dmdt=277 #681 t=2.27e-09 dt=6.42e-12 max_dmdt=264 #682 t=2.28e-09 dt=6.42e-12 max_dmdt=252 #683 t=2.28e-09 dt=6.42e-12 max_dmdt=244 #684 t=2.29e-09 dt=6.42e-12 max_dmdt=237 #685 t=2.29e-09 dt=6.42e-12 max_dmdt=229 #686 t=2.3e-09 dt=6.42e-12 max_dmdt=222 #687 t=2.31e-09 dt=6.42e-12 max_dmdt=217 #688 t=2.31e-09 dt=6.42e-12 max_dmdt=212 #689 t=2.32e-09 dt=6.42e-12 max_dmdt=207 #690 t=2.33e-09 dt=6.42e-12 max_dmdt=202 #691 t=2.33e-09 dt=6.42e-12 max_dmdt=197 #692 t=2.34e-09 dt=6.42e-12 max_dmdt=193 #693 t=2.35e-09 dt=6.42e-12 max_dmdt=188 #694 t=2.35e-09 dt=6.42e-12 max_dmdt=183 #695 t=2.36e-09 dt=6.42e-12 max_dmdt=178 #696 t=2.36e-09 dt=6.42e-12 max_dmdt=174 #697 t=2.38e-09 dt=1.04e-11 max_dmdt=168 #698 t=2.39e-09 dt=1.04e-11 max_dmdt=161 #699 t=2.4e-09 dt=1.04e-11 max_dmdt=154 #700 t=2.41e-09 dt=1.04e-11 max_dmdt=148 #701 t=2.42e-09 dt=1.04e-11 max_dmdt=141 #702 t=2.43e-09 dt=1.04e-11 max_dmdt=135 #703 t=2.44e-09 dt=1.04e-11 max_dmdt=132 #704 t=2.45e-09 dt=1.04e-11 max_dmdt=131 #705 t=2.46e-09 dt=1.04e-11 max_dmdt=130 #706 t=2.47e-09 dt=1.04e-11 max_dmdt=129 #707 t=2.48e-09 dt=1.04e-11 max_dmdt=128 #708 t=2.49e-09 dt=1.04e-11 max_dmdt=127 #709 t=2.5e-09 dt=1.04e-11 max_dmdt=126 #710 t=2.51e-09 dt=1.04e-11 max_dmdt=125 #711 t=2.52e-09 dt=1.04e-11 max_dmdt=124 #712 t=2.53e-09 dt=1.04e-11 max_dmdt=123 #713 t=2.54e-09 dt=1.04e-11 max_dmdt=121 #714 t=2.55e-09 dt=1.04e-11 max_dmdt=120 #715 t=2.56e-09 dt=1.04e-11 max_dmdt=119 #716 t=2.57e-09 dt=1.04e-11 max_dmdt=117 #717 t=2.58e-09 dt=1.04e-11 max_dmdt=116 #718 t=2.59e-09 dt=1.04e-11 max_dmdt=114 #719 t=2.6e-09 dt=1.04e-11 max_dmdt=113 #720 t=2.61e-09 dt=1.04e-11 max_dmdt=111 #721 t=2.62e-09 dt=1.04e-11 max_dmdt=110 #722 t=2.63e-09 dt=1.04e-11 max_dmdt=108 #723 t=2.64e-09 dt=1.04e-11 max_dmdt=107 #724 t=2.66e-09 dt=1.58e-11 max_dmdt=105 #725 t=2.68e-09 dt=1.58e-11 max_dmdt=102 #726 t=2.69e-09 dt=1.58e-11 max_dmdt=100 #727 t=2.71e-09 dt=1.58e-11 max_dmdt=97.8 #728 t=2.72e-09 dt=1.58e-11 max_dmdt=95.5 #729 t=2.74e-09 dt=1.58e-11 max_dmdt=93.2 #730 t=2.76e-09 dt=1.58e-11 max_dmdt=90.9 #731 t=2.77e-09 dt=1.58e-11 max_dmdt=89.8 #732 t=2.79e-09 dt=1.58e-11 max_dmdt=88.7 #733 t=2.8e-09 dt=1.58e-11 max_dmdt=88.4 #734 t=2.82e-09 dt=1.58e-11 max_dmdt=88 #735 t=2.83e-09 dt=1.58e-11 max_dmdt=87.6 #736 t=2.85e-09 dt=1.58e-11 max_dmdt=87.1 #737 t=2.87e-09 dt=1.58e-11 max_dmdt=86.6 #738 t=2.88e-09 dt=1.58e-11 max_dmdt=86.1 #739 t=2.9e-09 dt=1.58e-11 max_dmdt=85.6 #740 t=2.91e-09 dt=1.58e-11 max_dmdt=85 #741 t=2.93e-09 dt=1.58e-11 max_dmdt=84.4 #742 t=2.94e-09 dt=1.58e-11 max_dmdt=83.8 #743 t=2.96e-09 dt=1.58e-11 max_dmdt=83.2 #744 t=2.98e-09 dt=1.58e-11 max_dmdt=82.5 #745 t=2.99e-09 dt=1.58e-11 max_dmdt=81.9 #746 t=3.01e-09 dt=1.58e-11 max_dmdt=81.2 #747 t=3.02e-09 dt=1.58e-11 max_dmdt=80.5 #748 t=3.04e-09 dt=1.58e-11 max_dmdt=79.7 #749 t=3.06e-09 dt=1.58e-11 max_dmdt=79.3 #750 t=3.07e-09 dt=1.58e-11 max_dmdt=79.6 #751 t=3.09e-09 dt=1.58e-11 max_dmdt=79.9 #752 t=3.1e-09 dt=1.58e-11 max_dmdt=80.1 #753 t=3.13e-09 dt=2.39e-11 max_dmdt=80.3 #754 t=3.15e-09 dt=2.39e-11 max_dmdt=80.6 #755 t=3.17e-09 dt=2.39e-11 max_dmdt=80.8 #756 t=3.2e-09 dt=2.39e-11 max_dmdt=81 #757 t=3.22e-09 dt=2.39e-11 max_dmdt=81.1 #758 t=3.25e-09 dt=2.39e-11 max_dmdt=81.2 #759 t=3.27e-09 dt=2.39e-11 max_dmdt=81.3 #760 t=3.31e-09 dt=3.67e-11 max_dmdt=81.3 #761 t=3.34e-09 dt=3.67e-11 max_dmdt=81.3 #762 t=3.38e-09 dt=3.67e-11 max_dmdt=81.1 #763 t=3.42e-09 dt=3.67e-11 max_dmdt=80.9 #764 t=3.45e-09 dt=3.67e-11 max_dmdt=80.6 #765 t=3.49e-09 dt=3.67e-11 max_dmdt=80.3 #766 t=3.53e-09 dt=3.67e-11 max_dmdt=79.9 #767 t=3.56e-09 dt=3.67e-11 max_dmdt=79.4 #768 t=3.6e-09 dt=3.67e-11 max_dmdt=78.9 #769 t=3.64e-09 dt=3.67e-11 max_dmdt=78.3 #770 t=3.67e-09 dt=3.67e-11 max_dmdt=77.7 #771 t=3.71e-09 dt=3.67e-11 max_dmdt=77 #772 t=3.75e-09 dt=3.67e-11 max_dmdt=76.3 #773 t=3.78e-09 dt=3.67e-11 max_dmdt=75.5 #774 t=3.82e-09 dt=3.67e-11 max_dmdt=76.7 #775 t=3.86e-09 dt=3.67e-11 max_dmdt=78 #776 t=3.89e-09 dt=3.67e-11 max_dmdt=79.3 #777 t=3.93e-09 dt=3.67e-11 max_dmdt=80.6 #778 t=3.97e-09 dt=3.67e-11 max_dmdt=81.9 #779 t=4e-09 dt=3.67e-11 max_dmdt=83.2 #780 t=4.04e-09 dt=3.67e-11 max_dmdt=84.5 #781 t=4.08e-09 dt=3.67e-11 max_dmdt=85.8 #782 t=4.11e-09 dt=3.67e-11 max_dmdt=87 #783 t=4.15e-09 dt=3.67e-11 max_dmdt=88.3 #784 t=4.19e-09 dt=3.67e-11 max_dmdt=89.5 #785 t=4.22e-09 dt=3.67e-11 max_dmdt=90.7 #786 t=4.26e-09 dt=3.67e-11 max_dmdt=91.9 #787 t=4.3e-09 dt=3.67e-11 max_dmdt=93 #788 t=4.33e-09 dt=3.67e-11 max_dmdt=94.1 #789 t=4.37e-09 dt=3.67e-11 max_dmdt=95.1 #790 t=4.41e-09 dt=3.67e-11 max_dmdt=96 #791 t=4.44e-09 dt=3.67e-11 max_dmdt=96.8 #792 t=4.48e-09 dt=3.67e-11 max_dmdt=99.1 #793 t=4.52e-09 dt=3.67e-11 max_dmdt=103 #794 t=4.55e-09 dt=3.67e-11 max_dmdt=108 #795 t=4.59e-09 dt=3.67e-11 max_dmdt=112 #796 t=4.63e-09 dt=3.67e-11 max_dmdt=116 #797 t=4.66e-09 dt=3.67e-11 max_dmdt=120 #798 t=4.7e-09 dt=3.67e-11 max_dmdt=124 #799 t=4.74e-09 dt=3.67e-11 max_dmdt=127 #800 t=4.77e-09 dt=3.67e-11 max_dmdt=130 #801 t=4.81e-09 dt=3.67e-11 max_dmdt=132 #802 t=4.85e-09 dt=3.67e-11 max_dmdt=133 #803 t=4.87e-09 dt=2.64e-11 max_dmdt=134 #804 t=4.9e-09 dt=2.64e-11 max_dmdt=133 #805 t=4.93e-09 dt=2.64e-11 max_dmdt=132 #806 t=4.95e-09 dt=2.64e-11 max_dmdt=135 #807 t=4.98e-09 dt=2.64e-11 max_dmdt=138 #808 t=5.01e-09 dt=2.64e-11 max_dmdt=139 #809 t=5.03e-09 dt=2.64e-11 max_dmdt=140 #810 t=5.06e-09 dt=2.64e-11 max_dmdt=140 #811 t=5.09e-09 dt=2.64e-11 max_dmdt=140 #812 t=5.11e-09 dt=2.64e-11 max_dmdt=140 #813 t=5.14e-09 dt=2.64e-11 max_dmdt=139 #814 t=5.16e-09 dt=2.64e-11 max_dmdt=137 #815 t=5.19e-09 dt=2.64e-11 max_dmdt=135 #816 t=5.22e-09 dt=2.64e-11 max_dmdt=132 #817 t=5.24e-09 dt=2.64e-11 max_dmdt=128 #818 t=5.27e-09 dt=2.64e-11 max_dmdt=124 #819 t=5.3e-09 dt=2.64e-11 max_dmdt=122 #820 t=5.32e-09 dt=2.64e-11 max_dmdt=122 #821 t=5.35e-09 dt=2.64e-11 max_dmdt=121 #822 t=5.38e-09 dt=2.64e-11 max_dmdt=119 #823 t=5.4e-09 dt=2.64e-11 max_dmdt=117 #824 t=5.43e-09 dt=2.64e-11 max_dmdt=115 #825 t=5.46e-09 dt=2.64e-11 max_dmdt=112 #826 t=5.48e-09 dt=2.64e-11 max_dmdt=109 #827 t=5.51e-09 dt=2.64e-11 max_dmdt=106 #828 t=5.53e-09 dt=2.64e-11 max_dmdt=102 #829 t=5.56e-09 dt=2.64e-11 max_dmdt=99 #830 t=5.59e-09 dt=2.64e-11 max_dmdt=97.2 #831 t=5.61e-09 dt=2.64e-11 max_dmdt=96.6 #832 t=5.64e-09 dt=2.64e-11 max_dmdt=97.5 #833 t=5.67e-09 dt=2.64e-11 max_dmdt=98.3 #834 t=5.69e-09 dt=2.64e-11 max_dmdt=99 #835 t=5.72e-09 dt=2.64e-11 max_dmdt=99.5 #836 t=5.75e-09 dt=2.64e-11 max_dmdt=100 #837 t=5.77e-09 dt=2.64e-11 max_dmdt=100 #838 t=5.8e-09 dt=2.64e-11 max_dmdt=100 #839 t=5.83e-09 dt=2.64e-11 max_dmdt=101 #840 t=5.85e-09 dt=2.64e-11 max_dmdt=101 #841 t=5.88e-09 dt=2.64e-11 max_dmdt=100 #842 t=5.9e-09 dt=2.64e-11 max_dmdt=100 #843 t=5.93e-09 dt=2.64e-11 max_dmdt=99.9 #844 t=5.96e-09 dt=2.64e-11 max_dmdt=99.8 #845 t=5.98e-09 dt=2.64e-11 max_dmdt=99.6 #846 t=6.01e-09 dt=2.64e-11 max_dmdt=99.2 #847 t=6.04e-09 dt=2.64e-11 max_dmdt=98.6 #848 t=6.06e-09 dt=2.64e-11 max_dmdt=97.9 #849 t=6.09e-09 dt=2.64e-11 max_dmdt=98.4 #850 t=6.12e-09 dt=2.64e-11 max_dmdt=99 #851 t=6.14e-09 dt=2.64e-11 max_dmdt=99.5 #852 t=6.17e-09 dt=2.64e-11 max_dmdt=99.8 #853 t=6.2e-09 dt=2.64e-11 max_dmdt=100 #854 t=6.22e-09 dt=2.64e-11 max_dmdt=100 #855 t=6.25e-09 dt=2.64e-11 max_dmdt=100 #856 t=6.27e-09 dt=2.64e-11 max_dmdt=99.9 #857 t=6.3e-09 dt=2.64e-11 max_dmdt=99.5 #858 t=6.33e-09 dt=2.64e-11 max_dmdt=99.1 #859 t=6.35e-09 dt=2.64e-11 max_dmdt=98.5 #860 t=6.38e-09 dt=2.64e-11 max_dmdt=97.8 #861 t=6.41e-09 dt=2.64e-11 max_dmdt=97 #862 t=6.43e-09 dt=2.64e-11 max_dmdt=96.1 #863 t=6.46e-09 dt=2.64e-11 max_dmdt=95.1 #864 t=6.49e-09 dt=2.64e-11 max_dmdt=93.9 #865 t=6.51e-09 dt=2.64e-11 max_dmdt=92.7 #866 t=6.54e-09 dt=2.64e-11 max_dmdt=91.4 #867 t=6.57e-09 dt=2.64e-11 max_dmdt=89.9 #868 t=6.59e-09 dt=2.64e-11 max_dmdt=89.3 #869 t=6.62e-09 dt=2.64e-11 max_dmdt=88.9 #870 t=6.64e-09 dt=2.64e-11 max_dmdt=88.4 #871 t=6.67e-09 dt=2.64e-11 max_dmdt=87.8 #872 t=6.7e-09 dt=2.64e-11 max_dmdt=87 #873 t=6.72e-09 dt=2.64e-11 max_dmdt=86.2 #874 t=6.75e-09 dt=2.64e-11 max_dmdt=85.1 #875 t=6.78e-09 dt=2.64e-11 max_dmdt=84 #876 t=6.8e-09 dt=2.64e-11 max_dmdt=82.8 #877 t=6.83e-09 dt=2.64e-11 max_dmdt=81.5 #878 t=6.86e-09 dt=2.64e-11 max_dmdt=80.1 #879 t=6.88e-09 dt=2.64e-11 max_dmdt=78.7 #880 t=6.91e-09 dt=2.64e-11 max_dmdt=77.1 #881 t=6.94e-09 dt=2.64e-11 max_dmdt=75.6 #882 t=6.96e-09 dt=2.64e-11 max_dmdt=76.4 #883 t=6.99e-09 dt=2.64e-11 max_dmdt=77.8 #884 t=7.01e-09 dt=2.64e-11 max_dmdt=79.1 #885 t=7.04e-09 dt=2.64e-11 max_dmdt=81.3 #886 t=7.07e-09 dt=2.64e-11 max_dmdt=83.6 #887 t=7.09e-09 dt=2.64e-11 max_dmdt=86 #888 t=7.12e-09 dt=2.64e-11 max_dmdt=88.5 #889 t=7.15e-09 dt=2.64e-11 max_dmdt=91 #890 t=7.17e-09 dt=2.64e-11 max_dmdt=93.5 #891 t=7.2e-09 dt=2.64e-11 max_dmdt=96.1 #892 t=7.23e-09 dt=2.64e-11 max_dmdt=100 #893 t=7.25e-09 dt=2.64e-11 max_dmdt=105 #894 t=7.28e-09 dt=2.64e-11 max_dmdt=109 #895 t=7.31e-09 dt=2.64e-11 max_dmdt=114 #896 t=7.33e-09 dt=2.64e-11 max_dmdt=119 #897 t=7.36e-09 dt=2.64e-11 max_dmdt=124 #898 t=7.38e-09 dt=2.64e-11 max_dmdt=129 #899 t=7.41e-09 dt=2.64e-11 max_dmdt=134 #900 t=7.44e-09 dt=2.64e-11 max_dmdt=139 #901 t=7.46e-09 dt=2.64e-11 max_dmdt=144 #902 t=7.49e-09 dt=2.64e-11 max_dmdt=149 #903 t=7.52e-09 dt=2.64e-11 max_dmdt=153 #904 t=7.54e-09 dt=2.64e-11 max_dmdt=157 #905 t=7.57e-09 dt=2.64e-11 max_dmdt=161 #906 t=7.6e-09 dt=2.64e-11 max_dmdt=164 #907 t=7.62e-09 dt=2.64e-11 max_dmdt=166 #908 t=7.65e-09 dt=2.64e-11 max_dmdt=170 #909 t=7.68e-09 dt=2.64e-11 max_dmdt=178 #910 t=7.7e-09 dt=2.64e-11 max_dmdt=187 #911 t=7.73e-09 dt=2.64e-11 max_dmdt=195 #912 t=7.75e-09 dt=2.64e-11 max_dmdt=201 #913 t=7.78e-09 dt=2.64e-11 max_dmdt=207 #914 t=7.81e-09 dt=2.64e-11 max_dmdt=212 #915 t=7.83e-09 dt=1.93e-11 max_dmdt=214 #916 t=7.85e-09 dt=1.93e-11 max_dmdt=215 #917 t=7.87e-09 dt=1.93e-11 max_dmdt=216 #918 t=7.88e-09 dt=1.93e-11 max_dmdt=215 #919 t=7.9e-09 dt=1.93e-11 max_dmdt=213 #920 t=7.92e-09 dt=1.93e-11 max_dmdt=210 #921 t=7.94e-09 dt=1.93e-11 max_dmdt=207 #922 t=7.96e-09 dt=1.93e-11 max_dmdt=208 #923 t=7.98e-09 dt=1.93e-11 max_dmdt=208 #924 t=8e-09 dt=1.93e-11 max_dmdt=209 #925 t=8.02e-09 dt=1.93e-11 max_dmdt=211 #926 t=8.04e-09 dt=1.93e-11 max_dmdt=212 #927 t=8.06e-09 dt=1.93e-11 max_dmdt=212 #928 t=8.08e-09 dt=1.93e-11 max_dmdt=211 #929 t=8.1e-09 dt=1.93e-11 max_dmdt=210 #930 t=8.12e-09 dt=1.93e-11 max_dmdt=208 #931 t=8.14e-09 dt=1.93e-11 max_dmdt=206 #932 t=8.16e-09 dt=1.93e-11 max_dmdt=202 #933 t=8.17e-09 dt=1.93e-11 max_dmdt=199 #934 t=8.19e-09 dt=1.93e-11 max_dmdt=195 #935 t=8.21e-09 dt=1.93e-11 max_dmdt=191 #936 t=8.23e-09 dt=1.93e-11 max_dmdt=188 #937 t=8.25e-09 dt=1.93e-11 max_dmdt=188 #938 t=8.27e-09 dt=1.93e-11 max_dmdt=187 #939 t=8.29e-09 dt=1.93e-11 max_dmdt=185 #940 t=8.31e-09 dt=1.93e-11 max_dmdt=184 #941 t=8.33e-09 dt=1.93e-11 max_dmdt=182 #942 t=8.35e-09 dt=1.93e-11 max_dmdt=182 #943 t=8.37e-09 dt=1.93e-11 max_dmdt=184 #944 t=8.39e-09 dt=1.93e-11 max_dmdt=185 #945 t=8.41e-09 dt=1.93e-11 max_dmdt=186 #946 t=8.43e-09 dt=1.93e-11 max_dmdt=186 #947 t=8.45e-09 dt=1.93e-11 max_dmdt=186 #948 t=8.46e-09 dt=1.93e-11 max_dmdt=185 #949 t=8.48e-09 dt=1.93e-11 max_dmdt=183 #950 t=8.5e-09 dt=1.93e-11 max_dmdt=181 #951 t=8.52e-09 dt=1.93e-11 max_dmdt=178 #952 t=8.54e-09 dt=1.93e-11 max_dmdt=174 #953 t=8.56e-09 dt=1.93e-11 max_dmdt=172 #954 t=8.58e-09 dt=1.93e-11 max_dmdt=173 #955 t=8.6e-09 dt=1.93e-11 max_dmdt=173 #956 t=8.62e-09 dt=1.93e-11 max_dmdt=172 #957 t=8.64e-09 dt=1.93e-11 max_dmdt=170 #958 t=8.66e-09 dt=1.93e-11 max_dmdt=168 #959 t=8.68e-09 dt=1.93e-11 max_dmdt=166 #960 t=8.7e-09 dt=1.93e-11 max_dmdt=163 #961 t=8.72e-09 dt=1.93e-11 max_dmdt=159 #962 t=8.74e-09 dt=1.93e-11 max_dmdt=155 #963 t=8.75e-09 dt=1.93e-11 max_dmdt=150 #964 t=8.77e-09 dt=1.93e-11 max_dmdt=146 #965 t=8.79e-09 dt=1.93e-11 max_dmdt=141 #966 t=8.81e-09 dt=1.93e-11 max_dmdt=136 #967 t=8.83e-09 dt=1.93e-11 max_dmdt=132 #968 t=8.85e-09 dt=1.93e-11 max_dmdt=128 #969 t=8.87e-09 dt=1.93e-11 max_dmdt=123 #970 t=8.89e-09 dt=1.93e-11 max_dmdt=119 #971 t=8.91e-09 dt=1.93e-11 max_dmdt=115 #972 t=8.93e-09 dt=1.93e-11 max_dmdt=111 #973 t=8.95e-09 dt=1.93e-11 max_dmdt=107 #974 t=8.97e-09 dt=1.93e-11 max_dmdt=104 #975 t=8.99e-09 dt=1.93e-11 max_dmdt=104 #976 t=9.01e-09 dt=1.93e-11 max_dmdt=103 #977 t=9.03e-09 dt=1.93e-11 max_dmdt=103 #978 t=9.04e-09 dt=1.93e-11 max_dmdt=102 #979 t=9.06e-09 dt=1.93e-11 max_dmdt=101 #980 t=9.08e-09 dt=1.93e-11 max_dmdt=99.9 #981 t=9.1e-09 dt=1.93e-11 max_dmdt=98.8 #982 t=9.12e-09 dt=1.93e-11 max_dmdt=97.5 #983 t=9.14e-09 dt=1.93e-11 max_dmdt=96.2 #984 t=9.16e-09 dt=1.93e-11 max_dmdt=94.7 #985 t=9.18e-09 dt=1.93e-11 max_dmdt=93.2 #986 t=9.2e-09 dt=1.93e-11 max_dmdt=91.6 #987 t=9.22e-09 dt=1.93e-11 max_dmdt=89.9 #988 t=9.25e-09 dt=3e-11 max_dmdt=87.7 #989 t=9.28e-09 dt=3e-11 max_dmdt=84.9 #990 t=9.31e-09 dt=3e-11 max_dmdt=83.3 #991 t=9.34e-09 dt=3e-11 max_dmdt=82.2 #992 t=9.37e-09 dt=3e-11 max_dmdt=81.4 #993 t=9.4e-09 dt=3e-11 max_dmdt=80.6 #994 t=9.43e-09 dt=3e-11 max_dmdt=79.6 #995 t=9.46e-09 dt=3e-11 max_dmdt=78.5 #996 t=9.49e-09 dt=3e-11 max_dmdt=77.3 #997 t=9.52e-09 dt=3e-11 max_dmdt=75.9 #998 t=9.55e-09 dt=3e-11 max_dmdt=74.5 #999 t=9.58e-09 dt=3e-11 max_dmdt=73 #1000 t=9.61e-09 dt=3e-11 max_dmdt=71.4 #1001 t=9.64e-09 dt=3e-11 max_dmdt=69.8 #1002 t=9.67e-09 dt=3e-11 max_dmdt=68.1 #1003 t=9.7e-09 dt=3e-11 max_dmdt=66.4 #1004 t=9.73e-09 dt=3e-11 max_dmdt=64.7 #1005 t=9.76e-09 dt=3e-11 max_dmdt=62.9 #1006 t=9.79e-09 dt=3e-11 max_dmdt=61.2 #1007 t=9.84e-09 dt=4.71e-11 max_dmdt=58.9 #1008 t=9.88e-09 dt=4.71e-11 max_dmdt=57.2 #1009 t=9.93e-09 dt=4.71e-11 max_dmdt=55.8 #1010 t=9.98e-09 dt=4.71e-11 max_dmdt=54.3 #1011 t=1e-08 dt=4.71e-11 max_dmdt=52.8 #1012 t=1.01e-08 dt=4.71e-11 max_dmdt=51.2 #1013 t=1.01e-08 dt=4.71e-11 max_dmdt=49.6 #1014 t=1.02e-08 dt=4.71e-11 max_dmdt=48 #1015 t=1.02e-08 dt=4.71e-11 max_dmdt=46.4 #1016 t=1.03e-08 dt=4.71e-11 max_dmdt=44.8 #1017 t=1.03e-08 dt=4.71e-11 max_dmdt=43.2 #1018 t=1.04e-08 dt=4.71e-11 max_dmdt=41.6 #1019 t=1.04e-08 dt=4.71e-11 max_dmdt=40 #1020 t=1.04e-08 dt=4.71e-11 max_dmdt=38.5 #1021 t=1.05e-08 dt=4.71e-11 max_dmdt=37 #1022 t=1.05e-08 dt=4.71e-11 max_dmdt=35.6 #1023 t=1.06e-08 dt=4.71e-11 max_dmdt=34.2 #1024 t=1.06e-08 dt=4.71e-11 max_dmdt=32.8 #1025 t=1.07e-08 dt=4.71e-11 max_dmdt=31.5 #1026 t=1.07e-08 dt=4.71e-11 max_dmdt=30.3 #1027 t=1.08e-08 dt=4.71e-11 max_dmdt=29 #1028 t=1.08e-08 dt=7.1e-11 max_dmdt=27.6 #1029 t=1.09e-08 dt=7.1e-11 max_dmdt=26.4 #1030 t=1.1e-08 dt=7.1e-11 max_dmdt=25.2 #1031 t=1.11e-08 dt=7.1e-11 max_dmdt=24.1 #1032 t=1.11e-08 dt=7.1e-11 max_dmdt=23 #1033 t=1.12e-08 dt=7.1e-11 max_dmdt=22 #1034 t=1.13e-08 dt=7.1e-11 max_dmdt=21 #1035 t=1.13e-08 dt=7.1e-11 max_dmdt=20 #1036 t=1.14e-08 dt=7.1e-11 max_dmdt=19.1 #1037 t=1.15e-08 dt=7.1e-11 max_dmdt=18.2 #1038 t=1.16e-08 dt=7.1e-11 max_dmdt=17.4 #1039 t=1.16e-08 dt=7.1e-11 max_dmdt=16.6 #1040 t=1.17e-08 dt=7.1e-11 max_dmdt=15.8 #1041 t=1.18e-08 dt=7.1e-11 max_dmdt=15.1 #1042 t=1.18e-08 dt=7.1e-11 max_dmdt=14.4 #1043 t=1.19e-08 dt=7.1e-11 max_dmdt=13.8 #1044 t=1.2e-08 dt=7.1e-11 max_dmdt=13.2 #1045 t=1.21e-08 dt=1.08e-10 max_dmdt=12.5 #1046 t=1.22e-08 dt=1.08e-10 max_dmdt=11.8 #1047 t=1.23e-08 dt=1.08e-10 max_dmdt=11.1 #1048 t=1.24e-08 dt=1.08e-10 max_dmdt=10.5 #1049 t=1.25e-08 dt=1.08e-10 max_dmdt=9.91 #1050 t=1.26e-08 dt=1.08e-10 max_dmdt=9.37 #1051 t=1.27e-08 dt=1.08e-10 max_dmdt=8.86 #1052 t=1.28e-08 dt=1.08e-10 max_dmdt=8.39 #1053 t=1.3e-08 dt=1.08e-10 max_dmdt=7.95 #1054 t=1.31e-08 dt=1.08e-10 max_dmdt=7.53 #1055 t=1.32e-08 dt=1.08e-10 max_dmdt=7.14 #1056 t=1.33e-08 dt=1.08e-10 max_dmdt=6.78 #1057 t=1.34e-08 dt=1.08e-10 max_dmdt=6.44 #1058 t=1.35e-08 dt=1.08e-10 max_dmdt=6.12 #1059 t=1.36e-08 dt=1.08e-10 max_dmdt=5.82 #1060 t=1.37e-08 dt=1.08e-10 max_dmdt=5.54 #1061 t=1.38e-08 dt=1.08e-10 max_dmdt=5.28 #1062 t=1.39e-08 dt=1.08e-10 max_dmdt=5.09 #1063 t=1.4e-08 dt=1.08e-10 max_dmdt=4.92 #1064 t=1.42e-08 dt=1.64e-10 max_dmdt=4.71 #1065 t=1.44e-08 dt=1.64e-10 max_dmdt=4.48 #1066 t=1.45e-08 dt=1.64e-10 max_dmdt=4.25 #1067 t=1.47e-08 dt=1.64e-10 max_dmdt=4.04 #1068 t=1.49e-08 dt=1.64e-10 max_dmdt=3.84 #1069 t=1.5e-08 dt=1.64e-10 max_dmdt=3.65 #1070 t=1.52e-08 dt=1.64e-10 max_dmdt=3.47 #1071 t=1.53e-08 dt=1.64e-10 max_dmdt=3.3 #1072 t=1.55e-08 dt=1.64e-10 max_dmdt=3.13 #1073 t=1.57e-08 dt=1.64e-10 max_dmdt=2.98 #1074 t=1.58e-08 dt=1.64e-10 max_dmdt=2.83 #1075 t=1.6e-08 dt=1.64e-10 max_dmdt=2.7 #1076 t=1.62e-08 dt=1.64e-10 max_dmdt=2.57 #1077 t=1.63e-08 dt=1.64e-10 max_dmdt=2.44 #1078 t=1.65e-08 dt=1.64e-10 max_dmdt=2.32 #1079 t=1.67e-08 dt=1.64e-10 max_dmdt=2.21 #1080 t=1.68e-08 dt=1.64e-10 max_dmdt=2.11 #1081 t=1.7e-08 dt=1.64e-10 max_dmdt=2.01 #1082 t=1.72e-08 dt=1.64e-10 max_dmdt=1.91 #1083 t=1.74e-08 dt=2.5e-10 max_dmdt=1.8 #1084 t=1.77e-08 dt=2.5e-10 max_dmdt=1.67 #1085 t=1.79e-08 dt=2.5e-10 max_dmdt=1.56 #1086 t=1.82e-08 dt=2.5e-10 max_dmdt=1.45 #1087 t=1.84e-08 dt=2.5e-10 max_dmdt=1.35 #1088 t=1.87e-08 dt=2.5e-10 max_dmdt=1.26 #1089 t=1.89e-08 dt=2.5e-10 max_dmdt=1.17 #1090 t=1.92e-08 dt=2.5e-10 max_dmdt=1.09 #1091 t=1.94e-08 dt=2.5e-10 max_dmdt=1.02 #1092 t=1.97e-08 dt=2.5e-10 max_dmdt=0.952 #1093 t=1.99e-08 dt=2.5e-10 max_dmdt=0.89 #1094 t=2.02e-08 dt=2.5e-10 max_dmdt=0.833 #1095 t=2.04e-08 dt=2.5e-10 max_dmdt=0.779 #1096 t=2.07e-08 dt=2.5e-10 max_dmdt=0.73 #1097 t=2.09e-08 dt=2.5e-10 max_dmdt=0.684 #1098 t=2.12e-08 dt=2.5e-10 max_dmdt=0.642 #1099 t=2.14e-08 dt=2.5e-10 max_dmdt=0.602 #1100 t=2.17e-08 dt=2.5e-10 max_dmdt=0.566 #1101 t=2.19e-08 dt=2.5e-10 max_dmdt=0.532 #1102 t=2.22e-08 dt=2.5e-10 max_dmdt=0.501 #1103 t=2.24e-08 dt=2.5e-10 max_dmdt=0.471 #1104 t=2.27e-08 dt=2.5e-10 max_dmdt=0.444 #1105 t=2.29e-08 dt=2.5e-10 max_dmdt=0.419 #1106 t=2.32e-08 dt=2.5e-10 max_dmdt=0.396 #1107 t=2.34e-08 dt=2.5e-10 max_dmdt=0.374 #1108 t=2.37e-08 dt=2.5e-10 max_dmdt=0.354 #1109 t=2.39e-08 dt=2.5e-10 max_dmdt=0.335 #1110 t=2.42e-08 dt=2.5e-10 max_dmdt=0.318 #1111 t=2.44e-08 dt=2.5e-10 max_dmdt=0.301 #1112 t=2.47e-08 dt=2.5e-10 max_dmdt=0.286 #1113 t=2.49e-08 dt=2.5e-10 max_dmdt=0.272 #1114 t=2.52e-08 dt=2.5e-10 max_dmdt=0.259 #1115 t=2.54e-08 dt=2.5e-10 max_dmdt=0.247 #1116 t=2.57e-08 dt=2.5e-10 max_dmdt=0.236 #1117 t=2.59e-08 dt=2.5e-10 max_dmdt=0.225 #1118 t=2.62e-08 dt=2.5e-10 max_dmdt=0.215 #1119 t=2.64e-08 dt=2.5e-10 max_dmdt=0.206 #1120 t=2.67e-08 dt=2.5e-10 max_dmdt=0.198 #1121 t=2.69e-08 dt=2.5e-10 max_dmdt=0.19 #1122 t=2.72e-08 dt=2.5e-10 max_dmdt=0.182 #1123 t=2.75e-08 dt=3.81e-10 max_dmdt=0.174 #1124 t=2.79e-08 dt=3.81e-10 max_dmdt=0.164 #1125 t=2.83e-08 dt=3.81e-10 max_dmdt=0.156 #1126 t=2.87e-08 dt=3.81e-10 max_dmdt=0.148 #1127 t=2.91e-08 dt=3.81e-10 max_dmdt=0.141 #1128 t=2.95e-08 dt=3.81e-10 max_dmdt=0.135 #1129 t=2.98e-08 dt=3.81e-10 max_dmdt=0.13 #1130 t=3.02e-08 dt=3.81e-10 max_dmdt=0.126 #1131 t=3.06e-08 dt=3.81e-10 max_dmdt=0.121 #1132 t=3.1e-08 dt=3.81e-10 max_dmdt=0.118 #1133 t=3.14e-08 dt=3.81e-10 max_dmdt=0.114 #1134 t=3.17e-08 dt=3.81e-10 max_dmdt=0.112 #1135 t=3.21e-08 dt=3.81e-10 max_dmdt=0.11 #1136 t=3.25e-08 dt=3.81e-10 max_dmdt=0.109 #1137 t=3.29e-08 dt=3.81e-10 max_dmdt=0.107 #1138 t=3.33e-08 dt=3.81e-10 max_dmdt=0.106 #1139 t=3.36e-08 dt=3.81e-10 max_dmdt=0.104 #1140 t=3.4e-08 dt=3.81e-10 max_dmdt=0.103 #1141 t=3.46e-08 dt=5.81e-10 max_dmdt=0.102 #1142 t=3.52e-08 dt=5.81e-10 max_dmdt=0.101 #1143 t=3.58e-08 dt=5.81e-10 max_dmdt=0.1 #1144 t=3.63e-08 dt=5.81e-10 max_dmdt=0.101 #1145 t=3.69e-08 dt=5.81e-10 max_dmdt=0.102 #1146 t=3.75e-08 dt=5.81e-10 max_dmdt=0.103 #1147 t=3.81e-08 dt=5.81e-10 max_dmdt=0.103 #1148 t=3.87e-08 dt=5.81e-10 max_dmdt=0.104 #1149 t=3.92e-08 dt=5.81e-10 max_dmdt=0.104 #1150 t=3.98e-08 dt=5.81e-10 max_dmdt=0.104 #1151 t=4.04e-08 dt=5.81e-10 max_dmdt=0.105 #1152 t=4.1e-08 dt=5.81e-10 max_dmdt=0.105 #1153 t=4.16e-08 dt=5.81e-10 max_dmdt=0.105 #1154 t=4.22e-08 dt=5.81e-10 max_dmdt=0.105 #1155 t=4.27e-08 dt=5.81e-10 max_dmdt=0.105 #1156 t=4.36e-08 dt=8.77e-10 max_dmdt=0.105 #1157 t=4.45e-08 dt=8.77e-10 max_dmdt=0.106 #1158 t=4.54e-08 dt=8.77e-10 max_dmdt=0.106 #1159 t=4.62e-08 dt=8.77e-10 max_dmdt=0.106 #1160 t=4.71e-08 dt=8.77e-10 max_dmdt=0.106 #1161 t=4.8e-08 dt=8.77e-10 max_dmdt=0.106 #1162 t=4.89e-08 dt=8.77e-10 max_dmdt=0.106 #1163 t=4.98e-08 dt=8.77e-10 max_dmdt=0.106 #1164 t=5.06e-08 dt=8.77e-10 max_dmdt=0.106 #1165 t=5.2e-08 dt=1.33e-09 max_dmdt=0.105 #1166 t=5.33e-08 dt=1.33e-09 max_dmdt=0.105 #1167 t=5.46e-08 dt=1.33e-09 max_dmdt=0.105 #1168 t=5.6e-08 dt=1.33e-09 max_dmdt=0.105 #1169 t=5.73e-08 dt=1.33e-09 max_dmdt=0.105 #1170 t=5.86e-08 dt=1.33e-09 max_dmdt=0.105 #1171 t=6.07e-08 dt=2.04e-09 max_dmdt=0.105 #1172 t=6.27e-08 dt=2.04e-09 max_dmdt=0.105 #1173 t=6.48e-08 dt=2.04e-09 max_dmdt=0.105 #1174 t=6.68e-08 dt=2.04e-09 max_dmdt=0.104 #1175 t=6.88e-08 dt=2.04e-09 max_dmdt=0.104 #1176 t=7.19e-08 dt=3.12e-09 max_dmdt=0.104 #1177 t=7.51e-08 dt=3.12e-09 max_dmdt=0.104 #1178 t=7.82e-08 dt=3.12e-09 max_dmdt=0.104 #1179 t=8.13e-08 dt=3.12e-09 max_dmdt=0.103 #1180 t=8.65e-08 dt=5.26e-09 max_dmdt=0.103 #1181 t=9.18e-08 dt=5.26e-09 max_dmdt=0.103 #1182 t=9.99e-08 dt=8.1e-09 max_dmdt=0.102 #1183 t=1.08e-07 dt=8.1e-09 max_dmdt=0.101 #1184 t=1.16e-07 dt=8.1e-09 max_dmdt=0.1 #1185 t=1.24e-07 dt=8.1e-09 max_dmdt=0.0997
[46]:
def plot_field(field, sim, fieldname, layer=0): nx = sim.mesh.nx ny = sim.mesh.ny n_layer = sim.mesh.nx * sim.mesh.ny m = field.reshape(-1, 3) fx = m[:, 0][layer*n_layer:(layer+1)*n_layer] fy = m[:, 1][layer*n_layer:(layer+1)*n_layer] fz = m[:, 2][layer*n_layer:(layer+1)*n_layer] fx.shape = (ny, nx) fy.shape = (ny, nx) fz.shape = (ny, nx) extent = [0, nx*sim.mesh.dx, 0, ny*sim.mesh.dy] plt.figure(figsize=(20, 10)) plt.subplot(1, 3, 1) plt.imshow(fx, extent=extent, cmap='RdBu', origin='lower') plt.title('{}_x'.format(fieldname)) plt.xlabel('x (nm)') plt.ylabel('y (nm)') plt.subplot(1, 3, 2) plt.imshow(fy, extent=extent, cmap='RdBu', origin='lower') plt.xlabel('x (nm)') plt.ylabel('y (nm)') plt.title('{}_y'.format(fieldname)) plt.subplot(1, 3, 3) plt.imshow(fz, extent=extent, cmap='RdBu', origin='lower') plt.xlabel('x (nm)') plt.ylabel('y (nm)') plt.title('{}_z'.format(fieldname)) plot_field(sim.spin, sim, 'm')
We now apply a field gradient which acts to move the Skyrmions. Below we construct a function to impose this gradient, and just plot the resulting Zeeman field.
[47]:
H0 = 0.3 / (4*np.pi*1e-7) # Apply a field of 0.4T def H_Gradient(pos): x, y, z = pos return (0, 0, H0 * y/Ly) zee = Zeeman(H_Gradient) sim.add(zee) plot_field(zee.field, sim, 'HZeeman')
We now evolve in time, showing snapshots of the magnetisation every 1ns.
[48]:
sim.driver.reset_integrator() for i, t in enumerate(np.linspace(0, 20e-9, 21)): print('i = {}, t = {}ns'.format(i, t)) sim.driver.run_until(t) plot_field(sim.spin, sim, 'm')
i = 0, t = 0.0ns i = 1, t = 1e-09ns i = 2, t = 2e-09ns i = 3, t = 3.0000000000000004e-09ns i = 4, t = 4e-09ns i = 5, t = 5e-09ns i = 6, t = 6.000000000000001e-09ns i = 7, t = 7.000000000000001e-09ns i = 8, t = 8e-09ns i = 9, t = 9.000000000000001e-09ns i = 10, t = 1e-08ns
We can see that the core of the Skyrmions in the high-field region is smaller than than in the low field region, and there is some motion away from this area boundary.
We can also plot particular fields:
[51]:
# Plot the Effective Field plot_field(sim.driver.field, sim, 'H')
[52]:
plot_field(sim.get_interaction('UniformExchange').field, sim, 'HExchange') plot_field(sim.get_interaction('DMI').field, sim, 'HDMI') plot_field(sim.get_interaction('Demag').field, sim, 'HDemag')
Date: 30 July 2016
In this tutorial, a single magnetic skyrmion is driven by a spin-polarised current.
Firstly, we define a function which will be subsequently used for plotting the z component of magnetisation.
import matplotlib.pyplot as plt import numpy as np %matplotlib inline def plot_magnetisation(m, mesh, title=None): m.shape = (-1, 3) mx = m[:, 0] my = m[:, 1] mz = m[:, 2] nx, ny = mesh.nx, mesh.ny mx.shape = (ny, nx) my.shape = (ny, nx) mz.shape = (ny, nx) #plt.imshow(mz, extent=extent) #plt.xlabel('x (nm)') #plt.ylabel('y (nm)') fig = plt.figure(figsize=(8,8)) plt.axes().set_aspect('equal') plt.quiver(mx[::3,::3], my[::3,::3], mz[::3,::3], pivot='mid', alpha=0.9, scale=18, width=0.005, cmap=plt.get_cmap('jet'), edgecolors='None' ) if title is not None: plt.title(title) plt.xticks([]) plt.yticks([]) plt.show()
Now, we create a finite difference mesh.
from fidimag.micro import Sim from fidimag.common import CuboidMesh from fidimag.micro import Zeeman, Demag, DMI, UniformExchange mesh = CuboidMesh(nx=51, ny=30, nz=1, dx=2.5, dy=2.5, dz=2, unit_length=1e-9, periodicity=(True, True, False))
We create a simulation object that contains uniform exchange, DMI, and Zeeman energy contributions.
# PYTEST_VALIDATE_IGNORE_OUTPUT Ms = 8.6e5 # magnetisation saturation (A/m) A = 1.3e-11 # exchange stiffness (J/m) D = 4e-3 # DMI constant (J/m**2) H = (0, 0, 3.8e5) # external magnetic field (A/m) alpha = 0.5 # Gilbert damping gamma = 2.211e5 # gyromagnetic ratio (m/As) sim = Sim(mesh) # create simulation object # Set parameters. sim.Ms = Ms sim.driver.alpha = alpha sim.driver.gamma = gamma sim.driver.do_precession = False # Add energies. sim.add(UniformExchange(A=A)) sim.add(DMI(D)) sim.add(Zeeman(H))
In order to get a skyrmion as a relaxed state, we need to initialise the system in an appropriate way. For that, we use the following function, and plot the initial state.
def m_initial(coord): # Extract x and y coordinates. x = coord[0] y = coord[1] # The centre of the circle x_centre = 15*2.5 y_centre = 15*2.5 # Compute the circle radius. r = ((x-x_centre)**2 + (y-y_centre)**2)**0.5 if r < 8.0: return (0, 0, -1) else: return (0, 0, 1) sim.set_m(m_initial)
Now, we can relax the system, save and plot the relaxed state.
%%capture sim.driver.relax(dt=1e-13, stopping_dmdt=0.1, max_steps=5000, save_m_steps=None, save_vtk_steps=None) np.save('m0.npy', sim.spin)
plot_magnetisation(sim.spin.copy(), mesh, title='t=0 ns')
Using the obtained relaxed state, we create a new smulation object and specify the driver to be ‘llg_stt’. By applying a spin-polarised current of \(J = 5 \times 10^{12} \,\text{A/m}^{2}\) in the \(x\) directions with \(\beta = 0.2\), we move a skyrmion in the simulated sample.
# PYTEST_VALIDATE_IGNORE_OUTPUT sim2 = Sim(mesh, driver='llg_stt') # create simulation object # Set parameters. sim2.Ms = Ms sim2.alpha = alpha sim2.driver.gamma = gamma # Add energies. sim2.add(UniformExchange(A=A)) sim2.add(DMI(D)) sim2.add(Zeeman(H)) sim2.driver.jx = -5e12 sim2.alpha = 0.2 sim2.driver.beta = 0.2 sim2.set_m(np.load('m0.npy')) for t in [0, 0.1, 0.2]: sim2.driver.run_until(t*1e-9) plot_magnetisation(sim2.spin.copy(), mesh, title='t=%g ns'%t)
from fidimag.micro import Sim from fidimag.common import CuboidMesh from fidimag.micro import UniformExchange, Demag
The mesh in this example is a three-dimensional stripe with edge lengths \(a\) and \(b\) and thickness \(d\). The discretisation in this regular mesh is 1 nm along all edges. System is periodic in the x direction.
a = 90 # nm b = 50 # nm dx = dy = dz = 1 # nm mesh = CuboidMesh(nx=a, ny=b, nz=1, dx=dx, dy=dy, dz=dz, unit_length=1e-9, periodicity=(True, False, False))
The used material is Permalloy with the following parameters (saturation magnetsiation \(M_\text{s}\), exchange constant \(A\), and Gilbert damping \(\alpha\)):
magnetisation saturation \(M_\text{s} = 10^6 \text{A/m}\)
exchange energy constant \(A = 13 \times 10^{-12} \text{J/m}\)
Gilbert damping \(\alpha = 0.02\)
Ms = 1e6 # magnetisation saturation (A/m) A = 13e-12 # exchange stiffness (J/m) alpha = 0.2 # Gilbert damping gamma = 2.211e5 # gyromagnetic ratio (m/As)
Now, the simulation object is created and exchange and demagnetisation energies are added to the simulation. In addition, one-dimensional periodic boundary conditions are posed.
sim = Sim(mesh) # create simulation object # Set parameters. sim.Ms = Ms sim.driver.alpha = alpha sim.driver.gamma = gamma # Add energies. sim.add(UniformExchange(A=A)) sim.add(Demag())
The initial magnetisation is not defined at this point. Since the spin waves should occur, system has to be initialised in an appropriate way. In this case, the magnetisation is uniform at all mesh nodes, except in a circular region at the left edge of the boundary. The function which will be used for magnetisation initialisation is:
def m_initial(coord): # Extract x and y coordinates. x = coord[0] y = coord[1] # The centre of the circle x_centre = a/10. y_centre = b/2. # Compute the circle radius. r = ((x-x_centre)**2 + (y-y_centre)**2)**0.5 if r < 5: return (1, 0, 0.2) else: return (1, 0, 0) sim.set_m(m_initial)
The function used for plotting magnetisation \(z\) component in all subsequent plots.
import matplotlib.pyplot as plt import numpy as np %matplotlib inline def plot_magnetisation(m): m.shape = (-1, 3) mx = m[:, 0] my = m[:, 1] mz = m[:, 2] mx.shape = (b, a) my.shape = (b, a) mz.shape = (b, a) extent = [0, a, 0, b] plt.figure(figsize=(8, 4)) plt.imshow(mz, extent=extent) plt.xlabel('x (nm)') plt.ylabel('y (nm)') plt.title('mz') plot_magnetisation(np.copy(sim.spin))
When the initial magnetisation is set, the simulation is executed for 2 ps, and the magnetisation is plotted every \(\Delta t = 0.25 \text{ps}\)
import numpy as np t_sim = 3e-12 # simulation time (s) dt = 0.5e-12 # plotting time step (s) t_array = np.arange(dt, t_sim, dt) for t in t_array: sim.driver.run_until(t) plot_magnetisation(np.copy(sim.spin))
It can be seen that the spin wave “travels across” the left boundary in \(x\) direction.
Author: Marijan Beg, Marc-Antonio Bisotti
import numpy as np import matplotlib.pyplot as plt %matplotlib inline
The simulated sample is a thin film cuboid with dimensions: - length \(L = 500 \,\text{nm}\), - width \(d = 125 \,\text{nm}\), and - thickness \(t = 3 \,\text{nm}\).
from fidimag.common import CuboidMesh mesh = CuboidMesh(nx=160, ny=40, nz=1, dx=3.125, dy=3.125, dz=3, unit_length=1e-9)
magnetisation saturation \(M_\text{s} = 8 \times 10^{5} \,\text{A/m}\).
Magnetisation dynamics is governed by the Landau-Lifshitz-Gilbert equation
where \(\gamma_{0} = 2.211 \times 10^{5} \,\text{m}\,\text{A}^{-1}\,\text{s}^{-1}\) is the gyromagnetic ratio and \(\alpha=0.02\) is the Gilbert damping.
A = 13e-12 Ms = 8.0e5 alpha = 0.02 gamma = 2.211e5
In the standard problem 4, the system is firstly relaxed at zero external magnetic field and then, stating from the obtained equlibrium configuration, the magnetisation dynamics is simulated for each of two different external magnetic fields:
\(\mathbf{H}_{1} = (-24.6, 4.3, 0.0) \,\text{mT}\)
\(\mathbf{H}_{2} = (-35.5, -6.3, 0.0) \,\text{mT}\)
The micromagnetic standard problem 4 specification can be also found in Ref. 1.
The simulation object is created and parameters set.
from fidimag.micro import Sim, UniformExchange, Demag, Zeeman, TimeZeeman sim = Sim(mesh) # create simulation object sim.driver.set_tols(rtol=1e-10, atol=1e-10) sim.Ms = Ms sim.driver.alpha = 0.5 # large value since the magnetisation dynamics is not important in the relexation stage sim.driver.gamma = gamma sim.driver.do_precession = False # speeds up the simulation # Starting magnetisation. sim.set_m((1, 0.25, 0.1)) sim.add(UniformExchange(A=A)) sim.add(Demag())
We have ignored the decaying external field. Finally, the system can be relaxed and the obtained equilibrium configuration saved, so that it can be used as an initial state for simulating magnetisation dynamics.
# PYTEST_VALIDATE_IGNORE_OUTPUT sim.driver.relax(dt=1e-13, stopping_dmdt=0.01, max_steps=5000, save_m_steps=None, save_vtk_steps=None); np.save("m0.npy", sim.spin) # save equilibrium configuration
step=1, time=1e-13, max_dmdt=517 ode_step=0 step=2, time=2e-13, max_dmdt=510 ode_step=1.8e-14 step=3, time=3e-13, max_dmdt=502 ode_step=4.38e-14 step=4, time=4e-13, max_dmdt=495 ode_step=4.38e-14 step=5, time=5e-13, max_dmdt=489 ode_step=7.03e-14 step=6, time=6e-13, max_dmdt=482 ode_step=7.03e-14 step=7, time=7e-13, max_dmdt=476 ode_step=7.03e-14 step=8, time=8e-13, max_dmdt=470 ode_step=7.03e-14 step=9, time=9e-13, max_dmdt=464 ode_step=7.03e-14 step=10, time=1e-12, max_dmdt=459 ode_step=7.03e-14 step=11, time=1.14e-12, max_dmdt=453 ode_step=1.43e-13 step=12, time=1.29e-12, max_dmdt=445 ode_step=1.43e-13 step=13, time=1.43e-12, max_dmdt=439 ode_step=1.43e-13 step=14, time=1.57e-12, max_dmdt=433 ode_step=1.43e-13 step=15, time=1.72e-12, max_dmdt=428 ode_step=1.43e-13 step=16, time=1.86e-12, max_dmdt=422 ode_step=1.43e-13 step=17, time=2e-12, max_dmdt=417 ode_step=1.43e-13 step=18, time=2.15e-12, max_dmdt=412 ode_step=1.43e-13 step=19, time=2.29e-12, max_dmdt=407 ode_step=1.43e-13 step=20, time=2.51e-12, max_dmdt=401 ode_step=2.15e-13 step=21, time=2.72e-12, max_dmdt=394 ode_step=2.15e-13 step=22, time=2.94e-12, max_dmdt=387 ode_step=2.15e-13 step=23, time=3.15e-12, max_dmdt=381 ode_step=2.15e-13 step=24, time=3.37e-12, max_dmdt=375 ode_step=2.15e-13 step=25, time=3.58e-12, max_dmdt=369 ode_step=2.15e-13 step=26, time=3.8e-12, max_dmdt=364 ode_step=2.15e-13 step=27, time=4.01e-12, max_dmdt=358 ode_step=2.15e-13 step=28, time=4.23e-12, max_dmdt=353 ode_step=2.15e-13 step=29, time=4.44e-12, max_dmdt=348 ode_step=2.15e-13 step=30, time=4.66e-12, max_dmdt=343 ode_step=2.15e-13 step=31, time=4.87e-12, max_dmdt=338 ode_step=2.15e-13 step=32, time=5.09e-12, max_dmdt=333 ode_step=2.15e-13 step=33, time=5.3e-12, max_dmdt=328 ode_step=2.15e-13 step=34, time=5.52e-12, max_dmdt=324 ode_step=2.15e-13 step=35, time=5.73e-12, max_dmdt=320 ode_step=2.15e-13 step=36, time=5.95e-12, max_dmdt=315 ode_step=2.15e-13 step=37, time=6.16e-12, max_dmdt=311 ode_step=2.15e-13 step=38, time=6.38e-12, max_dmdt=307 ode_step=2.15e-13 step=39, time=6.59e-12, max_dmdt=303 ode_step=2.15e-13 step=40, time=6.81e-12, max_dmdt=299 ode_step=2.15e-13 step=41, time=7.02e-12, max_dmdt=295 ode_step=2.15e-13 step=42, time=7.24e-12, max_dmdt=291 ode_step=2.15e-13 step=43, time=7.45e-12, max_dmdt=288 ode_step=2.15e-13 step=44, time=7.78e-12, max_dmdt=283 ode_step=3.29e-13 step=45, time=8.11e-12, max_dmdt=278 ode_step=3.29e-13 step=46, time=8.44e-12, max_dmdt=273 ode_step=3.29e-13 step=47, time=8.77e-12, max_dmdt=268 ode_step=3.29e-13 step=48, time=9.09e-12, max_dmdt=263 ode_step=3.29e-13 step=49, time=9.42e-12, max_dmdt=258 ode_step=3.29e-13 step=50, time=9.75e-12, max_dmdt=254 ode_step=3.29e-13 step=51, time=1.01e-11, max_dmdt=249 ode_step=3.29e-13 step=52, time=1.04e-11, max_dmdt=245 ode_step=3.29e-13 step=53, time=1.07e-11, max_dmdt=240 ode_step=3.29e-13 step=54, time=1.11e-11, max_dmdt=236 ode_step=3.29e-13 step=55, time=1.14e-11, max_dmdt=232 ode_step=3.29e-13 step=56, time=1.17e-11, max_dmdt=229 ode_step=3.29e-13 step=57, time=1.21e-11, max_dmdt=225 ode_step=3.29e-13 step=58, time=1.24e-11, max_dmdt=221 ode_step=3.29e-13 step=59, time=1.27e-11, max_dmdt=218 ode_step=3.29e-13 step=60, time=1.3e-11, max_dmdt=214 ode_step=3.29e-13 step=61, time=1.34e-11, max_dmdt=211 ode_step=3.29e-13 step=62, time=1.37e-11, max_dmdt=208 ode_step=3.29e-13 step=63, time=1.4e-11, max_dmdt=204 ode_step=3.29e-13 step=64, time=1.45e-11, max_dmdt=201 ode_step=4.94e-13 step=65, time=1.5e-11, max_dmdt=196 ode_step=4.94e-13 step=66, time=1.55e-11, max_dmdt=192 ode_step=4.94e-13 step=67, time=1.6e-11, max_dmdt=188 ode_step=4.94e-13 step=68, time=1.65e-11, max_dmdt=184 ode_step=4.94e-13 step=69, time=1.7e-11, max_dmdt=180 ode_step=4.94e-13 step=70, time=1.75e-11, max_dmdt=177 ode_step=4.94e-13 step=71, time=1.8e-11, max_dmdt=173 ode_step=4.94e-13 step=72, time=1.85e-11, max_dmdt=170 ode_step=4.94e-13 step=73, time=1.9e-11, max_dmdt=167 ode_step=4.94e-13 step=74, time=1.95e-11, max_dmdt=164 ode_step=4.94e-13 step=75, time=2e-11, max_dmdt=161 ode_step=4.94e-13 step=76, time=2.04e-11, max_dmdt=159 ode_step=4.94e-13 step=77, time=2.09e-11, max_dmdt=156 ode_step=4.94e-13 step=78, time=2.17e-11, max_dmdt=153 ode_step=7.48e-13 step=79, time=2.24e-11, max_dmdt=150 ode_step=7.48e-13 step=80, time=2.32e-11, max_dmdt=147 ode_step=7.48e-13 step=81, time=2.39e-11, max_dmdt=144 ode_step=7.48e-13 step=82, time=2.47e-11, max_dmdt=141 ode_step=7.48e-13 step=83, time=2.54e-11, max_dmdt=138 ode_step=7.48e-13 step=84, time=2.62e-11, max_dmdt=136 ode_step=7.48e-13 step=85, time=2.69e-11, max_dmdt=134 ode_step=7.48e-13 step=86, time=2.77e-11, max_dmdt=131 ode_step=7.48e-13 step=87, time=2.84e-11, max_dmdt=129 ode_step=7.48e-13 step=88, time=2.92e-11, max_dmdt=127 ode_step=7.48e-13 step=89, time=2.99e-11, max_dmdt=125 ode_step=7.48e-13 step=90, time=3.07e-11, max_dmdt=124 ode_step=7.48e-13 step=91, time=3.14e-11, max_dmdt=122 ode_step=7.48e-13 step=92, time=3.22e-11, max_dmdt=120 ode_step=7.48e-13 step=93, time=3.29e-11, max_dmdt=119 ode_step=7.48e-13 step=94, time=3.37e-11, max_dmdt=118 ode_step=7.48e-13 step=95, time=3.44e-11, max_dmdt=116 ode_step=7.48e-13 step=96, time=3.52e-11, max_dmdt=115 ode_step=7.48e-13 step=97, time=3.59e-11, max_dmdt=114 ode_step=7.48e-13 step=98, time=3.67e-11, max_dmdt=113 ode_step=7.48e-13 step=99, time=3.74e-11, max_dmdt=112 ode_step=7.48e-13 step=100, time=3.82e-11, max_dmdt=111 ode_step=7.48e-13 step=101, time=3.89e-11, max_dmdt=110 ode_step=7.48e-13 step=102, time=3.97e-11, max_dmdt=109 ode_step=7.48e-13 step=103, time=4.04e-11, max_dmdt=108 ode_step=7.48e-13 step=104, time=4.12e-11, max_dmdt=107 ode_step=7.48e-13 step=105, time=4.19e-11, max_dmdt=107 ode_step=7.48e-13 step=106, time=4.26e-11, max_dmdt=106 ode_step=7.48e-13 step=107, time=4.34e-11, max_dmdt=105 ode_step=7.48e-13 step=108, time=4.41e-11, max_dmdt=104 ode_step=7.48e-13 step=109, time=4.49e-11, max_dmdt=104 ode_step=7.48e-13 step=110, time=4.56e-11, max_dmdt=103 ode_step=7.48e-13 step=111, time=4.64e-11, max_dmdt=102 ode_step=7.48e-13 step=112, time=4.71e-11, max_dmdt=102 ode_step=7.48e-13 step=113, time=4.79e-11, max_dmdt=101 ode_step=7.48e-13 step=114, time=4.86e-11, max_dmdt=101 ode_step=7.48e-13 step=115, time=4.94e-11, max_dmdt=100 ode_step=7.48e-13 step=116, time=5.01e-11, max_dmdt=99.6 ode_step=7.48e-13 step=117, time=5.09e-11, max_dmdt=99.1 ode_step=7.48e-13 step=118, time=5.16e-11, max_dmdt=98.6 ode_step=7.48e-13 step=119, time=5.24e-11, max_dmdt=98.2 ode_step=7.48e-13 step=120, time=5.31e-11, max_dmdt=97.7 ode_step=7.48e-13 step=121, time=5.39e-11, max_dmdt=97.2 ode_step=7.48e-13 step=122, time=5.46e-11, max_dmdt=96.8 ode_step=7.48e-13 step=123, time=5.54e-11, max_dmdt=96.3 ode_step=7.48e-13 step=124, time=5.61e-11, max_dmdt=95.9 ode_step=7.48e-13 step=125, time=5.69e-11, max_dmdt=95.5 ode_step=7.48e-13 step=126, time=5.8e-11, max_dmdt=95 ode_step=1.14e-12 step=127, time=5.91e-11, max_dmdt=94.4 ode_step=1.14e-12 step=128, time=6.03e-11, max_dmdt=93.8 ode_step=1.14e-12 step=129, time=6.14e-11, max_dmdt=93.2 ode_step=1.14e-12 step=130, time=6.26e-11, max_dmdt=92.7 ode_step=1.14e-12 step=131, time=6.37e-11, max_dmdt=92.2 ode_step=1.14e-12 step=132, time=6.48e-11, max_dmdt=91.6 ode_step=1.14e-12 step=133, time=6.6e-11, max_dmdt=91.1 ode_step=1.14e-12 step=134, time=6.71e-11, max_dmdt=90.6 ode_step=1.14e-12 step=135, time=6.82e-11, max_dmdt=90.1 ode_step=1.14e-12 step=136, time=6.94e-11, max_dmdt=89.6 ode_step=1.14e-12 step=137, time=7.05e-11, max_dmdt=89.2 ode_step=1.14e-12 step=138, time=7.17e-11, max_dmdt=88.7 ode_step=1.14e-12 step=139, time=7.28e-11, max_dmdt=88.2 ode_step=1.14e-12 step=140, time=7.39e-11, max_dmdt=87.8 ode_step=1.14e-12 step=141, time=7.51e-11, max_dmdt=87.3 ode_step=1.14e-12 step=142, time=7.62e-11, max_dmdt=86.9 ode_step=1.14e-12 step=143, time=7.74e-11, max_dmdt=86.4 ode_step=1.14e-12 step=144, time=7.85e-11, max_dmdt=86 ode_step=1.14e-12 step=145, time=7.96e-11, max_dmdt=85.6 ode_step=1.14e-12 step=146, time=8.08e-11, max_dmdt=85.2 ode_step=1.14e-12 step=147, time=8.19e-11, max_dmdt=84.8 ode_step=1.14e-12 step=148, time=8.3e-11, max_dmdt=84.4 ode_step=1.14e-12 step=149, time=8.42e-11, max_dmdt=84 ode_step=1.14e-12 step=150, time=8.53e-11, max_dmdt=83.5 ode_step=1.14e-12 step=151, time=8.65e-11, max_dmdt=83.1 ode_step=1.14e-12 step=152, time=8.76e-11, max_dmdt=82.7 ode_step=1.14e-12 step=153, time=8.87e-11, max_dmdt=82.3 ode_step=1.14e-12 step=154, time=8.99e-11, max_dmdt=82 ode_step=1.14e-12 step=155, time=9.1e-11, max_dmdt=81.6 ode_step=1.14e-12 step=156, time=9.21e-11, max_dmdt=81.2 ode_step=1.14e-12 step=157, time=9.33e-11, max_dmdt=80.8 ode_step=1.14e-12 step=158, time=9.44e-11, max_dmdt=80.4 ode_step=1.14e-12 step=159, time=9.56e-11, max_dmdt=80 ode_step=1.14e-12 step=160, time=9.67e-11, max_dmdt=79.6 ode_step=1.14e-12 step=161, time=9.78e-11, max_dmdt=79.3 ode_step=1.14e-12 step=162, time=9.9e-11, max_dmdt=78.9 ode_step=1.14e-12 step=163, time=1.01e-10, max_dmdt=78.4 ode_step=1.75e-12 step=164, time=1.02e-10, max_dmdt=77.8 ode_step=1.75e-12 step=165, time=1.04e-10, max_dmdt=77.3 ode_step=1.75e-12 step=166, time=1.06e-10, max_dmdt=76.7 ode_step=1.75e-12 step=167, time=1.08e-10, max_dmdt=76.1 ode_step=1.75e-12 step=168, time=1.09e-10, max_dmdt=75.6 ode_step=1.75e-12 step=169, time=1.11e-10, max_dmdt=75 ode_step=1.75e-12 step=170, time=1.13e-10, max_dmdt=74.5 ode_step=1.75e-12 step=171, time=1.15e-10, max_dmdt=74 ode_step=1.75e-12 step=172, time=1.16e-10, max_dmdt=73.4 ode_step=1.75e-12 step=173, time=1.18e-10, max_dmdt=72.9 ode_step=1.75e-12 step=174, time=1.2e-10, max_dmdt=72.4 ode_step=1.75e-12 step=175, time=1.22e-10, max_dmdt=71.8 ode_step=1.75e-12 step=176, time=1.23e-10, max_dmdt=71.3 ode_step=1.75e-12 step=177, time=1.25e-10, max_dmdt=70.8 ode_step=1.75e-12 step=178, time=1.27e-10, max_dmdt=70.3 ode_step=1.75e-12 step=179, time=1.29e-10, max_dmdt=69.8 ode_step=1.75e-12 step=180, time=1.3e-10, max_dmdt=69.3 ode_step=1.75e-12 step=181, time=1.32e-10, max_dmdt=68.8 ode_step=1.75e-12 step=182, time=1.34e-10, max_dmdt=68.3 ode_step=1.75e-12 step=183, time=1.36e-10, max_dmdt=67.8 ode_step=1.75e-12 step=184, time=1.37e-10, max_dmdt=67.3 ode_step=1.75e-12 step=185, time=1.39e-10, max_dmdt=66.8 ode_step=1.75e-12 step=186, time=1.41e-10, max_dmdt=66.3 ode_step=1.75e-12 step=187, time=1.43e-10, max_dmdt=65.8 ode_step=1.75e-12 step=188, time=1.44e-10, max_dmdt=65.3 ode_step=1.75e-12 step=189, time=1.46e-10, max_dmdt=64.8 ode_step=1.75e-12 step=190, time=1.48e-10, max_dmdt=64.4 ode_step=1.75e-12 step=191, time=1.5e-10, max_dmdt=63.9 ode_step=1.75e-12 step=192, time=1.52e-10, max_dmdt=63.3 ode_step=2.69e-12 step=193, time=1.55e-10, max_dmdt=62.6 ode_step=2.69e-12 step=194, time=1.58e-10, max_dmdt=61.9 ode_step=2.69e-12 step=195, time=1.6e-10, max_dmdt=61.2 ode_step=2.69e-12 step=196, time=1.63e-10, max_dmdt=60.5 ode_step=2.69e-12 step=197, time=1.66e-10, max_dmdt=59.8 ode_step=2.69e-12 step=198, time=1.69e-10, max_dmdt=59.1 ode_step=2.69e-12 step=199, time=1.71e-10, max_dmdt=58.4 ode_step=2.69e-12 step=200, time=1.74e-10, max_dmdt=57.8 ode_step=2.69e-12 step=201, time=1.77e-10, max_dmdt=57.1 ode_step=2.69e-12 step=202, time=1.79e-10, max_dmdt=56.5 ode_step=2.69e-12 step=203, time=1.83e-10, max_dmdt=55.7 ode_step=4.09e-12 step=204, time=1.87e-10, max_dmdt=54.7 ode_step=4.09e-12 step=205, time=1.92e-10, max_dmdt=53.8 ode_step=4.09e-12 step=206, time=1.96e-10, max_dmdt=52.8 ode_step=4.09e-12 step=207, time=2e-10, max_dmdt=51.9 ode_step=4.09e-12 step=208, time=2.04e-10, max_dmdt=51 ode_step=4.09e-12 step=209, time=2.08e-10, max_dmdt=50.2 ode_step=4.09e-12 step=210, time=2.12e-10, max_dmdt=49.3 ode_step=4.09e-12 step=211, time=2.16e-10, max_dmdt=48.5 ode_step=4.09e-12 step=212, time=2.2e-10, max_dmdt=47.6 ode_step=4.09e-12 step=213, time=2.24e-10, max_dmdt=46.8 ode_step=4.09e-12 step=214, time=2.28e-10, max_dmdt=46 ode_step=4.09e-12 step=215, time=2.32e-10, max_dmdt=45.3 ode_step=4.09e-12 step=216, time=2.37e-10, max_dmdt=44.5 ode_step=4.09e-12 step=217, time=2.41e-10, max_dmdt=43.7 ode_step=4.09e-12 step=218, time=2.45e-10, max_dmdt=43 ode_step=4.09e-12 step=219, time=2.49e-10, max_dmdt=42.3 ode_step=4.09e-12 step=220, time=2.53e-10, max_dmdt=41.6 ode_step=4.09e-12 step=221, time=2.57e-10, max_dmdt=40.9 ode_step=4.09e-12 step=222, time=2.61e-10, max_dmdt=40.2 ode_step=4.09e-12 step=223, time=2.65e-10, max_dmdt=39.5 ode_step=4.09e-12 step=224, time=2.69e-10, max_dmdt=38.9 ode_step=4.09e-12 step=225, time=2.73e-10, max_dmdt=38.2 ode_step=4.09e-12 step=226, time=2.77e-10, max_dmdt=37.6 ode_step=4.09e-12 step=227, time=2.81e-10, max_dmdt=37 ode_step=4.09e-12 step=228, time=2.86e-10, max_dmdt=36.4 ode_step=4.09e-12 step=229, time=2.9e-10, max_dmdt=35.8 ode_step=4.09e-12 step=230, time=2.94e-10, max_dmdt=35.2 ode_step=4.09e-12 step=231, time=3e-10, max_dmdt=34.5 ode_step=6.13e-12 step=232, time=3.06e-10, max_dmdt=33.6 ode_step=6.13e-12 step=233, time=3.12e-10, max_dmdt=32.8 ode_step=6.13e-12 step=234, time=3.18e-10, max_dmdt=32.1 ode_step=6.13e-12 step=235, time=3.24e-10, max_dmdt=31.3 ode_step=6.13e-12 step=236, time=3.31e-10, max_dmdt=30.6 ode_step=6.13e-12 step=237, time=3.37e-10, max_dmdt=29.9 ode_step=6.13e-12 step=238, time=3.43e-10, max_dmdt=29.3 ode_step=6.13e-12 step=239, time=3.49e-10, max_dmdt=28.6 ode_step=6.13e-12 step=240, time=3.55e-10, max_dmdt=28 ode_step=6.13e-12 step=241, time=3.61e-10, max_dmdt=27.4 ode_step=6.13e-12 step=242, time=3.67e-10, max_dmdt=27 ode_step=6.13e-12 step=243, time=3.73e-10, max_dmdt=26.6 ode_step=6.13e-12 step=244, time=3.8e-10, max_dmdt=26.2 ode_step=6.13e-12 step=245, time=3.86e-10, max_dmdt=25.8 ode_step=6.13e-12 step=246, time=3.92e-10, max_dmdt=25.4 ode_step=6.13e-12 step=247, time=3.98e-10, max_dmdt=25.1 ode_step=6.13e-12 step=248, time=4.04e-10, max_dmdt=24.7 ode_step=6.13e-12 step=249, time=4.1e-10, max_dmdt=24.3 ode_step=6.13e-12 step=250, time=4.16e-10, max_dmdt=24 ode_step=6.13e-12 step=251, time=4.22e-10, max_dmdt=23.6 ode_step=6.13e-12 step=252, time=4.29e-10, max_dmdt=23.3 ode_step=6.13e-12 step=253, time=4.35e-10, max_dmdt=22.9 ode_step=6.13e-12 step=254, time=4.41e-10, max_dmdt=22.6 ode_step=6.13e-12 step=255, time=4.51e-10, max_dmdt=22.2 ode_step=9.71e-12 step=256, time=4.6e-10, max_dmdt=21.7 ode_step=9.71e-12 step=257, time=4.7e-10, max_dmdt=21.2 ode_step=9.71e-12 step=258, time=4.8e-10, max_dmdt=20.7 ode_step=9.71e-12 step=259, time=4.89e-10, max_dmdt=20.2 ode_step=9.71e-12 step=260, time=4.99e-10, max_dmdt=19.7 ode_step=9.71e-12 step=261, time=5.09e-10, max_dmdt=19.4 ode_step=9.71e-12 step=262, time=5.19e-10, max_dmdt=19.2 ode_step=9.71e-12 step=263, time=5.28e-10, max_dmdt=19 ode_step=9.71e-12 step=264, time=5.38e-10, max_dmdt=18.8 ode_step=9.71e-12 step=265, time=5.48e-10, max_dmdt=18.7 ode_step=9.71e-12 step=266, time=5.57e-10, max_dmdt=18.5 ode_step=9.71e-12 step=267, time=5.67e-10, max_dmdt=18.3 ode_step=9.71e-12 step=268, time=5.77e-10, max_dmdt=18.1 ode_step=9.71e-12 step=269, time=5.87e-10, max_dmdt=18 ode_step=9.71e-12 step=270, time=5.96e-10, max_dmdt=17.8 ode_step=9.71e-12 step=271, time=6.06e-10, max_dmdt=17.6 ode_step=9.71e-12 step=272, time=6.16e-10, max_dmdt=17.4 ode_step=9.71e-12 step=273, time=6.25e-10, max_dmdt=17.2 ode_step=9.71e-12 step=274, time=6.35e-10, max_dmdt=17.1 ode_step=9.71e-12 step=275, time=6.45e-10, max_dmdt=16.9 ode_step=9.71e-12 step=276, time=6.54e-10, max_dmdt=16.7 ode_step=9.71e-12 step=277, time=6.64e-10, max_dmdt=16.5 ode_step=9.71e-12 step=278, time=6.74e-10, max_dmdt=16.3 ode_step=9.71e-12 step=279, time=6.84e-10, max_dmdt=16.1 ode_step=9.71e-12 step=280, time=6.93e-10, max_dmdt=15.9 ode_step=9.71e-12 step=281, time=7.03e-10, max_dmdt=15.7 ode_step=9.71e-12 step=282, time=7.13e-10, max_dmdt=15.5 ode_step=9.71e-12 step=283, time=7.22e-10, max_dmdt=15.3 ode_step=9.71e-12 step=284, time=7.32e-10, max_dmdt=15.1 ode_step=9.71e-12 step=285, time=7.42e-10, max_dmdt=14.9 ode_step=9.71e-12 step=286, time=7.52e-10, max_dmdt=14.7 ode_step=9.71e-12 step=287, time=7.61e-10, max_dmdt=14.5 ode_step=9.71e-12 step=288, time=7.71e-10, max_dmdt=14.3 ode_step=9.71e-12 step=289, time=7.81e-10, max_dmdt=14.2 ode_step=9.71e-12 step=290, time=7.9e-10, max_dmdt=14 ode_step=9.71e-12 step=291, time=8.06e-10, max_dmdt=13.7 ode_step=1.53e-11 step=292, time=8.21e-10, max_dmdt=13.4 ode_step=1.53e-11 step=293, time=8.36e-10, max_dmdt=13.1 ode_step=1.53e-11 step=294, time=8.52e-10, max_dmdt=12.8 ode_step=1.53e-11 step=295, time=8.67e-10, max_dmdt=12.5 ode_step=1.53e-11 step=296, time=8.82e-10, max_dmdt=12.2 ode_step=1.53e-11 step=297, time=8.97e-10, max_dmdt=11.9 ode_step=1.53e-11 step=298, time=9.13e-10, max_dmdt=11.6 ode_step=1.53e-11 step=299, time=9.28e-10, max_dmdt=11.3 ode_step=1.53e-11 step=300, time=9.43e-10, max_dmdt=11.1 ode_step=1.53e-11 step=301, time=9.59e-10, max_dmdt=10.8 ode_step=1.53e-11 step=302, time=9.74e-10, max_dmdt=10.5 ode_step=1.53e-11 step=303, time=9.89e-10, max_dmdt=10.2 ode_step=1.53e-11 step=304, time=1e-09, max_dmdt=9.99 ode_step=1.53e-11 step=305, time=1.02e-09, max_dmdt=9.73 ode_step=1.53e-11 step=306, time=1.04e-09, max_dmdt=9.48 ode_step=1.53e-11 step=307, time=1.05e-09, max_dmdt=9.24 ode_step=1.53e-11 step=308, time=1.07e-09, max_dmdt=9 ode_step=1.53e-11 step=309, time=1.08e-09, max_dmdt=8.76 ode_step=1.53e-11 step=310, time=1.1e-09, max_dmdt=8.54 ode_step=1.53e-11 step=311, time=1.11e-09, max_dmdt=8.32 ode_step=1.53e-11 step=312, time=1.13e-09, max_dmdt=8.1 ode_step=1.53e-11 step=313, time=1.14e-09, max_dmdt=7.89 ode_step=1.53e-11 step=314, time=1.16e-09, max_dmdt=7.68 ode_step=1.53e-11 step=315, time=1.17e-09, max_dmdt=7.48 ode_step=1.53e-11 step=316, time=1.19e-09, max_dmdt=7.28 ode_step=1.53e-11 step=317, time=1.2e-09, max_dmdt=7.09 ode_step=1.53e-11 step=318, time=1.22e-09, max_dmdt=6.91 ode_step=1.53e-11 step=319, time=1.23e-09, max_dmdt=6.72 ode_step=1.53e-11 step=320, time=1.25e-09, max_dmdt=6.54 ode_step=1.53e-11 step=321, time=1.26e-09, max_dmdt=6.37 ode_step=1.53e-11 step=322, time=1.28e-09, max_dmdt=6.2 ode_step=1.53e-11 step=323, time=1.3e-09, max_dmdt=6.04 ode_step=1.53e-11 step=324, time=1.31e-09, max_dmdt=5.88 ode_step=1.53e-11 step=325, time=1.33e-09, max_dmdt=5.72 ode_step=1.53e-11 step=326, time=1.34e-09, max_dmdt=5.57 ode_step=1.53e-11 step=327, time=1.36e-09, max_dmdt=5.42 ode_step=1.53e-11 step=328, time=1.37e-09, max_dmdt=5.28 ode_step=1.53e-11 step=329, time=1.39e-09, max_dmdt=5.14 ode_step=1.53e-11 step=330, time=1.4e-09, max_dmdt=5 ode_step=1.53e-11 step=331, time=1.43e-09, max_dmdt=4.84 ode_step=2.31e-11 step=332, time=1.45e-09, max_dmdt=4.64 ode_step=2.31e-11 step=333, time=1.47e-09, max_dmdt=4.46 ode_step=2.31e-11 step=334, time=1.49e-09, max_dmdt=4.28 ode_step=2.31e-11 step=335, time=1.52e-09, max_dmdt=4.11 ode_step=2.31e-11 step=336, time=1.54e-09, max_dmdt=3.95 ode_step=2.31e-11 step=337, time=1.56e-09, max_dmdt=3.79 ode_step=2.31e-11 step=338, time=1.59e-09, max_dmdt=3.65 ode_step=2.31e-11 step=339, time=1.61e-09, max_dmdt=3.5 ode_step=2.31e-11 step=340, time=1.63e-09, max_dmdt=3.37 ode_step=2.31e-11 step=341, time=1.66e-09, max_dmdt=3.24 ode_step=2.31e-11 step=342, time=1.68e-09, max_dmdt=3.11 ode_step=2.31e-11 step=343, time=1.7e-09, max_dmdt=2.99 ode_step=2.31e-11 step=344, time=1.73e-09, max_dmdt=2.87 ode_step=2.31e-11 step=345, time=1.75e-09, max_dmdt=2.76 ode_step=2.31e-11 step=346, time=1.77e-09, max_dmdt=2.66 ode_step=2.31e-11 step=347, time=1.8e-09, max_dmdt=2.55 ode_step=2.31e-11 step=348, time=1.82e-09, max_dmdt=2.46 ode_step=2.31e-11 step=349, time=1.84e-09, max_dmdt=2.36 ode_step=2.31e-11 step=350, time=1.86e-09, max_dmdt=2.27 ode_step=2.31e-11 step=351, time=1.89e-09, max_dmdt=2.19 ode_step=2.31e-11 step=352, time=1.91e-09, max_dmdt=2.1 ode_step=2.31e-11 step=353, time=1.93e-09, max_dmdt=2.02 ode_step=2.31e-11 step=354, time=1.96e-09, max_dmdt=1.95 ode_step=2.31e-11 step=355, time=1.98e-09, max_dmdt=1.87 ode_step=2.31e-11 step=356, time=2e-09, max_dmdt=1.8 ode_step=2.31e-11 step=357, time=2.03e-09, max_dmdt=1.74 ode_step=2.31e-11 step=358, time=2.05e-09, max_dmdt=1.67 ode_step=2.31e-11 step=359, time=2.07e-09, max_dmdt=1.61 ode_step=2.31e-11 step=360, time=2.1e-09, max_dmdt=1.55 ode_step=2.31e-11 step=361, time=2.12e-09, max_dmdt=1.49 ode_step=2.31e-11 step=362, time=2.14e-09, max_dmdt=1.44 ode_step=2.31e-11 step=363, time=2.16e-09, max_dmdt=1.38 ode_step=2.31e-11 step=364, time=2.19e-09, max_dmdt=1.33 ode_step=2.31e-11 step=365, time=2.21e-09, max_dmdt=1.28 ode_step=2.31e-11 step=366, time=2.23e-09, max_dmdt=1.23 ode_step=2.31e-11 step=367, time=2.26e-09, max_dmdt=1.19 ode_step=2.31e-11 step=368, time=2.28e-09, max_dmdt=1.15 ode_step=2.31e-11 step=369, time=2.3e-09, max_dmdt=1.1 ode_step=2.31e-11 step=370, time=2.33e-09, max_dmdt=1.06 ode_step=2.31e-11 step=371, time=2.35e-09, max_dmdt=1.02 ode_step=2.31e-11 step=372, time=2.37e-09, max_dmdt=0.988 ode_step=2.31e-11 step=373, time=2.4e-09, max_dmdt=0.952 ode_step=2.31e-11 step=374, time=2.43e-09, max_dmdt=0.909 ode_step=3.51e-11 step=375, time=2.47e-09, max_dmdt=0.859 ode_step=3.51e-11 step=376, time=2.5e-09, max_dmdt=0.812 ode_step=3.51e-11 step=377, time=2.54e-09, max_dmdt=0.768 ode_step=3.51e-11 step=378, time=2.57e-09, max_dmdt=0.727 ode_step=3.51e-11 step=379, time=2.61e-09, max_dmdt=0.688 ode_step=3.51e-11 step=380, time=2.64e-09, max_dmdt=0.651 ode_step=3.51e-11 step=381, time=2.68e-09, max_dmdt=0.616 ode_step=3.51e-11 step=382, time=2.71e-09, max_dmdt=0.583 ode_step=3.51e-11 step=383, time=2.75e-09, max_dmdt=0.552 ode_step=3.51e-11 step=384, time=2.78e-09, max_dmdt=0.522 ode_step=3.51e-11 step=385, time=2.82e-09, max_dmdt=0.494 ode_step=3.51e-11 step=386, time=2.85e-09, max_dmdt=0.468 ode_step=3.51e-11 step=387, time=2.89e-09, max_dmdt=0.443 ode_step=3.51e-11 step=388, time=2.92e-09, max_dmdt=0.42 ode_step=3.51e-11 step=389, time=2.96e-09, max_dmdt=0.397 ode_step=3.51e-11 step=390, time=2.99e-09, max_dmdt=0.376 ode_step=3.51e-11 step=391, time=3.03e-09, max_dmdt=0.357 ode_step=3.51e-11 step=392, time=3.06e-09, max_dmdt=0.338 ode_step=3.51e-11 step=393, time=3.1e-09, max_dmdt=0.32 ode_step=3.51e-11 step=394, time=3.13e-09, max_dmdt=0.303 ode_step=3.51e-11 step=395, time=3.17e-09, max_dmdt=0.287 ode_step=3.51e-11 step=396, time=3.2e-09, max_dmdt=0.272 ode_step=3.51e-11 step=397, time=3.24e-09, max_dmdt=0.258 ode_step=3.51e-11 step=398, time=3.27e-09, max_dmdt=0.245 ode_step=3.51e-11 step=399, time=3.31e-09, max_dmdt=0.232 ode_step=3.51e-11 step=400, time=3.34e-09, max_dmdt=0.22 ode_step=3.51e-11 step=401, time=3.38e-09, max_dmdt=0.208 ode_step=3.51e-11 step=402, time=3.42e-09, max_dmdt=0.197 ode_step=3.51e-11 step=403, time=3.45e-09, max_dmdt=0.187 ode_step=3.51e-11 step=404, time=3.49e-09, max_dmdt=0.177 ode_step=3.51e-11 step=405, time=3.52e-09, max_dmdt=0.168 ode_step=3.51e-11 step=406, time=3.56e-09, max_dmdt=0.159 ode_step=3.51e-11 step=407, time=3.59e-09, max_dmdt=0.151 ode_step=3.51e-11 step=408, time=3.63e-09, max_dmdt=0.143 ode_step=3.51e-11 step=409, time=3.66e-09, max_dmdt=0.136 ode_step=3.51e-11 step=410, time=3.7e-09, max_dmdt=0.129 ode_step=3.51e-11 step=411, time=3.76e-09, max_dmdt=0.12 ode_step=5.91e-11 step=412, time=3.81e-09, max_dmdt=0.11 ode_step=5.91e-11 step=413, time=3.87e-09, max_dmdt=0.101 ode_step=5.91e-11 step=414, time=3.93e-09, max_dmdt=0.092 ode_step=5.91e-11 step=415, time=3.99e-09, max_dmdt=0.0841 ode_step=5.91e-11 step=416, time=4.05e-09, max_dmdt=0.077 ode_step=5.91e-11 step=417, time=4.11e-09, max_dmdt=0.0705 ode_step=5.91e-11 step=418, time=4.17e-09, max_dmdt=0.0645 ode_step=5.91e-11 step=419, time=4.23e-09, max_dmdt=0.059 ode_step=5.91e-11 step=420, time=4.29e-09, max_dmdt=0.054 ode_step=5.91e-11 step=421, time=4.35e-09, max_dmdt=0.0494 ode_step=5.91e-11 step=422, time=4.41e-09, max_dmdt=0.0453 ode_step=5.91e-11 step=423, time=4.47e-09, max_dmdt=0.0414 ode_step=5.91e-11 step=424, time=4.52e-09, max_dmdt=0.0379 ode_step=5.91e-11 step=425, time=4.58e-09, max_dmdt=0.0347 ode_step=5.91e-11 step=426, time=4.64e-09, max_dmdt=0.0318 ode_step=5.91e-11 step=427, time=4.7e-09, max_dmdt=0.0291 ode_step=5.91e-11 step=428, time=4.76e-09, max_dmdt=0.0267 ode_step=5.91e-11 step=429, time=4.82e-09, max_dmdt=0.0244 ode_step=5.91e-11 step=430, time=4.88e-09, max_dmdt=0.0224 ode_step=5.91e-11 step=431, time=4.94e-09, max_dmdt=0.0205 ode_step=5.91e-11 step=432, time=5e-09, max_dmdt=0.0187 ode_step=5.91e-11 step=433, time=5.09e-09, max_dmdt=0.0168 ode_step=8.9e-11 step=434, time=5.18e-09, max_dmdt=0.0147 ode_step=8.9e-11 step=435, time=5.26e-09, max_dmdt=0.0129 ode_step=8.9e-11 step=436, time=5.35e-09, max_dmdt=0.0113 ode_step=8.9e-11 step=437, time=5.44e-09, max_dmdt=0.0099 ode_step=8.9e-11
We not plot the magnetisation configuration,
# PYTEST_VALIDATE_IGNORE_OUTPUT m = sim.spin m.shape = (-1,3) mx = m[:,0] my = m[:,1] mx.shape = (40, 160) my.shape = (40, 160) fig = plt.figure(figsize=(15,5)) plt.axes().set_aspect('equal') plt.quiver(mx[1::4,1::4], my[::4,::4], my[::4,::4], pivot='mid', alpha=0.9, scale=45, cmap=plt.get_cmap('jet'), edgecolors='None' ) plt.xlim([-0.5,39.5]) plt.xticks([]) plt.yticks([]) plt.show() print(np.average(m[:,:], axis=0))
[ 9.66821767e-01 1.25543432e-01 3.11232500e-18]
With the obtained relaxed magnetisation, the magnetisation evolution can be simulated for the two different external magnetic fields using the following function:
def field_simulation(H, name): print(name) sim = Sim(mesh, name) sim.driver.alpha = alpha sim.driver.gamma = gamma sim.Ms = Ms sim.add(UniformExchange(A=A)) sim.add(Demag()) sim.add(Zeeman(H)) sim.set_m(np.load('m0.npy')) # load the equilibrium magnetisation from the previous step timesteps = np.linspace(0, 0.2e-9, 21) for i, t in enumerate(timesteps): sim.driver.run_until(t) if i % 10 == 0: print("\tsimulated {} s".format(t))
Using the created field_simulation function, we obtain the average magnetisation components time evolutions. Note that we only run the simulation for a short time, a full version of this standard problem 4 can be found in folder examples/micromagnetic/std4.
# PYTEST_VALIDATE_IGNORE_OUTPUT mu0 = 4 * np.pi * 1e-7 # magnetic constant (H/m) mT = 1e-3 / mu0 # millitesla field_simulation([-24.6 * mT, 4.3 * mT, 0], "field_1") #field_simulation([-35.5 * mT, -6.3 * mT, 0], "field_2")
field_1 simulated 0.0 s simulated 1e-10 s simulated 2e-10 s
We could have saved the magnetisation dynamics in python objects on the fly. Instead, we chose to make use of fidimag’s automatic saving capabilities and will now read our simulation results back in.
# PYTEST_VALIDATE_IGNORE_OUTPUT import matplotlib.pyplot as plt %matplotlib inline from fidimag.common.fileio import DataReader def do_plot(data_name): dynamics = DataReader(data_name) # we could load the data with np.loadtxt, but using the DataReader gives # us the possibility to use the column headers to access our data fig = plt.figure(figsize=(8, 6)) axes = fig.add_subplot(111) axes.plot(dynamics["time"] * 1e9, dynamics["m_x"], "b-", label="m_x") axes.plot(dynamics["time"] * 1e9, dynamics["m_y"], "r--", label="m_y") axes.plot(dynamics["time"] * 1e9, dynamics["m_z"], "g--", label="m_z") axes.set_xlabel("time (ns)") axes.set_xlim((0, 0.25)) axes.set_ylabel("unit magnetisation (1)") axes.set_ylim((-1.05, 1)) axes.legend() plt.show() do_plot('field_1.txt')
[1] muMAG Micromagnetics Website. URL: http://www.ctcms.nist.gov/~rdm/mumag.org.html (Date of access: 26/02/2016)
Notebook showing how to use the implementation of an optimised version of the Steepest Descent (SD) algorithm in Fidimag, for an atomistic system.
This SD algorithm is based on Exl et al. Journal of Applied Physics 115, 17D118 (2014) https://aip.scitation.org/doi/10.1063/1.4862839
The following links are also relevant:
MuMax3 code: https://github.com/mumax/3/blob/master/engine/minimizer.go
The minimizer branch of Micromagnum: https://github.com/MicroMagnum/MicroMagnum/tree/minimizer/src/magnum/micromagnetics (here you can find conditions for the step sizes in Exl’s publication)
minimizer
The SD driver inherits from the minimiser base class in fidimag/common/ and can be specified in the driver option of the Simulation class
minimiser
fidimag/common/
driver
Simulation
import matplotlib.pyplot as plt import fidimag import fidimag.common.constant as C import numpy as np %matplotlib inline
# import imp # imp.reload(fidimag)
We start defining parameters for an atomistic simulation
# System parameters L = 100 # Some atomistic parameters J = 5.88 * C.meV D = 1.56 * C.meV Ku = 0.41 * C.meV mus = 3 * C.mu_B # Lattice constants (in nm) a = 0.2715 az = 0.408 # Magnetic field in Tesla B = 2 # Free electron gyrom ratio gamma = 1.76e11
Define the mesh of the system
nx, ny, nz = 100, 1, 1 dx, dy, dz = a, a, az mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, periodicity=(False, False, False), unit_length=1e-9)
Here we set the minimiser by specifying it in the driver argument in the Simulation class:
sim = fidimag.atomistic.Sim(mesh, name='one_dim_SD', driver='steepest_descent') # Define the magnetisation sim.set_mu_s(mus) # Add the magnetic interactions sim.add(fidimag.atomistic.Exchange(J)) sim.add(fidimag.atomistic.Anisotropy(Ku, axis=(0, 0, 1))) sim.add(fidimag.atomistic.DMI(D, dmi_type='interfacial')) sim.add(fidimag.atomistic.Zeeman((0, 0, B))) xs = mesh.coordinates[:, 0] centre_x = (xs.max() + xs.min()) * 0.5 + xs.min() def m_initial(r): x, y, z = r[0], r[1], r[2] if np.abs(x - centre_x) < 2: return (0, 0.1, -.9) else: return (0, 0.1, .9) # sim.set_m((0.1, 0, 0.9)) sim.set_m(m_initial)
The initial configuration showing \(m_{z}\), we want a domain wall after relaxation:
plt.plot(sim.mesh.coordinates[:, 0], sim.spin.reshape(-1, 3)[:, 2], 'o-') plt.show()
Here we relax the system with the steepest descent. In this case, the relevant parameter to stop the minimisation is the dm difference of the magnetisation with the previous step:
dm
sim.driver.tmax = 1e-1 sim.driver.minimise(max_steps=20000, stopping_dm=1e-10, initial_t_step=1e-2)
#0 max_tau=0.01 max_dm=0.191 #711 max_tau=0.01 max_dm=9.75e-11
The performance of the algorithm can be tuned by modifying the tmax and tmin tolerances in the driver. By defalt, tmax is around 0.01 (MuMax3 uses this magnitude) and tmin must be significantly small. These values seem to work reasonably well for most atomistic simulations:
tmax
tmin
# sim.driver.tmax = # sim.driver.tmin =
We finally obtain the \(360^\circ\) domain wall:
plt.plot(sim.mesh.coordinates[:, 0], sim.spin.reshape(-1, 3)[:, 0], 'o-') plt.plot(sim.mesh.coordinates[:, 0], sim.spin.reshape(-1, 3)[:, 2], 'o-') plt.show()
We can compare the previous result with the LLG driver, which is widely tested:
sim = fidimag.atomistic.Sim(mesh, name='one_dim', driver='llg') # Define the magnetisation sim.set_mu_s(mus) # Add the magnetic interactions sim.add(fidimag.atomistic.Exchange(J)) sim.add(fidimag.atomistic.Anisotropy(Ku, axis=(0, 0, 1))) sim.add(fidimag.atomistic.DMI(D, dmi_type='interfacial')) sim.add(fidimag.atomistic.Zeeman((0, 0, B))) xs = mesh.coordinates[:, 0] centre_x = (xs.max() + xs.min()) * 0.5 + xs.min() def m_initial(r): x, y, z = r[0], r[1], r[2] if np.abs(x - centre_x) < 2: return (0, 0.1, -.9) else: return (0, 0.1, .9) # sim.set_m((0.1, 0, 0.9)) sim.set_m(m_initial)
sim.driver.do_precession = False sim.relax()
#1 t=1e-11 dt=1e-11 max_dmdt=1.77 #2 t=3.53e-10 dt=3.43e-10 max_dmdt=1.77 #3 t=3.79e-09 dt=3.43e-09 max_dmdt=1.77 #4 t=3.81e-08 dt=3.43e-08 max_dmdt=1.77 #5 t=3.81e-07 dt=3.43e-07 max_dmdt=1.77 #6 t=3.81e-06 dt=3.43e-06 max_dmdt=1.77 #7 t=2.51e-05 dt=2.13e-05 max_dmdt=1.77 #8 t=8.19e-05 dt=5.67e-05 max_dmdt=1.77 #9 t=0.000197 dt=0.000115 max_dmdt=1.77 #10 t=0.000417 dt=0.00022 max_dmdt=1.77 #11 t=0.000637 dt=0.00022 max_dmdt=1.77 #12 t=0.000856 dt=0.00022 max_dmdt=1.77 #13 t=0.00108 dt=0.00022 max_dmdt=1.77 #14 t=0.00161 dt=0.000532 max_dmdt=1.78 #15 t=0.00214 dt=0.000532 max_dmdt=1.78 #16 t=0.00267 dt=0.000532 max_dmdt=1.78 #17 t=0.0032 dt=0.000532 max_dmdt=1.78 #18 t=0.00374 dt=0.000532 max_dmdt=1.79 #19 t=0.00483 dt=0.00109 max_dmdt=1.79 #20 t=0.00591 dt=0.00109 max_dmdt=1.8 #21 t=0.007 dt=0.00109 max_dmdt=1.8 #22 t=0.00809 dt=0.00109 max_dmdt=1.81 #23 t=0.00918 dt=0.00109 max_dmdt=1.82 #24 t=0.0109 dt=0.0017 max_dmdt=1.82 #25 t=0.0126 dt=0.0017 max_dmdt=1.83 #26 t=0.0143 dt=0.0017 max_dmdt=1.84 #27 t=0.016 dt=0.0017 max_dmdt=1.85 #28 t=0.0177 dt=0.0017 max_dmdt=1.86 #29 t=0.0203 dt=0.00262 max_dmdt=1.87 #30 t=0.0229 dt=0.00262 max_dmdt=1.88 #31 t=0.027 dt=0.00405 max_dmdt=1.9 #32 t=0.031 dt=0.00405 max_dmdt=1.92 #33 t=0.0351 dt=0.00405 max_dmdt=1.95 #34 t=0.0391 dt=0.00405 max_dmdt=1.97 #35 t=0.0432 dt=0.00405 max_dmdt=1.99 #36 t=0.0472 dt=0.00405 max_dmdt=2.01 #37 t=0.0513 dt=0.00405 max_dmdt=2.03 #38 t=0.0553 dt=0.00405 max_dmdt=2.05 #39 t=0.0594 dt=0.00405 max_dmdt=2.07 #40 t=0.0658 dt=0.0064 max_dmdt=2.1 #41 t=0.0722 dt=0.0064 max_dmdt=2.13 #42 t=0.0786 dt=0.0064 max_dmdt=2.16 #43 t=0.085 dt=0.0064 max_dmdt=2.19 #44 t=0.0913 dt=0.0064 max_dmdt=2.22 #45 t=0.0977 dt=0.0064 max_dmdt=2.24 #46 t=0.104 dt=0.0064 max_dmdt=2.27 #47 t=0.111 dt=0.0064 max_dmdt=2.29 #48 t=0.117 dt=0.0064 max_dmdt=2.31 #49 t=0.123 dt=0.0064 max_dmdt=2.32 #50 t=0.13 dt=0.0064 max_dmdt=2.34 #51 t=0.136 dt=0.0064 max_dmdt=2.35 #52 t=0.143 dt=0.0064 max_dmdt=2.36 #53 t=0.149 dt=0.0064 max_dmdt=2.37 #54 t=0.155 dt=0.0064 max_dmdt=2.37 #55 t=0.162 dt=0.0064 max_dmdt=2.37 #56 t=0.168 dt=0.0064 max_dmdt=2.37 #57 t=0.174 dt=0.0064 max_dmdt=2.36 #58 t=0.181 dt=0.0064 max_dmdt=2.35 #59 t=0.187 dt=0.0064 max_dmdt=2.34 #60 t=0.194 dt=0.0064 max_dmdt=2.32 #61 t=0.2 dt=0.0064 max_dmdt=2.3 #62 t=0.206 dt=0.0064 max_dmdt=2.28 #63 t=0.213 dt=0.0064 max_dmdt=2.25 #64 t=0.219 dt=0.0064 max_dmdt=2.22 #65 t=0.226 dt=0.0064 max_dmdt=2.19 #66 t=0.232 dt=0.0064 max_dmdt=2.16 #67 t=0.238 dt=0.0064 max_dmdt=2.12 #68 t=0.245 dt=0.0064 max_dmdt=2.08 #69 t=0.251 dt=0.0064 max_dmdt=2.04 #70 t=0.258 dt=0.0064 max_dmdt=2 #71 t=0.264 dt=0.0064 max_dmdt=1.95 #72 t=0.27 dt=0.0064 max_dmdt=1.91 #73 t=0.277 dt=0.0064 max_dmdt=1.86 #74 t=0.283 dt=0.0064 max_dmdt=1.81 #75 t=0.29 dt=0.0064 max_dmdt=1.77 #76 t=0.296 dt=0.0064 max_dmdt=1.72 #77 t=0.302 dt=0.0064 max_dmdt=1.67 #78 t=0.309 dt=0.0064 max_dmdt=1.62 #79 t=0.315 dt=0.0064 max_dmdt=1.6 #80 t=0.322 dt=0.0064 max_dmdt=1.59 #81 t=0.328 dt=0.0064 max_dmdt=1.58 #82 t=0.334 dt=0.0064 max_dmdt=1.57 #83 t=0.341 dt=0.0064 max_dmdt=1.55 #84 t=0.347 dt=0.0064 max_dmdt=1.53 #85 t=0.354 dt=0.0064 max_dmdt=1.52 #86 t=0.36 dt=0.0064 max_dmdt=1.5 #87 t=0.366 dt=0.0064 max_dmdt=1.47 #88 t=0.376 dt=0.00964 max_dmdt=1.45 #89 t=0.386 dt=0.00964 max_dmdt=1.41 #90 t=0.395 dt=0.00964 max_dmdt=1.37 #91 t=0.405 dt=0.00964 max_dmdt=1.34 #92 t=0.415 dt=0.00964 max_dmdt=1.3 #93 t=0.424 dt=0.00964 max_dmdt=1.26 #94 t=0.434 dt=0.00964 max_dmdt=1.22 #95 t=0.443 dt=0.00964 max_dmdt=1.18 #96 t=0.453 dt=0.00964 max_dmdt=1.14 #97 t=0.463 dt=0.00964 max_dmdt=1.11 #98 t=0.472 dt=0.00964 max_dmdt=1.07 #99 t=0.482 dt=0.00964 max_dmdt=1.03 #100 t=0.492 dt=0.00964 max_dmdt=0.997 #101 t=0.501 dt=0.00964 max_dmdt=0.963 #102 t=0.511 dt=0.00964 max_dmdt=0.93 #103 t=0.521 dt=0.00964 max_dmdt=0.907 #104 t=0.53 dt=0.00964 max_dmdt=0.89 #105 t=0.54 dt=0.00964 max_dmdt=0.874 #106 t=0.549 dt=0.00964 max_dmdt=0.857 #107 t=0.559 dt=0.00964 max_dmdt=0.84 #108 t=0.569 dt=0.00964 max_dmdt=0.823 #109 t=0.578 dt=0.00964 max_dmdt=0.807 #110 t=0.588 dt=0.00964 max_dmdt=0.791 #111 t=0.598 dt=0.00964 max_dmdt=0.775 #112 t=0.607 dt=0.00964 max_dmdt=0.759 #113 t=0.617 dt=0.00964 max_dmdt=0.744 #114 t=0.627 dt=0.00964 max_dmdt=0.728 #115 t=0.636 dt=0.00964 max_dmdt=0.713 #116 t=0.651 dt=0.0145 max_dmdt=0.695 #117 t=0.665 dt=0.0145 max_dmdt=0.674 #118 t=0.68 dt=0.0145 max_dmdt=0.653 #119 t=0.694 dt=0.0145 max_dmdt=0.633 #120 t=0.708 dt=0.0145 max_dmdt=0.614 #121 t=0.723 dt=0.0145 max_dmdt=0.595 #122 t=0.737 dt=0.0145 max_dmdt=0.577 #123 t=0.752 dt=0.0145 max_dmdt=0.56 #124 t=0.766 dt=0.0145 max_dmdt=0.543 #125 t=0.781 dt=0.0145 max_dmdt=0.527 #126 t=0.795 dt=0.0145 max_dmdt=0.512 #127 t=0.81 dt=0.0145 max_dmdt=0.502 #128 t=0.824 dt=0.0145 max_dmdt=0.495 #129 t=0.839 dt=0.0145 max_dmdt=0.489 #130 t=0.853 dt=0.0145 max_dmdt=0.482 #131 t=0.867 dt=0.0145 max_dmdt=0.475 #132 t=0.882 dt=0.0145 max_dmdt=0.469 #133 t=0.896 dt=0.0145 max_dmdt=0.462 #134 t=0.911 dt=0.0145 max_dmdt=0.456 #135 t=0.925 dt=0.0145 max_dmdt=0.449 #136 t=0.94 dt=0.0145 max_dmdt=0.443 #137 t=0.954 dt=0.0145 max_dmdt=0.436 #138 t=0.969 dt=0.0145 max_dmdt=0.43 #139 t=0.983 dt=0.0145 max_dmdt=0.424 #140 t=1.01 dt=0.0219 max_dmdt=0.416 #141 t=1.03 dt=0.0219 max_dmdt=0.407 #142 t=1.05 dt=0.0219 max_dmdt=0.398 #143 t=1.07 dt=0.0219 max_dmdt=0.389 #144 t=1.09 dt=0.0219 max_dmdt=0.381 #145 t=1.11 dt=0.0219 max_dmdt=0.373 #146 t=1.14 dt=0.0219 max_dmdt=0.365 #147 t=1.16 dt=0.0219 max_dmdt=0.357 #148 t=1.18 dt=0.0219 max_dmdt=0.35 #149 t=1.2 dt=0.0219 max_dmdt=0.342 #150 t=1.22 dt=0.0219 max_dmdt=0.335 #151 t=1.25 dt=0.0219 max_dmdt=0.329 #152 t=1.27 dt=0.0219 max_dmdt=0.322 #153 t=1.29 dt=0.0219 max_dmdt=0.315 #154 t=1.31 dt=0.0219 max_dmdt=0.309 #155 t=1.33 dt=0.0219 max_dmdt=0.303 #156 t=1.36 dt=0.0219 max_dmdt=0.297 #157 t=1.38 dt=0.0219 max_dmdt=0.292 #158 t=1.4 dt=0.0219 max_dmdt=0.286 #159 t=1.42 dt=0.0219 max_dmdt=0.281 #160 t=1.44 dt=0.0219 max_dmdt=0.276 #161 t=1.46 dt=0.0219 max_dmdt=0.271 #162 t=1.49 dt=0.0219 max_dmdt=0.266 #163 t=1.51 dt=0.0219 max_dmdt=0.261 #164 t=1.54 dt=0.0331 max_dmdt=0.256 #165 t=1.57 dt=0.0331 max_dmdt=0.249 #166 t=1.61 dt=0.0331 max_dmdt=0.245 #167 t=1.64 dt=0.0331 max_dmdt=0.242 #168 t=1.67 dt=0.0331 max_dmdt=0.239 #169 t=1.71 dt=0.0331 max_dmdt=0.237 #170 t=1.74 dt=0.0331 max_dmdt=0.234 #171 t=1.77 dt=0.0331 max_dmdt=0.232 #172 t=1.81 dt=0.0331 max_dmdt=0.23 #173 t=1.84 dt=0.0331 max_dmdt=0.227 #174 t=1.87 dt=0.0331 max_dmdt=0.226 #175 t=1.91 dt=0.0331 max_dmdt=0.224 #176 t=1.94 dt=0.0331 max_dmdt=0.222 #177 t=1.97 dt=0.0331 max_dmdt=0.22 #178 t=2.01 dt=0.0331 max_dmdt=0.219 #179 t=2.04 dt=0.0331 max_dmdt=0.217 #180 t=2.07 dt=0.0331 max_dmdt=0.216 #181 t=2.1 dt=0.0331 max_dmdt=0.214 #182 t=2.14 dt=0.0331 max_dmdt=0.213 #183 t=2.17 dt=0.0331 max_dmdt=0.212 #184 t=2.2 dt=0.0331 max_dmdt=0.211 #185 t=2.25 dt=0.0502 max_dmdt=0.209 #186 t=2.3 dt=0.0502 max_dmdt=0.208 #187 t=2.35 dt=0.0502 max_dmdt=0.207 #188 t=2.4 dt=0.0502 max_dmdt=0.205 #189 t=2.45 dt=0.0502 max_dmdt=0.204 #190 t=2.5 dt=0.0502 max_dmdt=0.203 #191 t=2.56 dt=0.0502 max_dmdt=0.202 #192 t=2.61 dt=0.0502 max_dmdt=0.201 #193 t=2.66 dt=0.0502 max_dmdt=0.2 #194 t=2.71 dt=0.0502 max_dmdt=0.199 #195 t=2.76 dt=0.0502 max_dmdt=0.198 #196 t=2.81 dt=0.0502 max_dmdt=0.197 #197 t=2.86 dt=0.0502 max_dmdt=0.197 #198 t=2.91 dt=0.0502 max_dmdt=0.196 #199 t=2.96 dt=0.0502 max_dmdt=0.195 #200 t=3.01 dt=0.0502 max_dmdt=0.195 #201 t=3.06 dt=0.0502 max_dmdt=0.194 #202 t=3.11 dt=0.0502 max_dmdt=0.193 #203 t=3.16 dt=0.0502 max_dmdt=0.193 #204 t=3.21 dt=0.0502 max_dmdt=0.192 #205 t=3.26 dt=0.0502 max_dmdt=0.192 #206 t=3.31 dt=0.0502 max_dmdt=0.191 #207 t=3.36 dt=0.0502 max_dmdt=0.19 #208 t=3.41 dt=0.0502 max_dmdt=0.19 #209 t=3.46 dt=0.0502 max_dmdt=0.189 #210 t=3.51 dt=0.0502 max_dmdt=0.189 #211 t=3.56 dt=0.0502 max_dmdt=0.188 #212 t=3.63 dt=0.0763 max_dmdt=0.188 #213 t=3.71 dt=0.0763 max_dmdt=0.187 #214 t=3.79 dt=0.0763 max_dmdt=0.186 #215 t=3.86 dt=0.0763 max_dmdt=0.185 #216 t=3.94 dt=0.0763 max_dmdt=0.184 #217 t=4.02 dt=0.0763 max_dmdt=0.183 #218 t=4.09 dt=0.0763 max_dmdt=0.182 #219 t=4.17 dt=0.0763 max_dmdt=0.181 #220 t=4.24 dt=0.0763 max_dmdt=0.18 #221 t=4.32 dt=0.0763 max_dmdt=0.179 #222 t=4.4 dt=0.0763 max_dmdt=0.178 #223 t=4.47 dt=0.0763 max_dmdt=0.177 #224 t=4.55 dt=0.0763 max_dmdt=0.176 #225 t=4.63 dt=0.0763 max_dmdt=0.175 #226 t=4.7 dt=0.0763 max_dmdt=0.173 #227 t=4.78 dt=0.0763 max_dmdt=0.172 #228 t=4.86 dt=0.0763 max_dmdt=0.171 #229 t=4.93 dt=0.0763 max_dmdt=0.169 #230 t=5.01 dt=0.0763 max_dmdt=0.168 #231 t=5.08 dt=0.0763 max_dmdt=0.166 #232 t=5.16 dt=0.0763 max_dmdt=0.165 #233 t=5.24 dt=0.0763 max_dmdt=0.163 #234 t=5.31 dt=0.0763 max_dmdt=0.163 #235 t=5.39 dt=0.0763 max_dmdt=0.163 #236 t=5.47 dt=0.0763 max_dmdt=0.163 #237 t=5.54 dt=0.0763 max_dmdt=0.162 #238 t=5.66 dt=0.115 max_dmdt=0.162 #239 t=5.77 dt=0.115 max_dmdt=0.161 #240 t=5.89 dt=0.115 max_dmdt=0.16 #241 t=6 dt=0.115 max_dmdt=0.159 #242 t=6.12 dt=0.115 max_dmdt=0.158 #243 t=6.23 dt=0.115 max_dmdt=0.157 #244 t=6.35 dt=0.115 max_dmdt=0.156 #245 t=6.46 dt=0.115 max_dmdt=0.155 #246 t=6.58 dt=0.115 max_dmdt=0.153 #247 t=6.69 dt=0.115 max_dmdt=0.152 #248 t=6.81 dt=0.115 max_dmdt=0.15 #249 t=6.92 dt=0.115 max_dmdt=0.148 #250 t=7.04 dt=0.115 max_dmdt=0.146 #251 t=7.15 dt=0.115 max_dmdt=0.144 #252 t=7.27 dt=0.115 max_dmdt=0.142 #253 t=7.38 dt=0.115 max_dmdt=0.14 #254 t=7.5 dt=0.115 max_dmdt=0.138 #255 t=7.61 dt=0.115 max_dmdt=0.136 #256 t=7.73 dt=0.115 max_dmdt=0.133 #257 t=7.84 dt=0.115 max_dmdt=0.131 #258 t=7.96 dt=0.115 max_dmdt=0.129 #259 t=8.07 dt=0.115 max_dmdt=0.126 #260 t=8.19 dt=0.115 max_dmdt=0.124 #261 t=8.3 dt=0.115 max_dmdt=0.121 #262 t=8.42 dt=0.115 max_dmdt=0.12 #263 t=8.53 dt=0.115 max_dmdt=0.118 #264 t=8.65 dt=0.115 max_dmdt=0.117 #265 t=8.76 dt=0.115 max_dmdt=0.116 #266 t=8.88 dt=0.115 max_dmdt=0.114 #267 t=8.99 dt=0.115 max_dmdt=0.113 #268 t=9.11 dt=0.115 max_dmdt=0.111 #269 t=9.22 dt=0.115 max_dmdt=0.109 #270 t=9.34 dt=0.115 max_dmdt=0.108 #271 t=9.45 dt=0.115 max_dmdt=0.106 #272 t=9.57 dt=0.115 max_dmdt=0.104 #273 t=9.68 dt=0.115 max_dmdt=0.102 #274 t=9.8 dt=0.115 max_dmdt=0.101 #275 t=9.91 dt=0.115 max_dmdt=0.0988 #276 t=10 dt=0.115 max_dmdt=0.0969 #277 t=10.1 dt=0.115 max_dmdt=0.095 #278 t=10.3 dt=0.115 max_dmdt=0.0931 #279 t=10.4 dt=0.115 max_dmdt=0.0912 #280 t=10.5 dt=0.115 max_dmdt=0.0893 #281 t=10.6 dt=0.115 max_dmdt=0.0874 #282 t=10.7 dt=0.115 max_dmdt=0.0855 #283 t=10.9 dt=0.179 max_dmdt=0.083 #284 t=11.1 dt=0.179 max_dmdt=0.0801 #285 t=11.3 dt=0.179 max_dmdt=0.0771 #286 t=11.4 dt=0.179 max_dmdt=0.0742 #287 t=11.6 dt=0.179 max_dmdt=0.0714 #288 t=11.8 dt=0.179 max_dmdt=0.0685 #289 t=12 dt=0.179 max_dmdt=0.0658 #290 t=12.2 dt=0.179 max_dmdt=0.0631 #291 t=12.3 dt=0.179 max_dmdt=0.0605 #292 t=12.5 dt=0.179 max_dmdt=0.0579 #293 t=12.7 dt=0.179 max_dmdt=0.0554 #294 t=12.9 dt=0.179 max_dmdt=0.053 #295 t=13 dt=0.179 max_dmdt=0.0506 #296 t=13.2 dt=0.179 max_dmdt=0.0484 #297 t=13.4 dt=0.179 max_dmdt=0.0462 #298 t=13.6 dt=0.179 max_dmdt=0.0441 #299 t=13.8 dt=0.179 max_dmdt=0.042 #300 t=13.9 dt=0.179 max_dmdt=0.0401 #301 t=14.1 dt=0.179 max_dmdt=0.0382 #302 t=14.3 dt=0.179 max_dmdt=0.0364 #303 t=14.5 dt=0.179 max_dmdt=0.0347 #304 t=14.7 dt=0.179 max_dmdt=0.033 #305 t=14.8 dt=0.179 max_dmdt=0.0314 #306 t=15 dt=0.179 max_dmdt=0.0299 #307 t=15.2 dt=0.179 max_dmdt=0.0285 #308 t=15.4 dt=0.179 max_dmdt=0.0272 #309 t=15.6 dt=0.179 max_dmdt=0.026 #310 t=15.7 dt=0.179 max_dmdt=0.0248 #311 t=15.9 dt=0.179 max_dmdt=0.0237 #312 t=16.1 dt=0.179 max_dmdt=0.0226 #313 t=16.3 dt=0.179 max_dmdt=0.0215 #314 t=16.5 dt=0.179 max_dmdt=0.0205 #315 t=16.6 dt=0.179 max_dmdt=0.0195 #316 t=16.8 dt=0.179 max_dmdt=0.0186 #317 t=17 dt=0.179 max_dmdt=0.0177 #318 t=17.2 dt=0.179 max_dmdt=0.0168 #319 t=17.3 dt=0.179 max_dmdt=0.016 #320 t=17.5 dt=0.179 max_dmdt=0.0152 #321 t=17.7 dt=0.179 max_dmdt=0.0145 #322 t=18 dt=0.282 max_dmdt=0.0136 #323 t=18.3 dt=0.282 max_dmdt=0.0125 #324 t=18.6 dt=0.282 max_dmdt=0.0116 #325 t=18.8 dt=0.282 max_dmdt=0.0107 #326 t=19.1 dt=0.282 max_dmdt=0.00983
A more complex example is a 2D skyrmion in a disk. We will use the minimiser to find the equilibrium state:
nx, ny, nz = 100, 100, 1 dx, dy, dz = a, a, az mesh = fidimag.common.CuboidMesh(nx=nx, ny=ny, nz=nz, dx=dx, dy=dy, dz=dz, periodicity=(False, False, False), unit_length=1e-9) xs = mesh.coordinates[:, 0] ys = mesh.coordinates[:, 1] centre_x = (xs.max() + xs.min()) * 0.5 + xs.min()
We start finding the solution with the LLG driver:
sim = fidimag.atomistic.Sim(mesh, name='two_dim', driver='llg') # Define the magnetisation def material(r): x, y = r[0] - centre_x, r[1] - centre_x if x ** 2 + y ** 2 < (np.max(xs) - centre_x) ** 2: return mus else: return 0 sim.set_mu_s(material) # sim.set_mu_s(mus) # Add the magnetic interactions sim.add(fidimag.atomistic.Exchange(J)) sim.add(fidimag.atomistic.Anisotropy(Ku, axis=(0, 0, 1))) sim.add(fidimag.atomistic.DMI(D, dmi_type='interfacial')) sim.add(fidimag.atomistic.Zeeman((0, 0, B))) def m_initial(r): x, y = r[0] - centre_x, r[1] - centre_x if x ** 2 + y ** 2 < 1 ** 2: return (0, 0, -1) else: return (0, 0, 1) sim.set_m(m_initial) # sim.set_m((0, 0, 1))
The initial configuration with a dot at the centre of the sample:
plt.figure(figsize=(5, 5)) plt.scatter(xs, ys, c=sim.spin.reshape(-1, 3)[:, 2], s=20, marker='s') plt.show()
%%capture sim.driver.do_precession = False sim.driver.relax()
After relaxation we see a skyrmion and the spin tilting at the boundary, characteristic of the DMI
[18]:
plt.figure(figsize=(6, 6)) plt.scatter(xs, ys, c=sim.spin.reshape(-1, 3)[:, 2], vmin=-1, vmax=1) plt.quiver(xs, ys, sim.spin.reshape(-1, 3)[:, 0], sim.spin.reshape(-1, 3)[:, 1]) plt.show()
We can get the same result using the minimiser:
[19]:
sim = fidimag.atomistic.Sim(mesh, name='two_dim_SD', driver='steepest_descent') # Define the magnetisation def material(r): x, y = r[0] - centre_x, r[1] - centre_x if x ** 2 + y ** 2 < (np.max(xs) - centre_x) ** 2: return mus else: return 0 sim.set_mu_s(material) # sim.set_mu_s(mus) # Add the magnetic interactions sim.add(fidimag.atomistic.Exchange(J)) sim.add(fidimag.atomistic.Anisotropy(Ku, axis=(0, 0, 1))) sim.add(fidimag.atomistic.DMI(D, dmi_type='interfacial')) sim.add(fidimag.atomistic.Zeeman((0, 0, B))) def m_initial(r): x, y = r[0] - centre_x, r[1] - centre_x if x ** 2 + y ** 2 < 1: return (0, 0, -1) else: return (0, 0, 1) sim.set_m(m_initial) # sim.set_m((0, 0, 1))
[20]:
plt.figure(figsize=(2, 2)) plt.scatter(xs, ys, c=sim.spin.reshape(-1, 3)[:, 2]) plt.show()
[21]:
sim.driver.tmax = 1e-1 sim.driver.minimise(max_steps=6000, stopping_dm=1e-5, initial_t_step=1e-4)
#0 max_tau=0.0001 max_dm=0.00254 #1000 max_tau=0.0001 max_dm=0.000413 #2000 max_tau=0.0001 max_dm=0.000109 #3000 max_tau=0.0001 max_dm=6.32e-05 #4000 max_tau=0.0001 max_dm=4.88e-05 #5000 max_tau=0.0001 max_dm=4.15e-05
Warning: minimise did not converge in 6000 steps - maxdm = 3.653240142795239e-05
sim.driver.spin.shape
(30000,)
[23]:
Fidimag can simulate systems using either a discrete spin formalism or a continuum approximation of the material, i.e. micromagnetism. Spins are described at a semi-classical level.
Atomistic
We describe the material by a lattice of magnetic moments \(\vec{\mu}_i=\mu_{s}\vec{S}_{i}\), with \(\vec{S}\) as the spin direction (unit vector). The ordering of the atoms or molecules is given by the crystal structure of the magnetic solid. Currently, it is possible to specify a 2D/3D square lattice or a 2D hexagonal lattice. The magnetic moment is defined as \(\mu_{s}=g \mu_{B} S\), where g is the Landé g-factor, \(\mu_{B}\) is the Bohr magneton and \(S\) is the average spin (angular momentum) magnitude.
Interactions between magnetic moments are specified using the Heisenberg formalism.
Micromagnetics
In the continuum limit, we discretise the material as a mesh whose nodes are arranged in a cubic lattice and we use finite differences to evaluate the interactions. Instead of discrete spins, now we have a coordinate dependent magnetisation field whose magnitude is the magnetic moment per unit volume \(\vec{M}(\vec{r})=\mu_{s}\vec{m}/V\) (\(\vec{m}\) as a unit vector). Accordingly, every mesh node has assigned a magnetisation vector, which is the magnetisation field evaluated at that point. Because we are considering systems at zero temperature, it is more common to use the saturation magnetisation \(M_{s}\) to describe the magnetisation field magnitude, i.e. \(\vec{M}=M_{s}\vec{m}\), where \(M_{s}\) has units of A/m.
The interactions under this approximation can be computed by taking the continuum limit of the interactions from the Heisenberg Hamiltonian.
At the atomic level, the magnetic moment originates from the total angular momentum of electrons in the atoms of the magnetic material. In ferromagnets, most of the angular momentum comes from the spin, thus we normally just refer to this quantity. There are multiple interactions between electrons that we can describe using a semi-classical approximation, where the spin is treated as a pseudo vector per every lattice site of the material. In this approximation, magnetic interactions can be described using Heisenberg’s formalism for the exchange interaction. The total Hamiltonian for a magnetic system is the sum of all these magnetic interactions:
where we have exchange, anisotropy, dipolar interactions, Dzyaloshinskii-Moriya interactions and Zeeman interaction.
The classical Heisenberg Hamiltonian with the nearest-neighbor exchange interaction reads
where the summation is performed only once for every pair of spins. The effective field is
In the continuum limit the exchange energy can be written as
with \(V\) as the volume of the system and \(A\) the anisotropy constant in \(\text{J m}^{-1}\). Correspondingly, the effective field is
The effective field in the continuum approximation can be computed as
Note that we need the \(\mu_0\) factor to convert units from T to A/m.
The Hamiltonian for uniaxial anisotropy with easy axis along the unitary \(\hat{u}\) direction is expressed as,
with \(\mathcal{K}_{u}\) as the anisotropy constant in eV. The corresponding field is
The Hamiltonian for the cubic anisotropy is given by
which is equivalent to the popular form
The effective fields thus can be computed as
In micromagnetics, the uniaxial anisotropy energy of the system is defined as
with \(K_{u}\) as the anisotropy constant in \(\text{J m}^{-3}\). The effective field reads
The Hamiltonian for dipolar interactions is defined as
with \(\vec{r}_{ij}\) the spatial vector pointing from the \(i\)-th to the \(j\)-th lattice site. The effective field is
DMI is an antisymmetric, anisotropic exchange coupling between spins (magnetic moments),
Noting that \(\vec{a}\cdot(\vec{b}\times\vec{c})=(\vec{a}\times\vec{b})\cdot\vec{c}\), the effective field can be computed as
For bulk materials \(\vec{D}_{ij} = D \vec{r}_{ij}\) and for interfacial DMI one has \(\vec{D}_{ij} = D \vec{r}_{ij} \times \vec{e}_z\), in both cases the vector \(\vec{D}_{ij}\) such that \(\vec{D}_{ij}=-\vec{D}_{ji}\).
In the continuum limit the bulk DMI energy is written as
where \(V\) is the volume of the sample and \(D_a = -D/a^2\). The corresponding effective field is
For the interfacial case, the effective field becomes,
Compared with the effective field [PRB 88 184422]
where \(D_a = D/a^2\). Notice that there is no negative sign for the interfacial case.
In the micromagnetic code, it is also implemented the DMI for materials with \(D_{2d}\) symmetry. The energy of this interaction reads
where \(D_a\) is the DMI constant.
The Zeeman energy is,
For the discrete theory, the dynamics of the magnetic moments is governed by the LLG equation,
where \(\vec{\mu}_s = |\vec{\mu}_i|\), \(0\leq\alpha\leq 1\) is the Gilbert damping constant, \(\gamma\) is the Gilbert gyromagnetic ratio (which sets the time scale) and the effective field \(\vec{H}_i\) is defined using the Hamiltonian \(\mathcal{H}\) as
The gyromagnetic ratio of a free electron is \(\gamma = 1.76\times10^{11}\,\text{rad Hz T}^{-1}\).
In the micromagnetic limit, the equation has a similar structure
where \(0\leq\alpha\leq 1\) is the Gilbert damping constant and \(\gamma\) is the Gilbert gyromagnetic ratio (which sets the time scale). The effective field \(\vec{H}\) for this case is defined as
The Gilbert gyromagnetic ratio of a free electron is \(\gamma = 2.21\times10^{5}\,\text{Hz T}^{-1}\).
The implemented equation including the thermal fluctuation effects is
where \(\vec{\xi}\) is the thermal fluctuation field and is assumed to have the following properties,
and
The extended equation with current is,
Where
and \(\mu_B=|e|\hbar/(2m)\) is the Bohr magneton. Notice that \(\partial_x \vec{m} \cdot \vec{m}=0\) so \(u_0 (\vec{j}_s \cdot \nabla) \vec{m}= - u_0 \vec{m}\times[\vec{m}\times (\vec{j}_s \cdot \nabla)\vec{m}]\). Besides, we can change the equation to atomistic one by introducing \(\vec{s}=-\vec{S}\) where \(\vec{S}\) is the local spin such that
so \(u_0=p a^3/(2|e|s)\), furthermore,
However, we perfer the normalised equaiton here, after changing it to LL form, we obtain,
although in principle \(\partial_x \vec{m}\) is always perpendicular to \(\vec{m}\), it’s better to take an extra step to remove its longitudinal component, therefore, the real equation written in codes is,
where \(\vec{\tau}=(\vec{j}_s \cdot \nabla)\vec{m}\) is the effective torque generated by current.
The LLG equation with STT is given by,
where \(\vec{T}\) is the spin transfer torque. In the local form the STT is given by,
And in general case, the spin transfer torque could be computed by,
where \(\tau_{sd}\) is the s-d exchange time and \(\delta \vec{m}\) is the nonequilibrium spin density governed by
By changing the LLG equation to LL form, we obtain,
i.e.,
In this case (current-perpendicular-to-plane, CPP), there are two types of torques can be added to the orginal LLG equation. One is the so called Slonczewski torque \(\vec{\tau}_s=-a_J \vec{m} \times (\vec{m} \times \vec{p})\), and the other is a fieldlike torque \(\vec{\tau}_f=- b_J(\vec{m} \times \vec{p})\) [PRL 102 037206 (2009)]. So the full LLG equation is
where \(\vec{p}\) is the unit vector of the spin polarization. The parameter \(b_J = \beta a_J\) and
As we can see, this equation is exactly the same as the one used in Zhang-Li case if we take \(\vec{p} = (\vec{j}_s \cdot \nabla)\vec{m}\). So the implemented equation in the code is,
where \(\vec{p}_\perp=\vec{p}-(\vec{m}\cdot\vec{p})\vec{m}\).
In the atomistic part of Fidimag, Monte Carlo based on Metropolis algorithm is integrated. The supported interactions include the exchange interaction, the bulk DMI, the external field and cubic anisotropy. The total Hamiltonian of the system is therefore given by
where \(\mathcal{H}_{ex}\) is the nearest-neighbor exchange interaction,
Note that the summation is taken only once for each pair and \(\vec{m}_i\) is the unit vector of spin \(\vec{S}\) at site \(i\).
The Hamiltonian of bulk DMI can be expressed as,
where \(\vec{D}_{ij} = D \vec{e}_{ij}\) with \(\vec{e}_{ij}\) is the unit vector between \(\vec{S}_{i}\) and \(\vec{S}_{j}\).
The Hamiltonian of external field is
where \(\mu_s = g \mu_B S\).
The cubic anisotropy implemented in Fidimag is,
which is equivalent to the form
The NEBM is an algorithm to find minimum energy transitions between equilibrium states. This method was developed by Henkelman and Jónsson [1] to solve molecular problems in Chemistry. Later, Dittrich et al. [2] applied the NEBM to magnetic systems based on the micromagnetic theory. Recently, Bessarab et al. [3] have proposed an optimised version of the NEBM with improved control over the behaviour of the algorithm. Their review of the method allows to apply the technique to systems described by either a micromagnetic or atomistic model.
The algorithm is based on, firstly, generating \(N\) copies of a magnetic system that we describe by \(P\) spins or magnetic moments arranged in a lattice or mesh. Every copy of the system, is called an image \(\mathbf{Y}_{i}\), \(i\in \{0,\ldots,P-1\}\) and we specify an image using the spins directions in a given coordinate system. For example, in Cartesian coordinates we have
for a system described by a discrete spin model. Within the micromagnetic model we use \(\mathbf{m}\) rather than \(\mathbf{s}\), but both are unit directions.
This sequence of images defines a band, where every image is in a (ideally) different magnetic configuration. The energy of the system depends on the magnetic configuration (e.g. a skyrmion, vortex, uniform state,etc.), thus the energy is parametrised by the number of degrees of freedom, which is \(n\times P\), where \(n\) is the number of coordinates to describe a spin (e.g. \(n=3\) for Cartesian coordinates and \(n=2\) in Spherical coordinates). Accordingly, every image will have a specific energy, i.e. \(E=E(\mathbf{Y})\), which determines the position of an image in an energy landscape. The first and last images in a band are chosen as equilibrium states of the magnetic system and they are kept fixed during the NEBM evolution.
Secondly, to initiate the NEBM evolution, it is necessary to specify an initial guess for the images, which means generating different magnetic configurations between the extrema of the band. It is customary to use an interpolation of the spins directions to achieve this.
And thirdly, the band is relaxed to find a path in energy space that costs less energy. This path is characterised by passing through a saddle point, which is a maximum in energy along certain directions in phase space, and this point determines an energy barrier between the two equilibrium states. The energy barrier is the energy necessary to drive one equilibrium state towards the other. A first order saddle point is the one that is a maximum along a single direction in phase space and will usually in the energy path that costs less energy. It is possible that there are more than one energy paths.
It is also necessary to consider that:
To distinguish different images in the energy landscape we need to define a distance
To keep the images equally spaced to avoid clustering around saddle points or equilibrium states, we use a spring force between images.
Spins or magnetic moments can be described in any coordinate system. The most commonly used are spherical and Cartesian coordinates. For the later we have to specify the constraint to fix the spin length.
For a thorough explanation of the method see references [3,4].
When using Cartesian coordinates, every image of the band \(\mathbf{Y}_{i}\) is iterated with the following dynamical equation with a fictitious time \(\tau\)
In this equation, \(\gamma\) is in units of \(\text{Hz T}^{-1}\) and it determines the time scale, which is irrelevant here so we set \(\gamma=1\). The second term to the right is necessary to keep the spins/magnetisation length equal to one, using an appropriate factor \(c\) that we set to 6. The \(\mathbf{G}\) is the total force on an image, which in the atomistic theory is defined as
and in the micromagnetic theory as
We use the magnetic effective field definition to evaluate the gradients, i.e. \(\boldsymbol{\nabla}_{\boldsymbol{\mu}}E=\partial E / (\mu_{s}\partial\mathbf{s})=-\mathbf{H}_{\text{eff}}\) or \(\boldsymbol{\nabla}_{\mathbf{M}}E=\partial E / (M_{s}\partial\mathbf{m})=-\mathbf{H}_{\text{eff}}\). The perpendicular component is with respect to the tangents \(\mathbf{t}\) to the energy band, thus for a vector \(\mathbf{A}\)
The tangents are defined according to the energies of the neighbouring images [3]. The second term to the right hand side of the equation for \(\mathbf{G}\) is the spring force that tries to keep images at equal distance and is defined using the distance between neighbouring images
which is parallel to the band, i.e. in the direction of the tangent.
According to Bessarab et al. [3], the tangents and the total force \(\mathbf{G}\) must be projected into the spin/magnetisation tangent space.
The climbing image technique is a modification of the NEBM where the forces of the image with largest energy in the band, are redefined so this image can climb up in energy along the band to get a better estimate of the saddle point energy [1,3]. The image with largest energy is chosen after relaxing the band with the usual NEBM algorithm. The total force on this climbing image is
where the spring force was removed. The climbing image is still allowed to climb down in energy in a direction perpendicular to the band, thus it is possible that the energy barrier magnitude decreases after applying this technique.
Following the definition of an image in Cartesian coordinates, we mentioned that the number of degrees of freedom is \(n\times P\), where \(n\) is the number of coordinates to describe a spin. Accordingly, many of the vectors in the NEBM algorithm such as the tangents, total forces, etc. have the same number of components, which agree with the spin components of an image.
For instance, the total force (or tangents, spring forces, etc.) has three components in Cartesian coordinates, corresponding to every spin direction:
The projection of a vector into the spin/magnetisation tangent space simply means projecting its components with the corresponding spin/magnetisation field components. For example, for a vector \(\mathbf{A}\) associated to the \(i\) image of the band (we will omit the \((i)\) superscripts in the spin directions \(\mathbf{s}\) and the \(\mathbf{A}\) vector components)
the projection \(\mathcal{P}\) is defined as
where
with \(j\in\{0,\ldots,P-1 \}\), hence
There are different ways of defining the distance in phase space between two images, \(d_{j,k}=|\mathbf{Y}_{j} - \mathbf{Y}_{k}|\).
The optimised version of the NEBM [3] proposes a Geodesic distance based on Vicenty’s formulae:
This definition seems to work better with the NEBM since the spin directions are defined in a unit sphere.
The first versions of the method simply used an Euclidean distance based on the difference between corresponding spins. In Cartesian coordinates it reads
where we have scaled the distance by the number of degrees of freedom of the system (or an image). In spherical coordinates the definition is similar, only that we use the difference of the azimuthal and polar angles and the scale is \(2P\).
The algorithm can be summarised as:
Define a magnetic system and find two equilibrium states for which we want to find a minimum energy transition.
Set up a band of images and an initial sequence between the extrema. We can use linear interpolations on the spherical angles that define the spin directions [4] or Rodrigues formulae [3].
Evolve the system using the NEBM dynamical equation, which depends on the chosen coordinate system. This equation involves:
Compute the effective field for every image (they are in different magnetic configurations) and the total energy of every image
Compute the tangents according to the energies of the images and project them into the spin/magnetisation tangent space
Compute the total force for every image in the band using the tangents and distances between neighbouring images. This allows to calculate the gradient (which uses the effective field) and the spring forces on the images
Project the total force into the spin/magnetisation tangent space
Use the dynamical equation according to the coordinate system
Early versions of the NEBM did not project the vectors into the tangent space in steps I and II. This leads to an uncontrolled/poor behaviour of the band evolution since the vectors that are supposed to be perpendicular to the band still have a component along the band and interfere with the images movement in phase space.
We have implemented three classes in Fidimag for the NEBM:
NEBM_Spherical: Using spherical coordinates for the spin directions and Euclidean distances with no projections into spin space. The azimuthal and polar angles need to be redefined when performing differences or computing Euclidean distances, specially because the polar angle gets undefined when it is close to the north or south. It is not completely clear what is the best approach to redefine the angles and when to do this, thus this class currently does not work properly.
NEBM_Cartesian: Using Cartesian coordinates for the spin directions and Euclidean distances with no projections into spin space. This method works well for a variety of simple system. However, when the degree of complexity increases, such as systems where vortexes or skyrmions can be stabilised, the spring force interferes with the convergence of the band into a minimum energy path. For this case it is necessary to find an optimal value of the spring constant, which is difficult since the value depends on the system size and interactions involved.
NEBM_Geodesic: Using Cartesian coordinates for the spin directions and Geodesic distances, with vectors projected in tangent space. This is the optimised version of the NEBM [3] and appears to work well with every system we have tried so far. Cartesian coordinates have the advantage that they are well defined close to the poles of the spin directions.
The following diagram shows how the code is structured:
There is a fidimag.common.nebm_tools module with common functions for the NEBM classes:
fidimag.common.nebm_tools
fidimag.common.nebm_tools | --> cartesian2spherical spherical2cartesian compute_norm interpolation_Rodrigues_rotation linear_interpolation_spherical
In fidimag we mainly use Numpy to define the NEBM vectors. When calling one of the NEBM classes, we have to pass a sim object with the specification of the magnetic system which has associated a mesh with n_spins. According to the coordinate system, we set the dof variable. For instance dof = 3 for Cartesian coordinates. Consequently, we define the number of degrees of freedom per image n_dofs_image = dof * n_spins, thus if the NEBM class was specified with n_images, the total number of degrees of freedom for the band is n_band = n_dofs_image * n_images.
sim
mesh
n_spins
dof
dof = 3
n_dofs_image = dof * n_spins
n_images
n_band = n_dofs_image * n_images
As explained in our discussion about the NEBM, we set up band, gradientE, tangents and spring_force arrays whose length is n_band. The order is the same than how we defined the images, thus the Numpy array, when using Cartesian coordinates to describe the spins, looks like
band
gradientE
tangents
spring_force
n_band
band = [ s(0)_{x,0} s(0)_{y,0} ... s(0)_{z,n_dofs_image-1} s(1)_{x,0} s(1)_{y,0} ... s(1)_{z,n_dofs_image-1} ... s(n_images-1)_{x,0} ... s(n_images-1)_{z,n_dofs_image-1} ]
and similarly for the other vectors since they follow the same order of the spins. This band array is passed to the Cython codes to compute the NEBM forces. Notice that we can easily redefine this array into a (n_images, n_dofs_image) shaped Numpy array using
(n_images, n_dofs_image)
band = band.reshape(-1, n_dofs_image)
so every row is a different image. We can even take the inner images (no extrema) and use the same piece of code since n_dofs_image does not change.
n_dofs_image
Most of the calculations are made using C code through Cython. The files for these libraries are located in fidimag/common/neb_method/. Every library has a .c file, a .h header file and a .pyx Cython file (it can differ in name from the C files) which is compiled using Fidimag’s setup.py file.
C
fidimag/common/neb_method/
.c
.h
.pyx
setup.py
For example, there is a base module with common functions for every NEBM class called nebm_lib.c
nebm_lib.c
nebm_lib.c | --> compute_effective_force_C compute_norm compute_spring_force_C compute_tangents_C cross_product dot_product normalise normalise_images_C
Its corresponding header file ``nebm_lib.h contains the prototypes of these functions. The Cython file that link some of these functions to the Python code is called nebm_clib.pyx and can be called from the fidimag.extensions.nebm_clib library:
``nebm_lib.h
nebm_clib.pyx
fidimag.extensions.nebm_clib
fidimag.extensions.nebm_clib | --> compute_effective_force compute_tangents
The other .pyx or .c files use some of the nebm_lib.h functions. They are separated according to the coordinate system used in the NEBM calculations. The following diagrams show the Cython functions for these libraries and the C files used to define them:
nebm_lib.h
nebm_cartesian_lib.c nebm_cartesian_lib.h nebm_cartesian_clib.pyx fidimag.extensions.nebm_cartesian_clib | --> compute_dYdt compute_effective_force compute_spring_force compute_tangents normalise_images project_images nebm_geodesic_lib.c nebm_geodesic_lib.h nebm_geodesic_clib.pyx fidimag.extensions.nebm_geodesic_clib | --> compute_spring_force geodesic_distance nebm_spherical_lib.c nebm_spherical_lib.h nebm_spherical_clib.pyx fidimag.extensions.nebm_spherical_clib | --> compute_spring_force normalise_images
Every library has its own compute_spring_force, which is taken from the nebm_lib.c file, since the spring force depends on the coordinate-system-dependent distance definition. For the Cartesian and spherical coordinates, the distance functions (Euclidean distances) are not exposed in the Cython file, as in the code for Geodesic distances.
compute_spring_force
Based on the aforementioned NEBM algorithm, the class initialise the NEBM calling the following methods in this order:
1. generate_initial_band # Using linear interpolations or Rodrigues rotation formulae | --> nebm_tools.cartesian2spherical --> nebm_tools.linear_interpolation_spherical # or nebm_tools.interpolation_Rodrigues_rotation 2. initialise_energies # Fill the energies array 3. initialise_integrator # Start CVODE 4. create_tablewriter # To pass data into .ndt files per every iteration of the integrator
The linear interpolation function requires that the input array is in spherical coordinates.
To relax the band, we use CVODE, as specified in step 3., using the cvode.CvodeSolver (or cvode.CvodeSolver_OpenMP) integrator. The integrator requires a Sundials_RHS function that is called on every iteration, which is the right hand side of the \(\partial \mathbf{Y} / \partial \tau\) dynamical equation. Correspondingly, this function calculates the NEBM forces as
cvode.CvodeSolver
cvode.CvodeSolver_OpenMP
Sundials_RHS
Sundials_RHS | --> nebm_step | --> compute_effective_field_and_energy # Gradient = - Eff field # Which we compute for every image # using the sim class compute_tangents | --> nebm_clib.compute_tangents # nebm_cartesian.project_images # Project tangents nebm_cartesian.normalise_images # compute_spring_force # Using Geodesic distances nebm_clib.compute_effective_force nebm_cartesian.project_images(G) # Project effective (total) force nebm_cartesian.compute_dYdt # Add the correction factor to fix # the spins length to 1
Many methods come from the Cartesian Cython library nebm_cartesian since the Geodesic class uses Cartesian coordinates to describe the spins. If a climbing image was specified as an argument for the class, we compute its modified force in the compute_effective_force method.
nebm_cartesian
compute_effective_force
The function that iterates the integrator is the relax method. On every iteration, we compute the difference with the previous step using a scaled Euclidean distance. The definitions of this process are specified in the compute_maximum_dYdt method from the nebm_base class. According to the magnitude stopping criteria specified in the stopping_dYdt argument of relax, the iterations of the integrator will stop if the difference with the previous step is smaller than stopping_dYdt.
relax
compute_maximum_dYdt
nebm_base
stopping_dYdt
These classes follow the same process than the Geodesic distances code. The main difference is that in the nebm_step process, the projections are not performed and the distances are computed using the scaled Euclidean distance.
nebm_step
For spherical coordinates, the vectors are smaller, with n_dofs_image = 2 * n_spins, where
n_dofs_image = 2 * n_spins
band = [ theta(0)_{0} phi(0)_{0} theta(0)_{1} ... phi(0)_{n_dofs_image-1} theta(1)_{0} phi(1)_{0} theta(1)_{1} ... phi(1)_{n_dofs_image-1} ... theta(n_images-1)_{0} ... phi(n_images-1)_{n_dofs_image-1} ]
The Sundials_RHS function does not include the correction factor since spherical coordinates have implicit the constraint of fixed length for the magnetisation. When computing distances or differences, it is necessary to redefine the angles, but it is not completely clear the optimal way of doing this.
Henkelman, G. & Jónsson, H. Improved tangent estimate in the nudged elastic band method for finding minimum energy paths and saddle points. The J. Chem. Phys. 113, 9978–9985 (2000)
Dittrich, R. et al. A path method for finding energy barriers and minimum energy paths in complex micromagnetic systems. J. Magn. Magn. Mater. 250, 12–19 (2002).
Bessarab, P. F., Uzdin, V. M. & Jónsson, H. Method for finding mechanism and activation energy of magnetic transitions, applied to skyrmion and antivortex annihilation. Comput. Phys. Commun. 196, 1–37 (2015)
Cortés-Ortuño, D. et al. Thermal stability and topological protection of skyrmions in nanotracks. Preprint at arXiv:1611.07079.