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.
Check the dependencies:
Download the latest sources:
git clone https://github.com/pomerol-ed/pomerol.git
Create a (temporary) build directory and change to it:
mkdir build && cd build
In this build directory, run
cmake <path_to_pomerol_sources> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<installation_path>
-Dlibcommute_DIR=<libcommute_installation_path>/lib/cmake/libcommute
to the command line. If this attempt fails, it will download an appropriate
version of libcommute and co-install it alongside pomerol.-DTesting=OFF
to disable compilation of unit tests (not recommended).-DProgs=ON
to compile provided executables (from progs
directory). Some of the executables depend on the
gftools library, which will be
automatically downloaded in case it cannot be found by CMake (use
-Dgftools_DIR
to specify its installation path). gftools supports saving
to HDF5 through ALPSCore.-DDocumentation=OFF
to disable generation of reference
documentation.-DUSE_OPENMP=OFF
to disable OpenMP optimization for two-particle GF
calculation.-DBUILD_SHARED_LIBS=OFF
to compile static instead of shared libraries.make
make test
(if unit tests are compiled)
make install
make doc
generates the Doxygen reference documentation in the doc/html
subdirectory.
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
.
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.
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.
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/.
Please, attribute this work by a citation to http://dx.doi.org/10.5281/zenodo.17900.
Please, feel free to contact us and to contribute!