code: def BC_0Displacement0Slope(self):
      
      if self.BC_W == '0Displacement0Slope':
        i=0
        self.l2[i] = np.nan
        self.l1[i] = np.nan
        self.c0[i] += 0
        self.r1[i] += 0
        self.r2[i] += 0
        i=1
        self.l2[i] = np.nan
        self.l1[i] += 0
        self.c0[i] += 0
        self.r1[i] += 0
        self.r2[i] += 0
      if self.BC_E == '0Displacement0Slope':
        i=-2
        self.l2[i] += 0
        self.l1[i] += 0
        self.c0[i] += 0
        self.r1[i] += 0
        self.r2[i] = np.nan
        i=-1
        self.l2[i] += 0
        self.l1[i] += 0
        self.c0[i] += 0
        self.r1[i] = np.nan
        self.r2[i] = np.nan
docs: 0Displacement0Slope boundary condition for 0 deflection.
      This requires that nothing be done to the edges of the solution array, 
      because the lack of the off-grid terms implies that they go to 0
      Here we just turn the cells outside the array into nan, to ensure that 
      we are not accidentally including the wrong cells here (and for consistency 
      with the other solution types -- this takes negligible time)