1st Edition

Fast Solvers for Mesh-Based Computations

By Maciej Paszynski Copyright 2016
    348 Pages 154 B/W Illustrations
    by CRC Press

    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