pomerol
Exact diagonalization, Lehmann's representation, Two-particle Green's functions
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Keywords
Repository
Exact diagonalization, Lehmann's representation, Two-particle Green's functions
Basic Info
- Host: GitHub
- Owner: pomerol-ed
- License: mpl-2.0
- Language: C++
- Default Branch: master
- Homepage: http://pomerol-ed.github.io/pomerol/
- Size: 75.1 MB
Statistics
- Stars: 47
- Watchers: 11
- Forks: 16
- Open Issues: 0
- Releases: 7
Topics
Metadata Files
README.md
pomerol is an exact diagonalization (full ED) code written in C++ aimed at solving condensed matter second-quantized models of interacting fermions and bosons on finite size lattices at finite temperatures. It is designed to compute thermal expectation values of observables, single- and two-particle Green's functions as well as susceptibilities.
Features
- High performance exact calculation of Green's functions, two-particle Green's functions and susceptibilities in Matsubara domain.
- Many-body Hamiltonians can be specified in a natural mathematical form using libcommute's Domain-Specific Language. Hamiltonian presets for commonly used lattice models are also available.
- Automatic symmetry analysis of the many-body Hamiltonians drastically reduces computational costs.
- Eigen 3 template library is used for numerical linear algebra.
- MPI + OpenMP support.
Installation
From source
Check the dependencies:
- A C++11 conformant compiler
- CMake >= 3.11.0
- Boost >= 1.54.0 (only headers are required)
- Eigen >= 3.1.0
- libcommute >= 0.7.2 (will be downloaded by CMake if not found installed locally)
- An MPI 3.0 implementation
- Git to fetch the sources
Download the latest sources:
git clone https://github.com/pomerol-ed/pomerol.gitCreate a (temporary) build directory and change to it:
mkdir build && cd buildIn this build directory, run
cmake <path_to_pomerol_sources> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<installation_path>- CMake tries to find an installation of libcommute, whose location can be
specified by adding
-Dlibcommute_DIR=<libcommute_installation_path>/lib/cmake/libcommuteto the command line. If this attempt fails, it will download an appropriate version of libcommute and co-install it alongside pomerol. - Add
-DTesting=OFFto disable compilation of unit tests (not recommended). - Add
-DProgs=ONto compile provided executables (fromprogsdirectory). Some of the executables depend on the gftools library, which will be automatically downloaded in case it cannot be found by CMake (use-Dgftools_DIRto specify its installation path). gftools supports saving to HDF5 through ALPSCore. - Add
-DDocumentation=OFFto disable generation of reference documentation. - Add
-DUSE_OPENMP=OFFto disable OpenMP optimization for two-particle GF calculation. - Add
-DBUILD_SHARED_LIBS=OFFto compile static instead of shared libraries.
- CMake tries to find an installation of libcommute, whose location can be
specified by adding
makemake test(if unit tests are compiled)make installmake docgenerates the Doxygen reference documentation in thedoc/htmlsubdirectory.
The library, libpomerol is built. It can be used for linking with executables.
Some working executables are given in prog subdirectory.
:warning: It has been reported that some MPICH-based MPI implementations, such as HPE Cray MPI may not properly support
MPI_CXX_*datatypes, which pomerol's code depends on. In case you see failing MPI unit tests when linking to said MPI libraries, try using CMake option-DUse_MPI_C_datatypes=ON.
Interfacing with your own code and other libraries
Check the tutorial directory for an example of a pomerol-based code that is
linked to external libraries.
The interface to TRIQS library is readily available: https://github.com/pomerol-ed/pomerol2triqs.
Documentation
Check https://pomerol-ed.github.io/pomerol/html/ or type make doc during
compilation stage to build the reference documentation.
CHANGELOG.md lists main changes introduced in each release.
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Academic usage
Please, attribute this work by a citation to http://dx.doi.org/10.5281/zenodo.17900.
Authors & Contributors
- Andrey Antipov
- Igor Krivenko
- Mikhail Alejnikov
- Alexey Rubtsov
- Christoph Jung
- Aljoscha Wilhelm
- Junya Otsuki
- Sergei Iskakov
- Hiroshi Shinaoka
- Nils Wentzell
- Hugo U.R. Strand
- Dominik Kiese
Development/Help
Please, feel free to contact us and to contribute!
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Krivenko
given-names: Igor
orcid: https://orcid.org/0000-0002-9904-1229
affiliation: "I. Institute of Theoretical Physics, University of Hamburg, Hamburg, Germany"
- family-names: Antipov
given-names: Andrey
orcid: https://orcid.org/0000-0002-4987-7183
affiliation: "Microsoft Quantum, Microsoft Station Q, University of California, Santa Barbara, CA, USA"
- family-names: Iskakov
given-names: Sergei
orcid: https://orcid.org/0000-0001-7639-1827
affiliation: "University of Michigan, Ann Arbor, MI, USA"
- family-names: Otsuki
given-names: Junya
affiliation: "Research Institute for Interdisciplinary Science, Okayama University, Okayama, Japan"
title: "pomerol: An exact diagonalization code written in C++"
version: 2.0
license: MPL-2.0
date-released: 2021-11-29
GitHub Events
Total
- Issues event: 2
- Watch event: 4
- Delete event: 1
- Issue comment event: 7
- Push event: 9
- Create event: 2
Last Year
- Issues event: 2
- Watch event: 4
- Delete event: 1
- Issue comment event: 7
- Push event: 9
- Create event: 2
Dependencies
- actions/checkout v3 composite
- JamesIves/github-pages-deploy-action v4 composite
- actions/checkout v3 composite