function [D] = assemble_op(inner_stencil,boundary_block,m)
  
  [height_b, width_b] = size(boundary_block);
  width_i = length(inner_stencil);
  
  max_offset = floor(width_i/2);
  diags = -max_offset:max_offset;
  
  
  D = stripeMatrix(inner_stencil, diags, m);
  
  D(1:height_b,1:width_b) = boundary_block;
  D(m-height_b+1:m,m-width_b+1:m) = rot90( -boundary_block ,2);
end