block_diag_ilu is a C++ implementation of an incomplete LU factorization.
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:
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_ILU_WITH_DGETRF |
Use unblocked (parallell) internal implementation of LAPACK’s dgetrf. |
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file block_diag_ilu-0.2.3.tar.gz.
File metadata
- Download URL: block_diag_ilu-0.2.3.tar.gz
- Upload date:
- Size: 131.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adf3d4e7e346e110fea7fcdd22019ab057782728d61f6eb4d0c72e8d71191bfd
|
|
| MD5 |
2ff5e04b01abf2e93b6612a57c08d393
|
|
| BLAKE2b-256 |
369ba3a0288c0d7565142795922dfe80047803e7216c0f75536c5c59d46992c7
|