Beispiel #1
0
 def test_tessellation_approaches(self,periodic):
     cells  = np.random.randint(10,20,3)
     size   = np.random.random(3) + 1.0
     N_seeds= np.random.randint(10,30)
     seeds  = np.random.rand(N_seeds,3) * np.broadcast_to(size,(N_seeds,3))
     Voronoi  = Grid.from_Voronoi_tessellation( cells,size,seeds,                 np.arange(N_seeds)+5,periodic)
     Laguerre = Grid.from_Laguerre_tessellation(cells,size,seeds,np.ones(N_seeds),np.arange(N_seeds)+5,periodic)
     assert grid_equal(Laguerre,Voronoi)
Beispiel #2
0
 def test_Laguerre_weights(self):
     cells  = np.random.randint(10,20,3)
     size   = np.random.random(3) + 1.0
     N_seeds= np.random.randint(10,30)
     seeds  = np.random.rand(N_seeds,3) * np.broadcast_to(size,(N_seeds,3))
     weights= np.full((N_seeds),-np.inf)
     ms     = np.random.randint(N_seeds)
     weights[ms] = np.random.random()
     Laguerre = Grid.from_Laguerre_tessellation(cells,size,seeds,weights,periodic=np.random.random()>0.5)
     assert np.all(Laguerre.material == ms)
Beispiel #3
0
 def test_tessellate_bicrystal(self,approach):
     cells = np.random.randint(5,10,3)*2
     size  = cells.astype(float)
     seeds = np.vstack((size*np.array([0.5,0.25,0.5]),size*np.array([0.5,0.75,0.5])))
     material = np.zeros(cells)
     material[:,cells[1]//2:,:] = 1
     if   approach == 'Laguerre':
         grid = Grid.from_Laguerre_tessellation(cells,size,seeds,np.ones(2),periodic=np.random.random()>0.5)
     elif approach == 'Voronoi':
         grid = Grid.from_Voronoi_tessellation(cells,size,seeds,            periodic=np.random.random()>0.5)
     assert np.all(grid.material == material)