def to_real_field(self): """ Return the RealField stored on disk. .. note:: The mesh stored on disk must be stored with ``mode=real`` Returns ------- real : pmesh.pm.RealField an array-like object holding the mesh loaded from disk in configuration space """ if self.isfourier: return NotImplemented # the real field to paint to pmread = self.pm with FileMPI(comm=self.comm, filename=self.path)[self.dataset] as ds: if self.comm.rank == 0: self.logger.info("reading real field from %s" % self.path) real2 = RealField(pmread) start = numpy.sum(self.comm.allgather(real2.size)[:self.comm.rank], dtype='intp') end = start + real2.size real2.unravel(ds[start:end]) return real2
def test_sort(comm): pm = ParticleMesh(BoxSize=8.0, Nmesh=[8, 6], comm=comm, dtype='f8') real = RealField(pm) truth = numpy.arange(8 * 6) real[...] = truth.reshape(8, 6)[real.slices] unsorted = real.copy() real.sort(out=Ellipsis) conjecture = numpy.concatenate(comm.allgather(real.value.ravel())) assert_array_equal(conjecture, truth) real.unravel(real) assert_array_equal(real, unsorted) complex = ComplexField(pm) truth = numpy.arange(8 * 4) complex[...] = truth.reshape(8, 4)[complex.slices] complex.ravel(out=Ellipsis) conjecture = numpy.concatenate(comm.allgather(complex.value.ravel())) assert_array_equal(conjecture, truth)
def test_sort(comm): pm = ParticleMesh(BoxSize=8.0, Nmesh=[8, 6], comm=comm, dtype='f8') real = RealField(pm) truth = numpy.arange(8 * 6) real[...] = truth.reshape(8, 6)[real.slices] unsorted = real.copy() real.sort(out=Ellipsis) conjecture = numpy.concatenate(comm.allgather(real.value.ravel())) assert_array_equal(conjecture, truth) real.unravel(real) assert_array_equal(real, unsorted) complex = ComplexField(pm) truth = numpy.arange(8 * 4) complex[...] = truth.reshape(8, 4)[complex.slices] complex.ravel(out=Ellipsis) conjecture = numpy.concatenate(comm.allgather(complex.value.ravel())) assert_array_equal(conjecture, truth)