From: David Xu <dxu@my...>  20060328 05:43:08

Ondrej, Thanks for the tips. How's the matrix file i/o performance when using the PETSC_VIEWER_BINARY_DEFAULT format for large matrices (size > 100000)? What's your libmesh code for exporting PETSC_VIEWER_BINARY_DEFAULT format matrices? As we discussed before, I tried pysparse with success, the bottleneck is the file i/o. I also compiled ARPACK with SLEPc and enabled ARPACK in libmesh. It worked in finding smallest eigenvalues, but it wasn't very fast compared to pysparse + time spend on file i/o. It would be nice to implement JDBSYM algorithm in libmesh. I've been trying to compile JDBSYM library (from it's C code implementation) with my libmesh code, haven't got it work yet. The reason I need the eigensolver integrated with libmesh code is to be able to postprocess the eigenvectors, say, normalization. Do you know how to do that with pysparse? Another great eigenvalue solver is BLOPEX (http://wwwmath.cudenver.edu/~aknyazev/software/BLOPEX/), the performance is comparable to Pysparse/JDBSYM and it has become one of PETSc 2.3.1 extermal packages. But I haven't figured out how to use it in libmesh. Maybe it's worth a try. Thanks again for sharing your experience! David On 3/27/06, Ondrej Certik <ondrej@...> wrote: > Hello, > > if anyone is also interested in computing the lowest eigenvalues, below i= s > how. > > Libmesh already has support for slepc, but it's not really needed if the = only > thing I want is to construct global matrices, save them to disk and solve= them > (externally). > > I am solving a generalized hermitian problem Ax=3DkBx. So after assemblin= g > matrices A and B, I save them to a file using PETSC_VIEWER_BINARY_DEFAULT > format. Then I use example 7 from slepc > > http://www.grycap.upv.es/slepc/handson/handson3.html > > to solve them. The advantage is that now I can play with various options = on the > command line. > > 1)to find the largest eigenvalues: > > ./ex7 f1 matrixA f2 matrixB > > works with any solver. > > 2)to find the smallest eigenvalues, either: > > ./ex7 f1 matrixA f2 matrixB st_type sinvert > > works with any solver > > or: > > ./ex7 f1 matrixA f2 matrixB eps_type arpack eps_smallest_real > > works only with the arpack solver. It's very slow, I have no idea why. Th= is was > around 20 times faster: > > ./ex7 f1 matrixA f2 matrixB st_type sinvert eps_type arpack > > > You can also change the tolerance or the number of requested eigenvalues = using > options: > > eps_nev 2 eps_tol 1e3 > > > All of this can of course be built into libmesh, I think it already is. A= nother > option is to use pysparse, the solver is also very good. > Ondrej > > >  > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.asus.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > _______________________________________________ > Libmeshusers mailing list > Libmeshusers@... > https://lists.sourceforge.net/lists/listinfo/libmeshusers > 