def make_field(name, location_type=sir.LocationType.Cell): return sir.Field( name=name, is_temporary=False, field_dimensions=sir.FieldDimensions( horizontal_dimension=sir.UnstructuredDimension( dense_location_type=location_type)), )
horizontal_offset=sir.ZeroOffset()) assign_expr = sir.AssignmentExpr(left=field_acc_a, op="=", right=field_acc_b) assign_expr_stmt = sir.ExprStmt(expr=assign_expr) root = sir.BlockStmt(statements=[assign_expr_stmt]) ast = sir.AST(root=root) vert_decl_stmt = sir.VerticalRegionDeclStmt(vertical_region=sir.VerticalRegion( ast=ast, interval=sir.Interval(), loop_order=common.LoopOrder.FORWARD)) ctrl_flow_ast = sir.AST(root=sir.BlockStmt(statements=[vert_decl_stmt])) field_a = sir.Field( name="field_a", is_temporary=False, field_dimensions=sir.FieldDimensions( horizontal_dimension=sir.UnstructuredDimension( dense_location_type=sir.LocationType.Cell)), ) field_b = sir.Field( name="field_b", is_temporary=False, field_dimensions=sir.FieldDimensions( horizontal_dimension=sir.UnstructuredDimension( dense_location_type=sir.LocationType.Cell)), ) stencil = sir.Stencil(name="copy", ast=ctrl_flow_ast, params=[field_a, field_b]) debug(stencil)