HPDDM
HPDDM is an efficient implementation of various domain decomposition methods (DDM) such as one- and two-level Restricted Additive Schwarz (RAS) methods, the Finite Element Tearing and Interconnecting (FETI) method, and the Balancing Domain Decomposition (BDD) method. These methods can be enhanced with deflation vectors computed automatically by the framework.
Overview
Repository
License
- OSS
LGPL v*
Documentation
Discussion
GitHub Issues (github.com/hpddm/hpddm/issues)__
1. Criteria Evaluation
1.1. Packaging
Software should be packaged (preferably using Spack or Guix package formats) and published in public repositories.
-
Packages exist
-
Available in Spack
-
Available in Guix-HPC
-
Docker image available
-
Apptainer/Singularity available
-
Spack: github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/hpddm/package.py
1.2. Testing & CI/CD
Software should include validation tests triggered through automated mechanisms.
-
Unit tests exist
-
Continuous Integration configured
-
CI runs on each release
-
Benchmarking tests exist
1.3. Repository & Contributions
-
Public source repository available
-
Supports contributions via pull requests
Repository: github.com/hpddm/hpddm
1.4. License
Sources should be published under a clearly-identified free software license.
-
License clearly stated
-
FLOSS license (FSF/OSI conformant)
-
SPDX identifiers used
-
REUSE compliant
-
LGPL v*
1.5. Documentation
-
Documentation exists
-
Easily browsable online
Documentation: github.com/hpddm/hpddm/blob/main/doc/cheatsheet.pdf
3. Technical Details
Languages: C, C++, Fortran, Python
Parallelism: MPI, Multithread - OpenMP, GPU - Cuda
Data Formats: in-house format
5. Used by Applications
The following Exa-MA applications use HPDDM:
| Application | Type | Status |
|---|---|---|
Preconditioning systems arising from discrete fracture networks |
Mini App |
Benchmark Ready |