Hi,

I've put together some thoughts on the ODEs, which I've outlined below.

On Mon, Mar 26, 2012 at 12:48 AM, Gilbert gede <[email protected]> wrote:
>
> The ODE's generated by physics.mechanics typically can only be solved
> numerically. Luke, Jason, and I have been discussing the best way to
> deal with this, admittedly with no clear consensus. I think the two
> competing issues are speed/performance vs. convenience; dealing with
> specified input quantities is also a challenge (forces, control
> inputs, etc.). If you could imagine 2 use cases (where most of the
> other cases would fall somewhere between the two in terms of
> complexity):
> 1. A user who wants to create equations of motion for a simple system
> (like a double pendulum), supply some parameters, and get some plots.

True and useful mainly for teaching purposes, but definitely useful.

> 2. A user who wants to create equations of motion for a flexible arm
> on a spacecraft, needs to have feedback control of the system inputs,
> and needs to know output quantities which are functions of the states
> of the system; this user then wants to integrate their equations of
> motion and generate some plots.

In this case, there's a few ways about getting the numerical
equations. The first would be to use Raleigh-Ritz and assume forms for
each of the spatial variables which would then lead to the finite
element equations. The second would be to derive them normally and use
Galerkin to get the finite element equations. It's also possible that
one could do a modal analysis approach. While my standard approach is
Raleigh-Ritz, I'd recommend Galerkin since it's the most general.
Plus, it would work well with the existing framework since you can
apply it directly to the resulting PDEs.

After getting the new equations, I would think that a code generation
approach would be best. That way one could hook it into any solver of
choice. To give an example of how something like this might be used,
I'll describe how I do a similar problem.

For my finite element code (written in a mix of Maple and Matlab), I
use Maple's code generation to output element mass and stiffness
matrices as Matlab functions. That way, the parameters can be passed
at runtime during assembly. I then use a Newmark-Beta solver to
directly solve the 2nd order system of ODEs, rather than convert to a
1st order system.

If someone is going to do FE numerical equations, I highly recommend
Bathe and Wilson's book. Also, there's an excellent paper by Vermeulen
and Heppler that has a section on a test to see if a particular
discretisation will suffer from locking.

I'd really like to see a GSoC project on the mechanics module. If it
doesn't happen, I may try and find the time to do some work on it.

Oh, while I probably can't be an official mentor (I'm trying to finish
my thesis this summer), I probably can take some questions.

Cheers,

Tim.

-- 
Tim Lahey
PhD Candidate, Systems Design Engineering
University of Waterloo
http://about.me/tjlahey

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to