You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Construct an MPS via a specification of physical and virtual spaces, or from a list of
37
-
tensors `As`. All cases reduce to the latter. In particular, a state with a non-trivial
38
-
total charge can be constructed by passing a non-trivially charged vector space as the
39
-
`left` or `right` virtual spaces.
40
-
41
-
### Arguments
42
-
- `As::Vector{<:GenericMPSTensor}`: vector of site tensors
43
-
44
-
- `f::Function=rand`: initializer function for tensor data
45
-
- `eltype::Type{<:Number}=ComplexF64`: scalar type of tensors
46
-
47
-
- `physicalspaces::Vector{<:Union{S, CompositeSpace{S}}`: list of physical spaces
48
-
- `N::Int`: number of sites
49
-
- `physicalspace::Union{S,CompositeSpace{S}}`: local physical space
50
-
51
-
- `virtualspaces::Vector{<:Union{S, CompositeSpace{S}}`: list of virtual spaces
52
-
- `maxvirtualspace::S`: maximum virtual space
53
-
54
-
### Keywords
55
-
- `normalize=true`: normalize the constructed state
56
-
- `overwrite=false`: overwrite the given input tensors
57
-
- `left=oneunit(S)`: left-most virtual space
58
-
- `right=oneunit(S)`: right-most virtual space
28
+
29
+
Recommended ways to construct a finite MPS are:
30
+
31
+
- Using an MPS manifold of spaces
32
+
33
+
```julia
34
+
rand([rng], [T], manifold::FiniteMPSManifold)
35
+
randn([rng], [T], manifold::FiniteMPSManifold)
36
+
zeros([T], manifold::FiniteMPSManifold)
37
+
ones([T], manifold::FiniteMPSManifold)
38
+
```
39
+
40
+
First build a [`FiniteMPSManifold`](@ref) that fixes the physical and (maximal) virtual spaces, then allocate an MPS on that manifold.
41
+
See [`FiniteMPSManifold`](@ref) for how to specify site-dependent virtual-space bounds and nontrivial edge charges via `left_virtualspace` and `right_virtualspace`.
0 commit comments