![]() | |
Stable release | 2.1.10 / April 18, 2025 |
---|---|
Operating system | Cross-platform |
Available in | C, Fortran |
Type | Software library |
License | New BSD License |
Website | www.ssisc.org/lis/ |
Lis (Library of Iterative Solvers for linear systems; pronounced lis]) is a scalable parallel software library to solve discretized linear equations and eigenvalue problems that mainly arise from the numerical solution of partial differential equations using iterative methods. [1] [2] [3] Although it is designed for parallel computers, the library can be used without being conscious of parallel processing.
Lis provides facilities for:
A C program to solve the linear equation is written as follows:
#include<stdio.h>#include"lis_config.h"#include"lis.h"LIS_INTmain(LIS_INTargc,char*argv[]){LIS_MATRIXA;LIS_VECTORb,x;LIS_SOLVERsolver;LIS_INTiter;doubletime;lis_initialize(&argc,&argv);lis_matrix_create(LIS_COMM_WORLD,&A);lis_vector_create(LIS_COMM_WORLD,&b);lis_vector_create(LIS_COMM_WORLD,&x);lis_input_matrix(A,argv[1]);lis_input_vector(b,argv[2]);lis_vector_duplicate(A,&x);lis_solver_create(&solver);lis_solver_set_optionC(solver);lis_solve(A,b,x,solver);lis_solver_get_iter(solver,&iter);lis_solver_get_time(solver,&time);printf("number of iterations = %d\n",iter);printf("elapsed time = %e\n",time);lis_output_vector(x,LIS_FMT_MM,argv[3]);lis_solver_destroy(solver);lis_matrix_destroy(A);lis_vector_destroy(b);lis_vector_destroy(x);lis_finalize();return0;}
Installing Lis requires a C compiler. If you wish to use the Fortran interface, a Fortran compiler is needed, and the algebraic multigrid preconditioner requires a Fortran 90 compiler. [4] For parallel computing environments, an OpenMP or MPI library is necessary. Lis supports both the Matrix Market and Harwell-Boeing formats for importing and exporting user data.