Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
d8cfd9c
docs(wave1): lib/public.md
lkdvos Jun 30, 2026
cf24e76
docs(wave1): lib/states.md
lkdvos Jun 30, 2026
4660697
docs(wave1): lib/operators.md
lkdvos Jun 30, 2026
a4789f3
docs(wave1): lib/groundstate.md
lkdvos Jun 30, 2026
58c88c7
docs(wave1): howto/states.md
lkdvos Jun 30, 2026
3180c80
docs(wave1): howto/bond_dimension.md
lkdvos Jun 30, 2026
6ffe53d
docs(wave1): howto/observables.md
lkdvos Jun 30, 2026
8d5684d
docs(wave1): format markdown (one sentence per line + Runic)
lkdvos Jun 30, 2026
8f0a4f2
add howto pages
lkdvos Jul 2, 2026
99375e8
add quasiparticle docstrings
lkdvos Jul 2, 2026
891d3ba
docs(references): add recent publications using MPSKit
lkdvos Jul 3, 2026
b4ab20b
docs(wave1): lib reference pages (observables, bond_dimension, time_e…
lkdvos Jul 3, 2026
0525e43
docs(wave1): how-to guides for building Hamiltonians and entanglement
lkdvos Jul 3, 2026
b52f10d
docs(wave1): register new reference and how-to pages in make.jl
lkdvos Jul 3, 2026
2b701d6
docs: address PR #438 review comments on bond-expansion docstrings
lkdvos Jul 3, 2026
7ec470b
docs(docstrings): standardize docstrings package-wide
lkdvos Jul 3, 2026
8e31cc9
use TensorKitTensors
lkdvos Jul 4, 2026
19f8634
small fix windowhamiltonian
lkdvos Jul 4, 2026
9c78eed
fix interpolation bug
lkdvos Jul 4, 2026
bc3a6a2
docs: resolve REVIEW flags in docstrings and reference pages
lkdvos Jul 4, 2026
f6bc305
docs: resolve physics/interpretation REVIEW flags
lkdvos Jul 4, 2026
9cfe0d5
docs(w0): repo metadata — root changelog, contributing guide, templat…
lkdvos Jul 4, 2026
31cc4d4
docs(w1): curate examples gallery index
lkdvos Jul 4, 2026
62e8951
docs(w0): remove stale drafting-notes blocks from how-to pages
lkdvos Jul 4, 2026
59d0f0c
docs(w1): tutorials/installation.md
lkdvos Jul 4, 2026
60a46ae
docs(w0): complete install instructions and add packages-used preambles
lkdvos Jul 4, 2026
db1450f
docs(w0): mechanical defect fixes across manual pages
lkdvos Jul 4, 2026
6784538
docs(w1): tutorials/first_groundstate.md — the flagship tutorial
lkdvos Jul 4, 2026
c331a4e
docs(w1): landing page rewrite + tutorials/thermodynamic_limit.md
lkdvos Jul 4, 2026
834c1ab
docs(w0): remove invented truncbelow from truncation table, fix trunc…
lkdvos Jul 4, 2026
aa59d53
docs(w1): beginner gallery example — TFIM complete ground-state study
lkdvos Jul 4, 2026
3b157cf
docs: refresh stale rendered output of haldane-spt and bose-hubbard e…
lkdvos Jul 4, 2026
65dfbbd
fix: correlator with i >= j now throws ArgumentError; document expect…
lkdvos Jul 5, 2026
a944dfe
docs(w1): resolve maintainer-review flags in tutorials and TFIM example
lkdvos Jul 5, 2026
e0afd2b
docs(examples): silence inline solver logs, fill Hubbard citation, re…
lkdvos Jul 5, 2026
99aa30e
docs: point community links at GitHub Discussions
lkdvos Jul 5, 2026
de93ff0
docs(examples): re-render de-spammed example pages; make RNG seeds ac…
lkdvos Jul 5, 2026
5998bd6
small improvements
lkdvos Jul 5, 2026
178055a
docs: fix typos in crossover prose (analasys -> analysis, list grammar)
lkdvos Jul 5, 2026
8808d9f
docs(examples): re-render tfim + hubbard pages after prose edits
lkdvos Jul 5, 2026
7c81cf4
docs: list example pages in the sidebar
lkdvos Jul 5, 2026
ab7ea75
docs(howto): group FiniteMPS construction recipes under one section
lkdvos Jul 5, 2026
155e333
docs(howto): add ground-state algorithms recipe page
lkdvos Jul 5, 2026
6a6367f
docs(howto): add time evolution recipe page
lkdvos Jul 5, 2026
ce13802
docs(howto): add excited-states recipe page
lkdvos Jul 5, 2026
caa7c83
docs(howto): add browsable recipe index as How-to landing page
lkdvos Jul 5, 2026
3bed3db
docs(concepts): draft algorithm landscape decision guide
lkdvos Jul 5, 2026
a28e990
docs(tutorials): add quantum quench time-evolution tutorial
lkdvos Jul 5, 2026
9252db7
docs(tutorials): add quasiparticle excitations tutorial
lkdvos Jul 5, 2026
6760598
docs(tutorials): add using-symmetries tutorial; wire tutorial stubs
lkdvos Jul 5, 2026
f306a66
docs(howto): sync recipe index with regrouped states sections
lkdvos Jul 6, 2026
c23d891
docs(home): revamp landing page for at-a-glance selling points
lkdvos Jul 7, 2026
c5c76ec
docs(home): add feature-card icons and an MPS diagram
lkdvos Jul 8, 2026
5a73ff1
docs(lib): document find_groundstate + add jldoctests to first-touch …
lkdvos Jul 8, 2026
a307bd0
docs(concepts,howto): split man/parallelism into concept + how-to
lkdvos Jul 8, 2026
2937e75
docs(concepts): add environments concept page, retire man/environments
lkdvos Jul 8, 2026
afba751
docs(concepts): add matrix product states concept page
lkdvos Jul 8, 2026
2e058d8
docs(concepts): add operators and Hamiltonians concept page
lkdvos Jul 8, 2026
621a869
docs(concepts): add "TensorKit for MPS users" vector spaces page
lkdvos Jul 8, 2026
d23a8e0
docs: retire the man/ section
lkdvos Jul 8, 2026
0c3a1f0
docs(home): fix mps.svg image path so VitePress bundles it
lkdvos Jul 8, 2026
81fad39
docs: resolve verified REVIEW flags (code/image/numerics-backed)
lkdvos Jul 9, 2026
32a37ad
docs: clear parallelism/threading REVIEW flags; fix sentence merges
lkdvos Jul 9, 2026
442fbe8
docs: resolve ground-state-algorithm + verified excitation REVIEW flags
lkdvos Jul 9, 2026
700f6f9
docs: resolve time-evolution, excitation, boundary REVIEW flags
lkdvos Jul 9, 2026
29f7a7a
docs: clear duplicate QP flag; restore blank lines before headings
lkdvos Jul 9, 2026
4ff7f7b
docs: resolve remaining physics REVIEW flags (symmetry, quench, struc…
lkdvos Jul 9, 2026
1867f0b
docs: fix landing-page feature icons via public/ dir
lkdvos Jul 9, 2026
a0e0fc5
docs: add symmetries concept page; reorganize examples gallery topic-…
lkdvos Jul 10, 2026
448f580
docs: add remaining plan pages (concepts, how-to, lib reference, meta)
lkdvos Jul 10, 2026
cf7a026
docs: resolve maintainer REVIEW flags
lkdvos Jul 11, 2026
bd955d1
docs: adapt transfer_spectrum/correlation_length usage to #452 API
lkdvos Jul 11, 2026
ba3b54a
docs: add restructure/improvement plans and round-1 review summary
lkdvos Jul 13, 2026
5b78fb4
docs: add competitor-review inspiration notes
lkdvos Jul 13, 2026
4e33551
docs(examples): silence inline solver logs in rendered pages
lkdvos Jul 13, 2026
08b4f75
docs: flesh out lib/public.md, add README positioning, clean stale cr…
lkdvos Jul 14, 2026
b2f192c
docs(changebonds): use ΣZZ in the OptimalExpand example
lkdvos Jul 27, 2026
934c7bd
docs(docstrings): apply the style guide to upstream-authored docstrings
lkdvos Jul 27, 2026
2e45538
docs(references): lowercase the Hubig2015 bibliography key
lkdvos Jul 27, 2026
5e5cf6a
docs: fix docstring heading rendering and library search (#477, #478)
lkdvos Jul 28, 2026
889bca6
docs: allow synthetic bold, and restore admonition styling
lkdvos Jul 30, 2026
d792dec
docs: correct the upstream admonition note, record existing DVP work
lkdvos Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: Bug report
about: Something isn't working as expected
title: ""
labels: bug
---

## Description

A clear and concise description of what went wrong, and what you expected to happen instead.

## Minimal working example (MWE)

Please include the smallest possible piece of code that reproduces the issue.
Trim away everything that is not needed to trigger the bug (unrelated setup, unused imports, etc).

```julia
using MPSKit, TensorKit

# ...
```

## Error / output

Paste the full error message and stacktrace (or the incorrect output), if any.

```
paste here
```

## Version info

Please include the versions of MPSKit and its main dependencies.
From the Julia REPL:

```julia-repl
julia> using Pkg
julia> Pkg.status(["MPSKit", "TensorKit"])
```

Also include the Julia version:

```julia-repl
julia> versioninfo()
```

## Additional context

Anything else that might help (OS, whether it also happens on the latest `main`, related issues, etc).
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Question
about: Ask a question about using MPSKit
title: ""
labels: question
---

## What are you trying to do?

Describe the physics or the workflow you are trying to set up.

## What have you tried?

If applicable, include the code you have so far, and what result you got (or expected but didn't get).

```julia
using MPSKit, TensorKit

# ...
```

## Version info (optional but helpful)

```julia-repl
julia> using Pkg
julia> Pkg.status(["MPSKit", "TensorKit"])
```
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## Description

Briefly describe what this PR changes and why.

## Checklist

- [ ] Tests pass locally (`julia --project=test test/runtests.jl`, or the relevant subset)
- [ ] Documentation updated, if this PR changes public API (docstrings, `docs/src/`)
- [ ] Changelog entry added under `[Unreleased]` in `CHANGELOG.md`
File renamed without changes.
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ authors:
orcid: "https://orcid.org/0000-0002-0858-291X"

title: "MPSKit"
version: 0.13.11
version: 0.13.13
doi: 10.5281/zenodo.10654900
date-released: 2026-05-04
date-released: 2026-06-09
url: "https://github.com/QuantumKitHub/MPSKit.jl"
90 changes: 90 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Contributing to MPSKit.jl

Thanks for taking the time to contribute!
This document is a short, practical guide to reporting issues, asking questions, and submitting changes.

## Asking questions and reporting bugs

Use [GitHub issues](https://github.com/QuantumKitHub/MPSKit.jl/issues) for both.
There are two templates to help you:

- **Bug report** — for something that doesn't work as expected.
- **Question** — for anything else, from "how do I model X" to "is Y possible".

A good bug report is one we can act on immediately, and it needs two things:

1. A minimal working example (MWE): the smallest snippet of code that reproduces the problem.
Strip away everything not needed to trigger the bug — unrelated setup, unused imports, alternative approaches you also tried.
2. Version information for MPSKit, TensorKit, and Julia, obtained with:

```julia-repl
julia> using Pkg
julia> Pkg.status(["MPSKit", "TensorKit"])
```

```julia-repl
julia> versioninfo()
```

Please also include the full error message and stacktrace, if there is one.

## Contributing code

### Development setup

1. Fork and clone the repository.
2. From the Julia REPL, develop the package against your local checkout:

```julia-repl
pkg> dev /path/to/your/clone/MPSKit.jl
```

or, from a fresh environment:

```julia-repl
julia> using Pkg; Pkg.develop(path = "/path/to/your/clone/MPSKit.jl")
```

### Running the tests

The repository root is a Julia workspace (`Project.toml` lists `test`, `docs`, and `examples` as workspace projects), and `test/Project.toml` already points `MPSKit` back at the repo checkout.
From the repository root, run the full suite with:

```
julia --project=test test/runtests.jl
```

The test suite is organized by topic under `test/` (`algorithms/`, `states/`, `operators/`, `misc/`, `gpu/`), with shared setup code in `test/setup/`.
GPU tests only run when a functional CUDA/cuTENSOR install is detected, so most contributors will only ever exercise the CPU tests.
A `--fast` flag is available for a quicker, reduced run while iterating.

### Building the documentation

The docs use Documenter.jl with the DocumenterVitepress backend, so a full render needs Node.js in addition to Julia.

For routine verification of code examples (fast, no Node required), run the doctests directly:

```
julia --project=docs -e 'using Documenter, MPSKit; doctest(MPSKit)'
```

For a full local site build (slower, needs `npm`):

```
julia --project=docs docs/make.jl
```

### Code formatting

This repository is formatted with [Runic](https://github.com/fredrikekre/Runic.jl).
Formatting is checked automatically on pull requests, and there is a [pre-commit](https://pre-commit.com/) hook (`.pre-commit-config.yaml`) that runs Runic locally if you use pre-commit.
Please format any Julia files you touch before opening a PR.

### Changelog

If your change is user-facing (new feature, behavior change, bug fix, deprecation, or removal), add an entry under the `[Unreleased]` section of `CHANGELOG.md`, in the category that matches your change.

### Opening a pull request

Small, focused pull requests are easiest to review.
Please describe what the change does and why, link any related issues, and make sure the checklist in the PR template is filled in before requesting review.
35 changes: 33 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,23 @@ out the [examples](https://QuantumKitHub.github.io/MPSKit.jl/dev/examples/) for
use-cases.

This package is under active development and new algorithms are added regularly.
Nevertheless, the documentation is quite terse, so feel free to open an issue if you have
any questions.
Questions and general discussion are welcome on [GitHub
Discussions](https://github.com/QuantumKitHub/MPSKit.jl/discussions); if you think you have
found a bug, please open an issue.

## How MPSKit compares

Finite and infinite systems are one interface, not two.
`FiniteMPS` and `InfiniteMPS` share the same algorithms, so a calculation moves from a
finite chain to the thermodynamic limit with a one-line change, as the two examples below
show.
Symmetries are first-class rather than an add-on: abelian, non-abelian, fermionic, and
anyonic symmetries are all available through the [TensorKit.jl](https://github.com/jutho/TensorKit.jl)
backend, including symmetry groups that most tensor-network codebases do not support at
all.
The whole toolbox — states, operators, and algorithms — is native Julia and composes
directly with the TensorKit ecosystem, so extending it does not mean dropping into a
different language.

## Installation

Expand Down Expand Up @@ -118,3 +133,19 @@ scatter(g_values, M, xlabel="g", ylabel="M", label="D=$D", title="Magnetization"
```

![Magnetization](docs/src/assets/README_ising_infinite.png)

## Citing

If you use MPSKit.jl in your research, please cite it.
See [`CITATION.cff`](CITATION.cff) for the up-to-date citation metadata, or use the BibTeX entry below.

```bibtex
@software{mpskitjl,
author = {Devos, Lukas and Van Damme, Maarten and Haegeman, Jutho},
title = {{MPSKit.jl}},
version = {v0.13.13},
doi = {10.5281/zenodo.10654900},
url = {https://github.com/QuantumKitHub/MPSKit.jl},
year = {2026}
}
```
3 changes: 2 additions & 1 deletion docs/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
build/
node_modules/
package-lock.json
Manifest.toml
Manifest.toml
src/changelog.md
Loading