Skip to main content

Physically informed spin initialisation for carbon-rich atomistic structures.

Project description

spinit logo

DOI PyPI

Physically informed spin initialisation for atomistic structures

spinit seeds initial magnetic moments to ase.Atoms using local chemistry, topology, and geometry criteria to provide physically motivated spin initialisation. This is useful for e.g. spin-polarised DFT of large structures where spins cannot (reasonably) be manually assigned.

It is designed for carbon-rich systems, including graphenic, nanoporous, and amorphous carbon, as well as mixed chemistries containing heteroatoms such as H, O, and N.

Scientific Scope

spinit is a heuristic spin seed generator.

  • It does not prove magnetic ground states.
  • It provides physically motivated initial spin patterns to improve exploration of plausible spin solutions.
  • It combines undercoordination, local geometry/strain, ring topology, and explicit motif detection.
  • Motif labels are heuristic local-environment descriptors (*_like) and do not by themselves assign formal bond order, oxidation state, or molecular charge.

Features

  • PBC-aware bond graph construction (ASE + MIC vectors).
  • Ring/topology analysis from local graph cycles.
  • Hybridization-like local classification (sp, sp2, sp3, distorted variants).
  • Motif-aware handling of O/N/H/C-centered local environments.
  • Connectivity-aware classification of network-bound vs molecular fragments.
  • Transparent additive scoring with configurable thresholds and weights.
  • Multiple assignment strategies:
    • fm
    • afm_clusters
    • random_candidates

Installation

git clone https://github.com/joehart2001/spinit.git
cd spinit
pip install -e .

Optional reporting extras:

pip install -e .[reporting]

Quickstart

from ase.io import read
from spinit.api import assign_initial_magnetic_moments

atoms = read("structure.xyz")

magmoms, feature_dict, graph, ring_info = assign_initial_magnetic_moments(
    atoms,
    strategy="afm_clusters",
    cutoff=1.85,
    maxlength=12,
    k_hops=5,
    seed=0,
)

atoms.set_initial_magnetic_moments(magmoms)

Package Layout

  • spinit.api: high-level end-to-end API.
  • spinit.config: defaults and config merge helpers.
  • spinit.graph: graph/ring/geometry/topology utilities.
  • spinit.chemistry: hybridization, motif detection, and per-atom feature construction.
  • spinit.seeding: magnetic scoring and moment assignment strategies.
  • spinit.output: reporting/summary utilities.

Citation

If you use spinit in scientific work, please cite:

@software{spinit,
  author  = {Hart, Joseph},
  title   = {spinit: Physically informed spin initialisation for atomistic structures},
  year    = {2026},
  version = {0.1.0},
  url     = {https://github.com/joehart2001/spinit}
}

Full machine-readable metadata is available in CITATION.cff.

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

spinit-0.0.3.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spinit-0.0.3-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file spinit-0.0.3.tar.gz.

File metadata

  • Download URL: spinit-0.0.3.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for spinit-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8c247ffaddc3d0814b0c29aa95b5fcd829be90f87a8e0d8082de3b170edc4c1e
MD5 474dba937dc54ff3b3df0c6ff94c108a
BLAKE2b-256 4c69787227a951e86f36e4139acdaa851bfc31bd585816e8e31f5e81e513dc99

See more details on using hashes here.

File details

Details for the file spinit-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: spinit-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for spinit-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 996ee3b1d25e12ab56e9b6436a8a864e6e20f263a19f679925327044f74b2966
MD5 4c36138fea3c760dc0387be7e89a365d
BLAKE2b-256 7baf0ab0cffbf352f8262d8094b1214a612f078a4e26943daf380175a76aaa9a

See more details on using hashes here.

Supported by

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