Xccels_doxygen
Documentation
Loading...
Searching...
No Matches
Introduction

Overview

This library is for both single and many tridiagonal systems of equations. The main algorithm for a tridiagonal matrix consists of the following five steps:

  • (1) Transform the partitioned submatrices in the tridiagonal systems into modified submatrices: Each computing core transforms the partitioned submatrices in the tridiagonal systems of equations into the modified forms by applying modified Thomas algorithm.
  • (2) Construct reduced tridiagonal systems from the modified submatrices: The reduced tridiagonal systems are constructed by collecting the first and last rows of the modified submatrices from each core using MPI_Ialltoallw.

Features

Single and many tridiagonal system

Single tridiagonal system

  • A communication method using MPI_Gather for a single diagonal system.
  • \(\texttt{PaScaL_TDMA_plan_single_create}\): A subroutine to create a type variable of \(\texttt{plan_single}\), for a single tridiagonal system
  • \(\texttt{PaScaL_TDMA_plan_single_destroy}\): A subroutine to dellocate the \(\texttt{plan_single}\) and all associated data
  • \(\texttt{PaScaL_TDMA_plan_single_solve}\): A subroutine for solving a single tridiagonal system with the \(\texttt{MPI_gather}\) and \(\texttt{MPI_scatter}\) fuctions, as shown in upper figure

Many tridiagonal system

  • The present method using MPI_Alltoall for many tridiagonal systems.
  • \(\texttt{PaScaL_TDMA_plan_many_create}\): A subroutine to create a type variable of \(\texttt{plan_many}\), for a many tridiagonal systems. The definition of the derived data type depends on the version of MPI library.
  • \(\texttt{PaScaL_TDMA_plan_many_destroy}\): A subroutine to dellocate the \(\texttt{plan_many}\) and all associated data
  • \(\texttt{PaScaL_TDMA_plan_many_solve}\): A subroutine for solving a many tridiagonal systems with the \(\texttt{MPI_Alltoallw}\) fuction, as shown in upper figure

Authors

  • ABC Kim

Versions

  • 1.0
    • Version 1.0
  • 2.0
    • Version 2.0

Citation

Please use the following bibtex, when you refer to this project.

Credits

Thanks for writing this library and inspiring feedback on GitHub!
Special thanks to all the contributors:

Read Next
Installation