Skip to content

Releases: krivenko/som

Release 2.1.0

03 Oct 08:15
Compare
Choose a tag to compare

This is a TRIQS 3.2 compatibility release.

Major release 2.0.0

27 Jun 08:45
Compare
Choose a tag to compare

Major changes and new features

  • Complete port to TRIQS 3.1 and Python 3.
  • Implementation of the Stochastic Optimization with Consistent Constraints
    (SOCC) proposed by Goulko et al in Phys. Rev. B 95, 014102 (2017).
    It includes three major pieces of functionality.
    • The Consistent Constraints update in the Markov chain used to accumulate
      particular solutions;
    • The Consistent Constraints protocol for constructing final solutions out of
      particular solutions;
    • The solution quality assessment technique implemented in a new Python module
      som.spectral_stats.
  • For consistency with MaxEnt and other stochastic continuation methods, the
    objective function of the optimization problem has been changed to the
    "goodness of fit" $\chi^2$-functional.
  • Adoption of the $\chi^2$-functional has made it possible to support
    user-supplied covariance matrices of input data as an alternative to simple
    estimated error bars (credits to @snirgaz for proposing this feature).
  • A new family of integral kernels for symmetric fermionic Green's functions has
    been introduced. The corresponding observable is called FermionGfSymm.
  • The BosonAutoCorr kernels have been changed to more closely reproduce
    results of the BosonCorr kernels for the same input data. Both kernel
    families are defined on the whole energy axis and expect the same spectrum
    normalization constants now (before one had to divide the constants by 2 for
    BosonAutoCorr).
  • Projection of an observable onto a real frequency mesh can now be
    performed using binning (enabled by default). In this mode the projected
    observable is integrated over bins centered around points of the mesh.
  • Further MPI parallelization.
  • Massively reworked online documentation.

Python API changes

  • Following a convention change for TRIQS applications, the Python package of
    SOM has been renamed from pytriqs.applications.analytical_continuation.som
    to a laconic som.

  • Functionality of the run() method of SomCore has been split among a
    few new methods,

    • accumulate() -- accumulate particular solutions;
    • adjust_f() -- adjust the number of global updates F;
    • compute_final_solution() -- construct the final solution using the
      standard SOM protocol;
    • compute_final_solution_cc() -- construct the final solution using
      Goulko's SOCC protocol.

    One may still call the deprecated run(), which is equivalent to calling
    accumulate() + compute_final_solution().

  • In recent versions of TRIQS it became impossible to use the << syntax to
    fill GF containers from user-defined Python objects. Furthermore,
    high-frequency tail data was separated from the GF containers. As a result,
    that syntax had to be abandoned in favor of a few free functions.

    • fill_refreq() -- fill a real-frequency observable from a computed SOM
      solution;
    • compute_tail() -- compute high-frequency tail coefficients from a
      computed SOM solution;
    • reconstruct() -- reconstruct input from a computed SOM solution.
  • It is now possible to resume accumulation of particular solutions by calling
    SomCore.accumulate() multiple times, and to discard all accumulated
    solutions by calling SomCore.clear().

  • A handful of new properties and accessor methods have been added to SomCore.

  • The rectangle and configuration C++ objects are now exposed as Python
    classes Rectangle and Configuration. Configuration objects can be saved
    to/loaded from HDF5 archives.

  • Updated signature of som.count_good_solutions() to take both
    good_chi_abs and good_chi_rel (thresholds on $\chi$ and
    $\chi/\chi_\mathrm{min}$ for a solution to be considered good).

  • A new utility function som.estimate_boson_corr_spectrum_norms() has been
    added. Given a correlator of boson-like operators $\chi$ defined on any
    supported mesh, it returns a list of spectrum normalization constants
    $\mathcal{N} = \pi \chi(i\Omega = 0)$.

Build system and developer tools

  • Minimum required CMake version has been bumped to 3.12.4.
  • Structure of the project has been adjusted to follow conventions established
    by the app4triqs application template.
  • A Dockerfile has been added.
  • Files som.modulefile and somvars.sh are generated and installed as part
    of the build process.
  • New benchmarks: all_kernels, binning, consistent_constraints,
    bosonautocorr and fermiongfsymm.
  • The chi benchmark has been removed as it depended on the private
    triqs_ctseg code.
  • Support for C++ static analysis tools clang-tidy and cppcheck has been
    added.
  • A CMake option has been added to link libsom and unit tests to Clang
    sanitizers (AddressSanitizer and UndefinedBehaviorSanitizer).
  • C++/Python coding style is enforced with clang-format and flake8.

1.2

15 Mar 11:17
Compare
Choose a tag to compare
1.2
Release 1.2

This is the last SOM release compatible with TRIQS 1.4.x.

- Improvements and small fixes in documentation.
- Added a new histogram post-processing function, `count_good_solutions()`.
- Fixed a bug in `update_glue_shift` elementary update.
- New benchmark `all_kernels` and fixes in the `chi` benchmark.
- Added Travis CI config for continuous testing and documentation deployment.
- Minor code improvements.

1.1

23 Apr 19:54
Compare
Choose a tag to compare
1.1
Release 1.1

1.0

23 Apr 19:54
Compare
Choose a tag to compare
1.0
Release 1.0

Pre-release 0.95

23 Apr 19:54
Compare
Choose a tag to compare
Pre-release 0.95 Pre-release
Pre-release
[som_core] Moved all kernel-specific code out of some_core.cpp

* TODO file has been updated.
* Python tests now compare also the tail of g_w.

Pre-release 0.9

23 Apr 19:54
Compare
Choose a tag to compare
Pre-release 0.9 Pre-release
Pre-release
I consider this version feature complete.

All 9 planned integral kernels have been implemented.
Only bug fixes, as well as stability and performance
improvements are to be added before the 1.0 release.

Pre-release 0.8

23 Apr 19:53
Compare
Choose a tag to compare
Pre-release 0.8 Pre-release
Pre-release
Changed application version to 0.8

Pre-release 0.7

23 Apr 19:53
Compare
Choose a tag to compare
Pre-release 0.7 Pre-release
Pre-release
[doc] Added a usage example.