← Back to team overview

dolfin team mailing list archive

Re: PDE<->ODE interface

 

> On Wed, Nov 02, 2005 at 09:59:53AM +0100, Johan Hoffman wrote:
>
>> I think the most intuitive way for the user to provide the variational
>> form is to use a time derivative Dt(u). Then the desciption of the
>> (variational form of the) equation would be something like what you
>> describe above, which is very close to mathematical notation.
>>
>> The next step is to determine how to discretize the equation. Today
>> there
>> are several options avaliable in DOLFIN:
>>
>> (1) Semi-discretization time->space: this is what is done today in
>> DOLFIN
>> for PDEs, although the time discretization is done manually. The natural
>> next step would be for FFC to do the discretization in time from Dt(u),
>> given a specification in the form-file, either as a space-time element:
>>
>> space_discretization = FiniteElement("Lagrange", "tetrahedron", 1)
>> time_discretization = FiniteElement("discontinuous Lagrange",
>> "interval", 2)
>> space_time_discretization = space_discretization + time_discretization
>>
>> for cG(1)dG(2), or as a semidiscretization:
>>
>> space_discretization = FiniteElement("Lagrange", "tetrahedron", 1)
>> time_discretization = FD_scheme("Crank-Nicolson")
>> space_time_discretization = space_discretization + time_discretization
>
> Perhaps, but it would probably be more appropriate with
>
>     space_discretization * time_discretization ?

Maybe. I was thinking along the lines of a direct sum of R^d and [0,T].


>> for cG(1) with Crank-Nicolson in time. Functions may then be defined
>> using
>> the space-time discretizations. The same output files from FFC to DOLFIN
>> would then be generated as is done today; that is computation of element
>> matrices and vectors.
>>
>> (2) Semidiscreization space->time: this would be along the lines what
>> Johan is doing now; computing f(u) to use in the ODE solver (for dot u =
>> f(u)). We would then still declare a space element:
>>
>> space_discretization = FiniteElement("Lagrange", "tetrahedron", 1)
>>
>> but the time derivative Dt(u) would not be discretized by FFC, but
>> instead
>> would an output file for the ODE solver in DOLFIN be created that
>> contain
>> the evaluation of f(u).
>
> This is the most convenient. The ODE solver wants an ODE.

I understand that this is the most convenient for the ODE solver. I'm just
saying that one approach would be to able to generate FFC output suitable
for both the ODE solver (2) and the PDE solver (1) (= solving system of
algebraic equations). We should probably not retire the PDE functionality
until we know that the ODE solver is capable to also solve all PDE
problems efficiently.


>> (3) We also might like to generate the vector F(u) for using the non
>> linear solver on F(u)=0, although this can be done already today with
>> FFC
>> defining an L in this form. For Newton we would also like to generate
>> the
>> Jacobian automatically, which will demand some new functionality.
>>
>> (4) A next step is moving meshes. Johan is doing this for elasticity I
>> guess in a pure Lagrangian framework, but we also want to allow for ALE
>> methods where the mesh is moving independetly from the solution. This
>> corresponds to a coordinate transformation so that the derivatives and
>> integrals (dx,ds etc.) needs to be modified according to a specified
>> map.
>> This would probably be quite easy to do in FFC by implementing
>> map-dependent operators, where derivatives and integrals are interpreted
>> using the chain rule wrt a given mapping.
>
> I think we should be able to get this working with alternative (2),
> but we need to think about the details.
>
> /Anders

I think alterntive (1) is also worth considering. Then we would be able to
write a PDE closer to the mathematical formulation in the form-file.

/Johan






Follow ups

References