El 18/06/2014, a las 22:37, jifeng zhao escribió: > Hello, > > I am a new user to Petsc + Slepc. I am trying to extract natural frequency of > a finite element model using Slepc. The way I do is > > 1. Use other software (Abaqus) to assembly the stiffness and mass matrix. > 2. Use Slepc to solve a generalized eigenvalue problem. K x = lamda M x > with K, M being stiffness and mass matrix. > > I wrote my petsc/slepc code based on the examples on slepc web. They all > compiled and working correctly. > > The question I am raising here is what solvers (solver combinations) should I > use to be most efficient? > > Right now I am using "bcgsl" (BiCGSTAB) solver for KSP linear solvers, "JD" > jacobian-davison for eigen solver, and "bjacobi" (block jacobian) for my > preconditioner. It works, but I need it to be more efficient to solver big > problem (millions of degrees of freedom). I am not an expert on knowing how > these solvers are different at all! > > Is there anybody who has extracted eigenvalues of a Finite element model > using Slepc? How can I possibly improve the performance? > > Thank you! > > PS: my running command reads like: > ./eigen_solver -f1 petsc_stiff1.dat -f2 petsc_mass1.dat -eps_nev 40 > -eps_target 0.0 -eps_type jd -st_type precond -st_ksp_type bcgsl -st_pc_type > bjacobi -st_ksp_rtol 0.001 -eps_tol 1e-5 -eps_harmonic > > -- > Jifeng Zhao > PhD candidate at Northwestern University, US > Theoretical and Applied Mechanics Program
For not-too-difficult problems, GD will be faster than JD. The options for tuning Davidson solvers are described here: http://dx.doi.org/10.1145/2543696 You can also try a preconditioner provided by an external package such as Hypre or pARMS. Alternatively, you can try with Krylov-Schur and exact shift-and-invert (with a parallel external solver such as MUMPS). Jose
