Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 9cac0746 authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

update spm structure to handle variable DoF

parent d69836ef
No related branches found
No related tags found
No related merge requests found
...@@ -21,18 +21,23 @@ ...@@ -21,18 +21,23 @@
* @struct pastix_spm_s - Sparse matrix data structure * @struct pastix_spm_s - Sparse matrix data structure
*/ */
struct pastix_spm_s { struct pastix_spm_s {
int mtxtype; /*< Matrix structure: PastixGeneral, PastixSymmetric or PastixHermitian. */ int mtxtype; /*< Matrix structure: PastixGeneral, PastixSymmetric
int flttype; /*< avals datatype: PastixPattern, PastixFloat, PastixDouble, PastixComplex32 or PastixComplex64 */ or PastixHermitian. */
int fmttype; /*< Matrix storage format: PastixCSC, PastixCSR, PastixIJV */ int flttype; /*< avals datatype: PastixPattern, PastixFloat, PastixDouble,
pastix_int_t gN; /*< Global number of vertices in the compressed graph */ PastixComplex32 or PastixComplex64 */
pastix_int_t n; /*< Local number of vertices in the compressed graph */ int fmttype; /*< Matrix storage format: PastixCSC, PastixCSR, PastixIJV */
pastix_int_t gnnz; /*< Global number of non zeroes in the compressed graph */ pastix_int_t gN; /*< Global number of vertices in the compressed graph */
pastix_int_t nnz; /*< Local number of non zeroes in the compressed graph */ pastix_int_t n; /*< Local number of vertices in the compressed graph */
pastix_int_t dof; /*< Number of degrees of freedom per unknown */ pastix_int_t gnnz; /*< Global number of non zeroes in the compressed graph */
pastix_int_t *colptr; /*< List of indirections to rows for each vertex */ pastix_int_t nnz; /*< Local number of non zeroes in the compressed graph */
pastix_int_t *rowptr; /*< List of edges for each vertex */ pastix_int_t dof; /*< Number of degrees of freedom per unknown,
pastix_int_t *loc2glob; /*< Corresponding numbering from local to global */ if > 0, constant degree of freedom
void *values; /*< Values stored in the matrix */ otherwise, irregular degree of freedom (refer to dofs) */
pastix_int_t *dofs; /*< Number of degrees of freedom per unknown (NULL, if dof > 0) */
pastix_int_t *colptr; /*< List of indirections to rows for each vertex */
pastix_int_t *rowptr; /*< List of edges for each vertex */
pastix_int_t *loc2glob; /*< Corresponding numbering from local to global */
void *values; /*< Values stored in the matrix */
}; };
int int
...@@ -56,7 +61,6 @@ csc_save( pastix_int_t n, ...@@ -56,7 +61,6 @@ csc_save( pastix_int_t n,
int spmLoad( pastix_spm_t *spm, FILE *infile ); int spmLoad( pastix_spm_t *spm, FILE *infile );
int spmSave( pastix_spm_t *spm, FILE *outfile ); int spmSave( pastix_spm_t *spm, FILE *outfile );
int spmGenRHS(int type, int nrhs, const pastix_spm_t *spm, void *x, int ldx, void *b, int ldb ); int spmGenRHS(int type, int nrhs, const pastix_spm_t *spm, void *x, int ldx, void *b, int ldb );
int spmCheckAxb( int nrhs, const pastix_spm_t *spm, void *x0, int ldx0, void *b, int ldb, const void *x, int ldx ); int spmCheckAxb( int nrhs, const pastix_spm_t *spm, void *x0, int ldx0, void *b, int ldb, const void *x, int ldx );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment