In my experience, students of numerical methods enjoy the course
much more if they have a chance to see live demonstrations of the
algorithms in classroom (and they do their programming assignments
with less grumble). This may not necessarily mean additional workload
for the instructor. There are excellent free tools that can be run
from any web browser and they just work. One such example is the JODE
applet for ordinary differetial equations that I will show. The
only shortcoming of this applet is that it does not show how things
are actually done, which is essential for a numerical methods course.
Therefore, we have developed a web notebook based on Python, where
the students can see how the methods are implemented, they can check
them out, and they can implement their own algorithms and make them
easily available to everyone. We will demonstrate this using a few
elementary numerical methods such as the Taylor polynomial, rootfinding,
and polynomial interpolation.
The second part of the talk is specifically about finite element
methods (FEM). Nowadays, many students, researchers, and teams
develop their own FEM codes and make them freely available
via internet. However, it is virtually impossible to compare
their performance and results, or to collaborate on their
development, because of lack of a common platform and design
standards. The open source project FEMhub is aimed at changing
that. Its goals are to:
* Make it very easy to download and install many open source
FEM codes at once.
* Provide easy access to open source tools for geometrical
modeling, mesh generation, and visualization.
* Allow the user to define the problem only once and have it
solved by means of various codes for comparison purposes.
* Provide a browser tool so that all codes in FEMhub are
accessible through the internet, for people who cannot
or do not want to install the package, or do not have the
necessary CPU power.
* Make it possible to run realistic FEM computations from any
classroom equipped with internet access.
* Create a quality assessment procedure and legal certification
mechanism for open source FEM codes. This effort is a joint
project with NIST.
Currently, FEMhub contains the packages SfePy, LibMesh, Phaml,
FiPy and Hermes as FEM engines, lots of tools to ease visualisation
(matplotlib, mayavi, pyglet), and a web notebook which is based on
the Sage notebook. The development is very active and increasingly
more people are contributing on a voluntary basis.