Skip to main content

Handy utilities for handling nuclear shell model calculations from KSHELL

Project description

kshell-utilities

Handy utilities for processing nuclear shell model data from KSHELL. Se the KSHELL repository for installation and usage instructions for KSHELL.

Installation

Install from the PyPi repository

pip install kshell-utilities

Or, for the very latest version, clone this repository to your downloads directory. cd to the root directory of this repository and run

pip install .

Usage

Please see the How to use the output from KSHELL section of the Wiki in the KSHELL repository for an introduction on how to use kshell-utilities: https://github.com/GaffaSnobb/kshell/wiki/How-to-use-the-output-from-KSHELL

Runtime cache

loadtxt(..., load_and_save_to_file=...) controls the NumPy cache used for faster re-runs:

  • False: recalculate from source files and do not write cache files.
  • True: load a current valid cache when available; otherwise recalculate and save a new cache.
  • "overwrite": recalculate from source files and replace cache files.

Cache files are written under tmp/ by default. Set KSHELL_UTILITIES_CACHE_DIR to use another directory. Cache entries include schema/package metadata and source-file fingerprints; stale, unversioned, corrupt, or object-array caches are ignored and regenerated instead of being loaded.

Derived OBTD arrays are cached for repeated plotting workflows. obtd_heatmap, obtd_B_plot, and interference_angle save their computed x/y or matrix data, and warm cache hits can render without materializing OBTD arrays. obtd_modifier(..., make_heatmap=False) also checks its modified-transition cache before loading OBTD data.

For workflows that need the cached heatmap arrays but not the figure rendering, use obtd_heatmap(..., plot=False, return_data=True). For faster rendered heatmaps where per-cell labels are not needed, use annot=False.

OBTD loading

Directory loads use load_obtd="lazy" by default. Levels and transition data are loaded immediately, while one-body transition density files are loaded only if OBTD data is requested, for example through obtd_heatmap, interference_angle, obtd_B_plot, obtd_modifier, or direct obtd_dict access.

OBTD methods that first select transitions, such as obtd_heatmap, interference_angle, and obtd_B_plot, load only the OBTD master arrays needed for those selected transitions. Direct obtd_dict access still loads the full OBTD dictionary for compatibility.

Use load_obtd=True to load OBTDs during loadtxt(...), or load_obtd=False to prevent automatic OBTD loading for memory-constrained non-OBTD workflows.

Profiling

tools/profile_pipeline.py runs representative pipeline timings. Add --memory to report current and peak traced allocations with tracemalloc, including cases for lazy directory loads, GSF-only workflows with OBTDs present, narrow OBTD heatmaps, full obtd_dict materialization, and warm derived OBTD caches.

Example:

python tools/profile_pipeline.py --iterations 1 --memory --case gsf_only_directory_with_obtd --case obtd_heatmap_narrow_warm_cache

Plot display

Plotting helpers should avoid implicit interactive display where possible. Newer plotting APIs use show=False by default and return matplotlib figure/axes objects so callers can decide whether to display, save, or close figures.

Testing

The test suite is being built against the latest stable Python 3.14 series.

Install the package with test dependencies:

pip install -e ".[test]"

Run the test suite:

python -m pytest

Run with coverage:

python -m pytest --cov

See TESTING.md for the current baseline and known xfailed regressions.

Credits

KSHELL is created by Noritaka Shimizu https://arxiv.org/abs/1310.5431. Code in this repository is built upon tools created by Jørgen Eriksson Midtbø: https://github.com/jorgenem/kshell_public.

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

kshell_utilities-3.0.0.2.tar.gz (587.7 kB view details)

Uploaded Source

Built Distribution

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

kshell_utilities-3.0.0.2-py3-none-any.whl (125.0 kB view details)

Uploaded Python 3

File details

Details for the file kshell_utilities-3.0.0.2.tar.gz.

File metadata

  • Download URL: kshell_utilities-3.0.0.2.tar.gz
  • Upload date:
  • Size: 587.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for kshell_utilities-3.0.0.2.tar.gz
Algorithm Hash digest
SHA256 ebf5abaf9a6ce1779e5b3f8e95673aa698725de2ab36c9c94bd60dfc1b7cf2f7
MD5 718b035012e87dc7b8dc7941bacf79e8
BLAKE2b-256 c868595049325a2036d3543b5b72d8c659f7f97e05daa37048a09569dd50cd02

See more details on using hashes here.

File details

Details for the file kshell_utilities-3.0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for kshell_utilities-3.0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0d9644053fc1e57c8d14a88c58b8ab9da5ebc2fe369fe2a6bb29724519beb50f
MD5 684e6226f8364da465ce73346e53214b
BLAKE2b-256 4d0b88b104761f6aace8db6b4535eca554fa910b69c77b47d8005d27e4b762db

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