def pbc_exchange(self, nx, ny, nz): dx, dy, dz = 1e-9, 1e-9, 1e-9 mesh = RectangularMesh((nx, ny, nz), (dx, dy, dz)) A = Field(mesh); A.fill(Material.Py().A) Ms = Field(mesh); Ms.fill(Material.Py().Ms) M = VectorField(mesh) H = VectorField(mesh) for bcx, bcy, bcz in itertools.product([False, True], [False, True], [False, True]): M.fill(tuple((random.random()-0.5) * 2e5 for i in range(3))) #M.fill((8e5, 8e5, -8e5)) magneto.exchange(nx, ny, nz, dx, dy, dz, bcx, bcy, bcz, Ms, A, M, H) for i in range(nx*ny*nz): #self.assertEqual(H.get(i), (0.0, 0.0, 0.0)) self.assertAlmostEqual(H.get(i)[0], 0.0) self.assertAlmostEqual(H.get(i)[1], 0.0) self.assertAlmostEqual(H.get(i)[2], 0.0)