Skip to main content

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!

Release files for spirit-extras 0.0.35

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spirit-extras 0.0.35
File Size Uploaded
spirit-extras-0.0.35.tar.gz 46.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spirit-extras 0.0.35
File Interpreter ABI Platform
spirit_extras-0.0.35-py3-none-any.whl Python 3 none any Details

Total release size:87.4 kB

Release files / spirit-extras-0.0.35.tar.gz

Download URL spirit-extras-0.0.35.tar.gz
Size 46.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c8536125a133a2b8f97b6fc1832fe4d40576b35ca276a46c1757b5a44a24f954
BLAKE2b-256 checksum
How to use checksums
1dba409a1b0bb7f763d2480a5e12d269bccc623afc4afbc228052bfe310b83ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.0

Release files / spirit_extras-0.0.35-py3-none-any.whl

Download URL spirit_extras-0.0.35-py3-none-any.whl
Size 41.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c6b34fba900f87d054a77ba97875ca878f5b7fdcd25c8b81590b5d598caf550
BLAKE2b-256 checksum
How to use checksums
8693ca47a70de09e68a44f4e148693b8616b2759f24aab737118534c743bc226
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.0
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page