Releases: ValeevGroup/SeQuant
2.2.0
2.2.0 is the third release of SeQuant2. It's a feature-patch for 2.1.0 that fills the gaps in the support for evaluation/export of expressions with hyperindices and fixes a few issues.
What's Changed
New Features
assert_{enabled,behavior}are constexpr, used almost everywhere instead of macros by @evaleev in #496- evaluate expressions with non-aux-only hyperindices by @evaleev in #495
binarizeuses user-provided external indices by @evaleev in #497- use Exception instead of std exceptions by @evaleev in #500
Bug Fixes
- bugfix: unit tests did not "see" SEQUANT_ASSERT_BEHAVIOR due to #477 by @evaleev in #494
- CacheManager does not use hashing for comparisons by @evaleev in #491
- Context: strict_braket_symmetry -> assert_strict_braket_symmetry by @evaleev in #499
Tests
Full Changelog: v2.1.0...v2.2.0
2.1.0
The second release of SeQuant2 is its first "feature-complete" release. It includes the following new essential features:
feature-complete CC equation engine:
ground, excited, Fock-space, linear response
traditional and unitary
conventional and CSV (cluster-specific virtuals, i.e. OSV, PNO, etc.)
implicit-spin ("spin-orbital" or spinor), closed-shell (semibiorthogonal), open-shell
feature-complete tensor network canonicalizer (#349)
interpretation ("eval") of conventional, CSV, and noncovariant expressions
code generation ("export") for several backends, including Python (NumPy/Torch) and Julia (#220)
user-defined index spaces (#187)
user-defined custom operators (#456)
revamped I/O:
new TeX-like text format for encoding expressions
unified serialization/deseralization of expressions (#467)
modular organization (#477)
What's Changed
Documentation
Other Changes
- remove SeQuant's FindTBB (very very legacy at this point) and adapt u… by @bimalgaudel in #74
- merge conner_tensorwick by @bimalgaudel in #75
- [cmake] user can define the desired C++ standard … by @evaleev in #80
- Python bindings by @evaleev in #81
- Evaleev/tests/tensor network by @evaleev in #82
- Evaleev/feature/misc by @evaleev in #83
- Evaleev/refactor/cceqs by @evaleev in #84
- move Index::ascii_label: index.hpp -> index.cpp by @evaleev in #85
- [cmake] use CMAKE_{C,CXX}COMPILER_LAUNCHER instead of RULE_LAUNCH{COMPILE,LINK} by @evaleev in #86
- TA interpreter uses lazy cleanup instead of fence by @evaleev in #87
- Implements tot evaluation and evaluation order improvements by @bimalgaudel in #76
- Refactor evaluation code. by @bimalgaudel in #88
- Refactor mbpt context by @bimalgaudel in #89
- introduced proper ExprPtr by @evaleev in #91
- Constant implementation uses boost::rational by @evaleev in #93
- [test]: Update Catch to v2.13.9 by @Krzmbrzl in #95
mbpt::Operatortrack #s of Ops by @evaleev in #98- CC lambda equations by @evaleev in #90
- Evaleev/fix/csv by @evaleev in #104
- {Sum,Product}::{append,prepend} need to clone the arguments by @evaleev in #103
- Remove clone_packed. by @bimalgaudel in #105
- Use multiprecision for
Constantby @ajay-mk in #106 - use multiprecision for
sequant::factorialby @ajay-mk in #109 - Address issue #110. by @bimalgaudel in #111
- Single-term optimization support for fully contracted tensor networks. by @bimalgaudel in #116
- gaudel/generalized evaluation by @bimalgaudel in #117
- introduce support for correlated vacuum by @evaleev in #112
- [mbpt] F() takes an optional argument ... by @evaleev in #119
- robust(er) spintrace + spin-free WickTheorem by @evaleev in #126
- Generate a log of evaluation when requested. by @bimalgaudel in #125
- complete mbpt::{s,m}r::op::vac_av by @evaleev in #130
- Unicode characters (non-space) can appear as tensor label while parsing string into sequant expression. by @bimalgaudel in #129
- support evaluation of expressions with runtime variables appearing as leafs by @evaleev in #131
- Support asymptotic cost computation with user provided cost function. by @bimalgaudel in #133
- Reorder terms for better cache utilization by @bimalgaudel in #147
- Add a function to estimate the peak memory required for intermediate by @bimalgaudel in #148
- Function for similarity transformation and Refactoring by @ajay-mk in #139
- Update dependencies by @bimalgaudel in #150
- Rename Lambda() functions to Λ() by @ajay-mk in #151
- Coupled Cluster Response by @ajay-mk in #141
- Fix complex ctor ignoring imaginary part by @Krzmbrzl in #137
- Prevent optimize::reorder from swallowing terms by @Krzmbrzl in #154
- Replace expression parser by @Krzmbrzl in #146
- Support energy expressions to be spintraced by @Krzmbrzl in #136
- Conner/feature/fast e3 decomp by @cmasteran1 in #144
- add complete_inactive_unoccupied space. by @cmasteran1 in #140
- fix unity builds by @evaleev in #156
- Fix sparse structure loss during evaluation by @ajay-mk in #158
- Bugfix: MPQC Doesn't compile by @ajay-mk in #159
- Feature: Distinguish adjoints with labels by @ajay-mk in #157
- resolve compilation issues in ast.hpp due to cyclic dep by @evaleev in #163
- misc cleanup by @evaleev in #164
- MBPT Misc Changes by @ajay-mk in #166
- UCC by @evaleev in #168
- [cmake] repeg pybind11 and TA by @evaleev in #169
- find python before building pybind11 by @evaleev in #170
- modularized Boost v2 by @evaleev in #176
- bump Boost requirements to 1.81 by @evaleev in #182
- Fix hash_value template resolution by @Krzmbrzl in #180
- cleanup hashing-dependent unit test results since boost <1.81 is not supported any longer by @evaleev in #184
- support for spintracing expressions with protoindices by @evaleev in #186
- Improve missing space instance error by @Krzmbrzl in #188
- Revamp and fix enable-ifs in expr.cpp by @Krzmbrzl in #138
- Streamline includes by @Krzmbrzl in #142
- Implements evaluations involving tensor-of-tensor using TiledArray by @bimalgaudel in #173
- fix mr qn
combinelogic by @evaleev in #190 - [ci] Fix macOS CI by @ajay-mk in #193
- inlclude boost numeric cast header. by @bimalgaudel in #195
- Add libPerm FetchContent by @Krzmbrzl in #191
- find or fetch catch2, use slim headers by @evaleev in #197
- CI: Add formatting check by @Krzmbrzl in #194
- Fix catch2 fetching by @Krzmbrzl in #198
- Implement ITF translator by @Krzmbrzl in #160
- Conner local/runtime_IndexSpace by @cmasteran1 in #187
- Doxygen cleanup by @evaleev in #199
- build fixes for c++17 by @evaleev in #201
- Bugfix in perturbed T and Λ ops by @ajay-mk in #205
- README: adjust the description of SeQuant by @evaleev in #206
- Use
IndexSpaceRegistry::approximate_sizein optimization by @bimalgaudel in #203 - Empty string deparses to nullptr-like
ExprPtr. by @bimalgaudel in #208 - Fix clang-format by @ajay-mk in #210
constexprreserved bitset and null bitset. by @bimalgaudel in #209- Factor out ...
2.0.0
First release of the major (2nd) revision of SeQuant, colloquially known as "SeQuant2". Unlike the first version of SeQuant ("SeQuant1") that was written in Mathematica, SeQuant2 has the following key features:
- SeQuant2 is a C++ library that can be integrated into other codes easily
- has much higher performance than SeQuant1 (CCSDTQ equations can be derived in a fraction of a second, all without using domain-specific diagrammatic optimizations) so it can be used for online (at runtime) Wick theorem evaluation and symbolic transformation of tensor algebra
- can interpret tensor algebra using our distributed-memory tensor framework TiledArray; support for additional tensor backends can be implemented by the user.
1.1.0
1.0.0
First public release of SeQuant (v1), a Mathematica package for symbolic tensor operator algebra in quantum physics/chemistry.