spirit.configuration module
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, normal=[0, 0, 1], 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: