Sorry, I forgot to attach my code in the previous email.
Best,
Chong Luo
----- Original Message ----
From: Chong Luo <luo.chong@xxxxxxxxx>
To: Andy Ray Terrel <aterrel@xxxxxxxxxxxx>
Cc: ffc-dev@xxxxxxxxxx
Sent: Tuesday, March 25, 2008 5:05:31 PM
Subject: Re: [FFC-dev] stable finite element for incompressible
nonlinear elasticity?
Thank you very much for all those suggestions.
I've attached my code for solving neoHookean elasticity (the 2D
version, which is much faster than the 3D one, but still blows up).
I took "u" to be the mixture of (displacement, pressure), because the
NonlinearPDE solver
subroutine pde.solve(u, t, T, dt) seems not accepting two functions
simultaneously. So I mix the (displacement, pressure) to be one
function "u" so that I can use the subroutine pde.solve(u, t, T, dt)
to solve.
I'm not quite sure about how the NonlinearPDE solver works (I copied
the code from the /demo/pde/nonlinear-poisson). It seems that it does
the job beautifully simple, but I don't know where to specify the
initial value of (displacement, pressure).
Best,
Chong Luo
----- Original Message ----
From: Andy Ray Terrel <aterrel@xxxxxxxxxxxx>
To: Chong Luo <luo.chong@xxxxxxxxx>; Discussion of FFC development
<ffc-dev@xxxxxxxxxx>
Sent: Tuesday, March 25, 2008 9:04:06 AM
Subject: Re: [FFC-dev] stable finite element for incompressible
nonlinear elasticity?
> On the other hand, the one with (P1-P1) does compile, but the
computation is
> not stable. What a life ...
>
> Also, maybe my NeoHookean.form is too complicated, it takes a lot of
time (5-10
> minutes) to compile the form file.
> And the size of NeoHookean.h is 4.8M, so it also takes a lot of time
to compile
> main.cpp. Is there any way to speed up the compiling?
>
You need to add stabilization terms for P1-P1 to be a stable stokes
element this is why the bilinear form has the delta*dot(grad(q),
grad(p)) term in it. I can't really see what is going on in your form
but it appears that you are setting your trial and test functions to be
the entire mixed space, this seems incorrect behaviour but it really
depends on the parts that were left out of the form posted to the list.
Another step is to try a P1-P0 element, this won't be as large (or
accurate) as the P2-P1 element but should be more stable than just P1-P1
with no stabilization terms. For a long list of stable stokes elements
I recommend Brezzi-Fortin.
When compiling with very large .h files generated from ffc, one speedup
I have found is to turn off all compiler optimizations. (in g++ do -O0)
Andy
------------------------------------------------------------------------
Looking for last minute shopping deals? Find them fast with Yahoo!
Search.
<http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.com/newsearch/category.php?category=shopping>
------------------------------------------------------------------------
Never miss a thing. Make Yahoo your homepage.
<http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs>