Sections

Skip to content. | Skip to navigation

You are here: Home Research Automated and Distributed Computing




Associate Professor
Anders Logg
Senior Research Scientist
logg@simula.no
+47 488 98 364

The Automated and Distributed Computing group (AC/DC) conducts research on novel computational methods for automated and efficient solution of differential equations. Automated computing allows a scientist or engineer to model complex problems by differential equations and compute accurate numerical solutions with minimal manual effort.

Research focus

 

Together with colleagues around the world, we are working to implement a software system to realize the vision of automated computing based on automated code generation. The software is distributed as free/open source software as part of the FEniCS Project. Another important research area is adaptive finite element methods, with a particular focus on fluid-structure interaction. We also investigate distributed computing for efficient solution on modern architectures, including traditional message passing techniques and stream processing on GPUs.

Research projects


The FEniCS project

The FEniCS project was initiated at the University of Chicago in 2003 as a collaborative project towards the development of a mathematical framework and software for automated solution of  differential equations. The automated and distributed computing group is actively involved in the FEniCS project as developers and maintainers. Our main focus is on the development of DOLFIN, FFC, UFC, UFL, ASCoT, Dorsal and CBC.Solve, as well as packaging and distribution of FEniCS for various platforms.

Automated error control

Automated error control allows a researcher to specify a differential equation, a functional of interest and an error tolerance, and then automatically compute an approximate numerical solution of the differential equation by the press of a button such that the error in the functional of interest is less than the given tolerance.

 

 

Automated error control has far reaching implications on computational modeling since it allows a researcher to target a computation at a specific quantity of interest, like for example the shear stresses in a specific region, and to obtain reliable numerical results with error bounds.

We are currently developing a new framework for automated error control. At this point, we have developed a proof-of-concept implementation that we plan to improve and distribute as part of FEniCS (DOLFIN).

Solver infrastructure for continuum mechanics

We have initiated work on a new solver infrastructure for simple and efficient FEniCS based solvers implemented in Python. The solver collection named CBC.Solve currently consists of three solvers:

  • CBC.Beat, bidomain equations (in progress)
  • CBC.Flow, incompressible Navier-Stokes
  • CBC.Twist, hyperelasticity

The solver collection is made publicly available as free/open-source software as part of the FEniCS project. As part of CBC.Twist, we have implemented a general nonlinear elastic solver. The  solver allows one to easily pose problems and provides many standard material models, including Mooney-Rivlin, neo-Hookean, Isihara, Biderman, Gent-Thomas and linear elasticity. New models may be added easily. Both a static and an energy-momentum preserving time-dependent solver are provided.

Adaptive finite element methods for fluid-structure interaction

Many important problems of biomedical interest involve the solution of challenging fluid-structure interaction problems. It is then important to adaptively refine the computational mesh to make efficient use of computational resources. In fluid-structure interaction problems, the mesh must be refined based on a complex interplay between the three equations that compose the fluid-structure interaction problem: the fluid problem (Navier-Stokes), the structure problem (hyperelasticity) and an auxiliary problem that accounts for the displacement of the fluid mesh. We are currently working on an aposteriori error analysis of the fully coupled fluid-structure interaction problem and adaptive algorithms based on the error analysis.

Adaptive finite element methods on overlapping meshes

As an alternative to the standard ALE (Arbitrary Lagrangean-Eulerian) formulations of fluid-structure interaction on matching meshes, where stresses may be exactly mapped from one mesh to the other, we consider the use of Nitsche's method (discontinuous Galerkin formulations) on overlapping non-matching meshes. If the structure undergoes large deformation, difficulties may arise as a result of the corresponding large deformations of the fluid mesh. A promising alternative approach is to apply Nitsche's method for overlapping non-matching meshes to allow the fluid mesh to move independently of the structure mesh. The implementation is challenging, especially in 3D, since it involves the detection of arbitrary intersections between meshes. We have recently developed new functionality for mesh intersection based on the computational geometry library CGAL, and we are continuing to implement the full set of functionality needed for realization of Nitsche's method as part of DOLFIN.

Applications

As an application of FEniCS, CBC.Solve and our framework for automated error control, we are considering challenging fluid and fluid-structure interaction problems of biomedical relevance. One such problem is the simulation of airflow and particle deposition in the human airways. The lung geometry is a bifurcating tree of bronchi and bronchioles, where each bifurcation is unique and asymmetric. The lack of symmetry and the wide variety of different bifurcations makes meshing a difficult task. We have developed a special-purpose mesh generator to mesh the lung geometry. The solution of the incompressible Navier-Stokes equations on the full lung geometry is a challenging problem. Two main techniques to reduce the computational cost are considered: adaptive mesh refinement and adaptive model reduction.

Distributed computing

Special care must be taken to leverage the resources of modern high performance computer architectures and several different approaches exist. Three such technologies are conventional  clusters, clusters enhanced with accelerators and low cost workstations enhanced with accelerators. Acceleration by GPU has come to the fore in recent years. However, GPUs are difficult to program. In this project, we investigate programming techniques to realize high performance computing on GPUs, with a particular focus on acceleration of finite element algorithms.

Computability of dynamical systems

Computational models of nature often take the form of dynamical systems. Sometimes, these systems exhibit solutions which are chaotic and notoriously difficult to compute. One important example is turbulent solutions of the Navier-Stokes equations. Another example is the Lorenz system, a seemingly simple system of three ordinary differential equations with chaotic solutions. We are currently investigating and quantifying the computability of some simple dynamical systems with a particular focus on long-time predictability and computability.

 

 

Personal tools