HYPRE_Int HYPRE_DistributedMatrixSetDims( HYPRE_DistributedMatrix matrix, HYPRE_Int M, HYPRE_Int N ) { HYPRE_Int ierr=0; hypre_DistributedMatrixM( (hypre_DistributedMatrix *) matrix ) = M; hypre_DistributedMatrixN( (hypre_DistributedMatrix *) matrix ) = N; return(ierr); }
HYPRE_Int HYPRE_DistributedMatrixGetDims( HYPRE_DistributedMatrix matrix, HYPRE_Int *M, HYPRE_Int *N ) { HYPRE_Int ierr=0; *M = hypre_DistributedMatrixM( (hypre_DistributedMatrix *) matrix ); *N = hypre_DistributedMatrixN( (hypre_DistributedMatrix *) matrix ); return(ierr); }
hypre_DistributedMatrix * hypre_DistributedMatrixCreate( MPI_Comm context ) { hypre_DistributedMatrix *matrix; matrix = hypre_CTAlloc(hypre_DistributedMatrix, 1); hypre_DistributedMatrixContext(matrix) = context; hypre_DistributedMatrixM(matrix) = -1; hypre_DistributedMatrixN(matrix) = -1; hypre_DistributedMatrixAuxiliaryData(matrix) = NULL; hypre_DistributedMatrixLocalStorage(matrix) = NULL; hypre_DistributedMatrixTranslator(matrix) = NULL; hypre_DistributedMatrixLocalStorageType(matrix) = HYPRE_UNITIALIZED; #ifdef HYPRE_TIMING matrix->GetRow_timer = hypre_InitializeTiming( "GetRow" ); #endif return matrix; }
HYPRE_Int hypre_DistributedMatrixAssemble( hypre_DistributedMatrix *matrix ) { if( (hypre_DistributedMatrixLocalStorageType(matrix) != HYPRE_PETSC ) && (hypre_DistributedMatrixLocalStorageType(matrix) != HYPRE_ISIS ) && (hypre_DistributedMatrixLocalStorageType(matrix) != HYPRE_PARCSR ) ) return(-1); if( hypre_DistributedMatrixLocalStorage(matrix) == NULL ) return(-1); if( (hypre_DistributedMatrixM(matrix) < 0 ) || (hypre_DistributedMatrixN(matrix) < 0 ) ) return(-1); return(0); }