Multilevel BDDC solver library (BDDCML)

About the project

The goal of this project is to develop and provide a scalable parallel solver of linear equations for systems originating from the finite element computations. The implementation is based on the (Adaptive) Multilevel BDDC method, while reflecting some recent advancements in the field. Codes are written in Fortran 95 with MPI library. A library is provided, which is supposed to be called from users' applications. The library provides a simple interface callable from Fortran and C.

Some remarkable features of the solver include imlementation of the adaptively generated weighted averages on faces on each level as in arXiv:1301.0191, robust face-based selection of corners based on arXiv:0911.1245, arbitrary number of levels of the multilevel method, or continuity of arithmetic averages among subdomains on all faces and edges.

Adaptive-Multilevel BDDC

Balancing Domain Decomposition by Constraints (BDDC) has quickly evolved into a very popular method. However, for very large numbers of subdomain, the coarse problem becomes a large problem to be solved in its own right. In Multilevel BDDC, the coarse problem is solved only approximately by recursive application of BDDC to higher levels.
Adaptive selection of constraints aims at difficult problems. By analysis of the interface between each pair of substructures in the set-up phase, it enriches the coarse space by suitable constraints, which almost optimally reduce the condition number of BDDC.
Their combination, the Adaptive-Multilevel BDDC method, performs the adaptive selection on each level. In this way, it helps to keep the iteration counts low even when using several levels, for which the convergence of the simple Multilevel BDDC method deteriorates.


Jakub Šístek (main contributor, Institute of Mathematics of the AS CR)
Bedřich Sousedík (University of Maryland, Baltimore County)
Jan Mandel (University of Colorado Denver)
Martin Hanek (Czech Technical University in Prague)
Marta Čertíková (Czech Technical University in Prague)
Jaroslav Novotný (Czech Technical University in Prague)
Pavel Burda (Czech Technical University in Prague)
Zhang Changgeng (Nankai University)


We greatly acknowledge the support of

Academy of Sciences of the Czech Republic (RVO:67985840, AV0Z10190503)
Czech Science Foundation (GA ČR 18-09628S, GA ČR 14-02067S, GA ČR 106/08/0403)
IT4Innovations national supercomputing centre (several projects providing supercomputing time)
Ministry of Education, Youth and Sports and American Science Information Center (AMVIS-MŠMT LH11004)
National Science Foundation DMS-0713876 and CNS-0719641
European Commission through HPC-Europa2 project
PRACE research infrastructure through DECI projects HIFLY and HIGHERFLY

Part of the work was done while Jakub Šístek was visiting the University of Colorado Denver in 2007 and 2009.


The library is distributed under the GNU Lesser General Public License v3.


The most recent version can be tracked and downloaded at Git repository, simply by typing

git clone bddcml

Alternatively, you can download the source codes of particular versions below

version 2.6 - bddcml-2.6.tar.gz (11/2/2019), see main changes.

version 2.5 - bddcml-2.5.tar.gz (8/6/2015), see main changes.
version 2.4 - bddcml-2.4.tar.gz (12/3/2014), see main changes.
version 2.3 - bddcml-2.3.tar.gz (10/10/2013), see main changes.
version 2.2 - bddcml-2.2.tar.gz (26/6/2013), see main changes.
version 2.1 - bddcml-2.1.tar.gz (1/5/2013), see main changes.
version 2.0 - bddcml-2.0.tar.gz (23/8/2012), see main changes.
version 1.3 - bddcml-1.3.tar.gz (13/4/2012)
version 1.2 - bddcml-1.2.tar.gz (8/11/2011)
version 1.1 - bddcml-1.1.tar.gz
version 1.0 - bddcml-1.0.tar.gz

Users' manual

version 2.6 - manual_bddcml-2.6.pdf

version 2.5 - manual_bddcml-2.5.pdf
version 2.4 - manual_bddcml-2.4.pdf
version 2.3 - manual_bddcml-2.3.pdf
version 2.2 - manual_bddcml-2.2.pdf
version 2.1 - manual_bddcml-2.1.pdf
version 2.0 - manual_bddcml-2.0.pdf
version 1.3 - manual_bddcml-1.3.pdf
version 1.2 - manual_bddcml-1.2.pdf
version 1.1 - manual_bddcml-1.1.pdf

Mailing list

Users are welcome to subscribe to the bddcml-users mailing list at

and to send any comments and questions to

External software

Apart of standard numerical packages (LAPACK, BLAS), the library relies on the following external packages. See their websites for licensing info.

MUMPS: a MUltifrontal Massively Parallel sparse direct Solver
ParMETIS - Parallel Graph Partitioning and Fill-reducing Matrix Ordering
blopex - parallel preconditioned eigenvalue solvers


The solver has been incorporated into:

OpenFTL (Open Finite element Template Library) package for finite element computations developed at the Computational Structural Mechanics group at the University of Cambridge

AMDiS adaptive finite element solver developed at TU Dresden

Flow123d solver for subsurface flow developed at TU Liberec


If you use the package for research that leads to scientific publications, you can acknowledge this contribution by referring to the following papers.

[1] J. Šístek, J. Březina, and B. Sousedík. BDDC for mixed-hybrid formulation of flow in porous media with combined mesh dimensions. Numer. Linear Algebra Appl., 22(6):903-929, 2015. [paper] [preprint 2] [preprint 1]
[2] B. Sousedík, J. Šístek, and J. Mandel. Adaptive-Multilevel BDDC and its parallel implementation. Computing, 95(12):1087-1119, 2013. [paper] [preprint]
[3] J. Šístek, M. Čertíková, P. Burda, and J. Novotný. Face-based selection of corners in 3D substructuring. Math. Comput. Simulation, 82(10):1799-1811, 2012. [paper] [preprint]
[4] J. Šístek, B. Sousedík, P. Burda, J. Mandel, and J. Novotný. Application of the parallel BDDC preconditioner to the Stokes flow. Comput. & Fluids, 46:429-435, 2011. [paper] [preprint]