Project leader: Ola
Skavhaug
Principal investigator: Hans
Petter Langtangen
When studying real-life biomedical processes by numerical
simulation, the amount of computer power needed is almost unlimited.
Hence, the computational efficiency of the underlying software
frameworks greatly affects the range of problems that is possible to
study. Additionally, as biomedical problems are often extremely
complicated, the basic components of software frameworks must be
generic enough to be applicable to a wide range of problems. For
instance, a realistic simulation of a heart beat might involve coupling
models for the electrical pulse through the heart, the elasticity of
the heart when contracting and expanding, and the partially turbulent
blood flow in the heart chambers. One of the major challenges in the
Computational Middleware project is to develop software components that
combine generality and efficiency.
The activity of the Computational Middleware project spans both
academic research and pure software development. The research topics
cover parallel computing, scientific software engineering, the design
of middleware interfaces, and the design of interfaces for coupling
complete simulators. In addition, we develop and maintain a series of
software projects. Some of the most important ones that experienced
significant improvements in 2007 are listed below.
- FEniCS: A collection of
tools with the purpose of automating computational mathematical
modeling. Several international institutions contribute to this
software collection.
- FFC: A compiler
that translates high-level descriptions of finite element variational
forms into efficient C++ code (part of FEniCS).
- SyFi: An alternative to FFC based on symbolic computing of
finite elements (part of FEniCS).
- DOLFIN: A
modern C++ library for the generic tasks in finite element computations
(part of FEniCS).
- PyCC: A problem solving environment for solving partial
differential equations by finite element methods. PyCC is based on SyFi
and DOLFIN.
- F2PY: A tool for convenient coupling of Python and Fortran
code.
- Instant: A tool for inlining efficient C/C++ code in Python
programs.
- UFC: An interface specification for the coupling of general
finite element libraries to problem-specific descriptions of a finite
element problem (part of FEniCS).
- Swiginac: A tool that makes it possible for a Python program
to conveniently access the GiNaC C++ package for symbolic computations
(swiginac.berlios.de).
- SciTools: A set of tools for enhancing Matlab-style
computing and visualization with the powerful Python platform
(code.google.com/p/scitools).
- Viper: A tool based on VTK for convenient visualization of
scalar fields.
The staff in the Computational Middleware project consists of both
researchers and developers, reflecting the dual nature of scientific
software development and engineering.