コンテンツにスキップ

Lattice Definitions

ALPS のすべての格子シミュレーションは、サイトの集合とその間のボンドから成るグラフの上で実行され、これは XML で指定されます。このセクションでは、そのグラフを段階的に組み立てていきます:明示的な頂点と辺を持つ任意のグラフから始め、規則的な(有限または無限の)格子を記述するための単位胞の仕組みへと進み、両者を組み合わせて ALPS が実際にシミュレーションするグラフを作り、その結果を再利用可能なライブラリにまとめ、最後に定義した内容が意図した通りになっているかを確認します。

はじめに

なぜ格子やグラフを入力ファイルで指定する必要があるのか、以下の5つの HOWTO の概要、ALPS に組み込まれている最も一般的な格子をまとめた参考図、そして ALPS 格子ライブラリファイル(lib/xml/lattices.xml)全体へのポインタを示します。

単純グラフ

規則性や格子構造を仮定せず、すべての <VERTEX><EDGE> を列挙することで任意のグラフを直接指定する方法を説明します。色付きグラフ(副格子やボンドの種類を区別するための頂点・辺の type 属性)や、頂点に空間座標 <COORDINATE> を付与する方法も扱います。

格子と単位胞

すべてのサイトを手作業で列挙する代わりに、並進によって繰り返される単位胞として、規則的な格子をコンパクトに記述する方法を説明します。無限格子(<LATTICE> とその基底ベクトルによる方法。基底ベクトルは数値でも、記号的・パラメータ化されたものでもかまいません)、指定した広がりを持つ有限格子(<FINITELATTICE><EXTENT> による方法。次元は固定値・パラメータ化・部分的に無限のいずれも可能です)、開放境界条件と周期境界条件を指定する <BOUNDARY>、そして既に定義済みの <LATTICE> を再定義せずに名前で参照する方法を扱います。

格子とグラフ

各単位胞に <UNITCELL> グラフ(隣接する単位胞へまたがるボンドを含む、その頂点と辺)を装飾し、それを <LATTICE> あるいは <FINITELATTICE> と組み合わせて <LATTICEGRAPH> 要素にすることで、格子を ALPS が実際にシミュレーションするグラフへと変換する方法を説明します。最小限の1頂点の鎖と、周期的な長方形格子上のより複雑な2頂点の単位胞を例に説明します。

格子とグラフのライブラリ

名前付きの <LATTICE><FINITELATTICE><UNITCELL><LATTICEGRAPH> の定義を1つの <LATTICES> 要素にまとめる方法を説明します。これにより、シミュレーションの入力ファイルでは、格子の完全な定義を毎回繰り返す代わりに、名前(例えば LATTICE="square lattice")で格子を参照できるようになります――これは ALPS に組み込まれている格子ライブラリ自体がまさにそのように構成されている方法です。

格子グラフの確認

新しい格子定義を printgraph ツールで検証する方法を説明します。このツールは、ALPS アプリケーションが内部で生成するのとまったく同じ方法で、パラメータファイルからグラフを生成するため、実際のシミュレーションを実行する前に、意図した通りの格子になっているかを確認できます。