On Tue, Oct 7, 2008 at 10:32 AM, Tim Kroeger
<[EMAIL PROTECTED]> 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?

Definitely.  I'm not sure what your intended use of this functionality
will be, but solving "bordered systems" efficiently is one possible
application.  I'm not sure if we should call this "matrix free" since
I think that has other connotations for our developers in the context
of Jacobian free solutions of nonlinear systems.

One way to implement the desired functionality in PETSc is to define a
custom matrix-vector product operation.  See, for example,
MatShellSetOperation.  If at first you can only get this working for
PETSc, that's fine.  I'm not sure what the best way of abstracting
this concept is.

-- 
John

-------------------------------------------------------------------------
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

Reply via email to