Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

block_diag_ilu is a C++ implementation of an incomplete LU factorization, ILU(0).

Project Description

block_diag_ilu is an open source C++ single header-file implementation of an incomplete LU decomposition routine suitable for diagonally dominant (square) block diagonal matrices with sub- and super diagonals of small magnitude. It is useful for preconditioning linear systems. The use-case in mind is for integrating discretized PDEs of mixed chemical kinetics / diffusion problems where the diffusion process may be accurately considered a mild perturbation.

A picture is worth a thousand words, so if your matrix looks anything like this:

then its LU decomposition then looks like this:

then block_diag_ilu should be able to save quite a bit of time when solving linear systems approximately, e.g. for preconditioning.

Conditional compilation

The following macros affect the compilation:

Macro name Action (when defined) Default
NDEBUG use std::unique_ptr instead of std::vector as underlying data structure. undefined
BLOCK_DIAG_ILUT_WITH_OPENMP factorize blocks in parallel. Set the environment variable BLOCK_DIAG_ILU_NUM_THREADS to control number of threads. undefined
BLOCK_DIAG_ILU_WITH_GETRF Use unblocked (parallell) internal implementation of LAPACK’s dgetrf. undefined will set these when envinronment variables with those are set to “1”.


The source code is Open Source and is released under the very permissive “simplified (2-clause) BSD license”. See LICENSE.txt for further details.

Contributors are welcome to suggest improvements at


Björn Dahlgren, contact:
  • gmail adress: bjodah
  • adress: bda
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
block_diag_ilu-0.3.3.tar.gz (87.1 kB) Copy SHA256 Checksum SHA256 Source Sep 4, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting