@@ -325,7 +325,7 @@ class TestMetaData:
325325
326326 def test_wo_halo_wo_padding (self ):
327327 grid = Grid (shape = (4 , 4 , 4 ))
328- u = Function (name = 'u' , grid = grid , space_order = 0 , padding = 0 )
328+ u = Function (name = 'u' , grid = grid , space_order = 0 )
329329
330330 assert u .shape == u ._shape_with_inhalo == u .shape_allocated
331331 assert u .shape_with_halo == u ._shape_with_inhalo # W/o MPI, these two coincide
@@ -336,7 +336,7 @@ def test_wo_halo_wo_padding(self):
336336
337337 def test_w_halo_wo_padding (self ):
338338 grid = Grid (shape = (4 , 4 , 4 ))
339- u = Function (name = 'u' , grid = grid , space_order = 2 , padding = 0 )
339+ u = Function (name = 'u' , grid = grid , space_order = 2 )
340340
341341 assert len (u .shape ) == len (u ._size_halo .left )
342342 assert u ._size_halo == u ._size_owned == ((2 , 2 ), (2 , 2 ), (2 , 2 ))
@@ -349,7 +349,7 @@ def test_w_halo_wo_padding(self):
349349
350350 # Try with different grid shape and space_order
351351 grid2 = Grid (shape = (3 , 3 , 3 ))
352- u2 = Function (name = 'u2' , grid = grid2 , space_order = 4 , padding = 0 )
352+ u2 = Function (name = 'u2' , grid = grid2 , space_order = 4 )
353353 assert u2 .shape == (3 , 3 , 3 )
354354 assert u2 ._offset_domain == (4 , 4 , 4 )
355355 assert u2 ._offset_halo == ((0 , 7 ), (0 , 7 ), (0 , 7 ))
@@ -358,57 +358,25 @@ def test_w_halo_wo_padding(self):
358358 ) == u2 .shape_with_halo
359359 assert u2 .shape_with_halo == (11 , 11 , 11 )
360360
361- def test_wo_halo_w_padding (self ):
362- grid = Grid (shape = (4 , 4 , 4 ))
363- u = Function (name = 'u' , grid = grid , space_order = 2 , padding = ((1 , 1 ), (3 , 3 ), (4 , 4 )))
364-
365- assert tuple (
366- i + j + k for i , (j , k ) in zip (u .shape_with_halo , u ._padding , strict = True )
367- ) == u .shape_allocated
368- assert u ._halo == ((2 , 2 ), (2 , 2 ), (2 , 2 ))
369- assert u ._size_padding == ((1 , 1 ), (3 , 3 ), (4 , 4 ))
370- assert u ._size_padding .left == u ._size_padding .right == (1 , 3 , 4 )
371- assert u ._size_nodomain == ((3 , 3 ), (5 , 5 ), (6 , 6 ))
372- assert u ._size_nodomain .left == u ._size_nodomain .right == (3 , 5 , 6 )
373- assert u ._size_nopad == (8 , 8 , 8 )
374- assert u ._offset_domain == (3 , 5 , 6 )
375- assert u ._offset_halo == ((1 , 7 ), (3 , 9 ), (4 , 10 ))
376- assert u ._offset_halo .left == (1 , 3 , 4 )
377- assert u ._offset_halo .right == (7 , 9 , 10 )
378- assert u ._offset_owned == ((3 , 5 ), (5 , 7 ), (6 , 8 ))
379-
380- def test_w_halo_w_padding (self ):
381- grid = Grid (shape = (4 , 4 , 4 ))
382- u = Function (name = 'u' , grid = grid , space_order = (2 , 1 , 4 ),
383- padding = ((1 , 1 ), (2 , 2 ), (3 , 3 )))
384-
385- assert u ._size_halo == ((1 , 4 ), (1 , 4 ), (1 , 4 ))
386- assert u ._size_owned == ((4 , 1 ), (4 , 1 ), (4 , 1 ))
387- assert u ._size_nodomain == ((2 , 5 ), (3 , 6 ), (4 , 7 ))
388- assert u ._size_nodomain .left == (2 , 3 , 4 )
389- assert u ._size_nodomain .right == (5 , 6 , 7 )
390- assert u ._size_nopad == (9 , 9 , 9 )
391- assert u ._offset_domain == (2 , 3 , 4 )
392- assert u ._offset_halo == ((1 , 6 ), (2 , 7 ), (3 , 8 ))
393- assert u ._offset_owned == ((2 , 5 ), (3 , 6 ), (4 , 7 ))
394-
395- @switchconfig (autopadding = True , platform = 'bdw' ) # Platform is to fix pad value
361+ @switchconfig (autopadding = True , platform = 'bdw' )
396362 def test_w_halo_w_autopadding (self ):
397363 grid = Grid (shape = (4 , 4 , 4 ))
398364 u0 = Function (name = 'u0' , grid = grid , space_order = 0 )
399365 u1 = Function (name = 'u1' , grid = grid , space_order = 3 )
400366
401- assert configuration ['platform' ].simd_items_per_reg (u1 .dtype ) == 8
367+ mmts = configuration ['platform' ].max_mem_trans_size (u1 .dtype )
402368
369+ u0_pad = mmts - 4 # RoundUp(4, mmts) - 4
403370 assert u0 ._size_halo == ((0 , 0 ), (0 , 0 ), (0 , 0 ))
404- assert u0 ._size_padding == ((0 , 0 ), (0 , 0 ), (0 , 12 ))
371+ assert u0 ._size_padding == ((0 , 0 ), (0 , 0 ), (0 , u0_pad ))
405372 assert u0 ._size_nodomain == u0 ._size_padding
406- assert u0 .shape_allocated == (4 , 4 , 16 )
373+ assert u0 .shape_allocated == (4 , 4 , 4 + u0_pad )
407374
375+ u1_pad = mmts - 10 # RoundUp(3+4+3, mmts) - (3+4+3)
408376 assert u1 ._size_halo == ((3 , 3 ), (3 , 3 ), (3 , 3 ))
409- assert u1 ._size_padding == ((0 , 0 ), (0 , 0 ), (0 , 6 )) # 6 stems from 16-(3+4+3 )
410- assert u1 ._size_nodomain == ((3 , 3 ), (3 , 3 ), (3 , 9 ))
411- assert u1 .shape_allocated == (10 , 10 , 16 )
377+ assert u1 ._size_padding == ((0 , 0 ), (0 , 0 ), (0 , u1_pad ) )
378+ assert u1 ._size_nodomain == ((3 , 3 ), (3 , 3 ), (3 , 3 + u1_pad ))
379+ assert u1 .shape_allocated == (10 , 10 , 10 + u1_pad )
412380
413381 @switchconfig (autopadding = True , platform = 'bdw' )
414382 def test_temp_array_smart_padding_no_overshoot (self ):
0 commit comments