#!/usr/bin/env python """ Created on Wed Jun 29 22:05:59 2016 @author: daneel@utexas.edu """ import numpy as np from petsc4py import PETSc Print = PETSc.Sys.Print matsize = 100 filename = 'tmpMatrix-A.dat' A = PETSc.Mat().create(PETSc.COMM_WORLD) A.setSizes([matsize, matsize]) #A.setType(PETSc.Mat.Type.DENSE) A.setUp() Istart, Iend = A.getOwnershipRange() for I in xrange(Istart, Iend) : A[I,:] = np.random.random(matsize) A.assemble() Print("Random matrix assembled. Now writing to temporary file ...") # save viewer = PETSc.Viewer().createBinary(filename, 'w') viewer.pushFormat(viewer.Format.NATIVE) viewer.view(A) Print("Written to ", filename) # reload Print("Now reloading from ", filename) viewer_new = PETSc.Viewer().createBinary(filename, 'r') viewer_new.pushFormat(viewer.getFormat()) A_new = PETSc.Mat().load(viewer_new) assert A_new.equal(A), "Reload unsuccessful" Print("Reload successful")