static char help[] = "Test MatMatMult(), MatMatMultTranspose() for SeqDense matrices.\n\n"; #include "petscmat.h" #undef __FUNCT__ #define __FUNCT__ "main" int main(int argc,char **argv) { Mat A,B,C,D; PetscInt i,j,k,M=10,N=5; PetscScalar *array;; PetscErrorCode ierr; PetscRandom r; PetscTruth equal; PetscReal fill = 1.0; PetscMPIInt size; PetscInitialize(&argc,&argv,(char *)0,help); ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRQ(ierr); if (size != 1) SETERRQ(PETSC_ERR_SUP,"This is a uniprocessor example only!"); ierr = PetscOptionsGetInt(PETSC_NULL,"-M",&M,PETSC_NULL);CHKERRQ(ierr); ierr = PetscOptionsGetInt(PETSC_NULL,"-N",&N,PETSC_NULL);CHKERRQ(ierr); ierr = MatCreate(PETSC_COMM_SELF,&A);CHKERRQ(ierr); ierr = MatSetSizes(A,M,N,M,N);CHKERRQ(ierr); ierr = MatSetType(A,MATSEQDENSE);CHKERRQ(ierr); ierr = MatSeqDenseSetPreallocation(A,PETSC_NULL);CHKERRQ(ierr); ierr = PetscRandomCreate(PETSC_COMM_SELF,&r);CHKERRQ(ierr); ierr = PetscRandomSetFromOptions(r);CHKERRQ(ierr); ierr = MatGetArray(A,&array);CHKERRQ(ierr); k = 0; for (i=0; i