1st Edition

# Fast Solvers for Mesh-Based Computations

348 Pages 154 B/W Illustrations
by CRC Press

347 Pages
by CRC Press

Also available as eBook on:

Fast Solvers for Mesh-Based Computations presents an alternative way of constructing multi-frontal direct solver algorithms for mesh-based computations. It also describes how to design and implement those algorithms.

The book’s structure follows those of the matrices, starting from tri-diagonal matrices resulting from one-dimensional mesh-based methods, through multi-diagonal or block-diagonal matrices, and ending with general sparse matrices.

Each chapter explains how to design and implement a parallel sparse direct solver specific for a particular structure of the matrix. All the solvers presented are either designed from scratch or based on previously designed and implemented solvers.

Each chapter also derives the complete JAVA or Fortran code of the parallel sparse direct solver. The exemplary JAVA codes can be used as reference for designing parallel direct solvers in more efficient languages for specific architectures of parallel machines.

The author also derives exemplary element frontal matrices for different one-, two-, or three-dimensional mesh-based computations. These matrices can be used as references for testing the developed parallel direct solvers.

Based on more than 10 years of the author’s experience in the area, this book is a valuable resource for researchers and graduate students who would like to learn how to design and implement parallel direct solvers for mesh-based computations.

Multi-Frontal Direct Solver Algorithm for Tri-Diagonal and Block-Diagonal One-Dimensional Problems
Derivation of the Linear System for One-Dimensional Finite Difference Method
Algebraic Algorithm of the Multi-Frontal Solver
Graph-Grammar Based Model of Concurrency of the Multi-Frontal Solver Algorithm
One-Dimensional Finite Element Method with Linear Basis Functions
One-Dimensional Isogeometric Collocation Method with Quadratic B-Splines
One-Dimensional Finite Element Method with Buble Basis Functions

One-Dimensional Non-Stationary Problems
Euler Scheme with Respect to Time Mixed with Finite Element Method with Linear
Basis Functions with Respect to Space
α-Scheme with Respect to Time Mixed with Method with Linear Basis Functions
for Space

Multi-Frontal Direct Solver Algorithm for Multi-Diagonal One-Dimensional Problems
One-Dimensional Collocation Method with Higher Order B-Splines
One-Dimensional Isogeometric Finite Element Method

Multi-Frontal Direct Solver Algorithm for Two-Dimensional Grids with Block Diagonal
Structure of the Matrix
Two-Dimensional Projection Problem with Linear Basis Functions
Two-Dimensional Mesh with Anisotropic Edge Singularity
Two-Dimensional Mesh with Point Singularity

Multi-Frontal Direct Solver Algorithm for Three-Dimensional Grids with Block Diagonal Structure of the Matrix
Three-Dimensional Projection Problem with Linear Basis Functions
Three-Dimensional Mesh with Anisotropic Face Singularity
Three-Dimensional Mesh with Anisotropic Edge Singularity
Three-Dimensional Mesh with Point Singularity

Multi-Frontal Direct Solver Algorithm for Two-Dimensional Isogeometric Finite
Element Method
Isogeometric Finite Element Method for Two-Dimensional Problems
Graph-Grammar for Generation of the Elimination Tree
Graph-Grammar Productions for the Solver Algorithm

Expressing Partial LU Factorization by BLAS Calls
LU Factorization of A(1,1)
Multiplication of A(1,2) by the Inverse of A(1,1)
Multiplication of b(1) by the Inverse of A(1,1)
Matrix Multiplication and Subtraction A(2,2)=A(2,2)-A(2,1)A(1,2)
Matrix Vector Multiplication and Subtraction b(2)=b,2)-A(2,1)b(1)
Example

Multi-Frontal Solver Algorithm for Arbitrary Mesh-Based Computations
Multi-Frontal Solver Algorithm for Arbitrary Grids
Hypermatrix Module
Elimination Tree Module
Supernodes System Module
Interface
Structure of Matrices for Different Two-Dimensional Methods

Elimination Trees
Elimination Trees and Multi-Frontal Solvers
Quasi-Optimal Elimination Tree for Two-Dimensional Mesh with Point Singularity
Quasi-Optimal Elimination Tree for Two-Dimensional Mesh with Edge Singularity
Nested-Dissection Elimination Tree for Two-Dimensional Mesh with Edge Singularity
Minimum Degree Tree for Two-Dimensional Mesh with Edge Singularity
Estimation of the Number of Floating Point Operations and Memory Usage
Elimination Trees for Three-Dimensional Grids

Reutilization and Reuse of Partial LU Factorizatons
Idea of the Reutilization Algorithm
Exemplary Implementation of the Reutilization Algorithm
Idea of the Reuse Algorithm
Exemplary Implementation of the Reuse Algorithm

Numerical Experiments
Measuring the Solver Performance by Means of Execution Time
Measuring the Solver Performance by Means of the Number of Floating Point Operations (FLOPs)
Measuring the Solver Performance by Means of the Efficiency and Speedup
Graph-Grammar Based Multi-Thread GALOIS Solver for Two-Dimensional Grids with Singularities
Graph-Grammar Based Multi-Thread GALOIS Solver for Three-Dimensional Grids with Singularities
Graph-Grammar Based GPU Solver for One-Dimensional Isogoemetric Finite Element Method
Graph-Grammar Based GPU Solver for Two-Dimensional Isogoemetric Finite Element Method
Graph-Grammar Based Solver for Two-Dimensional Adaptive Finite Element Method
Graph-Grammar Based Solver for Three-Dimensional Adaptive Finite Element
Method

### Biography

Maciej Paszynski, PhD, Department of Computer Science, Electronics and Telecommunications, AGH University of Science and Technology, Kraków, Poland

"The author describes how to design and implement effi□cient parallel multi-frontal direct solver algorithms for mesh-based computations.

Each chapter explains how to design and implement a parallel sparse direct solver specific for a particular structure of the matrix. All the solvers presented are either designed from scratch or based on previously designed and implemented solvers.

The book's structure follows that of the matrices, starting from tri-diagonal matrices resulting from one-dimensional mesh-based methods, through multi-diagonal or block-diagonal matrices, and ending with general sparse matrices.

In each chapter JAVA or Fortran codes of the parallel sparse direct solver are listed. The author also derives exemplary element frontal matrices for different one-, two-, or three-dimensional mesh-based computations. These matrices can be used as references for testing the developed parallel direct solvers.

The book represents a valuable resource for researchers and graduate students who would like to learn how to design and implement parallel direct solvers for mesh-based computations."
~Nicola Mastronardi, Mathematical Reviews, 2017