@@ -2203,6 +2203,24 @@ def test_lift_halo_update_outside_distributed(self, mode):
22032203 halo_update = tloop .nodes [0 ].body [0 ].body [0 ].body [0 ]
22042204 assert isinstance (halo_update , HaloUpdateList )
22052205
2206+ @pytest .mark .parallel (mode = 4 )
2207+ def test_halo_inner_dim (self , mode ):
2208+ grid = Grid ((11 , 11 , 11 ))
2209+
2210+ np .random .seed (0 )
2211+ v = TimeFunction (name = "v" , grid = grid , space_order = 4 ,
2212+ time_order = 1 , save = Buffer (1 ))
2213+ v .data [:] = np .random .randn (* grid .shape )
2214+ e = TimeFunction (name = "dummy" , grid = grid , space_order = 4 , time_order = 0 )
2215+
2216+ eq = [Eq (v .forward , v + 1 ), Eq (e , v .forward .dydz )]
2217+
2218+ op = Operator (eq , opt = ('advanced' , {'blocklevels' : 0 }))
2219+ assert_structure (op , ['txyz' , 't' , 'txyz' , 'txyz' ], 'txyzxyzz' )
2220+ op (time = 100 )
2221+
2222+ assert np .isclose (norm (e ), 23484.863 , rtol = 0 , atol = 1e-1 )
2223+
22062224
22072225class TestOperatorAdvanced :
22082226
@@ -2736,7 +2754,7 @@ def test_haloupdate_same_timestep_v2(self, mode):
27362754 assert titer .dim is grid .time_dim
27372755 assert titer .nodes [0 ].body [0 ].body [0 ].is_List
27382756 assert len (titer .nodes [0 ].body [0 ].body [0 ].body [0 ].body ) == 1
2739- assert titer .nodes [0 ].body [0 ].body [0 ].body [0 ].body [0 ].is_Call
2757+ assert not titer .nodes [0 ].body [0 ].body [0 ].body [0 ].body [0 ].is_Call
27402758
27412759 op .apply (time = 0 )
27422760
@@ -3138,8 +3156,8 @@ def test_fission_due_to_antidep(self, mode):
31383156 # First, check the generated code
31393157 assert_structure (op1 , ['t' ,
31403158 't,x0_blk0,y0_blk0,x,y,z' ,
3141- 't,x0_blk0,y0_blk0 ,x,y,z' ],
3142- 't,x0_blk0,y0_blk0,x,y,z,z ' )
3159+ 't,x1_blk0,y1_blk0 ,x,y,z' ],
3160+ 'tx0_blk0y0_blk0xyzx1_blk0y1_blk0xyz ' )
31433161
31443162 def init (f , v = 1 ):
31453163 f .data [:] = np .indices (grid .shape ).sum (axis = 0 ) % (.004 * v ) + .01
0 commit comments