docs: def get_mfd(self, slip, area, shear_modulus=30.0):
          '''
          Calculates activity rate on the fault
  
          :param float slip:
              Slip rate in mm/yr
  
          :param area:
              Area of the fault (km)
  
          :param float shear_modulus:
              Shear modulus of the fault (GPa)
  
          :returns:
              * Minimum Magnitude (float)
              * Bin width (float)
              * Occurrence Rates (numpy.ndarray)
  
          Behavioural Notes: To use the openquake.hazardlib implementation the
          magnitudes returned will be the mid_point of the bins and not the
          original edge points. The minimum magnitude is update to reflect this!
          '''
          # Calculate moment rate in N-m / year
          moment_rate = (shear_modulus * 1.E9) * (area * 1.E6) * (slip / 1000.)
          # Get Youngs & Coppersmith rate from
          # youngs_coppersmith.YoungsCoppersmith1985MFD.from_total_moment_rate
          self.model = YoungsCoppersmith1985MFD.from_total_moment_rate(
              self.mmin - (self.bin_width / 2.),
              self.b_value,
              self.mmax - 0.25,
              moment_rate,
              self.bin_width)
          temp_data = self.model.get_annual_occurrence_rates()
          self.occurrence_rate = np.array([value[1] for value in temp_data])
          self.mmin = np.min(np.array([value[0] for value in temp_data]))
          return self.mmin, self.bin_width, self.occurrence_rate