Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
2cf24e4
docs(wave1): lib/public.md
lkdvos Jun 30, 2026
e5281d2
docs(wave1): lib/states.md
lkdvos Jun 30, 2026
2d56fc4
docs(wave1): lib/operators.md
lkdvos Jun 30, 2026
b191b84
docs(wave1): lib/groundstate.md
lkdvos Jun 30, 2026
aa7b191
docs(wave1): howto/states.md
lkdvos Jun 30, 2026
e7c2f6d
docs(wave1): howto/bond_dimension.md
lkdvos Jun 30, 2026
7c651aa
docs(wave1): howto/observables.md
lkdvos Jun 30, 2026
07216b4
docs(wave1): format markdown (one sentence per line + Runic)
lkdvos Jun 30, 2026
4e631dc
add howto pages
lkdvos Jul 2, 2026
12e8f25
add quasiparticle docstrings
lkdvos Jul 2, 2026
fbb6e4f
docs(references): add recent publications using MPSKit
lkdvos Jul 3, 2026
ee00ff2
docs(wave1): lib reference pages (observables, bond_dimension, time_e…
lkdvos Jul 3, 2026
1d941c8
docs(wave1): how-to guides for building Hamiltonians and entanglement
lkdvos Jul 3, 2026
e7ce07a
docs(wave1): register new reference and how-to pages in make.jl
lkdvos Jul 3, 2026
bbf43c1
docs: address PR #438 review comments on bond-expansion docstrings
lkdvos Jul 3, 2026
d6b87f4
docs(docstrings): standardize docstrings package-wide
lkdvos Jul 3, 2026
d31f333
use TensorKitTensors
lkdvos Jul 4, 2026
9876933
small fix windowhamiltonian
lkdvos Jul 4, 2026
3d261f2
fix interpolation bug
lkdvos Jul 4, 2026
633fc17
docs: resolve REVIEW flags in docstrings and reference pages
lkdvos Jul 4, 2026
ca77904
docs: resolve physics/interpretation REVIEW flags
lkdvos Jul 4, 2026
82672a2
docs(w0): repo metadata — root changelog, contributing guide, templat…
lkdvos Jul 4, 2026
b08368e
docs(w1): curate examples gallery index
lkdvos Jul 4, 2026
7809306
docs(w0): remove stale drafting-notes blocks from how-to pages
lkdvos Jul 4, 2026
560926f
docs(w1): tutorials/installation.md
lkdvos Jul 4, 2026
a81f1eb
docs(w0): complete install instructions and add packages-used preambles
lkdvos Jul 4, 2026
1eb5c27
docs(w0): mechanical defect fixes across manual pages
lkdvos Jul 4, 2026
094600c
docs(w1): tutorials/first_groundstate.md — the flagship tutorial
lkdvos Jul 4, 2026
0c41bf3
docs(w1): landing page rewrite + tutorials/thermodynamic_limit.md
lkdvos Jul 4, 2026
5a12c53
docs(w0): remove invented truncbelow from truncation table, fix trunc…
lkdvos Jul 4, 2026
1caa459
docs(w1): beginner gallery example — TFIM complete ground-state study
lkdvos Jul 4, 2026
c3815c5
docs: refresh stale rendered output of haldane-spt and bose-hubbard e…
lkdvos Jul 4, 2026
47ee88a
fix: correlator with i >= j now throws ArgumentError; document expect…
lkdvos Jul 5, 2026
b462817
docs(w1): resolve maintainer-review flags in tutorials and TFIM example
lkdvos Jul 5, 2026
5ad6415
docs(examples): silence inline solver logs, fill Hubbard citation, re…
lkdvos Jul 5, 2026
e6bedab
docs: point community links at GitHub Discussions
lkdvos Jul 5, 2026
6f89191
docs(examples): re-render de-spammed example pages; make RNG seeds ac…
lkdvos Jul 5, 2026
ca76bf4
small improvements
lkdvos Jul 5, 2026
b2a705a
docs: fix typos in crossover prose (analasys -> analysis, list grammar)
lkdvos Jul 5, 2026
aec722f
docs(examples): re-render tfim + hubbard pages after prose edits
lkdvos Jul 5, 2026
8694596
docs: list example pages in the sidebar
lkdvos Jul 5, 2026
b946b54
docs(howto): group FiniteMPS construction recipes under one section
lkdvos Jul 5, 2026
1af5732
docs(howto): add ground-state algorithms recipe page
lkdvos Jul 5, 2026
ef7b88b
docs(howto): add time evolution recipe page
lkdvos Jul 5, 2026
2550ddc
docs(howto): add excited-states recipe page
lkdvos Jul 5, 2026
cf43650
docs(howto): add browsable recipe index as How-to landing page
lkdvos Jul 5, 2026
cfa83e6
docs(concepts): draft algorithm landscape decision guide
lkdvos Jul 5, 2026
d09601b
docs(tutorials): add quantum quench time-evolution tutorial
lkdvos Jul 5, 2026
12733a3
docs(tutorials): add quasiparticle excitations tutorial
lkdvos Jul 5, 2026
6c06cba
docs(tutorials): add using-symmetries tutorial; wire tutorial stubs
lkdvos Jul 5, 2026
de04a1b
docs(howto): sync recipe index with regrouped states sections
lkdvos Jul 6, 2026
c8cfb73
docs(home): revamp landing page for at-a-glance selling points
lkdvos Jul 7, 2026
fdb3464
docs(home): add feature-card icons and an MPS diagram
lkdvos Jul 8, 2026
b0b6447
docs(lib): document find_groundstate + add jldoctests to first-touch …
lkdvos Jul 8, 2026
6880169
docs(concepts,howto): split man/parallelism into concept + how-to
lkdvos Jul 8, 2026
209b9c4
docs(concepts): add environments concept page, retire man/environments
lkdvos Jul 8, 2026
3f2b37d
docs(concepts): add matrix product states concept page
lkdvos Jul 8, 2026
3c93ea6
docs(concepts): add operators and Hamiltonians concept page
lkdvos Jul 8, 2026
5a9cff4
docs(concepts): add "TensorKit for MPS users" vector spaces page
lkdvos Jul 8, 2026
d8f5a38
docs: retire the man/ section
lkdvos Jul 8, 2026
0bbf414
docs(home): fix mps.svg image path so VitePress bundles it
lkdvos Jul 8, 2026
19e9ad5
docs: resolve verified REVIEW flags (code/image/numerics-backed)
lkdvos Jul 9, 2026
5dd2b88
docs: clear parallelism/threading REVIEW flags; fix sentence merges
lkdvos Jul 9, 2026
f3fc986
docs: resolve ground-state-algorithm + verified excitation REVIEW flags
lkdvos Jul 9, 2026
c04d474
docs: resolve time-evolution, excitation, boundary REVIEW flags
lkdvos Jul 9, 2026
fbf5b96
docs: clear duplicate QP flag; restore blank lines before headings
lkdvos Jul 9, 2026
03ab94a
docs: resolve remaining physics REVIEW flags (symmetry, quench, struc…
lkdvos Jul 9, 2026
e758119
docs: fix landing-page feature icons via public/ dir
lkdvos Jul 9, 2026
c7abd12
docs: add symmetries concept page; reorganize examples gallery topic-…
lkdvos Jul 10, 2026
0dc5ac0
docs: add remaining plan pages (concepts, how-to, lib reference, meta)
lkdvos Jul 10, 2026
388208d
docs: resolve maintainer REVIEW flags
lkdvos Jul 11, 2026
319a01f
docs: adapt transfer_spectrum/correlation_length usage to #452 API
lkdvos Jul 11, 2026
1a006cd
docs: add restructure/improvement plans and round-1 review summary
lkdvos Jul 13, 2026
8af06d4
docs: add competitor-review inspiration notes
lkdvos Jul 13, 2026
3ad7f2e
docs(examples): silence inline solver logs in rendered pages
lkdvos Jul 13, 2026
62503ab
docs: flesh out lib/public.md, add README positioning, clean stale cr…
lkdvos Jul 14, 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
Loading