code: def BC_Mirror(self):
      
      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
docs: 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).