Thank you both for your precious advice, I managed to solve the problem in that way
Luca On Mon, 9 Dec 2024 at 23:18, Jose E. Roman <jro...@dsic.upv.es> wrote: > Most probably you want EPS_TARGET_MAGNITUDE with shift-and-invert, i.e., > > -st_type sinvert -eps_target 0 -eps_target_magnitude -st_ksp_type preonly > -st_pc_type lu -st_pc_factor_mat_solver_type mumps > > This will solve a linear system with your A matrix instead of your B > matrix. If A is singular, try a nonzero target located on the left of your > eigenvalues. > > Jose > > > El 9 dic 2024, a las 22:57, Barry Smith <bsm...@petsc.dev> escribió: > > > > > > I'll leave it to Jose to provide a complete, comprehensive answer, but > given your problem sizes, I think using a direct solver instead of an > iterative solver may be the best bet. So configure PETSc without debugging > and with MUMPS > > > > ./configure --with-debugging=0 --download-mumps --download-scalapack > --download-ptscotch > > > > and use -ksp_type preconly -pc_type lu -pc_factor_mat_solver_type mumps > > > > Good luck > > > > > >> On Dec 9, 2024, at 4:50 PM, LUCA SCALIA <lsca...@pa.uc3m.es> wrote: > >> > >> Dear group, > >> > >> I am using libraries PETSC and SLEPC for a Finite Element code written > in c++ that I am developing, oriented to the solution of generalised > eigenvalue problems for large structural systems featuring up to 10^5 -10^6 > degrees of freedom. > >> > >> I manage to successfully run the code for a generalised eigenvalue > problem of structures with around 10^4 degrees of freedom in a reasonable > amount of time but the problem arises in the case of systems with a number > of degrees of freedom from 10^5 or above. > >> > >> The current test case I'm trying has 120.000 degrees of freedom. The > EPS solver gets slower and slower as the iterations pass. After a rough > estimate, I would say it may take no less than 5-6 hours with 20 MPI > processes ( allowing an unlimited number of iterations) > >> > >> I need to compute the first 10 to 30 (nev) modes of the structure > (EPS_SMALLEST_MAGNITUDE). I'm using the default KRYLOVSCHUR iterative > solver. The problem is generalised Hermitian > >> > >> > >> I tried to play a little bit with different settings and options of the > library, e.g.: > >> > >> 1) ncv parameter. different values of ncv, between 10*nev and 40*nev > >> > >> 2) different solvers for the ksp object ( GMRES and CG ), and tolerance > as well preconditioner (PCJACOBI and PCBJACOBI) > >> > >> 3) Normalisation of matrices A and B with the respective Frobenius or > Infinite norms. > >> > >> ... but I wasn't able to solve the problem. > >> > >> I kindly ask for advice on which strategies I should resort to in order > to improve the speed of SLEPC for such large numbers of degrees of freedom, > since I'm quite new to the solution of the generalised eigenvalue problem. > >> > >> I also attach two files with the stiffness and mass matrix of one > element to show the magnitude of the entries of the two matrices > >> > >> Best regards, > >> > >> Luca > >> <stiffness_matrix_A.txt><mass_matrix_B.txt> > > > >