Tutorials:LatticesAndGraphs/ja
Languages: |
English • 日本語 (ja) • 繁體中文 (zh-tw) • 简体中文 (zh) |
シンプルなグラフ
ほとんどの物理シミュレーションでは、不規則な構造ではなく、格子モデルのような規則的な構造でおこなわれます。
上記のグラフを格子状に置くことによって規則性を得ることができます。
この格子は単一セル、または単一セルからなる単一セルグラフで表現することができます。
単一セルグラフは一つの頂点から成り立ちます。隣接セルの同じ点をもつ辺があります。このような格子上のグラフはXMLで次のように記述されます。UNITCELL要素とLATTICEもしくはFINITELATTICEを結合することによって記述します。次のコードを参照してください。
<LATTICEGRAPH> <FINITELATTICE> <LATTICE dimension="1"/> <EXTENT size="6"/> <BOUNDARY type="open"/> </LATTICE> </FINITELATTICE> <UNITCELL dimension="1" vertices="1"> <VERTEX/> <EDGE> <SOURCE vertex="1"/> <TARGET vertex="1" offset="1"/> </EDGE> </UNITCELL> </LATTICEGRAPH>
EDGE要素に記述されているように、単一セルの辺は、セルの頂点1から右側(offset+1)のセルの頂点1になります。 SOURCE要素ではoffsetが省略されていますが、デフォルト値はoffset=0になります。
無限鎖を表現するために、 FINITELATTICE要素の代わりにLATTICEを用いて定義をおこないます。
応用例
グラフ上の頂点や辺に色を付けることや、座標などの他の属性を付加することも可能です。L x Wの長方格子の複雑な周期境界グラフを例として説明します。
この格子上のグラフは、長方形の格子を持つ複雑な単一セルグラフから構成することができます。
XMLでは、次のように記述します。
<LATTICE name="square" dimension="2"> <BASIS> <VECTOR> 1 0 </VECTOR> <VECTOR> 0 1 </VECTOR> </BASIS> </LATTICE> <FINITELATTICE name="rectangular periodic" dimension="2"> <LATTICE ref="square"/> <EXTENT dimension="1" size="L"/> <EXTENT dimension="2" size="W,L"/> <BOUNDARY type="periodic"/> </FINITELATTICE> <UNITCELL name="complex example" dimension="2" vertices="2"> <VERTEX id="1" type="0"><COORDINATE> 0.3 0.7 </COORDINATE></VERTEX> <VERTEX id="2" type="1"><COORDINATE> 0.6 0.3 </COORDINATE></VERTEX> <EDGE><SOURCE vertex="1"/><TARGET vertex="1" offset="1 0"/></EDGE> <EDGE><SOURCE vertex="1"/><TARGET vertex="1" offset="0 1"/></EDGE> <EDGE><SOURCE vertex="1"/><TARGET vertex="2"/></EDGE> </UNITCELL> <LATTICEGRAPH> <FINITELATTICE ref="rectangular periodic"/> <UNITCELL ref="complex example"/> </LATTICEGRAPH>
この例では、格子と単一セルに関して前定義をおこないライブラリのように使用しています。LATTICEGRAPH 要素内で参照し、関連付けています。LATTICEGRAPH ですべての定義をおこなうことも可能です。
<LATTICEGRAPH> <FINITELATTICE dimension="2"> <LATTICE dimension="2"> <BASIS> <VECTOR> 1 0 </VECTOR> <VECTOR> 0 1 </VECTOR> </BASIS> <EXTENT dimension="1" size="L"/> <EXTENT dimension="2" size="W,L"/> <BOUNDARY type="periodic"/> </FINITELATTICE> <UNITCELL dimension="2" vertices="2"> <VERTEX id="1" type="0"><COORDINATE> 0.3 0.7 </COORDINATE></VERTEX> <VERTEX id="2" type="1"><COORDINATE> 0.6 0.3 </COORDINATE></VERTEX> <EDGE><SOURCE vertex="1"/><TARGET vertex="1" offset="1 0"/></EDGE> <EDGE><SOURCE vertex="1"/><TARGET vertex="1" offset="0 1"/></EDGE> <EDGE><SOURCE vertex="1"/><TARGET vertex="2"/></EDGE> </UNITCELL> </LATTICEGRAPH>
単一セルだけでなく、格子の基底ベクトルの頂点の両方の座標が指定されているので、すべての頂点の座標を計算することができます。