Skip to main content

block_diag_ilu is a C++ implementation of an incomplete LU factorization.

Project description

Build status

block_diag_ilu is an open source C++ single header-file implementeation 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 usecase 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 woth a thousant words, so if your matrix looks anything like this:

Diagnoally dominant block diagonal matrix with sub- and super-diagnoals

its LU decomposition then looks like this:

LU decomposition of same matrix

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

WITH_BLOCK_DIAG_ILU_DGETRF

Use unblocked (parallell) internal implementation of LAPACK’s dgetrf (uses OpenMP)

undefined

License

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 https://github.com/chemreac/block_diag_ilu

Author

Björn Dahlgren, contact:
  • gmail adress: bjodah

  • kth.se adress: bda

Project details


Download files

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

Source Distribution

block_diag_ilu-0.2.2.tar.gz (125.0 kB view details)

Uploaded Source

File details

Details for the file block_diag_ilu-0.2.2.tar.gz.

File metadata

File hashes

Hashes for block_diag_ilu-0.2.2.tar.gz
Algorithm Hash digest
SHA256 41d9f097aaf688f0a264ff96c62ca9d91330daede5c75f8e1f8dfeb9d9e52f8f
MD5 e3cafd56eacc7a2a924abd417362a024
BLAKE2b-256 3dfaa2225fbc4901779d5f00da309c0b1deb23cc4ab081c1d68ad944e6d4933f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page