Biomedical Engineering Reference
In-Depth Information
take advantage of both the new modelling standards and repositories and the increas-
ing move (in the academic world at least) to freely available Open Source software.
The OpenCMISS project was therefore begun in 2005 as an Open Source collabora-
tion between the University of Auckland in New Zealand and the University of Ox-
ford in the UK. This collaboration was extended last year to include King's College
London, Universitat Pompeu Fabra, Barcelona, Spain, the Norwegian University of
Life Sciences and the University of Stuttgart, Germany. This year, the Shenzhen
Institute of Advanced Technology, in Shenzhen, China, has also joined.
The OpenCMISS code has been developed over the last six years as a distributed-
memory code to replace the shared-memory CMISS code that has supported a num-
ber of organ system physiome projects, including the cardiac physiome project and
a number of similar projects on the lungs, digestive system and musculo-skeletal
system.
The design requirements for the OpenCMISS code are that it encompasses multi-
ple sets of physical equations (such as finite elasticity coupled with fluid mechanics
and reaction-diffusion) and that it links subcellular and tissue level biophysical pro-
cesses into organ level processes. In the heart physiome project, for example, the
large deformation mechanics of the myocardial wall need to be coupled to both ven-
tricular flow and embedded coronary flow, and the reaction-diffusion equations that
govern the propagation of electrical waves through myocardial tissue need to be
coupled with equations that describe the ion channel currents that flow through the
cardiac cell membranes.
Design goals
The first goal is that OpenCMISS should be a flexible library rather than a large
monolithic application. A library-based code means that it is considerably easier to
incorporate physiome and bioengineering models into clinical or commercial ap-
plications as a library that can be wrapped by a customized interface. The library
should be modular, extensible and programmable. This allows for the library itself
to be customized and/or extended in whatever way is appropriate for the end appli-
cation.
The second design goal is generality. Previous experience with the CMISS mod-
elling environment indicated the importance of developing code in as general a way
as possible. Generalized data structures, in which the data for diverse modelling
problems are expressed in a common format, allow for easier coupling between dif-
ferent problems. This is especially true for future, unforeseen, coupled problems
that may arise from future applications. The goal of generality does, however, often
mean that there is some trade-off with the computational performance of code. As
the computational size of physiome and bioengineering models can be very large it
is extremely important that computational performance is carefully considered. But
it is our view that it is better to optimize a more general code armed with the knowl-
edge of exactly what the problem is than to prematurely optimize a specific code
which could then limit the applicability of that code.
The third design goal is that OpenCMISS should be an inherently parallel code
and that the parallel environment should be as general as possible. As the compu-
Search WWH ::




Custom Search