Internals
Non-public API
The symbols documented on this page are internal: they are unexported, not part of the public API, and may change or be removed in any release without notice or a deprecation cycle. They are collected here as a reference for contributors and advanced users reading the source, not as a stable interface to build on. For the supported surface see the Public API. Experimental features (for example the current GPU support, discussed in Parallelism and GPU support) are likewise unstable and subject to change.
Effective (derivative) operators
The local eigenvalue and time-evolution problems solved by DMRG, VUMPS, TDVP and friends are phrased in terms of effective "derivative" operators acting on a single gauge tensor. These are built internally from the Hamiltonian and the surrounding environments.
MPSKit.DerivativeOperator Type
DerivativeOperatorAbstract supertype for derivative operators acting on MPS. These operators are used to represent the effective local operators obtained from taking the partial derivative of an MPS-MPO-MPS sandwich.
sourceMPSKit.C_hamiltonian Function
C_hamiltonian(site, below, operator, above, envs)::DerivativeOperatorEffective zero-site local operator acting at site.
┌─ ─┐
│ │
┌┴┐ ┌┴┐
│ ├───┤ │
└┬┘ └┬┘
│ │
└─ ─┘See also C_projection.
MPSKit.AC_hamiltonian Function
AC_hamiltonian(site, below, operator, above, envs)::DerivativeOperatorEffective one-site local operator acting at site.
┌─── ───┐
│ │ │
┌┴┐ ┌─┴─┐ ┌┴┐
│ ├─┤ ├─┤ │
└┬┘ └─┬─┘ └┬┘
│ │ │
└─── ───┘See also AC_projection.
MPSKit.AC2_hamiltonian Function
AC2_hamiltonian(site, below, operator, above, envs)Effective two-site local operator acting at site.
┌── ──┐
│ │ │ │
┌┴┐┌─┴─┐┌─┴─┐┌┴┐
│ ├┤ ├┤ ├┤ │
└┬┘└─┬─┘└─┬─┘└┬┘
│ │ │ │
└── ──┘See also AC2_projection.
Transfer matrices
Low-level application of (regularized) transfer matrices to boundary vectors, used when building infinite-MPS environments.
MPSKit.transfer_left Function
transfer_left(v, A, Ā)apply a transfer matrix to the left.
┌─A─
-v │
└─Ā─MPSKit.transfer_right Function
transfer_right(v, A, Ā)apply a transfer matrix to the right.
─A─┐
│ v-
─Ā─┘Environment algorithm resolution
Helpers that pick and instantiate the iterative solver used to compute environments for a given bra/operator/ket combination.
MPSKit.environment_alg Function
environment_alg(below, operator, above; kwargs...)Determine an appropriate algorithm for computing the environments, based on the given kwargs....
MPSKit.resolve_environment_solver Function
resolve_environment_solver(alg, below, operator, above)Resolve an environment algorithm alg into a concrete iterative solver for the given problem. A KrylovKit algorithm is returned as-is; the DefaultAlgorithm/DynamicTol configuration wrappers are translated via environment_alg.
Defaults and scheduling
Global configuration lives in the MPSKit.Defaults submodule, including the multi-threading scheduler used across the package.
MPSKit.Defaults.set_scheduler! Function
set_scheduler!([scheduler]; kwargs...)Set the OhMyThreads multi-threading scheduler parameters.
The function either accepts a scheduler as an OhMyThreads.Scheduler or as a symbol where the corresponding parameters are specified as keyword arguments. For a detailed description of all schedulers and their keyword arguments consult the OhMyThreads documentation.