MPO州
class MPOState(*args, **kwargs)
ベース: MatrixProductOperator, State
ビダルゲージを施行するMPO。
quimbのこのような特殊性は quimb.tensor.MatrixProductOperator は存在する限りヴィダルゲージを強制する。 これにより DynamicMPF アルゴリズムの安定した動作を保証する。 TEBDEvolver.
インスタンスを初期化する。 MPOState インスタンスを作成します。
すべての引数(位置引数、キーワード引数)は、単純に quimb.tensor.MatrixProductOperator に転送される。 さらに vidal_singular_values 属性は、このMPOのサイト数に等しい長さの空リストのリストに初期化される。
パラメーター
- args - すべての位置引数が
quimb.tensor.MatrixProductStateに転送される。 - kwargs - すべてのキーワード引数は、コンストラクタに転送されます。
quimb.tensor.MatrixProductStateコンストラクタに転送されます。
属性
vidal_singular_values
タイプ: list[list[float]]
特異値の入れ子リスト。 外側のリストは、このMPO自身と同じ長さである(quimb.tensor.TensorNetwork1D.L).各項目は、そのサイトのヴィダルゲージを決定するためのすべての特異値の別のリストです。
方法
gate_split
gate_split(gate, where, inplace=False, conj=False, **split_opts)
2サイトゲートを適用し、MPOに戻す。
このメソッドの基本原理は、次のメソッドと同じである。 quimb.tensor.MatrixProductState.gate_split(). しかし、ヴィダルゲージが保存されるように実装されている。
パラメーター
-
gate (ndarray) – MPOに適用されるゲート。 その形状は、
dの物理的寸法に対して(d**2, d**2)であるか、またはその形状を変更したものでなければならない。 -
inplace (bool) – ゲートの適用をインプレースで行うか、ゲートを適用した新しい
MPOStateを返すか。 -
conj (bool) –
ゲートを下側(
conj=False、デフォルト、lower_ind())または上位(conj=True、upper_ind())に適用する。注のLHSとRHSを微分する方法である。
DynamicMPFを微分する方法である。Evolver.conjugateプロパティをこの引数に渡すことである。 -
split_opts - 関数に転送される追加のキーワード引数。
quimb.tensor.tensor_split()関数に転送される追加のキーワード引数。 これらは、テンソルがMPOに収縮される前に、テンソルの切り捨てに影響を与えるために使うことができる。
戻り値
その MPOState を gate 、収縮させた。
戻りの型
gate_split_
gate_split_(gate, where, *, inplace=True, conj=False, **split_opts)
パラメーター
戻りの型
overlap
overlap(initial_state)
この状態と与えられた初期状態との重なりを計算する。
この実装では quimb.tensor.MatrixProductStateinitial_state のインスタンスのみをサポートします。
パラメーター
initial_state (Any) – オーバーラップを計算するための初期状態。
レイズ
TypeError - 提供された初期状態が互換性のない型を持っている場合。
戻り値
この状態と提供された状態の重なり。
戻りの型