On Thu, 21 Feb 2013, Manav Bhatia wrote:

>   I would appreciate some help in understanding if the existing System
> classes can handle PDEs (linear/nonlinear) with second order time
> derivative.

IIRC We have one existing system (NewmarkSystem?) designed for second
order time derivatives.  I have no idea what its limitations are or
whether it would be suitable for you.

> I am going through the FEMSystem documentation and it seems
> like these are suitable for a system of the form
>
>    du/dt = f(u).

Currently, yes.  There's nothing about the APIs that would prevent you
from adding a UnsteadySolver subclass that integrates u''=f(u), and
we'd love to get a patch like that, but we don't have any such
subclass in the library yet.

Worse: if you wanted to handle even more general second-order time
derivatives, with mixtures of u'' and u' in the same equation, I think
we'd need some modification to the APIs before we could handle that
naturally.

>   Ofcourse, I can change my second order system from
>
>    d^2u/dt^2 = f(u)
>
>   to
>
>    d/dt {u; \tilde{u}} = [0 I; 0 0] {u; \tilde{u}} + {0; f(u)}
>
>   but that changes the dimension of my sparse system by a factor of two,

This is probably the easiest way to get a second-order system up and
running with FEMSystem.

> and I am not sure if the FEMSystem takes into account the modification in
> the sparsity pattern.

You do the add_variable() for your auxilliary u' variable in your
system initialization, and the sparsity pattern will be modified to
assume that every residual term corresponding to a u degree of freedom
on an element is coupled to every u' degree of freedom on that
element.  This will work; you'll just have unnecessary zeros in your
sparse matrix or you'll have to use our DofMap::_dof_coupling API to
avoid them.

>   Additionally, within the existing framework, how does one account for
> *nonlinear* systems that have a mass matrix
>
>   [M] du/dt = f(u)

Right now, we allow you to request an "elem_fixed_solution" that can
be used for either low-order time integration of nonlinear mass
matrices or for nonlinear stabilization in test functions.  We're
actually planning a (backwards-incompatible, unfortunately) change in
this API, to make it less unnecessarily confusing and to allow for
higher-order time integration of nonlinear mass matrices and/or for
nonlinear mass matrices with nonlinear stabilization in test
functions.  If you'd like, I could probably push that change up higher
on my todo list.

>   Extending this question forward, how about PDEs with second order time
> derivative?

Now that's a good question.  I've only done second-order time
integration by breaking it up into first-order systems.  I'd like to
support direct second-order integrators, but I'd need help designing
the API so as to make it as broadly applicable as possible.
---
Roy

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to