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 1


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.

  • 3
    $\begingroup$ "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. $\endgroup$
    – Jed Brown
    Nov 8, 2013 at 5:01
  • $\begingroup$ 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. $\endgroup$
    – seb
    Nov 8, 2013 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.