Configuration

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

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.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.

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

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.

  • radius: the extent of the skyrmion, at which it points approximately upwards
  • 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

The skyrmion only extends up to radius, meaning that border_cylindrical is not usually necessary.

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: