@@ -220,12 +220,9 @@ int CalcSpectrum(
220220 X -> Bind .Def .ParaPairExcitationOperator = tmpPara ;
221221 X -> Bind .Def .NPairExcitationOperator = tmpN ;
222222
223+ // Note: Normalization of v0_Bra is not needed here.
224+ // In CalcSpectrumByBiCG, the unnormalized vector is used directly.
223225 dnorm_Bra = NormMPI_dc (X -> Bind .Check .idim_max , v0_Bra );
224- if (fabs (dnorm_Bra ) > pow (10.0 , -15 )) {
225- for (i = 1 ; i <= X -> Bind .Check .idim_max ; i ++ ) {
226- v0_Bra [i ] = v0_Bra [i ] / dnorm_Bra ;
227- }
228- }
229226 fprintf (stdoutMPI , " Bra side excited state created. Norm = %.10lf\n" , dnorm_Bra );
230227 }
231228 else if (X -> Bind .Def .NSingleExcitationOperatorBra > 0 ) {
@@ -249,12 +246,9 @@ int CalcSpectrum(
249246 X -> Bind .Def .ParaSingleExcitationOperator = tmpPara ;
250247 X -> Bind .Def .NSingleExcitationOperator = tmpN ;
251248
249+ // Note: Normalization of v0_Bra is not needed here.
250+ // In CalcSpectrumByBiCG, the unnormalized vector is used directly.
252251 dnorm_Bra = NormMPI_dc (X -> Bind .Check .idim_max , v0_Bra );
253- if (fabs (dnorm_Bra ) > pow (10.0 , -15 )) {
254- for (i = 1 ; i <= X -> Bind .Check .idim_max ; i ++ ) {
255- v0_Bra [i ] = v0_Bra [i ] / dnorm_Bra ;
256- }
257- }
258252 fprintf (stdoutMPI , " Bra side excited state created. Norm = %.10lf\n" , dnorm_Bra );
259253 }
260254
@@ -275,7 +269,10 @@ int CalcSpectrum(
275269 }
276270 return TRUE;
277271 }
278- //normalize vector
272+ // Note: The following normalization of v1 is actually not used in CalcSpectrumByBiCG.
273+ // In CalcSpectrumByBiCG, v1 is passed as a workspace (v2) and immediately overwritten
274+ // by the unnormalized vector v0 (vrhs). This code is kept for compatibility with
275+ // other spectrum calculation methods (e.g., Lanczos).
279276#pragma omp parallel for default(none) private(i) shared(v1, v0) firstprivate(i_max, dnorm, X)
280277 for (i = 1 ; i <= X -> Bind .Check .idim_max ; i ++ ) {
281278 v1 [i ] = v0 [i ] / dnorm ;
0 commit comments