Thread Previous • Date Previous • Date Next • Thread Next |
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
Thread Previous • Date Previous • Date Next • Thread Next |