@@ -125,53 +125,59 @@ const MultilineTransferMatrix = Union{MultilineTransferPEPS,MultilineTransferPEP
125125virtualspace (O:: InfiniteTransferMatrix , i, dir) = virtualspace (O[i], dir)
126126
127127"""
128- initializeMPS(
128+ initialize_mps(
129+ f=randn,
130+ T=scalartype(O),
129131 O::Union{InfiniteTransferPEPS,InfiniteTransferPEPO},
130132 virtualspaces::AbstractArray{<:ElementarySpace,1}
131133 )
132- initializeMPS(
134+ initialize_mps(
135+ f=randn,
136+ T=scalartype(O),
133137 O::Union{MultilineTransferPEPS,MultilineTransferPEPO},
134138 virtualspaces::AbstractArray{<:ElementarySpace,2}
135139 )
136140
137141Inialize a boundary MPS for the transfer operator `O` by specifying an array of virtual
138142spaces consistent with the unit cell.
139143"""
140- function initializeMPS (
141- O:: InfiniteTransferMatrix , virtualspaces:: AbstractArray{S,1}
144+ function initialize_mps (O:: Union{InfiniteTransferMatrix,MultilineTransferMatrix} , arg) # initialize(f=randn, T=scalartype(O), O, ...)
145+ return initialize_mps (randn, scalartype (O), O, arg)
146+ end
147+ function initialize_mps (
148+ f, T, O:: InfiniteTransferMatrix , virtualspaces:: AbstractArray{S,1}
142149) where {S}
143150 return InfiniteMPS ([
144- randn (
145- scalartype (O) ,
151+ f (
152+ T ,
146153 virtualspaces[_prev (i, end )] * _elementwise_dual (north_virtualspace (O, i)),
147154 virtualspaces[mod1 (i, end )],
148155 ) for i in 1 : length (O)
149156 ])
150157end
151- function initializeMPS ( O:: InfiniteTransferMatrix , χ:: Int )
158+ function initialize_mps (f, T, O:: InfiniteTransferMatrix , χ:: Int )
152159 return InfiniteMPS ([
153- randn (calartype (O), ℂ^ χ * _elementwise_dual (north_virtualspace (O, i)), ℂ^ χ) for
154- i in 1 : length (O)
160+ f (T, ℂ^ χ * _elementwise_dual (north_virtualspace (O, i)), ℂ^ χ) for i in 1 : length (O)
155161 ])
156162end
157- function initializeMPS (
158- O:: MultilineTransferMatrix , virtualspaces:: AbstractArray{S,2}
163+ function initialize_mps (
164+ f, T, O:: MultilineTransferMatrix , virtualspaces:: AbstractArray{S,2}
159165) where {S}
160166 mpss = map (1 : size (O, 1 )) do r
161- return initializeMPS ( O[r], virtualspaces[r, :])
167+ return initialize_mps (f, T, O[r], virtualspaces[r, :])
162168 end
163169 return MPSKit. Multiline (mpss)
164170end
165- function initializeMPS (
166- O:: MultilineTransferMatrix , virtualspaces:: AbstractArray{S,1}
171+ function initialize_mps (
172+ f, T, O:: MultilineTransferMatrix , virtualspaces:: AbstractArray{S,1}
167173) where {S}
168- return initializeMPS ( O, repeat (virtualspaces, length (O), 1 ))
174+ return initialize_mps (f, T, O, repeat (virtualspaces, length (O), 1 ))
169175end
170- function initializeMPS ( O:: MultilineTransferMatrix , V:: ElementarySpace )
171- return initializeMPS ( O, repeat ([V], length (O), length (O[1 ])))
176+ function initialize_mps (f, T, O:: MultilineTransferMatrix , V:: ElementarySpace )
177+ return initialize_mps (f, T, O, repeat ([V], length (O), length (O[1 ])))
172178end
173- function initializeMPS ( O:: MultilineTransferMatrix , χ:: Int )
174- return initializeMPS ( O, repeat ([ℂ^ χ], length (O), length (O[1 ])))
179+ function initialize_mps (f, T, O:: MultilineTransferMatrix , χ:: Int )
180+ return initialize_mps (f, T, O, repeat ([ℂ^ χ], length (O), length (O[1 ])))
175181end
176182
177183@doc """
0 commit comments