LayerwiseEvolver
class LayerwiseEvolver(evolution_state, layers, *args, **kwargs)
ベース: TEBDEvolver
の特別なケースである。 TEBDEvolver レイヤーワイズ進化モデルに基づく
にも説明されているように、この実装は tenpy_layersで説明されているように、この実装では、オリジナルの TEBDEngine を抽出し、エンドユーザーの責任とする。 これは、インスタンスに提供された単一のハミルトニアンを TEBDEvolver インスタンスに提供された単一のハミルトニアンを LayerModel インスタンスに置き換える。 これらのインスタンスひとつひとつが、相互作用のひとつのレイヤーをエンコードしている。 これらは、基礎となるテンソルネットワークの偶数結合と奇数結合を交互に更新することを強制しなければならない。
この複雑なインターフェイスの動機は、より多くの柔軟性を提供し、ユーザーが TeNPy によって直接実装されたものに制限されるのではなく、カスタムトロッター製品の数式を定義できるようにするためです。
インスタンスを初期化する。 LayerwiseEvolver インスタンスを作成します。
パラメーター
- evolution_state (tenpy_tebd.MPOState) – への転送
TEBDEvolver. 詳しくはドキュメントをご覧ください。 - layers (list[LayerModel]) – 相互作用の単一層を記述するモデルのリスト。 上記の説明と、以下の説明を参照のこと。
tenpy_layers. - args - それ以上の位置引数は
TEBDEvolverに転送される。 - kwargs - それ以上のキーワード引数は、コンストラクタに転送されます。
TEBDEvolverに転送される。
属性
layers
時間進化を実装するために使用される相互作用の層。
dt
この時間進化インスタンスで使用する時間ステップ。
方法
calc_U
calc_U(order, delta_t, type_evo='real', E_offset=None)
ローカルボンドの更新を計算する。
これは calc_U() レイヤーワイズ実装で動作するようにする。
パラメーター
- order (int) – これは無視されている。
- delta_t (float) – 使用するタイムステップ。
- type_evo (str) – 時間進化のタイプ。 イマジナリータイムエボリューションは現時点ではサポートされていない。
- E_offset (list[float] | None) – 一定のエネルギーオフセットが適用される。
戻りの型
なし
evolve
evolve(N_steps, dt)
TEBDの単一時間ステップを実行する。
パラメーター
戻り値
切り捨てエラー。
レイズ
RuntimeError - N_steps が 1 と等しくない場合。
戻りの型
suzuki_trotter_decomposition
static suzuki_trotter_decomposition(order, N_steps)
空のリストを返す。
このメソッドはこのサブクラスでは未定義だが、内部的なアルゴリズムの流れのため、呼び出してもエラーにはならない。 代わりに、このクラスのトロッター分解は、直接 layers.
パラメーター
戻り値
空のリスト。
戻りの型