Dynamics terms and dynamics equation#
There are several different dynamics terms that are implemented in micromagneticmodel
. Here, we will provide a short list of them, together with some basic properties.
Dynamics terms#
1. Precession#
The main parameter required for the precession term is the gyrotropic ratio gamma
. Optionally, name
can be given to the dynamics term.
[1]:
import micromagneticmodel as mm
precession = mm.Precession(gamma0=2.211e5)
The values of its arguments are
[2]:
precession.gamma0
[2]:
221100.0
[3]:
precession.name
[3]:
'precession'
String and LaTeX representations are
[4]:
repr(precession)
[4]:
'Precession(gamma0=221100.0)'
[5]:
precession
[5]:
2. Damping#
Damping dynamics term requires Gilbert damping \(\alpha\) to be provided. Optionally, name
can be given as well.
[6]:
damping = mm.Damping(alpha=0.1)
The values of attributes are
[7]:
damping.alpha
[7]:
0.1
[8]:
damping.name
[8]:
'damping'
String and LaTeX representations are
[9]:
repr(damping)
[9]:
'Damping(alpha=0.1)'
[10]:
damping
[10]:
3. Zhang-Li term#
This dynamics term requires the non-adiabatic factor \(\beta\) and velocity vector \(\mathbf{u}\) to be passed. As before, name
is optional as well.
[11]:
zhangli = mm.ZhangLi(u=1e6, beta=0.5)
The values of attributes are
[12]:
zhangli.u
[12]:
1000000.0
[13]:
zhangli.beta
[13]:
0.5
String and LaTeX representations are
[14]:
repr(zhangli)
[14]:
'ZhangLi(u=1000000.0, beta=0.5)'
[15]:
zhangli
[15]:
For time-dependent current terms please refer to this notebook.
Dynamics equation#
Dynamics equation of the micromagnetic system is the sum of dynamics terms. For instance, if we sum two dynamics terms, we get:
[16]:
type(precession + damping)
[16]:
micromagneticmodel.dynamics.dynamics.Dynamics
If we assign this value to a separate variable, we can explore some of its properties.
[17]:
dynamics = precession + damping
The string representation is:
[18]:
repr(dynamics)
[18]:
'Precession(gamma0=221100.0) + Damping(alpha=0.1)'
Similarly, the LaTeX representation is
[19]:
dynamics
[19]:
This dynamics equation consists of two dynamics term. To add another term to it +=
operator can be used.
[20]:
dynamics += zhangli
Dynamics equation is now
[21]:
dynamics
[21]:
Accesing individual dynamics terms from the dynamics equation#
There are two ways of retrieving an individual dynamics term from the dynamics equation. Let us say we want to change the value of the Gilbert damping constant \(\alpha\).
If a dynamics term with name mydynamicsterm
was added to the Hamiltonian, that term can be accessed by typing hamiltonian.nydynamicsterm
.
[22]:
dynamics.damping
[22]:
[23]:
dynamics.damping.alpha
[23]:
0.1
[24]:
dynamics.damping.alpha = 5e-3
[25]:
dynamics.damping.alpha
[25]:
0.005
Similarly, the precession term is
[26]:
dynamics.precession
[26]: