Simon:
I recently modified step-22 and step-56 (the Stokes problem) by switching the
usual Q2-Q1 element to a cheaper Q1-P0 element, i.e., linear Lagrange
polynomials for displacement and element-wise constant pressure.
What I noticed is that using Q1-P0 significantly increases the cost of the
linear solve. Here are some example iteration counts from step-56:
*Q2-Q1:*
* Cycle 2: 21 (Outer), 320 Inner (A), 22 Inner (S)
* Cycle 3: 21 (Outer), 592 Inner (A), 22 Inner (S)
*Q1-P0:*
* Cycle 2: 258 (Outer), 2313 Inner (A), 258 Inner (S)
* Cycle 3: 811 (Outer), 12600 Inner (A), 811 Inner (S)
I looked at a paper co-authored by Wolfgang (link here<https://
www.math.colostate.edu/~bangerth/publications/2021-q1q1.pdf?
utm_source=chatgpt.com>), and Fig. 8 suggests the FGMRES iteration count
shouldn’t blow up this much. But clearly, the true bottleneck is the inner
iterations for A.
My understanding is that using the upper block-triangular preconditioner with
ILU for both the mass matrix and the A-matrix should still be reasonable when
lowering the polynomial degree.
Does anyone (maybe the authors of the tutorials?) have an idea why the
iteration counts increase so dramatically with the Q1-P0 element?
I interpret the numbers you show slightly differently. For both elements, you
need about 10-30 inner A iterations for each outer iteration. That's actually
quite a good number. It means that the top left block can be inverted easily
in either case, and that's of course also what I would expect. In particular,
you need more inner A iterations when using the Q2 element than for the Q1
element -- which I'd expect to be the case.
The difference is in the outer iterations. That, too, is what I would expect:
The Q1-P0 element is unstable, so there is one (or a few) eigenvalues that go
to zero even if the rest stays the same under mesh refinement. In other words,
the condition number grows substantially more than what you'd see just from
mesh refinement, and that reflects in the number of outer iterations. I can't
say why that isn't reflected in the paper (different test case?) but what you
see does not surprise me.
In short, I think the message should be: Don't use unstable elements.
My goal is actually not to solve Stokes, but to develop a *preconditioner *
for *incompressible nonlinear elasticity*, solving:
* div(P(F(u))) = 0 with P the stress and F the deformation gradient,
* det(F) - 1 = 0.
The discretized system looks structurally similar to Stokes, especially since
the A-matrix (stiffness matrix) is symmetric and the B-matrix depends
similarly on div(u). So the same upper block-triangular preconditioner should
be applicable, maybe with tweaks to the inner preconditioners.
Is a Q1-P0 discretization of this system stable? I would expect the same issue
as with Stokes here.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/dealii/5d5a7d3d-0e90-4cba-a47a-506f73fbf3ae%40colostate.edu.