Metadata-Version: 2.4
Name: pycf-crystalfield
Version: 0.2.0
Summary: Python crystal field theory modules
Home-page: https://github.com/mikereidnz/pycf
Author: Mike Reid
Author-email: Mike Reid <mike.reid@canterbury.ac.nz>
Maintainer-email: Mike Reid <mike.reid@canterbury.ac.nz>
License: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/mikereidnz/pycf
Project-URL: Repository, https://github.com/mikereidnz/pycf
Project-URL: Legacy Repository, https://bitbucket.org/sebastianhorvath/pycf/
Keywords: crystal field,rare earth,magnetism
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.15
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-cov>=7.0; extra == "test"
Requires-Dist: pytest-benchmark>=5.0; extra == "test"
Requires-Dist: hypothesis>=6.0; extra == "test"
Requires-Dist: matplotlib>=3.8; extra == "test"
Requires-Dist: sympy>=1.10; extra == "test"
Provides-Extra: examples
Requires-Dist: matplotlib>=3.8; extra == "examples"
Requires-Dist: pymatgen>=2024.3; extra == "examples"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=7.0; extra == "dev"
Requires-Dist: pytest-benchmark>=5.0; extra == "dev"
Requires-Dist: hypothesis>=6.0; extra == "dev"
Requires-Dist: matplotlib>=3.8; extra == "dev"
Requires-Dist: pymatgen>=2024.3; extra == "dev"
Requires-Dist: sympy>=1.10; extra == "dev"
Requires-Dist: setuptools>=68; extra == "dev"
Requires-Dist: wheel<1.0,>=0.40; extra == "dev"
Requires-Dist: Cython<4,>=3; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.13; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: mypy>=1.7; extra == "dev"
Requires-Dist: bandit>=1.7; extra == "dev"
Requires-Dist: semgrep>=1.45; extra == "dev"
Requires-Dist: pre-commit>=3.0; extra == "dev"
Requires-Dist: sphinx>=5.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints>=1.20; extra == "dev"
Requires-Dist: sphinx-copybutton>=0.5; extra == "dev"
Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "dev"
Requires-Dist: myst-parser>=0.18; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=5.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.20; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "docs"
Requires-Dist: myst-parser>=0.18; extra == "docs"
Dynamic: author
Dynamic: home-page
Dynamic: license-file

==========
About pycf
==========

pycf is a collection of Python modules for crystal field theory and spin Hamiltonian calculations. It provides tools for setting up and fitting energy levels of rare-earth ions using crystal-field Hamiltonians, as well as utilities for working with spin Hamiltonians and transition intensities. The core library is implemented in C99 for performance, with Python/Cython wrappers for ease of use.

**Status and Quality**

.. image:: https://github.com/mikereidnz/pycf/workflows/CI/badge.svg
   :target: https://github.com/mikereidnz/pycf/actions
   :alt: CI Status

.. image:: https://img.shields.io/badge/python-3.10+-blue.svg
   :alt: Python Version

.. image:: https://img.shields.io/badge/test%20status-665%20passing-brightgreen
   :alt: Tests Passing

**For detailed installation instructions, see** `INSTALL.md <INSTALL.md>`_.

**Branches**

- ``main`` — recommended for users who want stability.  Updated when
  a development cycle reaches a tagged release.
- ``devel`` — current integration branch.  Track this if you want to
  follow ongoing work and try features before they land on ``main``;
  expect occasional breakage.
- Feature branches (``feat/...``) — in-progress work, opened for
  review via pull requests.  Comment on them if you want to influence
  a feature before it merges into ``devel``.
- ``legacy`` — mirrors Sebastian Horvath's original Bitbucket
  repository (https://bitbucket.org/sebastianhorvath/pycf/).  Provided
  for historical reference; not actively developed.

By default ``git clone`` checks out ``main``; pass ``-b devel`` (or
``git checkout devel`` after cloning) to follow the development branch.

**Quick Start (Development)**

::

  git clone https://github.com/mikereidnz/pycf.git
  cd pycf
  python3 -m venv env
  source env/bin/activate
  pip install -e ".[test,examples]"
  python -m pytest tests/ -q

**Project Structure**

- ``cfl/`` — C99 core library for setting up and fitting Hamiltonians.
- ``pycf/`` — Python/Cython wrappers
- ``examples/`` — End-to-end workflows for real materials
- ``tests/`` — Python and C unit tests

**Documentation**

- `INSTALL.md <INSTALL.md>`_ — Installation guide with platform-specific instructions
- `docs/legacy/ <docs/legacy/>`_ — Legacy technical documentation preserved for reference
- `examples/ <examples/>`_ — Material-specific usage examples

**Authorship**

Originally developed by Sebastian Horvath (sebastian.horvath@gmail.com). Currently maintained by Mike Reid (mike.reid@canterbury.ac.nz).

A legacy version is available at https://bitbucket.org/sebastianhorvath/pycf/ and also on the "legacy" branch of this repository.

**License**

GNU General Public License v3 (GPLv3)
