diff --git a/spm_dofs.c b/spm_dofs.c index 3547bd99d1b4efc4ed7aa8f2d601936325c8f103..8d9fa3cdc9b752e4d9a0e97b6044757c3a330e2a 100644 --- a/spm_dofs.c +++ b/spm_dofs.c @@ -64,14 +64,14 @@ spmDofExtend( const int type, * Initialize the dofs array where the degree of freedom of vertex i is * dof[i+1] - dof[i] */ - *dofptr = 0; + *dofptr = baseval; for(i=0; i<spm->n; i++, dofptr++) { dofi = 1 + ( rand() % dof ); dofptr[1] = dofptr[0] + dofi; } - newspm->nexp = *dofptr; - newspm->gNexp = *dofptr; + newspm->nexp = *dofptr - baseval; + newspm->gNexp = newspm->nexp; /** * Count the number of non zeroes diff --git a/z_spm_print.c b/z_spm_print.c index 5dae4b220cd92b0a10f5afa8647edd417cf5e10b..a51561c9295c828d3fe3fb0a731626261d2dd97b 100644 --- a/z_spm_print.c +++ b/z_spm_print.c @@ -49,13 +49,13 @@ z_spmCSCPrint( FILE *f, const pastix_spm_t *spm ) for(j=0; j<spm->n; j++, colptr++) { dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; for(k=colptr[0]; k<colptr[1]; k++, rowptr++) { i = (*rowptr - baseval); dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -93,13 +93,13 @@ z_spmCSCPrint( FILE *f, const pastix_spm_t *spm ) for(j=0; j<spm->n; j++, colptr++) { dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; for(k=colptr[0]; k<colptr[1]; k++, rowptr++) { i = (*rowptr - baseval); dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -137,13 +137,13 @@ z_spmCSCPrint( FILE *f, const pastix_spm_t *spm ) for(j=0; j<spm->n; j++, colptr++) { dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; for(k=colptr[0]; k<colptr[1]; k++, rowptr++) { i = (*rowptr - baseval); dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -194,13 +194,13 @@ z_spmCSRPrint( FILE *f, const pastix_spm_t *spm ) for(i=0; i<spm->n; i++, rowptr++) { dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; for(k=rowptr[0]; k<rowptr[1]; k++, colptr++) { j = (*colptr - baseval); dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -238,13 +238,13 @@ z_spmCSRPrint( FILE *f, const pastix_spm_t *spm ) for(i=0; i<spm->n; i++, rowptr++) { dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; for(k=rowptr[0]; k<rowptr[1]; k++, colptr++) { j = (*colptr - baseval); dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -282,13 +282,13 @@ z_spmCSRPrint( FILE *f, const pastix_spm_t *spm ) for(i=0; i<spm->n; i++, rowptr++) { dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; - row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i]; + row = ( spm->dof > 0 ) ? spm->dof * i : dofs[i] - baseval; for(k=rowptr[0]; k<rowptr[1]; k++, colptr++) { j = (*colptr - baseval); dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j]; + col = ( spm->dof > 0 ) ? spm->dof * j : dofs[j] - baseval; if ( spm->layout == PastixColMajor ) { for(jj=0; jj<dofj; jj++) @@ -349,9 +349,9 @@ z_spmIJVPrint( FILE *f, const pastix_spm_t *spm ) } else { dofi = dofs[i+1] - dofs[i]; - row = dofs[i]; + row = dofs[i] - baseval; dofj = dofs[j+1] - dofs[j]; - col = dofs[j]; + col = dofs[j] - baseval; } if ( spm->layout == PastixColMajor ) { @@ -399,9 +399,9 @@ z_spmIJVPrint( FILE *f, const pastix_spm_t *spm ) } else { dofi = dofs[i+1] - dofs[i]; - row = dofs[i]; + row = dofs[i] - baseval; dofj = dofs[j+1] - dofs[j]; - col = dofs[j]; + col = dofs[j] - baseval; } if ( spm->layout == PastixColMajor ) { @@ -449,9 +449,9 @@ z_spmIJVPrint( FILE *f, const pastix_spm_t *spm ) } else { dofi = dofs[i+1] - dofs[i]; - row = dofs[i]; + row = dofs[i] - baseval; dofj = dofs[j+1] - dofs[j]; - col = dofs[j]; + col = dofs[j] - baseval; } if ( spm->layout == PastixColMajor ) {