<div dir="ltr"><div> Hi.</div><div><br></div><div>The following code generates nconv numbers of eigenpairs. This number, for my case is so few. And I am afraid, there are more important eigenmodes. Is it possible to generate all (or more) eigenpairs? </div><div><br></div><div><div style="font-size:12.8px">Also, I was wondering, which eigenvalues/ eigenvectors does it calculate in this code, whose number is given by nconv?</div></div><div><br></div><div>    MatCreateSeqAIJ( MPI_COMM_SELF, Natom * Norbit, Natom * Norbit, Nneighbor * Norbit, PETSC_NULL, &H );</div><div>    MatSetFromOptions( H );</div><div>    </div><div>    MatCreateSeqAIJ( MPI_COMM_SELF, Natom * Norbit, Natom * Norbit, Nneighbor * Norbit, PETSC_NULL, &S );</div><div>    MatSetFromOptions( S );</div><div>    </div><div><span class="" style="white-space:pre">      </span>Hamiltonian ( );</div><div>//<span class="" style="white-space:pre"> </span>MatView(H,PETSC_VIEWER_STDOUT_WORLD);</div><div>//<span class="" style="white-space:pre">    </span>VecView(H0,PETSC_VIEWER_STDOUT_WORLD);</div><div>    //-------------------------------------------------------------------------------------------------------</div><div>    /*Setup the Ax=cBx generalized eigenproblem*/</div><div>    //-------------------------------------------------------------------------------------------------------</div><div>    EPSCreate( PETSC_COMM_WORLD, &eps );</div><div>    EPSSetOperators( eps, H, S);</div><div>    MatGetVecs(H,NULL,&xr);</div><div>    MatGetVecs(H,NULL,&xi);</div><div><br></div><div>    EPSGetST( eps, &st);</div><div>    STSetType(st,STCAYLEY);</div><div>    STCayleySetAntishift(st,1);</div><div>    </div><div>    EPSSetDimensions( eps, nev, ncv, PETSC_DECIDE);</div><div>    EPSSetTarget( eps,5.0);</div><div>    EPSSetFromOptions( eps );</div><div>    EPSSolve( eps );</div><div>    EPSPrintSolution(eps,PETSC_NULL);</div><div>    EPSGetConverged( eps, &nconv );</div><div>    </div><div>    eigenval = new complex<double>[ nconv ];</div><div>    eigenvec = new complex<double>*[ nconv ];</div><div>    for (int i = 0; i < nconv; i ++ ) {</div><div>        eigenvec[ i ] = new complex<double>[ Norbit * Natom ];</div><div>    }</div><div>    </div><div>    for ( jjj = 0; jjj < nconv; jjj ++ ) {</div><div>        /*<span class="" style="white-space:pre">         </span>Get converged eigenpairs: j-th eigenvalue is stored in kr (real part) and ki (imaginary part)<span class="" style="white-space:pre">     </span>*/</div><div>        EPSGetEigenpair(eps, jjj, &kr, &ki, xr, xi);</div><div>        eigenval[ jjj ] = complex <double>(PetscRealPart(kr),PetscImaginaryPart(kr));</div><div>        </div><div>        VecGetArray(xr, &Xr);</div><div>        for ( int i = 0; i < Norbit * Natom; i ++ ) {</div><div>            eigenvec[ jjj ][ i ] = complex <double>(PetscRealPart(Xr[i]),PetscImaginaryPart(Xr[i]));</div><div>        }</div><div>        VecRestoreArray(xr, &Xr);</div><div>    }</div><div><span class="" style="white-space:pre">        </span></div><div><span class="" style="white-space:pre">   </span>//--------------------------</div><div><span class="" style="white-space:pre">       </span>/*finalizing*/</div><div><span class="" style="white-space:pre">     </span>//--------------------------</div><div><span class="" style="white-space:pre">       </span></div><div><span class="" style="white-space:pre">   </span>outputs( true );</div><div>    VecDestroy(&xr);</div><div>    VecDestroy(&xi);</div><div>    EPSDestroy(&eps);</div><div>    MatDestroy(&H);</div><div>    MatDestroy(&S);</div><div>    SlepcFinalize();</div><div>    PetscFinalize();</div><div><span class="" style="white-space:pre">     </span></div><div><span class="" style="white-space:pre">   </span>return 0;</div><div>}</div><div><br></div><div>Regards,</div><div>Soumya</div></div>