PaStiX Handbook 6.4.0
Loading...
Searching...
No Matches
analyze.c File Reference

A simple example that performs only the analyses steps onto the given graph. More...

Go to the source code of this file.

Detailed Description

A simple example that performs only the analyses steps onto the given graph.

These tests doesn't require the values of the matrix.

Version
6.4.0
Author
Pierre Ramet
Gregoire Pichon
Mathieu Faverge
Theophile Terraz
Tony Delarue
Alycia Lisito
Date
2024-07-05
/
#include <pastix.h>
#include <spm.h>
#include <limits.h>
int main (int argc, char **argv)
{
pastix_data_t *pastix_data = NULL; /*< Pointer to the storage structure required by pastix */
pastix_int_t iparm[IPARM_SIZE]; /*< Integer in/out parameters for pastix */
double dparm[DPARM_SIZE]; /*< Floating in/out parameters for pastix */
spm_driver_t driver;
char *filename = NULL;
spmatrix_t *spm, spm2;
int rc;
int scatter = 0;
/**
Initialize parameters to default values
/
pastixInitParam( iparm, dparm );
/**
Get options from command line
/
pastixGetOptions( argc, argv,
iparm, dparm,
NULL, &scatter, &driver, &filename );
/**
Startup PaStiX
/
pastixInit( &pastix_data, MPI_COMM_WORLD, iparm, dparm );
/**
Read the sparse matrix with the driver
/
spm = malloc( sizeof( spmatrix_t ) );
if ( scatter ) {
rc = spmReadDriverDist( driver, filename, spm, MPI_COMM_WORLD );
}
else {
rc = spmReadDriver( driver, filename, spm );
}
free( filename );
if ( rc != SPM_SUCCESS ) {
pastixFinalize( &pastix_data );
return rc;
}
spmPrintInfo( spm, stdout );
rc = spmCheckAndCorrect( spm, &spm2 );
if ( rc != 0 ) {
spmExit( spm );
*spm = spm2;
rc = 0;
}
/**
Perform ordering, symbolic factorization, and analyze steps
/
pastix_task_analyze( pastix_data, spm );
spmExit( spm );
free( spm );
pastixFinalize( &pastix_data );
return EXIT_SUCCESS;
}
/**
BEGIN_C_DECLS typedef int pastix_int_t
Definition datatypes.h:51
Main PaStiX data structure.
Definition pastixdata.h:68

Definition in file analyze.c.