4.3.28. tmpvec.dat¶
CalcModファイルのReStart=1, 2の場合に、計算途中のベクトルを出力します。 ファイルはバイナリ形式で出力されます。 ファイル名およびファイル形式は以下の通りです(ファイル形式はeigenvec.datと同様です)。
ファイル名¶
- Lanczos法:##_tmpvec_rank_$$.dat
- TPQ法, LOBPCG法:##_tmpvec_set_&&_rank_$$.dat
##はModParaファイル内の[string02]で指定されるヘッダ、 $$はランク番号を表します。また、&&はTPQ時のサンプリングの番号 もしくはLOBPCG法での固有値の番号を表します。
ファイル形式¶
次のようなソースコードを用いて、バイナリファイルとして出力されます (実際の HPhi++のソースコードとは変数名等が異なります)。
Lanczos
fp = fopen("zvo_tmpvec_rank_0.dat", "wb");
fwrite(&number_of_interations, sizeof(int), 1,fp);
fwrite(&local_size, sizeof(unsigned long int),1,fp);
fwrite(&last_vector[0], sizeof(complex double),local_size+1, fp);
fwrite(&second_last_vector[0], sizeof(complex double),local_size+1, fp);
fclose(fp);
TPQおよびLOBPCG
fp = fopen("zvo_tmpvec_set_0_rank_0.dat", "wb");
fwrite(&number_of_interations, sizeof(int), 1,fp);
fwrite(&local_size, sizeof(unsigned long int),1,fp);
fwrite(&last_vector[0], sizeof(complex double),local_size+1, fp);
fclose(fp);
ただし、number_of_interations
は反復回数、
local_size
は固有ベクトルのサイズ(MPI並列を使っている場合は全ヒルベルト次元とは異なります)、
last_vector
は最後の反復でのベクトル、
second_last_vector
は最後から2番目の反復でのベクトルをそれぞれ表します。
※
last_vector
、second_last_vector
の一番最初の成分に計算に使用しない値が入っています。