Metadata-Version: 2.4
Name: pyqed
Version: 0.2.0
Summary: Electronic structure, quantum dynamics, and spectroscopy in Python
Author-email: Bing Gu <gubing@westlake.edu.cn>
License-Expression: MIT
Project-URL: Homepage, https://pyqed.org
Project-URL: Documentation, https://docs.pyqed.org
Project-URL: Repository, https://github.com/binggu56/pyqed
Project-URL: Issues, https://github.com/binggu56/pyqed/issues
Project-URL: Changelog, https://github.com/binggu56/pyqed/blob/main/HISTORY.rst
Keywords: quantum chemistry,quantum dynamics,spectroscopy,molecular quantum electrodynamics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
License-File: pyqed/qchem/basis_set/BASIS_SET_EXCHANGE_LICENSE.txt
License-File: pyqed/qchem/basis_set/PYSCF_APACHE_LICENSE.txt
License-File: pyqed/qchem/basis_set/PYSCF_NOTICE.txt
Requires-Dist: numpy>=2.0
Requires-Dist: opt-einsum>=3.3
Requires-Dist: periodictable>=1.7
Requires-Dist: scipy>=1.13
Provides-Extra: analysis
Requires-Dist: matplotlib>=3.8; extra == "analysis"
Requires-Dist: qc-gbasis>=0.1; extra == "analysis"
Provides-Extra: accelerators
Requires-Dist: numba>=0.59; extra == "accelerators"
Requires-Dist: psutil>=5.9; extra == "accelerators"
Provides-Extra: heom
Requires-Dist: numba>=0.59; extra == "heom"
Requires-Dist: sympy>=1.12; extra == "heom"
Requires-Dist: tqdm>=4.66; extra == "heom"
Provides-Extra: md
Requires-Dist: ase>=3.23; extra == "md"
Requires-Dist: h5py>=3.10; extra == "md"
Requires-Dist: openmm>=8.1; extra == "md"
Provides-Extra: ml
Requires-Dist: jax>=0.4.26; extra == "ml"
Requires-Dist: scikit-learn>=1.4; extra == "ml"
Requires-Dist: tensorly>=0.8; extra == "ml"
Requires-Dist: torch>=2.2; extra == "ml"
Provides-Extra: plot
Requires-Dist: matplotlib>=3.8; extra == "plot"
Provides-Extra: pyscf
Requires-Dist: pyscf>=2.5; extra == "pyscf"
Provides-Extra: ued
Requires-Dist: h5py>=3.10; extra == "ued"
Provides-Extra: docs
Requires-Dist: Sphinx<9,>=7.3; extra == "docs"
Requires-Dist: roman>=4.1; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
Provides-Extra: test
Requires-Dist: build>=1.2; extra == "test"
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: twine>=5; extra == "test"
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.5; extra == "dev"
Requires-Dist: twine>=5; extra == "dev"
Dynamic: license-file

PyQED
=====

.. image:: https://img.shields.io/pypi/v/pyqed.svg
   :target: https://pypi.org/project/pyqed/
   :alt: PyPI release

.. image:: https://readthedocs.org/projects/pyqed/badge/?version=latest
   :target: https://docs.pyqed.org/
   :alt: Documentation status

.. image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/binggu56/pyqed/blob/main/LICENSE
   :alt: MIT license

PyQED is open-source research software for light--matter interactions,
quantum dynamics, spectroscopy, open quantum systems, and electronic-structure
workflows.  The project combines reusable Python APIs with executable research
examples and validation paths.

* Project website: https://pyqed.org/
* Documentation: https://docs.pyqed.org/
* Source: https://github.com/binggu56/pyqed
* Issue tracker: https://github.com/binggu56/pyqed/issues

Project status
--------------

PyQED is active research software.  Interfaces and numerical workflows have
different maturity levels, and some are experimental.  Consult the
`capability status <https://docs.pyqed.org/en/latest/capabilities.html>`_ before
selecting a method for production work.  A passing example or benchmark is
evidence for the documented case, not a guarantee for every model or
parameter regime.

Installation
------------

Install a published release from PyPI:

.. code-block:: bash

   python -m pip install pyqed

For the current development tree:

.. code-block:: bash

   git clone https://github.com/binggu56/pyqed.git
   cd pyqed
   python -m pip install -e .

Standard installations use the tested pure-Python fallbacks.  To compile the
optional native accelerators from a source checkout, use a supported C/C++
toolchain and opt in explicitly:

.. code-block:: bash

   PYQED_BUILD_EXTENSIONS=1 python -m pip install .

Use documentation from the same release or commit as the installed code.  See
the `installation guide <https://docs.pyqed.org/en/latest/installation.html>`_
for verification and optional-dependency guidance.

Five-minute calculation
-----------------------

This native, small-basis RHF calculation does not require PySCF:

.. code-block:: python

   from pyqed.qchem import Molecule

   mol = Molecule(
       atom="H 0 0 0; H 0 0 0.74",
       unit="angstrom",
       basis="sto-3g",
   )
   mol.build(driver="builtin", eri="auto")
   mf = mol.RHF().run()

   print("converged:", mf.converged)
   print("RHF energy:", mf.e_tot)

Continue with the `quickstart
<https://docs.pyqed.org/en/latest/quickstart.html>`_ and the `examples gallery
<https://docs.pyqed.org/en/latest/examples.html>`_.

Development
-----------

Run focused tests from the repository root:

.. code-block:: bash

   PYTHONPATH=. python -m pytest tests/test_rhf.py -q

Build the documentation with warnings treated as errors:

.. code-block:: bash

   python -m pip install -r docs/requirements.txt
   python -m sphinx -W --keep-going -b html docs/source /tmp/pyqed-docs

Read `CONTRIBUTING.md
<https://github.com/binggu56/pyqed/blob/main/CONTRIBUTING.md>`_ before proposing
changes.  Scientific changes should include a focused test or reproducible
benchmark and document units, conventions, dependencies, and references.

Citing PyQED
------------

Use the metadata in ``CITATION.cff`` and record the exact PyQED release or Git
commit used.  No project DOI is asserted until one appears in an archived
release.  See the `citation guide
<https://docs.pyqed.org/en/latest/citing.html>`_ for a reproducibility
checklist.

License
-------

PyQED is distributed under the MIT License.  See ``LICENSE``.
