Giter Club home page Giter Club logo

aldaas2021robust's Introduction

A Robust Algebraic Domain Decomposition Preconditioner for Sparse Normal Equations

A parallel implementation of the preconditioner suitably interfaced with the PETSc library.

The code available in this repository can reproduce the results from the following paper.

@article{aldaas2021robust,
    Author = {Al Daas, Hussam and Jolivet, Pierre and Scott, Jennifer A.},
    Title = {A Robust Algebraic Domain Decomposition Preconditioner for Sparse Normal Equations},
    Year = {2022},
    Journal = {SIAM Journal on Scientific Computing},
    Pages = {A1047--A1068},
    Volume = {44},
    Issue = {3},
    Url = {https://github.com/prj-/aldaas2021robust}
}

Getting started

Dependencies

Make sure you have access to a recent PETSc 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).
Then, after setting the appropriate environment variable ${PETSC_DIR} and ${PETSC_ARCH} compile the single C source file from the repository with the following command.

$ make sparse_ls

When using Fortran, the above command should read make sparse_ls_f instead.
When using Python, make sure that petsc4py is visible in your environment variable ${PYTHONPATH}, e.g., PYTHONPATH=${PYTHONPATH}:${PETSC_DIR}/${PETSC_ARCH}/lib.

Usage example

One 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.

$ mpirun -np 4 ./sparse_ls -mat_name datafiles/mesh_deform.dat -options_file default.rc -pc_type hpddm
$ mpirun -np 4 ./sparse_ls -mat_name datafiles/lp_stocfor3.dat -options_file default.rc -pc_type hpddm

The 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.
All 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).
Here 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 command.

Acknowledgements

  • HPC resources of TGCC@CEA under the allocation A0090607519 made by GENCI
  • L. Dalcin, V. Hapla, and T. Isaac for their recent contributions to PETSc that made the implementation more flexible

aldaas2021robust's People

Contributors

prj- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.