$$
\newcommand{\uex}{{u_{\small\mbox{e}}}}
\newcommand{\Aex}{{A_{\small\mbox{e}}}}
\newcommand{\half}{\frac{1}{2}}
\newcommand{\Oof}[1]{\mathcal{O}(#1)}
$$
Why implement in Python?
- Python has a rich set of modules for scientific computing, and its
popularity in scientific computing is rapidly growing.
- Python was made for being combined with compiled languages
(C, C++, Fortran) to reuse existing numerical software and to
reach high computational performance of new implementations.
- Python has extensive support for administrative task
needed when doing large-scale computational investigations.
- Python has extensive support for graphics (visualization,
user interfaces, web applications).
- FEniCS, a very powerful tool for solving PDEs by
the finite element method, is most human-efficient to operate
from Python.