# Basic Finite Element Method (FEM) question: assembly and re-assembly

I'm reading up on the Finite Element Method (Zienkiewicz's Book), so I understand better what I'm doing in FEniCS and COMSOL. Currently, I'm wondering about this:

• Using FEM to solve fluid flow problems, do I have to re-assemble the entire system in each iteration of the solution process?

I would assume not since re-assembly only needs to be done if the coordinates of the nodes of the elements change. I can see how this is important in structural analysis, however, this is not the case in fluid dynamics (unless you work with moving meshes). So I assume in a common CFD computation it should be safe to only assemble the system of equations once and carry that through the entire solution process?

I'm asking because, if I understand correctly, not reassembling the system in each iteration of the solution should (in my current understanding) significantly reduce the computation time.

## 1 Answer

You might have to reassemble if your problem is non-linear and your method at a future step incorporates the solution in the formation of the matrix. If you are doing Picard iteration rather than Netwon-Raphson, then you should only have to reform the right-hand-side vector.

I don't know enough about FEciCS and COMSOL to say what they do, but I suspect, for good convergence rates, you're going to have to reform matrices every Newton step.

Edit: Jed's absolutely right on Picard. I should have opened a book or written it out myself before I answered. Though I would say you can always lag the preconditioner, but it may be of dubious quality depending on how strong the convective terms are.

• "If you are doing Picard iteration rather than Netwon-Raphson, then you should only have to reform the right-hand-side vector." No. For secant method, or "modified Newton", you don't have to recompute every step. Picard is generally formulated for semi-linear equations as $A(u^n) u^{n+1} = f(u^n)$, and clearly needs reassembly. Furthermore, matrix-free finite differencing is not available for Picard, in contrast to Newton, for which you can ues JFNK to lag the preconditioner while still solving the Newton step. – Jed Brown Nov 8 '13 at 5:01
• Thank you very much! I am currently studying the first chapters of Zienkiewicz's Book (mentioned above). I hope that this sort of thing will be explained in the later chapters and/or in his second book on CFD with FEM. – seb Nov 8 '13 at 14:30