On Wed, Mar 18, 2009 at 5:27 PM, Jed Brown <jed at 59a2.org> wrote:

> On Wed 2009-03-18 13:59, Matthew Knepley wrote:
> > I cannot understand why you cannot use TSSetMatrices()
>
> TSSetMatrices is only for linear problems and doesn't generalize nicely
> to nonlinear problems, especially with matrix-free methods.  The
> functionality I'm looking for involves a possibly variable, possibly
> singular (with huge null space for DAE), possibly nonlinear (as with fully
> implicit moving mesh schemes) Alhs.  With my high-order Galerkin scheme,
> Alhs can only be available as MatShell (so MatAXPY is hard to implement)
> because an assembled Alhs would be an order of magnitude denser than the
> preconditioning matrix associated with the unshifted Jacobian (J=F' if
> we are solving Alhs(u,t) u_t = F(u,t)).
>

> This can all be handled in a way that would work nicely with JFNK and
> avoid storing Alhs in any form, but I think the user's function
> evaluation and matrix assembly needs to provide shifted versions (such
> as 1/dt*Alhs-J where J = F'(u)).  The shift is usually a trivial amount
> of work during function evaluation and matrix assembly.  Preconditioners
> can still be lagged effectively as long as the shift does not change
> rapidly.  Even if the shift does change rapidly, reassembling the
> preconditioning matrix could still often be avoided by just doing a
> lumped shift (function evaluation and matrix-free Jacobians can change
> the shift, using a consistent mass matrix, at zero cost).
>
> Is this more clear?


Not a whole lot. Needs to go slower, since I think there are a bunch of
embedded
assumptions, and I worry that the most simple, general interface cannot be
seen
until they are clarified. I want it spelled out very very explicitly. So, to
begin, you
are unhappy with

  A_lhs(t) u_t = F(u,t)

where A_lhs is a linear operator. Is this true?

For now, I will assume that A_lhs(t) is actually a nonlinear operator
O_lhs(u,u_t,t). Then
we have

  O_lhs(u,u_t,t) - F(u,t) = 0

So if we do Backward-Euler,

  O_lhs(u^n+1,t^n+1) - dt F(u^n+1,t^n+1) - O_lhs(u^n,t^n) = G = 0

so for Newton

  (O'_lhs - dt F') du = G

So are you asking for a nonlinear operator O?

After I understand the answers to these, I can start to understand the
comments about
shifts, etc. that talk about implementing this new model.

I just want to clarify the movement away from the original TS model.

  Matt


> Jed
>
-- 
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20090318/a231dffd/attachment.html>

Reply via email to