def numpyArray(self): import tempfile import os from scipy.io import mmio from fipy.tools import parallelComm if parallelComm.procID == 0: (_, mtxName) = tempfile.mkstemp(suffix='.mtx') else: mtxName = None mtxName = parallelComm.bcast(mtxName) self.exportMmf(mtxName) parallelComm.Barrier() mtx = mmio.mmread(mtxName) parallelComm.Barrier() if parallelComm.procID == 0: os.remove(mtxName) coo = mtx.tocoo() trilinosMatrix = self.matrix numpyArray = numerix.zeros( (trilinosMatrix.NumGlobalRows(), trilinosMatrix.NumGlobalCols()), 'd') numpyArray[coo.row, coo.col] = coo.data return numpyArray
def doctest_raw_input(prompt): """Replacement for `raw_input()` that works in doctests This routine attempts to be savvy about running in parallel. """ try: from fipy.tools import parallelComm parallelComm.Barrier() _saved_stdout.flush() if parallelComm.procID == 0: txt = _serial_doctest_raw_input(prompt) else: txt = "" parallelComm.Barrier() except ImportError: txt = _serial_doctest_raw_input(prompt)