Configuration

Set various spin configurations, such as homogeneous domains, spirals or skyrmions.

All configuration setters support the following arguments with default values:

  • pos=[0,0,0]: the centre of the configuration, relative to the centre of the system
  • border_rectangular=[-1,-1,-1]: values > 0 mean a restriction in + and - direction relative to the position
  • border_cylindrical=-1: restricts the initialisation to a z-aligned cylinder around the position
  • border_spherical=-1: restricts the initialisation to a sphere around the position
  • inverted=False: exactly inverts the above restrictions
spirit.configuration.add_noise(p_state, temperature, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Add temperature-scaled random noise to configuration.

spirit.configuration.domain(p_state, dir, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a domain (homogeneous) configuration.

spirit.configuration.dw_skyrmion(p_state, dw_radius, dw_width, order=1, phase=1, up_down=False, achiral=False, right_left=False, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a 360 degree domain wall skyrmion configuration.

Arguments:

  • dw_radius: the radius of the circular domain wall skyrmion.
  • dw_width: the width of the domain wall circumference of the skyrmion.

Keyword arguments:

  • order: the number of twists along a circle cutting the skyrmion
  • phase: 0 corresponds to a Neel skyrmion, -90 to a Bloch skyrmion
  • up_down: if True, the z-orientation is inverted
  • achiral: if True, the topological charge is inverted
  • right_left: if True, the in-plane rotation is inverted
spirit.configuration.hopfion(p_state, radius, order=1, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a Hopfion configuration.

Arguments:

  • radius: the distance from the center to the center of the corresponding tubular isosurface

Keyword arguments:

  • order: the number of windings of the toroidal hopfion

In contrast to the skyrmion, it extends over the whole allowed space.

spirit.configuration.minus_z(p_state, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a -z (homogeneous) configuration.

spirit.configuration.plus_z(p_state, pos=[0.0, 0.0, 0.0], border_rectangular=[-1.0, -1.0, -1.0], border_cylindrical=-1.0, border_spherical=-1.0, inverted=False, idx_image=-1, idx_chain=-1)

Set a +z (homogeneous) configuration.

spirit.configuration.random(p_state, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Distribute all spins randomly on the unit sphere.

spirit.configuration.set_atom_type(p_state, atom_type=0, pos=[0.0, 0.0, 0.0], border_rectangular=[-1.0, -1.0, -1.0], border_cylindrical=-1.0, border_spherical=-1.0, inverted=False, idx_image=-1, idx_chain=-1)

Set the type of the atoms in the given region (default: 0).

This can be used e.g. to insert defects (-1).

spirit.configuration.set_pinned(p_state, pinned, pos=[0.0, 0.0, 0.0], border_rectangular=[-1.0, -1.0, -1.0], border_cylindrical=-1.0, border_spherical=-1.0, inverted=False, idx_image=-1, idx_chain=-1)

Set whether the spins within the given region are pinned or not.

If they are pinned, they are pinned to their current orientation.

spirit.configuration.skyrmion(p_state, radius, order=1, phase=1, up_down=False, achiral=False, right_left=False, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a skyrmion configuration.

Arguments:

  • radius: the extent of the skyrmion, at which it points approximately upwards. The skyrmion only extends up to radius, meaning that border_cylindrical is not usually necessary.

Keyword arguments:

  • order: the number of twists along a circle cutting the skyrmion
  • phase: 0 corresponds to a Neel skyrmion, -90 to a Bloch skyrmion
  • up_down: if True, the z-orientation is inverted
  • achiral: if True, the topological charge is inverted
  • right_left: if True, the in-plane rotation is inverted
spirit.configuration.spin_spiral(p_state, direction_type, q_vector, axis, theta, pos=[0, 0, 0], border_rectangular=[-1, -1, -1], border_cylindrical=-1, border_spherical=-1, inverted=False, idx_image=-1, idx_chain=-1)

Set a spin spiral configuration.

TODO: document parameters

  • direction_type:
  • q_vector:
  • axis:
  • theta: