##
**Fast solvers for mesh-based computations.**
*(English)*
Zbl 1334.65069

Advances in Applied Mathematics (Boca Raton). Boca Raton, FL: CRC Press (ISBN 978-1-4987-5419-4/hbk; 978-1-4987-5420-0/ebook). xxxviii, 313 p. (2016).

The book is based on the author’s personal experience on designing and implementing parallel direct solvers, as well as teaching the subject to computer science students.

It is structured in 11 chapters. Each chapter of the book describes how to design and implement a parallel sparse direct solver, accordingly to the particular structure of the problem matrix. They also contain the complete Java and Fortran codes that can be used in the teaching activities in the computer science labs.

Chapter 1 describes the parallel multi-frontal solver for one-dimensional mesh-based methods, including finite differences, finite element, isogeometric collocation and isogeometric finite element. Chapter 2 presents the necessary updates to the structure of the solver and the source code in the case of time-dependent problems, including the Euler scheme and the general \(\alpha\)-scheme, that generalizes the Crank-Nicholson one. In Chapter 3, the author presents the one-dimensional collocation method and the one-dimensional isogeometric finite element method with higher-order B-splines as basis functions. Chapter 4 describes an updating scheme for the structure of the solver and the model Java code for the solution of the two-dimensional isogeometric finite element method over a regular patch of elements.

Chapters 5, 6 and 8 continue the presentation of the multi-frontal direct solver algorithm for three-dimensional grid, two-dimensional isogeometric finite elements, and arbitrary mesh-based computation, whereas Chapters 7 and 10 are concerned with partial LU factorization and its possible reutilization (Reuse algorithm). The last chapter, 11 is dedicated to numerical experiments. The author presents among other things the GALOIS implementation of the graph-grammar-based solver for the two- and three-dimensional grids with singularities, the GPU implementation of the graph-grammar-based solver for the one- and two-dimensional isogeometric finite element method, as well as examples concerning the Fortran implementation for Linux cluster nodes.

As the author mentions himself ‘the main goal of the book is to teach graduate and PhD students, as well as researchers interested in the topic, how to design and implement efficient parallel multi-frontal solvers for mesh-based computations’. All these are strong motivations that recommend the book for the above mentioned categories of potential readers.

It is structured in 11 chapters. Each chapter of the book describes how to design and implement a parallel sparse direct solver, accordingly to the particular structure of the problem matrix. They also contain the complete Java and Fortran codes that can be used in the teaching activities in the computer science labs.

Chapter 1 describes the parallel multi-frontal solver for one-dimensional mesh-based methods, including finite differences, finite element, isogeometric collocation and isogeometric finite element. Chapter 2 presents the necessary updates to the structure of the solver and the source code in the case of time-dependent problems, including the Euler scheme and the general \(\alpha\)-scheme, that generalizes the Crank-Nicholson one. In Chapter 3, the author presents the one-dimensional collocation method and the one-dimensional isogeometric finite element method with higher-order B-splines as basis functions. Chapter 4 describes an updating scheme for the structure of the solver and the model Java code for the solution of the two-dimensional isogeometric finite element method over a regular patch of elements.

Chapters 5, 6 and 8 continue the presentation of the multi-frontal direct solver algorithm for three-dimensional grid, two-dimensional isogeometric finite elements, and arbitrary mesh-based computation, whereas Chapters 7 and 10 are concerned with partial LU factorization and its possible reutilization (Reuse algorithm). The last chapter, 11 is dedicated to numerical experiments. The author presents among other things the GALOIS implementation of the graph-grammar-based solver for the two- and three-dimensional grids with singularities, the GPU implementation of the graph-grammar-based solver for the one- and two-dimensional isogeometric finite element method, as well as examples concerning the Fortran implementation for Linux cluster nodes.

As the author mentions himself ‘the main goal of the book is to teach graduate and PhD students, as well as researchers interested in the topic, how to design and implement efficient parallel multi-frontal solvers for mesh-based computations’. All these are strong motivations that recommend the book for the above mentioned categories of potential readers.

Reviewer: Constantin Popa (Constanţa)

### MSC:

65F05 | Direct numerical methods for linear systems and matrix inversion |

65M50 | Mesh generation, refinement, and adaptive methods for the numerical solution of initial value and initial-boundary value problems involving PDEs |

65N50 | Mesh generation, refinement, and adaptive methods for boundary value problems involving PDEs |

65L50 | Mesh generation, refinement, and adaptive methods for ordinary differential equations |

65F50 | Computational methods for sparse matrices |

65-02 | Research exposition (monographs, survey articles) pertaining to numerical analysis |

65L60 | Finite element, Rayleigh-Ritz, Galerkin and collocation methods for ordinary differential equations |

65N30 | Finite element, Rayleigh-Ritz and Galerkin methods for boundary value problems involving PDEs |

65M60 | Finite element, Rayleigh-Ritz and Galerkin methods for initial value and initial-boundary value problems involving PDEs |

65M06 | Finite difference methods for initial value and initial-boundary value problems involving PDEs |

65N06 | Finite difference methods for boundary value problems involving PDEs |

65L12 | Finite difference and finite volume methods for ordinary differential equations |

65Y05 | Parallel numerical computation |