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]:
$-\frac{\gamma_{0}}{1 + \alpha^{2}} \mathbf{m} \times \mathbf{H}_\text{eff}$

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]:
$-\frac{\gamma_{0} \alpha}{1 + \alpha^{2}} \mathbf{m} \times (\mathbf{m} \times \mathbf{H}_\text{eff})$

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]:
$-\frac{1+\alpha\beta}{1+\alpha^{2}} \mathbf{m} \times (\mathbf{m} \times (\mathbf{u} \cdot \boldsymbol\nabla)\mathbf{m}) - \frac{\beta - \alpha}{1+\alpha^{2}} \mathbf{m} \times (\mathbf{u} \cdot \boldsymbol\nabla)\mathbf{m}$

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]:
$-\frac{\gamma_{0}}{1 + \alpha^{2}} \mathbf{m} \times \mathbf{H}_\text{eff}-\frac{\gamma_{0} \alpha}{1 + \alpha^{2}} \mathbf{m} \times (\mathbf{m} \times \mathbf{H}_\text{eff})$

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]:
$-\frac{\gamma_{0}}{1 + \alpha^{2}} \mathbf{m} \times \mathbf{H}_\text{eff}-\frac{\gamma_{0} \alpha}{1 + \alpha^{2}} \mathbf{m} \times (\mathbf{m} \times \mathbf{H}_\text{eff})-\frac{1+\alpha\beta}{1+\alpha^{2}} \mathbf{m} \times (\mathbf{m} \times (\mathbf{u} \cdot \boldsymbol\nabla)\mathbf{m}) - \frac{\beta - \alpha}{1+\alpha^{2}} \mathbf{m} \times (\mathbf{u} \cdot \boldsymbol\nabla)\mathbf{m}$

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]:
$-\frac{\gamma_{0} \alpha}{1 + \alpha^{2}} \mathbf{m} \times (\mathbf{m} \times \mathbf{H}_\text{eff})$
[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]:
$-\frac{\gamma_{0}}{1 + \alpha^{2}} \mathbf{m} \times \mathbf{H}_\text{eff}$