Lis (linjär algebrabibliotek)

Lis
Stabil frisättning
2.1.0 / 5 mars 2023 ( 2023-03-05 )
Operativ system Cross-platform
Tillgänglig i C , Fortran
Typ Programvarubibliotek
Licens Ny BSD-licens
Hemsida www.ssisc.org/lis/

Lis ( Library of Iterative Solvers for linjära system, uttalas [lis]) är ett skalbart parallellt mjukvarubibliotek för att lösa diskretiserade linjära ekvationer och egenvärdeproblem som främst uppstår i den numeriska lösningen av partiella differentialekvationer genom att använda iterativa metoder . Även om det är designat för parallella datorer, kan biblioteket användas utan att vara medveten om parallell bearbetning .

Funktioner

Lis tillhandahåller faciliteter för:

Exempel

Ett C -program för att lösa den linjära ekvationen skrivs så här:

 
 
 

    

    
     
    
       
        

   

   
   
   

   
   
   

  
  
     

   
   
   
   

    

  
  
  
  

  

   0
 #include  <stdio.h>  #include  "lis_config.h"  #include  "lis.h"  LIS_INT  main  (  LIS_INT  argc  ,  char  *  argv  [])  {  LIS_MATRIX  A  ;  LIS_VECTOR  b  ,  x  ;  LIS_SOLVER-  lösare  ;  LIS_INT  iter  ;  dubbel  tid  ;  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  (  lösare  );  lis_solve  (  A  ,  b  ,  x  ,  lösare  );  lis_solver_get_iter  (  lösare  ,  &  iter  );  lis_solver_get_time  (  lösare  &  tid  )  ;  printf  (  "antal iterationer = %d  \n  "  ,  iter  );  printf  (  "förfluten tid = %e  \n  "  ,  tid  );  lis_output_vector  (  x  ,  LIS_FMT_MM  ,  argv  [  3  ]);  lis_solver_destroy  (  lösare  );  lis_matrix_destroy  (  A  );  lis_vector_destroy  (  b  );  lis_vector_destroy  (  x  );  lis_finalize  ();  återvända  ;  } 

Systemkrav

Installationen av Lis kräver en C-kompilator. Fortran-gränssnittet kräver en Fortran-kompilator, och den algebraiska multigrid- förkonditioneraren kräver en Fortran 90-kompilator. För parallella datormiljöer krävs ett OpenMP- eller MPI-bibliotek. Både Matrix Market och Harwell-Boeing- formaten stöds för att importera och exportera användardata.

Paket som använder Lis

Se även

externa länkar