7. FAQ¶
ここでは, TeNeSの利用にあたりよく寄せられる質問について, 回答と一緒に紹介します.
Q1. full updateの回数はどのようにとればいいですか?
A1. full updateを行うことで、計算精度が上がりますが、計算に時間がかかるようになります。full updateの回数は計算機の性能やボンド次元、必要な計算精度の兼ね合いによって決めるとよいでしょう。様子を見るために、はじめはsimple updateだけを行ってみるのも一つの方法です。また、full updateの前にsimple updateを行い基底状態に近づいていると、full updateを効率的に行うことができます。ただし、複雑な量子状態(スピン液体など)で、simple updateでは正しい基底状態に近づけない場合には、初期からfull updateを行う必要があります。
Q2. simple updateの回数はどのようにとればいいですか?
A2. simple updateの回数を徐々に増やしていくと基底状態に近づくはずですが、回数が多ければよいというものでもなく、ボンド次元が小さいとupdateの途中で計算精度が悪くなってしまう場合もあります。計算がうまくいっているかどうかは、基底状態のエネルギーをsimple updateの回数を変えてプロットしてみるとわかります。updateの回数を増やしてエネルギーが最小になったところを計算結果として採用すると良いでしょう。別の方針として、updateを増やしてエネルギーがほぼ変わらなくなったところを計算結果として採用することもできますが、それはエネルギー最小とは限りません。
Q3. ボンド次元はどのようにとればいいですか?
A3. ボンド次元を増やすと計算精度が上がる代わりに計算時間が長くなります。計算機環境や求めたい物理量に要求される精度のバランスをみて、ボンド次元を決める必要があります。またボンド次元を変化させるときには、lattice.virtual_dimとparameter.ctm.dimensionを連動させて動かすことが重要です。典型的には、後者は前者の2乗以上の値を取ります。
Q4. 基底状態の正しさを検討するにはどうすればいいでしょうか? A4. 確実に正しいということを保証するのは難しいですが、乱数の種を複数用意してよりエネルギーの低い状態がないかを確認するのが一番簡単なチェック方法になります。また、コストはかかりますが、外場をかけて基底状態の候補となる状態をいくつか用意して、それを初期配置として計算してエネルギー比較を行うというのも有効です。その他、ユニットセルの形状を変えて、他の低エネルギー状態が現れないか確認することも重要です。サイズの問題はありますが厳密対角化など他手法との比較を行うこともお勧めしています。(厳密対角化の計算はHΦを使えば簡単に簡単にできます。)