{"id":13511167,"url":"https://github.com/pomerol-ed/pomerol","last_synced_at":"2026-05-09T18:03:30.434Z","repository":{"id":3961037,"uuid":"20711234","full_name":"pomerol-ed/pomerol","owner":"pomerol-ed","description":"Exact diagonalization, Lehmann's representation, Two-particle Green's functions","archived":false,"fork":false,"pushed_at":"2025-01-02T12:18:59.000Z","size":72981,"stargazers_count":45,"open_issues_count":0,"forks_count":16,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-01-02T13:24:35.951Z","etag":null,"topics":["c-plus-plus","condensed-matter","exact-diagonalization","greens-functions","hubbard","physics","pomerol","quantum"],"latest_commit_sha":null,"homepage":"http://pomerol-ed.github.io/pomerol/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pomerol-ed.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-11T03:44:49.000Z","updated_at":"2025-01-02T12:15:14.000Z","dependencies_parsed_at":"2024-08-25T15:47:38.325Z","dependency_job_id":"4d004145-7c91-4a7c-ac4f-0378efbf152b","html_url":"https://github.com/pomerol-ed/pomerol","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pomerol-ed%2Fpomerol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pomerol-ed%2Fpomerol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pomerol-ed%2Fpomerol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pomerol-ed%2Fpomerol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pomerol-ed","download_url":"https://codeload.github.com/pomerol-ed/pomerol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246379366,"owners_count":20767694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","condensed-matter","exact-diagonalization","greens-functions","hubbard","physics","pomerol","quantum"],"created_at":"2024-08-01T03:00:36.932Z","updated_at":"2026-05-09T18:03:30.423Z","avatar_url":"https://github.com/pomerol-ed.png","language":"C++","funding_links":[],"categories":["Software"],"sub_categories":[],"readme":"[![Package on Anaconda.org](https://anaconda.org/krivenko/pomerol/badges/version.svg)](\nhttps://anaconda.org/channels/krivenko/packages/pomerol/overview)\n[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-red)](\nhttps://pomerol-ed.github.io/pomerol/)\n[![Build, test and deploy docs](\nhttps://github.com/pomerol-ed/pomerol/actions/workflows/build-test-deploy.yml/badge.svg)](\nhttps://github.com/pomerol-ed/pomerol/actions/workflows/build-test-deploy.yml)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5739623.svg)](\nhttps://doi.org/10.5281/zenodo.5739623)\n\n**pomerol** is an exact diagonalization (full ED) code written in C++ aimed at\nsolving condensed matter second-quantized models of interacting fermions\nand bosons on finite size lattices at finite temperatures.\nIt is designed to compute thermal expectation values of observables, single- and\ntwo-particle Green's functions as well as susceptibilities.\n\n## Features\n\n  * High performance exact calculation of Green's functions, two-particle\n    Green's functions and susceptibilities in Matsubara domain.\n  * Many-body Hamiltonians can be specified in a natural mathematical form using\n    [libcommute's](https://krivenko.github.io/libcommute/) Domain-Specific\n    Language. Hamiltonian presets for commonly used lattice models are also\n    available.\n  * Automatic symmetry analysis of the many-body Hamiltonians drastically\n    reduces computational costs.\n  * [Eigen 3](https://libeigen.gitlab.io) template library is used for numerical\n    linear algebra.\n  * [MPI](http://en.wikipedia.org/wiki/Message_Passing_Interface) +\n    [OpenMP](https://en.wikipedia.org/wiki/OpenMP) support.\n\n## Installation\n\n### `conda`/`mamba` package from Anaconda.org\n\n**pomerol** is available as a conda/mamba package from [Anaconda.org](\nhttps://anaconda.org/channels/krivenko/packages/pomerol/overview)\nsince the release 2.3. It is packaged for three platforms (linux-64, osx-64,\nosx-arm64) and is linked to either OpenMPI or MPICH libraries.\n\n```\nconda install krivenko::pomerol\nmamba install krivenko::pomerol\n```\n\n### From source\n\n  - Check the *dependencies*:\n\n    * A C++11 conformant compiler\n    * CMake \u003e= 3.11.0\n    * Boost \u003e= 1.54.0 (only headers are required)\n    * Eigen \u003e= 3.1.0, \u003c 5.0.0\n    * [libcommute \u003e= 1.0.0](https://github.com/krivenko/libcommute) (will be\n      downloaded by CMake if not found installed locally)\n    * An MPI 3.0 implementation\n    * Git to fetch the sources\n\n  - Download the latest sources:\n\n    ```\n    git clone https://github.com/pomerol-ed/pomerol.git\n    ```\n\n  - Create a (temporary) build directory and change to it:\n\n    ```\n    mkdir build \u0026\u0026 cd build\n    ```\n\n  - In this build directory, run\n\n    ```\n    cmake \u003cpath_to_pomerol_sources\u003e -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=\u003cinstallation_path\u003e\n    ```\n    * CMake tries to find an installation of libcommute, whose location can be\n      specified by adding\n      `-Dlibcommute_DIR=\u003clibcommute_installation_path\u003e/lib/cmake/libcommute`\n      to the command line. If this attempt fails, it will download an appropriate\n      version of libcommute and co-install it alongside pomerol.\n    * Add `-DTesting=OFF` to disable compilation of unit tests (not recommended).\n    * Add `-DProgs=ON` to compile provided executables (from `progs`\n      directory). Some of the executables depend on the\n      [gftools](https://github.com/pomerol-ed/gftools) library, which will be\n      automatically downloaded in case it cannot be found by CMake (use\n      `-Dgftools_DIR` to specify its installation path). gftools supports saving\n      to HDF5 through [ALPSCore](http://alpscore.org).\n    * Add `-DDocumentation=OFF` to disable generation of reference\n      documentation.\n    * Add `-DUSE_OPENMP=OFF` to disable OpenMP optimization for two-particle GF\n      calculation.\n    * Add `-DBUILD_SHARED_LIBS=OFF` to compile static instead of shared libraries.\n  - `make`\n  - `make test` (if unit tests are compiled)\n  - `make install`\n  - `make doc` generates the Doxygen reference documentation in the `doc/html`\n    subdirectory.\n\nThe library, _libpomerol_ is built. It can be used for linking with executables.\nSome working executables are given in `prog` subdirectory.\n\n\u003e :warning: It has been [reported](https://github.com/pomerol-ed/pomerol/pull/60)\nthat some [MPICH](https://www.mpich.org/)-based MPI implementations, such as HPE\nCray MPI may not properly support `MPI_CXX_*` datatypes, which pomerol's code\ndepends on. In case you see failing MPI unit tests when linking to said MPI\nlibraries, try using CMake option `-DUse_MPI_C_datatypes=ON`.\n\n## Interfacing with your own code and other libraries\n\nCheck the `tutorial` directory for an example of a pomerol-based code that is\nlinked to external libraries.\n\nThe interface to [TRIQS library](https://triqs.github.io/triqs/latest/) is\nreadily available: \u003chttps://github.com/pomerol-ed/pomerol2triqs\u003e.\n\n## Documentation\nCheck \u003chttps://pomerol-ed.github.io/pomerol/html/\u003e or type `make doc` during\ncompilation stage to build the reference documentation.\n\n[CHANGELOG.md](CHANGELOG.md) lists main changes introduced in each release.\n\n## License\nThis Source Code Form is subject to the terms of the Mozilla Public License,\nv. 2.0. If a copy of the MPL was not distributed with this file, You can obtain\none at \u003chttp://mozilla.org/MPL/2.0/\u003e.\n\n## Academic usage\n\nPlease, attribute this work by a citation to\n\u003chttp://dx.doi.org/10.5281/zenodo.17900\u003e.\n\n## Authors \u0026 Contributors\n  * Andrey Antipov \u003cAndrey.E.Antipov\\at\\gmail.com\u003e\n  * Igor Krivenko \u003ciskrivenko\\at\\proton.me\u003e\n  * Mikhail Alejnikov\n  * Alexey Rubtsov\n  * Christoph Jung\n  * Aljoscha Wilhelm\n  * Junya Otsuki\n  * Sergei Iskakov\n  * Hiroshi Shinaoka\n  * Nils Wentzell\n  * Hugo U.R. Strand\n  * Dominik Kiese\n\n## Development/Help\nPlease, feel free to contact us and to contribute!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpomerol-ed%2Fpomerol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpomerol-ed%2Fpomerol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpomerol-ed%2Fpomerol/lists"}