# Pyqcm
Pyqcm is a Python/C++ library that implements a few quantum cluster methods with an exact diagonalization impurity solver.
Quantum cluster methods are used in the study of strongly correlated electrons to provide an approximate solution to Hubbard-like models.
The methods covered by this library are Cluster Perturbation Theory (CPT), the Variational Cluster Approach (VCA) and Cellular (or Cluster) Dynamical Mean Field Theory (CDMFT).
The impurity solver (the technique used to compute the cluster's interacting Green function) is exact diagonalization from sparse matrices, using the Lanczos algorithm and variants thereof.
The core library is written in C++ for performance, but the interface is in Python, for ease of use and inter-operability with the numerical Python ecosystem.
The library is distributed under the GPL license.
A comprehensive paper describing the different methods and version 2.1 of the software is available on [arXiv repository](https://arxiv.org/abs/2305.18643).
## Installation
Pyqcm depends on a BLAS-LAPACK implementation available on your system (such as OpenBLAS) and the Eigen template librairie.
These dependencies can be installed using the `apt` package manager on Debian system as (Ubuntu):
```
sudo apt install libopenblas-dev libeigen3-dev
```
Once installed, Pyqcm can be installed using the `pip` package manager as:
```
pip install pyqcm
```
Note only sources distribution are available and compilation is carried on the target system.
This is for enabling the most appropriate optimizations at building time for faster running time.
By default, a build-capability build of Pyqcm is carried.
Pyqcm is compatible (i.e. have been tested) on various Linux distribution on x86 computers (Intel and AMD) and Apple ARM processors.
Finely tuned installation can be acheived by specifiyng the environment variable `CMAKE_ARGS` before to install Pyqcm via `pip` (see the section [Advanced installation](https://qcm-wed.readthedocs.io/en/latest/intro.html#advanced-installation) on the documentation).
## Examples and documentation
Pyqcm documentation is hosted on ReadTheDocs and is available at [https://qcm-wed.readthedocs.io/](https://qcm-wed.readthedocs.io/en/latest/).
EXAMPLES can be found in the notebooks/ folder, either in plain python files (`*.py`) or in the form of Jupyter notebooks (`*.ipynb`).
## Contact
Questions and comments can be addressed to:
```
david.senechal@usherbrooke.ca
```
Raw data
{
"_id": null,
"home_page": "https://bitbucket.org/dsenechQCM/qcm_wed/",
"name": "pyqcm",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "David S\u00e9n\u00e9chal",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/0a/db/af69770202efa9f7106f0a974aa65884ca7865ce48f67d210e65471aa0ad/pyqcm-2.12.0.tar.gz",
"platform": null,
"description": "# Pyqcm\n\nPyqcm is a Python/C++ library that implements a few quantum cluster methods with an exact diagonalization impurity solver. \nQuantum cluster methods are used in the study of strongly correlated electrons to provide an approximate solution to Hubbard-like models.\nThe methods covered by this library are Cluster Perturbation Theory (CPT), the Variational Cluster Approach (VCA) and Cellular (or Cluster) Dynamical Mean Field Theory (CDMFT).\nThe impurity solver (the technique used to compute the cluster's interacting Green function) is exact diagonalization from sparse matrices, using the Lanczos algorithm and variants thereof. \nThe core library is written in C++ for performance, but the interface is in Python, for ease of use and inter-operability with the numerical Python ecosystem. \nThe library is distributed under the GPL license.\n\nA comprehensive paper describing the different methods and version 2.1 of the software is available on [arXiv repository](https://arxiv.org/abs/2305.18643).\n\n\n## Installation\n\nPyqcm depends on a BLAS-LAPACK implementation available on your system (such as OpenBLAS) and the Eigen template librairie.\nThese dependencies can be installed using the `apt` package manager on Debian system as (Ubuntu):\n\n```\nsudo apt install libopenblas-dev libeigen3-dev\n```\n\nOnce installed, Pyqcm can be installed using the `pip` package manager as:\n\n```\npip install pyqcm\n```\n\nNote only sources distribution are available and compilation is carried on the target system.\nThis is for enabling the most appropriate optimizations at building time for faster running time.\nBy default, a build-capability build of Pyqcm is carried.\nPyqcm is compatible (i.e. have been tested) on various Linux distribution on x86 computers (Intel and AMD) and Apple ARM processors.\nFinely tuned installation can be acheived by specifiyng the environment variable `CMAKE_ARGS` before to install Pyqcm via `pip` (see the section [Advanced installation](https://qcm-wed.readthedocs.io/en/latest/intro.html#advanced-installation) on the documentation).\n\n\n## Examples and documentation\n\nPyqcm documentation is hosted on ReadTheDocs and is available at [https://qcm-wed.readthedocs.io/](https://qcm-wed.readthedocs.io/en/latest/).\n\nEXAMPLES can be found in the notebooks/ folder, either in plain python files (`*.py`) or in the form of Jupyter notebooks (`*.ipynb`).\n\n\n## Contact\n\nQuestions and comments can be addressed to:\n\n```\ndavid.senechal@usherbrooke.ca\n```\n",
"bugtrack_url": null,
"license": "GPL",
"summary": "Quantum cluster methods for the physics of strongly correlated systems",
"version": "2.12.0",
"project_urls": {
"Homepage": "https://bitbucket.org/dsenechQCM/qcm_wed/"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0adbaf69770202efa9f7106f0a974aa65884ca7865ce48f67d210e65471aa0ad",
"md5": "1b46eb95c23319cbe141b4ee9ce60802",
"sha256": "3ad81bb709098798b928d5e5e12b23161b678407ea5879fa47a3927d093be836"
},
"downloads": -1,
"filename": "pyqcm-2.12.0.tar.gz",
"has_sig": false,
"md5_digest": "1b46eb95c23319cbe141b4ee9ce60802",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 1630580,
"upload_time": "2025-07-30T15:43:49",
"upload_time_iso_8601": "2025-07-30T15:43:49.517878Z",
"url": "https://files.pythonhosted.org/packages/0a/db/af69770202efa9f7106f0a974aa65884ca7865ce48f67d210e65471aa0ad/pyqcm-2.12.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-30 15:43:49",
"github": false,
"gitlab": false,
"bitbucket": true,
"codeberg": false,
"bitbucket_user": "dsenechQCM",
"bitbucket_project": "qcm_wed",
"lcname": "pyqcm"
}