{"id":16692899,"url":"https://github.com/prj-/aldaas2021robust","last_synced_at":"2025-10-24T04:05:02.170Z","repository":{"id":37698672,"uuid":"384943601","full_name":"prj-/aldaas2021robust","owner":"prj-","description":"A Robust Algebraic Domain Decomposition Preconditioner For Sparse Normal Equations","archived":false,"fork":false,"pushed_at":"2024-09-02T17:20:38.000Z","size":11232,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-18T21:21:39.093Z","etag":null,"topics":["c","domain-decomposition","fortran","least-squares","mpi","petsc","preconditioners","python"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prj-.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-11T12:34:17.000Z","updated_at":"2024-09-02T17:20:41.000Z","dependencies_parsed_at":"2023-01-23T04:30:16.031Z","dependency_job_id":"7d653243-f6d3-4919-871f-7b6df5ba9067","html_url":"https://github.com/prj-/aldaas2021robust","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"214c065dbe2614768f1f644e7d61bff009869af6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prj-%2Faldaas2021robust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prj-%2Faldaas2021robust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prj-%2Faldaas2021robust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prj-%2Faldaas2021robust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prj-","download_url":"https://codeload.github.com/prj-/aldaas2021robust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245115962,"owners_count":20563262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","domain-decomposition","fortran","least-squares","mpi","petsc","preconditioners","python"],"created_at":"2024-10-12T16:28:46.412Z","updated_at":"2025-10-24T04:05:02.071Z","avatar_url":"https://github.com/prj-.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Robust Algebraic Domain Decomposition Preconditioner for Sparse Normal Equations\n\n\u003e A parallel implementation of the preconditioner suitably interfaced with the PETSc library.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/prj-/aldaas2021robust/raw/main/header.png\" height=\"300\"\u003e\u003c/p\u003e\n\nThe code available in this repository can reproduce the results from the following [paper](https://epubs.siam.org/doi/abs/10.1137/21M1434891).\n```\n@article{aldaas2021robust,\n    Author = {Al Daas, Hussam and Jolivet, Pierre and Scott, Jennifer A.},\n    Title = {A Robust Algebraic Domain Decomposition Preconditioner for Sparse Normal Equations},\n    Year = {2022},\n    Journal = {SIAM Journal on Scientific Computing},\n    Pages = {A1047--A1068},\n    Volume = {44},\n    Issue = {3},\n    Url = {https://github.com/prj-/aldaas2021robust}\n}\n```\n\n## Getting started\n### Dependencies\nMake sure you have access to a recent [PETSc](https://petsc.org/) installation (version 3.18.0 or above), configured with the options `--download-slepc --download-hpddm`, using 32-bit indices, double-precision real-valued scalars (`--with-64-bit-indices=0 --with-precision=double --with-scalar-type=real`).  \nThen, after setting the appropriate environment variable `${PETSC_DIR}` and `${PETSC_ARCH}` compile the single C source file from the repository with the following command.\n```\n$ make sparse_ls\n```\nWhen using Fortran, the above command should read `make sparse_ls_f` instead.  \nWhen using Python, make sure that petsc4py is visible in your environment variable `${PYTHONPATH}`, e.g., `PYTHONPATH=${PYTHONPATH}:${PETSC_DIR}/${PETSC_ARCH}/lib`.\n\n### Usage example\nOne should be able to launch the following commands, which solve respectively the linear least-squares problems associated to mesh_deform and lp_stocfor3 from the SuiteSparse Matrix Collection.\n```\n$ mpirun -np 4 ./sparse_ls -mat_name datafiles/mesh_deform.dat -options_file default.rc -pc_type hpddm\n$ mpirun -np 4 ./sparse_ls -mat_name datafiles/lp_stocfor3.dat -options_file default.rc -pc_type hpddm\n```\nThe command line option `-pc_type` may also be set to `asm`, `hypre` (if PETSc has been configured with `--download-hypre`), `gamg`, `qr` (if configured with `--download-suitesparse`), or whatever the user feels like trying out.  \nAll the other matrices are available at the following URL: `http://joliv.et/aldaas2021robust/mat_name.ext`, where `mat_name` is any of the identifier from the paper, and `ext` is either `dat` (PETSc binary format) or `mat` (MATLAB binary format).  \nHere are two examples: http://joliv.et/aldaas2021robust/Hardesty2.dat and http://joliv.et/aldaas2021robust/cont11_l.mat. Matrices supplied through the command-line option `-mat_name` must always be in PETSc binary format. `.mat` files are merely provided for an easier inspection in MATLAB, e.g., using the [spy](https://mathworks.com/help/matlab/ref/spy.html) command.\n\n## Acknowledgements\n* HPC resources of [TGCC@CEA](http://www-hpc.cea.fr/index-en.htm) under the allocation A0090607519 made by [GENCI](http://www.genci.fr/en)\n* L. Dalcin, V. Hapla, and T. Isaac for their recent contributions to PETSc that made the implementation more flexible\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprj-%2Faldaas2021robust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprj-%2Faldaas2021robust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprj-%2Faldaas2021robust/lists"}