Hi Roy,

   In the FEM code that I have written, I have implemented Newmark Method
for first and second order nonlinear systems, with and without mass and
damping matrices. While converting second-order to first-order
systems I create a new sparsity patter data structure where the
sub-matrices inherit their patterns from the original system, or get the
additional nonzeros that show up from the Identity matrices.

   I can look at porting this over to libMesh API, and your idea of
dof_coupling may serve the necessary purpose here. I can look into this.

   I am now sure if I understand the concept of "elem_fixed_solution". For
the Euler equations

  L (u) = 0
  L = d/dt + A_i d/d x_i

 that I have implemented, I get the following equations

\int_\Omega w^T \du/dt d\Omega -
\int_\Omega dw^T/d x_i A_i u d\Omega +
\int_\Lambda w^T flux(u) \Lambda +
\int_\Omega L(w)^T \tau (d/dt + A_i d/dx_i)u d\Omega = 0

This gives the mass matrix
[M] = \int_\Omega w^T \du/dt d\Omega + \int_\Omega L(w)^T \tau du/dt d\Omega

and the rhs function

f(u) =  - (- \int_\Omega dw^T/d x_i A_i u d\Omega + \int_\Lambda w^T
flux(u) \Lambda +\int_\Omega L(w)^T \tau A_i du/dx_i d\Omega  )


How does the concept of elem_fixed_solution affect this situation with a
mass matrix.

Now, for steady solutions, I have successfully time marched by assumed the
mass matrix to be identity, which brings me back to du/dt = f (u). But, I
am curious about time-accurate simulations, where this assumption may not
be accurate.

I would appreciate your comments.

Thanks,
Manav




On Thu, Feb 21, 2013 at 3:25 PM, Roy Stogner <[email protected]>wrote:

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