Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread John Peterson
On Mon, Oct 20, 2008 at 3:10 PM, Derek Gaston <[EMAIL PROTECTED]> wrote: > On Oct 20, 2008, at 1:32 PM, John Peterson wrote: >> >> This image also shows a generic ShellMatrix-derived-from-NumericMatrix >> as we've been discussing. This allows for the development of future >> "shell" matrix types w

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread Derek Gaston
On Oct 20, 2008, at 1:32 PM, John Peterson wrote: > This image also shows a generic ShellMatrix-derived-from-NumericMatrix > as we've been discussing. This allows for the development of future > "shell" matrix types which have nothing to do with Petsc. It may be > a little confusing that a Petsc

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread John Peterson
On Mon, Oct 20, 2008 at 1:12 PM, Jed Brown <[EMAIL PROTECTED]> wrote: > > It was just thought. But mandating that a PetscLinearSolver needs a > PetscMatrix means that your MatShell must derive from PetscMatrix and > ::mat() must return a PETSc Mat. This means you can't use the same > implementati

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread Jed Brown
On Mon 2008-10-20 13:06, Roy Stogner wrote: > > > On Mon, 20 Oct 2008, Jed Brown wrote: >> >> Why can't a shell matrix implement these operations? > > It can return individual matrix entries, but I'd want to put big red > warning flags on the method that does so, since users of it would > naturally

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread Jed Brown
On Mon 2008-10-20 12:49, John Peterson wrote: > On Mon, Oct 20, 2008 at 12:34 PM, Jed Brown <[EMAIL PROTECTED]> wrote: > > class Matrix { > > public: > > // not_implemented for all matrix operations (mult, multtranspose, etc) > > protected: > > Mat A_petsc; > > Epetra::RowMatrix A_epetra; > > };

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread Roy Stogner
On Mon, 20 Oct 2008, Jed Brown wrote: >> Because SparseMatrix is-not-a ShellMatrix (doesn't need to attach or >> even acknowledge the existance of a user's matvec shell function), and >> ShellMatrix is-not-a SparseMatrix (doesn't need sparsity pattern >> details in the constructor, can't return

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread John Peterson
On Mon, Oct 20, 2008 at 12:34 PM, Jed Brown <[EMAIL PROTECTED]> wrote: > class Matrix { > public: > // not_implemented for all matrix operations (mult, multtranspose, etc) > protected: > Mat A_petsc; > Epetra::RowMatrix A_epetra; > }; I see what you are getting at, but this violates all the enc

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread John Peterson
On Mon, Oct 20, 2008 at 11:23 AM, Roy Stogner <[EMAIL PROTECTED]> wrote: > > ShellMatrix is-not-a SparseMatrix (doesn't need sparsity pattern > details in the constructor, can't return or set individual matrix Ah yeah I guess not. We already have the uv^t case as a counter-example. So can we vot

Re: [Libmesh-devel] [Libmesh-users] Matrix free solving

2008-10-20 Thread Jed Brown
On Mon 2008-10-20 11:23, Roy Stogner wrote: > > > On Mon, 20 Oct 2008, John Peterson wrote: > > > On Mon, Oct 20, 2008 at 11:14 AM, Roy Stogner <[EMAIL PROTECTED]> wrote: > Also, I would suggest to derive SparseMatrix from ShellMatrix rather than > vice versa. This could actually make

Re: [Libmesh-devel] Problem when running NOX in parallel

2008-10-20 Thread Derek Gaston
I'll apply this in a bit. Thanks for the patch! Derek On Oct 20, 2008, at 9:18 AM, Norbert Stoop wrote: > Derek Gaston wrote: >> Thanks for the patch... I'll take a look at all of this shortly and >> commit it. >> >> As for the Jacobian in parallel... let's call not_implemented(). I >> would r

Re: [Libmesh-devel] Problem when running NOX in parallel

2008-10-20 Thread Norbert Stoop
Derek Gaston wrote: > Thanks for the patch... I'll take a look at all of this shortly and > commit it. > > As for the Jacobian in parallel... let's call not_implemented(). I > would rather get an error than get completely different behavior and not > know why. Here's another small patch for epet