Skip to main content

Package to be used with the magnetism simulation tool spirit

Project description

spirit-extras

Package with some useful scripts, to be used together with the Spirit python API (github.com/spirit-code/spirit/).

Data structure for spin systems

Parse data from a Spirit state pointer

from spirit import state
import spirit_extras.data
with state.State("input.cfg") as p_state:
    spin_sytem = spirit_extras.data.spin_system_from_p_state()

    # Information about the bravais lattice is automatically parsed from the spirit API
    print(spin_system)

    # The spins can be set
    ib, a, b, c = 1, 5, 3, 4
    idx = spin_system.idx(ib, a, b, c) # computes the linear index from a bravais tupel
    spin_system.spins[idx] = [0,0,-1]

    ib, a, b, c = spin_system.tupel(5) # computes the bravais tupel from a linear index

    # A shaped view into the spin system is also available
    spin_system.shaped().spins[ib,a,b,c] = [0,0,1]

    # Slicing syntax works
    spin_system.shaped().spins[ib,:,b,c] = [0,1,0]

    mask = np.linalg.norm(spin_system.positions - spin_system.center() < 5, radius=1)
    spin_sytem.spins[mask] = [1,0,0]

Create from your own buffers

# Since spirit_extras.Spin_System is needed for many functions in spirit_extras, it can also be created from a spins and positions arrays
spins = [ [1,0,0] for i in range(10) ]

# The default behaviour is to expect an unordered system, meaning some functions will throw an exception
my_spin_system = spirit_extras.data.Spin_System(positions=None, spins=spins) # positions dont _have_ to be specified
try:
    my_spin_sytem.shaped() # needs an ordered system
except:
    print("Throws :(")

# To create an ordered system pass `unordered=False` and specify `n_cells`
my_spin_system = spirit_extras.data.Spin_System(positions=None, spins=spins, n_cells=[10,1,1], unordered=False)
my_spin_sytem.shaped() # works!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spirit-extras-0.0.34.tar.gz (46.2 kB view details)

Uploaded Source

Built Distribution

spirit_extras-0.0.34-py3-none-any.whl (41.6 kB view details)

Uploaded Python 3

File details

Details for the file spirit-extras-0.0.34.tar.gz.

File metadata

  • Download URL: spirit-extras-0.0.34.tar.gz
  • Upload date:
  • Size: 46.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for spirit-extras-0.0.34.tar.gz
Algorithm Hash digest
SHA256 cdcf9126846b12a33e6b8ef0336464cc7fb04675caf6223371bc3a83c1998583
MD5 3d919cb436d9272cb6f57193fa15a001
BLAKE2b-256 8309a9152b84b328fd90bd5160116c8486e98a6bfe6fc9590c14ff22e0c3f914

See more details on using hashes here.

File details

Details for the file spirit_extras-0.0.34-py3-none-any.whl.

File metadata

File hashes

Hashes for spirit_extras-0.0.34-py3-none-any.whl
Algorithm Hash digest
SHA256 8d8760ce8e161d7e78e73fa13261dfb5d00b701d22d14211d98dabed2fdf1f57
MD5 b66f2d106e89e6331dbdffcbca61219b
BLAKE2b-256 477832c5a87fb2d8fec24a6f2daa4c6f6b4a865cc01ee05fe0b7bcddb40daa7c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page