There is a way to do matrix free solving with libMesh and Petsc. Take a look at the PetscNonlinearSolver (which you can get by using a NonlinearImplicitSystem). If you just set the residual() function and not the jacobian() then you are solving matrix free using Petsc SNES.
Note that there is a "matvec" function on PetscNonlinearSolver (inherited from NonlinearSolver). I'm not quite sure how to use it though... it's something Ben put in I believe. If you want to turn on that "matvec" function in PetscNonlinearSolver and make it into a MatShell or PCShell that might be a good way to go. Derek On Oct 7, 2008, at 9:32 AM, Tim Kroeger wrote: > Dear libMesh team, > > As far as I see, there seems not to be any interface in libMesh to > solve a system in a matrix free way. > > I have to solve a linear system whose matrix basically has the > following structure: > > A = B + v*w^T > > where B is a sparse matrix and v and w are vectors, so that v*w^T is a > full matrix. Obviously, it is not advisable to store the full matrix. > Instead, I would like to store B, v, and w, and then supply a method > to multiply the matrix with a given vector (which is obviously quite > easy, even in parallel). > > What whould be the things to do? I guess, first I have to find out > PETSc's API for matrix free solving (provided that such a thing > exists, but I think it does). Then, I can either use PETSc directly > or -- presumably better -- extend the API of your LinearSolver class > towards matrix free solving. Of course, the latter would require to > do something for the other solver packages as well (Laspack etc.), but > I would just call libmesh_not_implemented() there. > > Would such an API extension be welcome? Do you have any different > ideas or suggestions? > > Best Regards, > > Tim > > -- > Dr. Tim Kroeger Phone > +49-421-218-7710 > [EMAIL PROTECTED], [EMAIL PROTECTED] Fax > +49-421-218-4236 > > MeVis Research GmbH, Universitaetsallee 29, 28359 Bremen, Germany > > Amtsgericht Bremen HRB 16222 > Geschaeftsfuehrer: Prof. Dr. H.-O. Peitgen > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win > great prizes > Grand prize is a trip for two to an Open Source event anywhere in > the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Libmesh-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libmesh-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
