Recent Releases of pomerol
pomerol - Release 2.1
- New classes to compute the 3-point fermion-boson susceptibilities,
ThreePointSusceptibility,ThreePointSusceptibilityPartandThreePointSusceptibilityContainer. QuadraticOperatorcan now be a product of two creators or two annihilators.- Renamed type aliases
FreqTuple->FreqTuple3andFreqVec->FreqVec3. The old names are still usable but marked as deprecated. - Bumped required CMake version to 3.11.0.
- Bumped required libcommute version to 0.7.2.
- Use CMake's module
FetchContentto fetch libcommute if it is not found locally. - Install CMake configuration files into
${CMAKE_INSTALL_PREFIX}/lib/cmake/pomerol, which is the recommended location. - New GitHub Actions workflow that builds and installs pomerol on macOS 11.
- C++
Published by krivenko about 3 years ago
pomerol - Major release: 2.0
The Mozilla Public License Version 2.0 has been adopted.
Pomerol 2.0 requires a C++11 compatible compiler to build.
Dependence on Boost.MPI and Boost.Serialization has been dropped. Pomerol 2.0 still depends on a few header-only Boost libraries and an MPI-3.0 implementation that provides a working
<mpi.h>.Changed extension of all header files from
.hto.hpp.The input layer and diagonalization routines have been rewritten to benefit from facilities provided by libcommute. Hamiltonians to be solved are now specified as libcommute's expressions with arbitrary static types of indices carried by creation/annihilation operators.
Thanks to the use of libcommute's expressions, it is now possible to solve models, whose Hamiltonians involve bosonic degrees of freedom.
The
Latticeclass has been retired. TheLatticePresetsclass has been turned into a namespace with preset functions returning their respective expressions of Hamiltonian terms. For the sake of backward compatibility, operators in the expressions returned by these functions carry the traditional (site label, orbital index, spin projection) index triplets.The
spinenumeration type is now declared in theLatticePresetsnamespace. The enumeration has also been extended with an extraundefvalue, which is meant to be used on bosonic creation/annihilation operators.The
POMEROL_COMPLEX_MATRIX_ELEMENTSCMake option has been removed. A proper matrix storage format is selected at runtime depending on the types of input expressions for Hamiltonians and operators of physical observables.API of class
IndexClassificationhas been made more generic (it is now templated on the operator index types to accommodate the flexibility of libcommute's expressions).Class
IndexHamiltonianhas been removed.Functionality of the
SymmetrizerandStatesClassificationclasses has been redistributed betweenStatesClassificationand a new classHilbertSpace. The notion of quantum numbers has been abandoned since partition of a Hilbert space into sectors is now performed by libcommute'sspace_partitionalgorithm.Class
FieldOperatorhas been generalized and renamed intoMonomialOperator. It can now compute and store matrices of arbitrary monomial operators, i.e. operators that are products of creation/annihilation operators, possibly with a real or complex prefactor.It is now possible to use
EnsembleAverageandSusceptibilityto compute averages/dynamical fluctuations of monomial operators instead of just quadratic operators.Renamed
EnsembleAverage::getResult()toEnsembleAverage::operator()().The outdated
ENABLE_SAVE_PLAINTEXTmacro has been removed.The
pomerol/first_include.h.inheader has been renamed intopomerol/Version.hpp.in.API reference documentation and the tutorial have been updated and cleaned up.
Unit tests have been ported from Google Test to Catch2. The header file of Catch2 is bundled to the source code.
- C++
Published by aeantipov about 4 years ago
pomerol - 1.3
Last release adhering to C++98 standard. This release: - Fix in symmetry detection - Speedup of operator matrix element computation (H. Shinaoka) - Truncate blocks having negligible density matrix (J. Otsuki) - Fix OpenMP flags (H. Strand) - Fixes (N. Wenzell, H. Shinaoka) - Update README
- C++
Published by aeantipov over 6 years ago
pomerol - 1.2
pomerol is an exact diagonalization (full-ED) code written in C++ aimed at solving condensed matter second-quantized models of interacting fermions on finite size lattices at finite temperatures. It is designed to produce single and two-particle Greens functions. It is frequently used as a benchmark of continuous time QMC
This release
- Fixed asynchronous mpi scheduling.
- Major speedup - revised TermList into ordered set.
- Removed obsolete code.
- Cleanup and fix documentation.
- C++
Published by aeantipov over 8 years ago
pomerol - 1.1
pomerol is an exact diagonalization (full-ED) code written in C++ aimed at solving condensed matter second-quantized models of interacting fermions on finite size lattices at finite temperatures. It is designed to produce single and two-particle Greens functions.
This release
Disabled c++11-dependence, keeping the same functionality as in the previous 1.0 release.
- C++
Published by aeantipov almost 11 years ago