#author("2025-01-21T10:17:39+09:00","default:StatE","StatE") #author("2025-01-21T10:19:10+09:00","default:StatE","StatE") * 大規模系の振動解析を行う際のヒント [#l1bd26f6] 以下では、吸着系など、原子数が大きく、なおかつ全ての原子の変位を考慮しない場合の計算の進め方を紹介します。~ 方針としては - 変位させる原子を決めて、それらに対応する''nfvibrate.data''を作成 - 最適化した構造についてDavidson法で波動関数を作成 - 準備した波動関数から始めて(restart)してRMM-DIIS+real space projectionで振動解析(の準備計算)を実行 - Dynamical matrixの生成、対角化、振動数の算出 となります。 ここでは例としてCO/Cu(110)を考え、CO原子のみを変位させるとします。 ** nfvibrate.dataの作成 [#m85a36db] ''util/Vibration''にある''genfvib''というプログラムを以下のように実行します。 genfvib -natm 2 > nfvibrate.data ここで''-natm 2''というオプションは2つの原子を変位させることを意味しており、各原子について+x, -x, +y, -y, +z, -z方向への変位を指定する''nfvibrate.data''を生成します。デフォルトの変位は0.01 Bohrです。変位の振幅を変えたいときは''-d''というオプションを使用します。~ 原子の指標は1から原子数まで連続的に生成されますので、原子のインデックスが連続しない場合には適宜''nfvibrate.data''を変更して下さい。 ** 初期波動関数の生成 [#a2c85ecf] まずは振動計算のオプションを指定せずに WF_OPT DAV を使用して通常のSCF計算を実行します。 ** RMMによる振動解析(の準備計算) [#x1d05ac8] 次に新しい入力ファイルを用意します。そこでは RESTART WF TASK VIB WF_OPT RMM NLPROJ REAL を指定します。~ また大規模系の場合、考慮したい原子変位の計算が一度の計算ですべて終わることは無いでしょう。 その場合、上の RESTART WF は RESTART に変更して計算を継続すると良いでしょう。 ** 振動数の算出 [#m420455f] すべての原子変位についての計算が終了すれば、生成された''nfforce.data''と''gif''を使用して振動数と振動モードの計算と解析を行いましょう。