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

Ok. Sounds great!

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

Very nice. Is the Newton jacobian generated automatically in the ODE
solver/Newton solver? Or is that a job for FFC?

/Johan







Follow ups

References