A Tutorial Introduction to FreeFEM

In https://github.com/fotios-kasolis/FreeFEM-tutorial-public you can find a hands-on FreeFEM tutorial. Although my initial plan was different, working time constraints force me to keep this work as an introduction to FreeFEM with some PETSc examples, but with direct solver only. I already started collecting all of my material for a longer term tutorial project, similar to the one that the FEniCS community has. I hope that the current version of the tutorial will be a good starting point for newcomers. I guess the macro definitions in meditMPI.idp (local-to-global plot) and the gnuplot.idp (single line plot) may be useful for some. The examples work with the latest win 10 binary with msmpi. Special thanks goes to @prj for his valuable help. Please be so kind as to point out mistakes and bugs and come up with suggestions of topics. Enjoy!


Great work! Have you considered adding/integrating this tutorial to the FreeFEM documentation ?
It would be nice to keep everything centralized

1 Like

Dear @franck.lahaye,

Indeed, I have thought doing so. The problem I see is that the current structure of the documentation is kind of confusing, since there is no well-defined goal of each existing section and topics are a bit too mixed for my taste. In case there is a democratic majority towards restructuring the documentation, I would be very happy to help and contribute. I am thinking something like the following.

  • A Tutorial Introduction to FreeFEM (part A; no links to other material in the documentation; self-contained; pdf version separate as well),
  • An Advanced Tutorial FreeFEM (part B; no links to other material in the documentation; self-contained; pdf version separate as well),
  • Language Reference and Utilities (including all external functions; links can appear here to the tutorial materials plus the Applications and Examples section; separate pdf)
  • Developers corner (C++API!!)
  • Appendix: Applications How To (raw code should work here; modules included here).

I guess a structure like this will keep happier newcomers plus developers, since it will give the opportunity to clearly document more or less everything, in the long term, while also forcing some regularization throughout the sources (maybe style guidelines are also needed for contributions both in edp and cpp).

Best regards,
/Fotios Kasolis

I do agree with Fotios. The fact that multiple tutorials are popping up, e.g., there is also that one, shows that the current documentation has run its course. It needs a major overhaul, trying to just integrate stuff here and there is not sufficient anymore.

I started a google doc that everyone can edit (to all members, you are welcome to join).

I am not an expert and @simon.garnotel is overloaded with work at the moment but I would be happy to contribute financially and hire a native english speaker as proofreader if it helps. If more help is needed we can also email the 250+ users on this forum and ask for a small contribution via the FreeFEM foundation.

1 Like

Fantastic tutorial @fotios.kasolis.
I truly enjoyed reading it quickly. The main positive aspect of this tutorial is while it’s based on a real-world application, it gets advanced step by step and is easy to follow. I will recommend it to the colleagues of mine who are interested to get started with FF.

1 Like

Dear @mojtaba.barzegari, thanks for your kind words; I am happy you enjoy.

Thanks @fotios.kasolis @prj @franck.lahaye for your valuable contribution.

I request everyone to include the weblinks for examples that would be useful for newcomers in FF.

Non-linear problems for some models would be highly appreciated.

Just FYI, there are multiple nonlinear examples in my tutorial.

1 Like