Skip to main content

Pure-Python/PyTorch FF-HEDM indexer (drop-in replacement for IndexerOMP/IndexerGPU)

Project description

midas-index

Pure-Python/PyTorch FF-HEDM indexer. Drop-in replacement for IndexerOMP / IndexerGPU from MIDAS, with seamless CPU / CUDA / MPS device switching.

Status: v0.1.0 in development. Detailed design doc lives in dev/implementation_plan.md (gitignored).

Install

pip install midas-index

For local development:

cd packages/midas_index
pip install -e .[dev]

Quick start

# CLI — drop-in for IndexerOMP / IndexerGPU
midas-index paramstest.txt 0 1 1000 8

# Pin device / dtype via env vars (auto-detect: CUDA -> MPS -> CPU)
MIDAS_INDEX_DEVICE=cuda MIDAS_INDEX_DTYPE=float32 \
    midas-index paramstest.txt 0 1 1000 8

Library API:

from midas_index import Indexer

result = Indexer.from_param_file("paramstest.txt", device="cuda").run(
    block_nr=0, n_blocks=1, n_spots_to_index=1000,
)

Drive from ff_MIDAS.py

Pass -useTorchIndexer 1 to switch the indexing stage from C IndexerOMP / IndexerGPU to this package:

python ff_MIDAS.py -paramFN paramstest.txt  -useTorchIndexer 1

Architecture

midas-index is a thin orchestration layer. Heavy lifting is delegated to:

  • midas-diffract — forward simulation (HKL -> theoretical spots).
  • midas-stress — orientation conversions, symmetry, fundamental zone.

This package itself owns: seed enumeration, orientation / position grid layout, binned matching, scoring, I/O, and the CLI / library API.

Benchmark

A bundled benchmark drives the full per-seed pipeline end-to-end:

python -m midas_index.benchmarks.bench_seed --n-grains 5 --n-iter 3

License

BSD-3-Clause. Part of MIDAS.

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

midas_index-0.3.0.tar.gz (70.2 kB view details)

Uploaded Source

Built Distribution

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

midas_index-0.3.0-py3-none-any.whl (59.4 kB view details)

Uploaded Python 3

File details

Details for the file midas_index-0.3.0.tar.gz.

File metadata

  • Download URL: midas_index-0.3.0.tar.gz
  • Upload date:
  • Size: 70.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for midas_index-0.3.0.tar.gz
Algorithm Hash digest
SHA256 653f7a045fa4e7b50b37ed8926a4d4b238b2277cd3a169147b5e24eee58658d1
MD5 eddfecf5326c9bc33b3eb9888fe73139
BLAKE2b-256 f36ab47cc447b398ff4f6199d4813b32fadc6fcdf5d2fd1fa2f8283eaf35dfd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_index-0.3.0.tar.gz:

Publisher: python-packages.yml on marinerhemant/MIDAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file midas_index-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: midas_index-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 59.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for midas_index-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff7f230a28930457aa5b13ece7c9dcfdafa27774c3098d1a1dfca392480b535f
MD5 3861ef79cdd512a28670146ea1d0598f
BLAKE2b-256 5ac2f373bc922e63880c7dcc6a4d6fc354ec6fe1b6e9f3814639807fddb3ea47

See more details on using hashes here.

Provenance

The following attestation bundles were made for midas_index-0.3.0-py3-none-any.whl:

Publisher: python-packages.yml on marinerhemant/MIDAS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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