[petsc-users] SLEPC/PETSC for large scale FEM generalised eigenvalue problem

LUCA SCALIA lscalia at pa.uc3m.es
Thu Dec 19 10:08:03 CST 2024


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 <jroman at 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 <bsmith at 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 <lscalia at 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>
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20241219/5634d75c/attachment.html>


More information about the petsc-users mailing list