← Back to team overview

dolfin team mailing list archive

Re: PDE<->ODE interface

 

On Fri, Nov 04, 2005 at 04:31:17PM +0100, Johan Hoffman wrote:

> > Using the ODE solver with cG(1) + Newton is very similar to
> > Crank-Nicolson with very little overhead.
> 
> Is cG(1) + Newton based on any left-hand side (u_t + A(u) = f(u)), or just
> the mass matrix corresponding to u_t=f(u) ?

With a form specified like

    a = v*Dt(u)*dx 
    L = dot(grad(v), grad(u))*dx + v*f*dx

and cG(1) + Newton, the result would be an ODE system of the form

    Mu' = F(u)

that we can feed directly to the ODE solver. With Newton, everything
linear (as well as the linearization of f) will end up on the
left-hand side anyway and combine with the mass matrix correctly.

So if we solve the heat equation

    a = v*Dt(u)*dx 
    L = dot(grad(v), grad(u))*dx

then the result would be a linear system of the form (M + 0.5*k*A)
but you would never see it.
 
> >> > I must be missing something. We already support (1) today and we will
> >> > soon support (2).
> >> >
> >> > /Anders
> >>
> >> Do you mean that today I can write a FFC form-file with
> >>
> >> a = v*u.dt()*dx + k*dot(grad(v), grad(u))*dx
> >> L = v*f*dx
> >>
> >> where I just specify what time-discretization I want to use, and that
> >> FFC
> >> generates code to DOLFIN with that time discretization? Then I must be
> >> missing something... or? Isn't it necessary to write out the
> >> semi-discretized form according to the first alt. above?
> >
> > No, .dt() is not supported yet. My suggestion would be that either a
> > user specifies a time derivative and trusts the ODE solver to do the
> > time integration (using cG(1), dG(0), dG(15) or whatever), or
> > alternatively writes out the time discretization by hand if she
> > doesn't want to use the ODE solver.
> 
> Ok, so the functionality of writing out the time discretization would
> rather be in the ODE solver then.

Yes, but you would have to pick one of the time discretizations that
are implemented: cG(q), dG(q), mcG(q) or mdG(q) for general q.

/Anders



Follow ups

References