News on deal.II

2016/07/05: step-55 and step-56 discuss options for advanced Stokes solvers
The new tutorial programs step-55 (contributed by Timo Heister) and step-56 (contributed by Ryan Grove) show how the existing Stokes solver in step-22 can be extended in parallel and using geometric multigrid, respectively. step-55 therefore fills a hole in demonstrating parallel computing at a complexity level between step-40 (the Laplace equation) and step-32 (the much more complex Boussinesq problem). step-56 extends the simple multigrid solver in step-16 to a vector-valued problem.
2016/04/14: Results of the deal.II user survey available
Earlier this year, we asked our users for feedback about deal.II in a user survey. The results of this survey are now available in this summary of responses.
2016/03/15: Version 8.4.0 released
deal.II version 8.4.0 was released today. A full list of changes can be found here. Download links are on the download page, or the release page on github.
2015/12/07: Deal.II Users and Developers Training Announcement is out!
The deal.II Users and Developers training to be held in Trieste (Italy) from the 21st to the 24th of March 2016. More information on the workshop webpage.
2015/09/01: Users and Developers Workshop 2015 slides are posted
The slides of talks at the Fifth Users and Developers Workshop are now available at here.
2015/08/01: Version 8.3 released
deal.II version 8.3 was released today. A full list of changes can be found here. Download links are on the download page, or the release page on github.
2015/03/10: Users and Developers Workshop 2015 announcement is out!
The Fifth Users and Developers Workshop will happen August 3-7, 2015 in College Station, TX. For more information, see here. The registration deadline is April 15, 2015.
2015/01/01: Version 8.2 released
deal.II version 8.2 was released today. A full list of changes can be found here. Download links are on the download page, or the release page on github.
2014/11/06: step-54 describes dealing with OpenCascade geometries
step-54 (developed by Andrea Mola and Luca Heltai) demonstrates how to use existing IGES CAD files to describe the boundary of your geometry. This is the first example that uses the new support for the OpenCASCADE ( library.
2014/10/13: step-52 introduces time steppers
step-52 (developed by Bruno Turcksin and Damien Lebrun-Grandie) explains how to use deal.II's built-in time stepping methods, including explicit, implicit, and embedded Runge-Kutta methods.
2014/09/02: step-53 shows complex geometries
step-53 demonstrates how to work with the new framework on deforming meshes contributed by Luca Heltai earlier this summer. In particular, it shows how to create a mesh that corresponds to a realistic topography of eastern Africa, but the techniques shown there are of course much more broadly applicable.
2014/07/20: deal.II is now hosted on github
After having used subversion for more than ten years, deal.II has now moved to a github repository to make it simpler for people to contribute. Links and a brief description of how to get the development sources from there can be found at the download page.
2013/12/24: Version 8.1 released
deal.II version 8.1 was released today. A full list of changes can be found here. deal.II can be downloaded at this site.
2013/12/18: step-26 for the heat equation
step-26 fills a long-standing gap: There was no tutorial program solving the heat equation. There was also no tutorial showing in relatively easy terms how to do adaptive meshes in time dependent problems. This program fills both of these needs.
2013/11/01: step-42 solves an elasto-plastic contact problem
step-42, written by Jörg Frohne, Timo Heister and Wolfgang Bangerth, shows how to solve an elasto-plastic contact problem. The program is an extension of step-41 to a much more complex equation (nonlinear elasto-plasticity) and also demonstrates how to compute solutions for such problems in parallel.
2013/10/01: step-51 implements an HDG method
step-51, contributed by Martin Kronbichler and Scott Miller, implements a hybridized discontinuous Galerkin method for the scalar convection-diffusion equation. The method uses standard DG terms for describing the element interior but couples the local sub-problems using face elements. The local contribution is eliminated from the global linear system by a static condensation process.
2013/07/24: Version 8.0 released
deal.II version 8.0 was released today. This is a major new release, featuring the conversion of the configuration and build system to CMake, support for parallel computations with more than 4 billion unknowns, and many more. A full list of changes can be found here.
deal.II can be downloaded at this site.
2013/06/05: 64-bit version of deal.II
Because the global dof index variables in deal.II were of type unsigned int, it was not possible to create a dof_handler with more than 4.3 billions of unknowns. The 64-bit version of deal.II uses unsigned long long int and thus, allows for 18e18 unknowns.
2013/03/07: Build system switched to CMake
After having used Autoconf as the configuration and build system since the beginning of deal.II in 1997, we have now switched to CMake. This implementation, contributed by Matthias Maier of Heidelberg University, has taken more than half a year, consists of more than 10,000 lines, and touches every aspect of the installation process. It provides a more modern interface to and more reliable way of interacting with other packages. Furthermore, it no longer relies on shell scripts and therefore integrates more easily with integrated development environments as well as Microsoft Windows without Cygwin.
2013/02/27: Version 7.3 released
Version 7.3.0 was released today. This release provides one new tutorial, work on parallel linear algebra, the new FE_Q_DG0 element, and a large number of enhancements and bug fixes throughout the entire library. A complete list of new features is found here.
2012/09/03: Version 7.2 released
Version 7.2.0 was released today. This release provides four new tutorial programs, a framework for matrix-free computations, and a large number of enhancements and bug fixes throughout the entire library. A complete list of new features is found here.
2012/06/06: step-43 — an efficient solver for two-phase flow
The step-21 tutorial program was the first program in the deal.II tutorial to demonstrate the solution of two-phase flow problems, but it suffered from the fact that it was very slow. step-43 demonstrates some of the techniques that can be used to make solvers for such problems more efficient and accurate.
2012/06/03: New step-15
Step-15 used to be a program that demonstrated techniques for solving a rather quirky, nonlinear, 1d problem. It was an interesting problem, but it served little purpose in teaching deal.II or in demonstrating nonlinear solution techniques. It has now been replaced by a more illustrative example, contributed in large part by Sven Wetterauer, in which we solve the nonlinear elliptic minimal surface equation using a Newton iteration.
2012/05/05: Matrix-free implementation framework
A matrix-free framework has been contributed by Katharina Kormann and Martin Kronbichler. The implementation is memory efficient and includes parallelism via MPI for distributed meshes, threads for shared-memory computations, and usage of processors' vector units. The two new tutorial programs step-37 (multigrid solver) and step-48 (nonlinear wave equation with distributed grid) demonstrate the new features.
2012/04/02: step-44 — a finite strain elasticity solver
step-44, contributed by Andrew McBride and Jean-Paul Pelteret, demonstrates one approach to modelling large deformations of nearly-incompressible elastic solids. The elastic response is governed by a non-linear, hyperelastic free-energy function. The geometrical response is also nonlinear, i.e., the program considers finite deformations.
2012/04/02: step-41 solves the obstacle problem
step-41, a program contributed by Jörg Frohne, shows how to solve the obstacle problem. This problem describes the deformation of a body subject to an inequality constraint that arises from the fact that the deformation is constrained by contact of the body with some external obstacle. The program uses the primal-dual active set method to solve this problem.
2011/10/09: Version 7.1 released
Version 7.1.0 was released today. This release provides two new tutorial programs and many smaller enhancements throughout the entire library. A complete list of new features is found here.
2011/10/06: step-32, a massively parallel thermal convection solver
Long in the making, the step-32 tutorial program demonstrates how to solve the Boussinesq equations describing thermal convection on large numbers of processors.
2011/04/30: step-46 demonstrates coupling different models on different parts of the domain
step-46 shows how to couple different models defined on subsets of the domain, in this case Stokes flow around an elastic solid. The trick here is that variables (here the flow velocity and pressure, and the solid displacement) do not live on the entire domain, but only on a part. The point of the program is how to represent this in source code.
2011/01/09: Version 7.0 released
Version 7.0.0 was released today. This release is a huge step forward, with several significant new features such as support for thousands or tens of thousands of processors. A complete list of new features is found here.
2011/01/02: step-38 shows how to solve partial differential equations on curved manifolds
The new step-38 program, contributed by Andrea Bonito and M. Sebastian Pauletti, shows how to discretize and solve partial differential equations posed on curved manifolds embedded in higher dimensional spaces.
2010/12/20: Graphical frontend to edit parameter files
Contributed by Martin Steigemann, deal.II now has Qt based graphical user interface to edit input parameter files for the ParameterHandler class. The executable is located in lib/bin/dealii_parameter_gui.
2010/10/25: New directory and library structure
deal.II has had a somewhat quirky directory and library structure for historical reasons, but this has now changed: All include and source files are now under the top-level include/ and source directories. Furthermore, we no longer build a plethora of libraries but only (debug version) and (optimized version). In particular, we no longer build different versions of the library for different space dimensions.
2010/10/23: Distributed mesh functionality available
After more than 2 years of work by Timo Heister, Martin Kronbichler, and Wolfgang Bangerth, and with help by Carsten Burstedde, we have merged a branch on which we have implemented the functionality necessary to distribute meshes on hundreds, thousands, or more processors. An overview of the framework in which this is implemented is presented in a documentation module, an accompanying paper, as well as in the new step-40 tutorial program.
2010/07/18: Version 6.3.1 released
Version 6.3.1 was released today. This release addresses a number of problems in release 6.3.0 related to compatibility with certain compilers, operating systems, and versions of external libraries. A list of changes between versions 6.3.0 and 6.3.1 can be found here.
2010/06/25: deal.II on Facebook
We built a facebook page titled deal.II today. Please, feel free to join us there!
2010/06/25: Version 6.3 released
Version 6.3.0 was released today, containing several new tutorial programs, a new threading framework and a framework for assembling linear systems by just providing the local integrals. A complete list of changes between versions 6.2.0 and 6.3.0 can be found here.
2010/06/24: step-39 solves Poisson's equation with the interior penalty discontinuous Galerkin method on adaptively refined meshes with multigrid
Using the MeshWorker framework, this program highlights the fact that loops over meshes are very generic and that building matrices and level matrices and evaluating error estimates are really the same task.
2010/06/24: The Meshworker framework has been released
Using its generic loop and the provided auxiliary classes, this framework relieves the application programmer from coding loops over cells, faces, and subfaces, such that focus can remain on implementation of the local integrals.
2010/06/23: step-45 shows periodic boundary conditions
Contributed by Markus Bürg, the new tutorial program step-45 demonstrates an often requested feature: periodic boundary conditions.
2010/02/13: New multigrid, new step-16
Over the last few months, the multigrid implementation has seen significant rewrites, with much of the work done by Bärbel Janssen. The goal — now achieved — was to finally fully support multigrid also for continuous finite elements on adaptively refined meshes (uniformly refined meshes and discontinuous elements have worked for a long time). As part of this process, step-16 has been rewritten and now solves the same problem step-6 solves, just with a multigrid solver.
2009/10/07: step-35 shows the solution of the Navier-Stokes equations
Step-35, a tutorial program contributed by Abner Salgado-Gonzalez, shows an implementation of a projection scheme for the numerical solution of the Navier-Stokes equations.
2009/07/30: New tutorial program step-36
The new step-36 tutorial program, contributed by Toby D. Young and Wolfgang Bangerth, shows how to solve eigenvalue problems, using the Schrödinger equation as an example.
2009/06/05: Version 6.2.1 released
deal.II version 6.2.0 contained a couple of minor but annoying bugs in its interaction with PETSc. The documentation package also did not include any typeset formulas. Release 6.2.1 corrects these mistakes. A complete list of changes between versions 6.2.0 and 6.2.1 can be found here.
2009/04/27: Version 6.2 released
Version 6.2.0 was released today! A complete list of changes between versions 6.1.0 and 6.2.0 can be found here.
2009/04/14: New tutorial program step-34
step-34, written by Luca Heltai, demonstrates the ability of deal.II to discretize and solve boundary integral equations on curved manifolds.
2008/12/05: Support for meshes embedded in higher dimensions
Based on work by Cataldo Manigrasso and Luca Heltai developed over the last few months on a branch, deal.II now supports meshes that are embedded in higher space dimensions. This allows, for example, to solve equations on the surface of a sphere (e.g. to use boundary element methods for exterior problems).
2008/11/14: New tutorial program step-31
The latest tutorial program, step-31, is contributed by Martin Kronbichler and Wolfgang Bangerth and shows the solution of the Boussinesq approximation to thermally driven convection in an incompressible fluid.
2008/09/10: New tutorial program step-28
step-28, contributed by Yaqi Wang, illustrates the solution of a coupled system of diffusion equations relevant to nuclear reactor physics where we use different meshes for different components of a vector-valued solution.
2008/08/21: deal.II now exceeds of 400,000 lines of code
Since today, deal.II has more than 400,000 lines of code. The rate of growth continues to be close on par with the 3000 lines of code per month that we have had over many years already, with no signs of abating activity!
2008/07/08: Support for anisotropic mesh refinement
Contributed by Tobias Leicht as well as Ralf Hartmann, deal.II now supports anisotropic refinement of meshes. This functionality is explained in the step-30 tutorial program.
2008/05/28: Version 6.1 released
Version 6.1.0 was released today! A complete list of changes between versions 6.0.0 and 6.1.0 can be found here.
2008/05/23: step-33 illustrates the Euler equations
step-33, a tutorial program written mostly by David Neckels, illustrates how the Euler equations of compressible inviscid gas dynamics can be solved. More generally, the program also provides a framework for the solution of arbitrary hyperbolic, nonlinear conservation laws.
2008/03/28: step-22 demonstrates solving the Stokes equations
The new step-22 tutorial program, written by Martin Kronbichler and Wolfgang Bangerth, shows how to solve, and in particular how to solve efficiently, the Stokes equations that describe viscous incompressible fluid flow.
2007/10/31: step-29 tutorial program added
Contributed by Moritz Allmaras, the step-29 tutorial program explains how problems involving complex numbers can be treated in deal.II. In the example, the complex-valued solution to a Helmholtz equation is split into real and imaginary parts and a vector-valued finite element field is used to discretize them seperately. The program also demonstrates how quantities derived from the finite element solution can be directly included in the output by using the new DataPostprocessor class.
2007/09/07: Version 6.0 released
Version 6.0.0 was released today! A complete and long list of changes between versions 5.2.0 and 6.0.0 can be found here.
2007/08/09: step-27 demonstrates hp technology
The new step-27 tutorial program finally demonstrates how to use the hp finite element technology that has been part of deal.II for some 18 months now. It solves a Laplace equation with hp finite elements and shows how to set finite element degrees, assemble matrices on cells with varying polynomial degrees, and how to compute a simple criterion for estimating the local Sobolev smoothness of a function.
2007/07/16: Wilkinson Prize
The principal authors of deal.II—Wolfgang Bangerth, Ralf Hartmann and Guido Kanscht—have received the J. H. Wilkinson Prize for Numerical Software for their creation of and work on the deal.II library. The prize committee particularly noted the reliability and usability of the software and the quality of the documentation.

We want to take the opportunity to thank our user community for their support over the years that kept us working on this software. We consider this award motivation to continue this work!

2007/02/09: Support for previously unorientable meshes
Up to now, in 3D only 'orientable' meshes could be used in deal.II, where all lines are in standard orientation and the faces can be either in standard orientation or with a reversed normal. This has been generalized such that now all hexahedral meshes can be used.
2006/10/30: step-21 is finished
Step-21 demonstrates the time dependent flow of a multiphase fluid through a porous medium. It is an extension of step-20, using a mixed formulation and block solvers.
2006/10/03: step-23/24/25 are finished
The step-23, step-24 and step-25 tutorial programs have been added, demonstrating how to solve the time dependent wave equation and a nonlinear variant of it, the sine-Gordon equation.
2006/08/24: deal.II is now part of the SPEC CPU 2006 benchmark
A modified version of the deal.II library and the step-14 tutorial program has been incorporated into the industry standard SPEC CPU 2006 benchmark testsuite that is used to determine the speed of computers. It is part of the floating point testsuite CFP2006 as benchmark 447.dealII.

The inclusion of our software into an industry standard benchmark testsuite will lead to better support of compilers and machines for the kind of program we write, in particular for unstructured hierarchical mesh computations. This will in turn help make our codes run faster on future systems.

2006/2/12: step-20 is finished
The new step-20 tutorial program shows how to use Raviart-Thomas elements to solve a mixed formulation of the Laplace equation. It also demonstrates the use of block matrices and vectors, and how they can be used to define more complex solvers and preconditioners working on the Schur complement.
2006/1/3-5: First User Workshop
After 8 years of existence, it was time to have the first user meeting. During a 3-day workshop held in Heidelberg, topics of software development, use of deal.II for applications, and future directions were discussed by about a dozen developers and users.
2005/12/20: hp functionality merged
After the code had been developed and maintained on a branch for 3 years by Oliver Kayser-Herold and Wolfgang Bangerth, it has now been merged into the main development, and will be available for the next release.
2005/09/17: Version 5.2 released
Version 5.2.0 was released today! A complete and long list of changes between versions 5.1.0 and 5.2.0 can be found here.
2005/09/09: Two more tutorial programs
Two more tutorial programs, step-18 and step-19, are now available. step-18 shows how to solve time-dependent but quasi-static elasticity programs in parallel. step-19 demonstrates some data handling and parameter file techniques.
2005/03/29: deal.II now has a Wiki
Hosted by Luca Heltai, there is now a wiki. See the link from the deal.II front page. Users of deal.II are encouraged to visit it, and, as is usual with wikis, edit pages freely and post their experiences and code snippets they want others to know about.
2005/03/07: Function parser library integrated
Luca Heltai has contributed code that integrates a third party function parser library) that takes a string describing a mathematical function, and returns an object that can be used in all places where function objects are used in deal.II.
2004/12/24: Version 5.1 released
Version 5.1.0 was released today! A complete and long list of changes between versions 5.0.0 and 5.1.0 can be found here.
2004/10/21: Qr elements of arbitrary order now support hanging node constraints also in 3d
Lagrange elements previously had hanging node constraint matrices hard coded in 3d, which were only available for r=1,2. Thanks to code written by Oliver Kayser-Herold, this information is now computed on-the-fly, which allows the use of Lagrange elements of arbitrary order also in 3d on meshes with hanging nodes.
2004/05/25: Version 5.0 released
Version 5.0.0 was released today! A complete and long list of changes between versions 4.0.0 and 5.0.0 can be found here.
2004/03/08: Interfaces to PETSc and METIS
In order to support parallel computations, we now have interfaces to both the PETSc library for sequential and parallel linear algebra, as well as to the METIS library for domain partitioning.
2004/03/08: MIPSpro compiler version 7.41 supported
deal.II now also supports compilation on SGIs by the MIPSpro compiler version 7.41.
2003/06/06: Version 4.0 released
After one year, we made it and released Version 4.0.0 today! A complete list of changes between versions 3.4.0 and 4.0.0 can be found here.
2003/04/27: deal.II now exceeds of 200,000 lines of code
Since today, deal.II has now more than 200,000 lines of code. The rate of growth continues to be close to 3000 lines of code per month.
2003/01/24: deal.II runs on AIX 5.1
Using gcc3.2, deal.II can now also be compiled on AIX systems with the PowerPC chip.
2002/12/18: deal.II runs on Mac OS X 10.2
Some changes have been made to allow compiling and running deal.II on Mac OS X 10.2 systems.
2002/12/05: Intel ICC 7.0 compiler supported
deal.II now also supports compilation by the recently released Intel icc 7.0 compiler.
2002/06/28: deal.II 64-bit ready
deal.II also runs on 64-bit systems without changes, as tests on a Sparc machine with Solaris 9 in 64-bit mode have shown. We also have reports of people running deal.II on IA64 systems.
2002/06/06: Version 3.4 released
Today, version 3.4 of the deal.II library has been released. A complete list of changes between versions 3.3.0 and 3.4.0 can be found here.
2002/05/22: Intel ECC Itanium compiler now supported
aclocal.m4 has been changed to detect the Intel ECC compiler for Itanium systems. The ECC compiler can produce optimized code for Intel's new IA-64 architecture.
2002/03/07: New web home and new email addresses
The deal.II homepage has been moved to Also the email addresses have been changed. Though the old web home and the old addresses will be supported for some time we recommend to adjust the bookmarks and mail addresses accordingly.
2002/02/01: Version 3.3 released
Today, version 3.3 of the deal.II library has been released. A complete list of changes between versions 3.2.0 and 3.3.0 can be found here.
2002/01/31: deal.II now consists of 160,000 lines of code
All .cc and .h files of deal.II now sum up to more than 160,000(!) lines of code. deal.II continues to grow with a rate almost constant at 3000 lines of code per month.
2001/09/28: Version 3.2 released
After a long phase of implementation and testing, we today released version 3.2 of the deal.II library. There are many changes between version 3.1 and release 3.2. A complete list of these changes can be found here.
2001/07/06: Compaq's cxx compiler supported
The present development version now also supports compilation by Compaq's cxx compiler. See the ReadMe file for more information on using this compiler.
2001/06/28: deal.II 3.1.2 released
Version 3.1.2 is a bug-fix release based on 3.1. A list of changes between the two versions can be found on this page.
2001/05/23: Intel ICC compiler supported
The present development version of the library is now fixed so that it can also be compiled by Intel's ICC C++ compiler for Linux.
2001/05/17: deal.II 3.1.1 released
Version 3.1.1 is a bug-fix release based on 3.1. A list of changes between the two versions can be found on this page.
2001/02/26: Support for Subroutines from the Harwell Subroutine Library (HSL)
The Harwell Subroutine Library (HSL) is a library that, among much other functionality, offers some sparse direct solvers. We have added support for an interface to these solvers to the library.
2001/02/20: Version 3.1 released
After a long testing phase, we today released version 3.1 of the deal.II library. There are many changes between version 3.0 and release 3.1. A complete list of these changes can be found here.
2000/08/07: deal.II 3.0.1
Version 3.0.1 is a bug-fix release based on 3.0. A list of changes between the two versions can be found on this page. (Announcement)
2000/04/13: deal.II 3.0 announced
Today, after 2½ years of development and testing, the first public release of the deal.II library was announced (full text).