Changelog¶
0.1.3 - 2026-05-13¶
MPS Init and DMRG Checkpointing
Introduces init_mps, a universal MPS initializer that replaces the per-example
_random_mps helpers with a single particle-type–agnostic function. Adds atomic
per-sweep checkpointing to DMRG via dmrg.Options.checkpoint_dir, and exposes
Network.bond_states for counting physical states at each bond in non-Abelian
simulations. No breaking changes.
Universal MPS Initializer¶
- New
alice.network.autompsmodule withinit_mps: constructs an initial MPS for DMRG from any(Spc, Op)pair returned byload_space. Works for bosonic, fermionic, and conductor sites without aparticle_type=argument. bond_dim=1: deterministic product state with exact charge targeting, one sector per bond; best paired with CBE (scheme='1sp') or 2-site (scheme='2s') DMRG.bond_dim>1: random MPS with group-derived bond sectors; reachable charges are selected by BFS from the center-bond charge to depth 2.- Auto-balanced
config=Noneheuristic covers all standard even-L half-filled cases: alternating high/low for 2-sector spaces, single neutral sector for 3-sector spaces, alternating neutral-pair for 4-sector spaces, SU(2) dimer path for pure-SU(2) spaces. - Exported from
alicetop-level namespace and fromalice.network. - DMRG example scripts (
dmrg_heisenberg,dmrg_freefermion,dmrg_conductor) updated to accept aninitparameter ('iter_diag'or'random') usinginit_mps; per-example_random_mpshelpers removed.
DMRG Checkpointing¶
- New
checkpoint_diroption indmrg.Options: after every completed sweep the current state is serialized todmrg.ckptvia an atomic write (write todmrg_lock.ckpt, then rename). On POSIX systems the rename is atomic, so a crash during serialization cannot corrupt the previous checkpoint. - Checkpoint file is in PyTorch format, loadable via
dmrg.Summary.load. - Defaults to the current working directory at
run()call time (matching.logging).
Network.bond_states¶
- New
bond_statesproperty onNetwork: returns the number of physical states per internal bond (lengthL - 1). Equal tobond_dimsfor Abelian groups; larger for SU(2) due to multiplet degeneracy (2j+1 states per multiplet of spin j).
Documentation¶
- New API reference page for
init_mpswith parameter table, charge-convention notes, and runnable examples;Networkreference updated withbond_states. - Quick-start guide updated to use
init_mpsand theSummarycheckpoint interface.
Statistics¶
- ~700 tests across 22 test modules (up from ~650 / 21 modules in v0.1.2).
- 16 commits since v0.1.2.
- 17 files changed, 1,319 insertions, 187 deletions.
- 21 source modules in three subpackages:
alice.network,alice.physics,alice.algorithm.dmrg.
Compatibility¶
- Breaking Changes: None — fully backward compatible with v0.1.2.
- Requirements: Python ≥ 3.11, PyTorch ≥ 2.5, Nicole ≥ 0.3.6.
0.1.2 - 2026-05-11¶
Geometry Expansion and Refactor
Introduces Kagome lattice support, a full refactor of the geometry subsystem around a
Geometry dataclass, a unified traversal-order naming scheme, and ASCII text diagrams
for MPS and MPO chains. Also adds Sp4/Sm4 operator templates to build_bosonic and
build_conductor. Several breaking changes to the geometry and build_interaction APIs;
the DMRG, Hamiltonian, and algorithm APIs are unchanged.
Kagome Lattice¶
- New
alice.physics.kagomemodule withintrcmap_kagome: nearest-neighbor bond generation for Kagome lattices, covering N2U (upward-triangle: A–B, A–C, B–C within each unit cell) and N2D (downward-triangle: bonds between adjacent unit cells), with OBC/PBC boundary conditions along both axes. - Traversal orders
'sequential'(column-major, default) and'serpentine'(column-major with alternating row direction) for Kagome lattices. intrcmap_kagomeis exported fromalice.physicsalongsideintrcmap_1dchainandintrcmap_square.
Geometry Module Refactor¶
- New
Geometrydataclass returned bybuild_geometry; carriescfg,ord_map, andlattas a single typed object with derived propertieslattice,traverse,lx,ly,L, and helpersto_1d/to_2d. - All
intrcmap_*functions now take aGeometryas input (previously a plain dict) and continue to returnList[Interaction2Site]. build_interactionnow returns(interactions, spc, geo)— the third element changed from anint(site count) to theGeometryinstance.- New
build_intrcmap(geo)dispatcher: reconstructs the bond list from anyGeometryinstance, decoupling lattice construction from bond enumeration. - New
build_traversalhelpers in all three lattice modules (chain.py,square.py,kagome.py); 1D chain and square lattice geometries separated into their own modules. ord_mapkeys changed from integer flat indices to coordinate tuples:(row, col)for chain and square,(row, col, u)for Kagome (whereuis the sublattice index 0=A, 1=B, 2=C), making coordinate lookups explicit for all lattice types.
Traversal Order Naming¶
'snake'is renamed to'serpentine'(same behavior: columns alternate direction, even columns top→bottom, odd columns bottom → top).'sequential'is a new order (all columns top → bottom, no reversal) and is now the default for square and Kagome lattices.- All documentation, example configs, and tests updated to the new naming.
MPS/MPO Text Display¶
- New
alice.network.displaymodule withnetwork_summary: Unicode ASCII-art chain diagrams showing tensor nodes, bond dimensions, center site, and summary info. MPS.__repr__andMPO.__repr__delegate tonetwork_summary, giving readable representations in REPLs and notebooks.
New Operator Templates¶
build_bosonicandbuild_conductorgainSp4/Sp4dag/Sm4/Sm4dagtemplates (U(1)-only), enabling AutoMPO construction for models where raising and lowering channels must be handled separately.
Documentation¶
- New API reference pages for
intrcmap_kagomeandbuild_intrcmap; geometry and traversal pages updated to reflect the refactored two-stage construction pipeline. - All documentation page headings standardized to title case.
Statistics¶
- ~650 tests across 21 test modules (up from 538 / 19 modules in v0.1.0).
- 119 commits since v0.1.1.
- 65 files changed, 3,380 insertions, 824 deletions.
- 20 source modules in three subpackages:
alice.network,alice.physics,alice.algorithm.dmrg.
Compatibility¶
- Breaking Changes:
build_geometryreturn type changed fromList[Interaction2Site]toGeometry.- All
intrcmap_*functions now take aGeometryas input instead of a plain dict; return typeList[Interaction2Site]is unchanged. build_interactionthird return value changed fromint(site count) toGeometry.geometry_fncallable override signature changed from(geo: dict) -> List[Interaction2Site]to(geo_cfg: dict) -> Geometry; a newintrcmap_fnoverride was added with signature(geo: Geometry) -> List[Interaction2Site].- The public function
generate_snake_orderis removed; its traversal logic is now internal. - The TOML key
traverse: 'snake'is deprecated;'snake'was renamed to'serpentine', and'sequential'is the new default order.
- Requirements: Python ≥ 3.11, PyTorch ≥ 2.5, Nicole ≥ 0.3.6.
0.1.1 - 2026-05-06¶
Documentation Website
Introduces the complete Alice documentation site: Material-themed MkDocs with a full API
reference, worked DMRG examples, and getting-started guides. Also
renames the PyPI distribution to alice-net. No changes to the Alice project; fully
backward compatible with v0.1.0.
Documentation Infrastructure¶
- Custom
alicecolor scheme, three-tab navigation, dark/light/system theme switching, search with suggestions and shareable links - Content features: code copy, inline annotations, tabbed content, in-page edit and view actions
- Custom home page template (
docs/overrides/home.html) with hero image and feature cards; custom stylesheet (docs/stylesheets/extra.css) - Build hook (
docs/hooks.py) for table-cell bullet-list post-processing - Plugins: mkdocstrings (NumPy-style API docs), markdown-exec (configured for future live execution), git-revision-date-localized, git-committers
- Extensions: MathJax via
arithmatex, Mermaid viasuperfences, tabbed content, FontAwesome/Material emoji
Getting Started (7 pages)¶
- What is Alice: philosophy, relationship with Nicole, supported symmetry groups and algorithms
- Installation:
pip install alice-net/uv add alice-net, development setup, optional dependency groups - Core Concepts: MPS/MPO block-sparse structure, symmetry sectors, DMRG sweep logic
- Quick Start: end-to-end Heisenberg DMRG example from site definition through energy output
- Contributing: branch model, coding conventions, test requirements
- Git Control: tagging, branching, and release workflow for the Alice project
- Changelog: version history beginning with v0.1.0
API Reference (30 pages)¶
- Network —
Network,MPS,MPO: construction, canonicalization, norm, serialization, SVD compression, norm redistribution;observe: expectation-value sweep with SU(2) Bridge weight support - Interaction —
Interaction,Interaction1Site,Interaction2Sitedataclass references;build_interaction: TOML-configured builder with plugin section documentation - Geometry —
generate_snake_order,intrcmap_1dchain,intrcmap_square,build_geometry: function references with parameter tables and usage notes - Local Space —
build_bosonic,build_fermionic,build_conductor: site Hilbert space constructors with symmetry-mode tables - Hamiltonian —
build_hamiltonian: MPO assembler;build_heisenberg,build_free_fermion,build_hubbard: model-specific builders - DMRG —
dmrg.Options: parameter reference with TOML key mapping;dmrg.Summary: output fields and serialization;dmrg.run: sweep logic, update schemes (1s,2s,1sp), convergence criteria - Logging —
configure_logging: handler configuration, log levels, output file naming
Examples (8 pages)¶
- Heisenberg chain: ground-state energy of a spin-½ chain, U(1) and SU(2) symmetry comparison
- Free fermion: tight-binding chain benchmark against exact diagonalization
- Hubbard model: charge and spin sector targeting in a single-band system
- AutoMPO from TOML:
[[interaction]]tables,[plugin]sections for user-defined models, built-in presets - Custom geometry: implementing a user-defined lattice traversal and registering it with
build_geometry - Custom local space: defining a new site Hilbert space outside the built-in presets
- Custom model: wrapping a user-defined Hamiltonian function as an Alice-compatible builder
Packaging¶
- PyPI distribution renamed from
alicetoalice-net;pyproject.tomlupdated with wheel target and project URLs; README and logging banner updated - Install:
pip install alice-netoruv add alice-net; the import namespacealiceis unchanged
Statistics¶
- 45 documentation pages; all public symbols documented
- 39 commits since v0.1.0
- 112 files changed, 3,161 insertions, 63 deletions
Compatibility¶
- Breaking Changes: None — fully backward compatible with v0.1.0; import paths, function signatures, and TOML configuration formats are unchanged
- Requirements: Python ≥ 3.11, PyTorch ≥ 2.5, Nicole ≥ 0.3.6
0.1.0 - 2026-05-04¶
Initial stable release of Alice.
Tensor Network Infrastructure¶
MPS,MPO, andNetworkclasses: block-sparse matrix product states and operators inheriting Nicole's exact symmetry engine with full support for U(1), Z(2), SU(2), and product symmetry groups.Network.canonical(): left/right QR canonicalization with configurable bond truncation.Network.norm()andnormalize(): Frobenius norm via the center tensor or a full transfer-matrix sweep.Network.serialize()/Network.deserialize():torch.save-compatible serialization preserving all index metadata.MPO.compact()andMPO.redistribute_norm(): SVD compression and norm redistribution.observe(): expectation-value computation via MPS–MPO–MPS transfer-matrix sweep, with SU(2) Bridge weight support.
AutoMPO Construction¶
build_interaction(): TOML-configured interaction map builder with built-in Heisenberg, free-fermion, and Hubbard model presets and support for user-defined model functions via[plugin]sections.build_hamiltonian(): term-by-term MPO assembler using Nicole'soplus; compresses the result with two canonical sweeps; handles non-Abelian SU(2).Interaction,Interaction1Site,Interaction2Sitedataclasses.- Incremental
compact_everyparameter to limit bond dimension growth during large builds.
Lattice Geometries¶
intrcmap_1dchain(): nearest-neighbor 1D chain with optional PBC.intrcmap_square(): 2D square lattice with NN and NNN bonds, PBC support, and snake-order traversal.generate_snake_order(): boustrophedon traversal for rectangular lattices.build_geometry(): TOML dispatcher for lattice and traversal selection.
Physical Spaces¶
build_bosonic(): spin-ssite; U(1) and SU(2) symmetry.build_fermionic(): spinless-fermion site; U(1) and Z(2) symmetry.build_conductor(): spinful-fermion (Band) site; U(1)×U(1), Z(2)×U(1), U(1)×SU(2), Z(2)×SU(2) symmetry.
Physics Models¶
build_heisenberg(): Heisenberg spin model with NN couplingJand optional NNNJ'.build_free_fermion(): spinless tight-binding chain with hoppingt, optional NNNt', and chemical potentialµ.build_hubbard(): Hubbard model with hoppingt, on-siteU, optional NNNt', andµat half-filling.
DMRG Algorithm¶
dmrg.Optionsdataclass: all run parameters with TOML loading viaOptions.from_toml().dmrg.Summarydataclass: energy, optimized MPS, convergence info, and serialization.dmrg.run(): alternating sweep optimization with three update schemes (1s,2s,1sp).- Davidson eigensolver with thick restart operating directly in the symmetry-block-sparse space.
Environmentclass with optional disk-spilling (sliding window + async I/O).
Logging¶
configure_logging(): one-call setup of Alice's two-handler logging scheme (console + timestamped file). Emits startup banner, model specification summary, sweep-by-sweep diagnostics, and geometry ASCII diagrams.
Statistics¶
- 538 tests across 19 test modules.
- 196 commits across 10+ feature branches.
- 64 files, ~16,000 lines of code.
- 16 source modules in three subpackages:
alice.network,alice.physics,alice.algorithm.dmrg.