Mirrors qs across the boundary on either the west (left) or east (right) 
    side, depending on the selections.
    
    This can, for example, produce a scenario in which you are observing 
    a mountain range up to the range crest (or, more correctly, the halfway 
    point across the mountain range).

def BC_Mirror(self):
    """
    Mirrors qs across the boundary on either the west (left) or east (right) 
    side, depending on the selections.
    
    This can, for example, produce a scenario in which you are observing 
    a mountain range up to the range crest (or, more correctly, the halfway 
    point across the mountain range).
    """
    if self.BC_W == 'Mirror':
      i=0
      #self.l2[i] += np.nan
      #self.l1[i] += np.nan
      self.c0[i] += 0
      self.r1[i] += self.l1_coeff_i[i]
      self.r2[i] += self.l2_coeff_i[i]
      i=1
      #self.l2[i] += np.nan
      self.l1[i] += 0
      self.c0[i] += self.l2_coeff_i[i]
      self.r1[i] += 0
      self.r2[i] += 0
    
    if self.BC_E == 'Mirror':
      i=-2
      self.l2[i] += 0
      self.l1[i] += 0
      self.c0[i] += self.r2_coeff_i[i]
      self.r1[i] += 0
      #self.r2[i] += np.nan
      i=-1
      self.l2[i] += self.r2_coeff_i[i]
      self.l1[i] += self.r1_coeff_i[i]
      self.c0[i] += 0