Elmer for PDEs

Elmer is an open-source multiphysics simulation software that has been
around since 1995. It is developed by the CSC — IT Center for Science
Ltd. This group is administered by the Ministry of Education, Science
and Culture in Finland. With Elmer, you can model physical systems, such
as fluid dynamics, electromagnetism, heat transfer and acoustics. All
of those problem areas have one thing in common—they are all described
by partial differential equations (PDEs).

A PDE is a differential equation that depends on more than
one variable, usually more than one space variable. For example, an
equation that describes how heat gets transferred across a metal plate,
where a is the thermal diffusivity of the metal plate,
would look like the formula shown in Figure 1.

Figure 1. Sample Equation

Very simple PDEs have exact solutions,
but anything more complex that describes
more physical situations just can't be solved exactly. This is where
numerical solutions come into play. There are three widely used methods:
finite element, finite volume and finite difference methods. Elmer uses
the finite element method. The basic idea is to break up the problem space
into some kind of a mesh of smaller spaces, and then either eliminate
the PDE completely, by reworking it into a steady state problem on the
mesh, or approximating the PDE with a system of ordinary differential
equations that then are integrated using standard methods, like Euler's
method or Runge-Kutta.

Elmer is distributed under the GPL, so you always can download the source
and compile your very own version. Binaries are available for all
those poor users still stuck on Windows. Packages should be available for
most Linux distributions. For Ubuntu-based distros, you
simply can use the following to install Elmer and all the necessary libraries:

sudo apt-get install elmer

Elmer is broken into several parts. ElmerSolver is the
part that actually takes the input files and does the calculations to
evolve the PDE you are interested in. ElmerPost is the
visualization and post-processing tool. With this tool, you actually
can see the results of your calculations. ElmerGrid is the meshing tool
that can create simple 1-D, 2-D and 3-D meshes that will be used to evolve
your PDE. It also can be used to import meshes generated using other
software packages, such as those created using the Ansys tools.

There
also is a GUI interface called ElmerGUI. ElmerGUI allows you to define
and generate input files for ElmerSolver, as well as import external
meshes from other software (Figure 2).

Figure 2. ElmerGUI

Looking at all of this, you may be thinking, "This is
perfect!" So, I also should mention some of Elmer's downsides.
Elmer
actually is a suite of tools, and those tools are not always at the same development
level. The documentation tends to lag behind the newest features, and
ElmerGUI may be missing some of the more esoteric methods and models
that ElmerSolver can use. Elmer is a huge system, and like any large
software package, it has a steep learning curve. The tools available
(ElmerGrid) can handle generating only relatively simple meshes. This
means that if you have a very complicated system, you likely will need
to use some other tool to generate the mesh and then import
it into Elmer. If you can work around these possible deficiencies,
Elmer may be exactly the right solution for you.

ElmerGUI is likely to be what most people prefer using. You
can import element mesh files in various formats, generate element
partitionings for geometry input files, set up the PDE systems you want to
solve, and export model data to hand in to ElmerSolver. Most conveniently,
ElmerGui also provides an interface to the parallel version of the solver,
ElmerSolver.mpi. There also is a built-in post-processor that allows you
to view your results right there from ElmerGUI. The menus in ElmerGUI are
fully programmable as well, so you can tune the interface
to match your specific problem area better.

Joey Bernard has a background in both physics and computer science. This serves him well in his day job as a computational research consultant at the University of New Brunswick. He also teaches computational physics and parallel programming.

Very simple PDEs have exact solutions, but anything more complex that describes more physical situation just can't be solved exactly. This is where numerical slab come into play.Ncr Paper || Form Printing || Ncr Forms

For all but the most trivial problems, (like heat transfer), you will need to play around with the values in the .sif file. The UI does not have the capabilities to do things like mesh building (you will need to use gmsh, or something), much in the way of mesh editing, and sometimes (in complex situations) even assigning boundary conditions in the UI can be tricky.

The documentation is quite extensive and the help from the elmer devs is excellent.

The package is considerably more flexible (though also considerably less UI user friendly) than ANSYS' (very expensive) offering.