def METHOD_NAME(self, slip, area, shear_modulus=30.0):
    '''
    Calculates activity rate on the fault
    :param float slip:
        Slip rate in mm/yr
    :param fault_width:
        Width of the fault (km)
    :param float disp_length_ratio:
        Displacement to length ratio (dimensionless)
    :param float shear_modulus:
        Shear modulus of the fault (GPa)
    :returns:
        * Minimum Magnitude (float)
        * Bin width (float)
        * Occurrence Rates (numpy.ndarray)
    '''
    # Working in Nm so convert:  shear_modulus - GPa -> Nm
    # area - km ** 2. -> m ** 2.
    # slip - mm/yr -> m/yr
    moment_rate = (shear_modulus * 1.E9) * (area * 1.E6) * (slip / 1000.)
    moment_mag = _scale_moment(self.mmax, in_nm=True)
    characteristic_rate = moment_rate / moment_mag
    if self.sigma and (fabs(self.sigma) > 1E-5):
        self.mmin = self.mmax + (self.lower_bound * self.sigma)
        mag_upper = self.mmax + (self.upper_bound * self.sigma)
        mag_range = np.arange(self.mmin,
                              mag_upper + self.bin_width,
                              self.bin_width)
        self.occurrence_rate = characteristic_rate * (
            truncnorm.cdf(mag_range + (self.bin_width / 2.),
                          self.lower_bound, self.upper_bound,
                          loc=self.mmax, scale=self.sigma) -
            truncnorm.cdf(mag_range - (self.bin_width / 2.),
                          self.lower_bound, self.upper_bound,
                          loc=self.mmax, scale=self.sigma))
    else:
        # Returns only a single rate
        self.mmin = self.mmax
        self.occurrence_rate = np.array([characteristic_rate], dtype=float)
    return self.mmin, self.bin_width, self.occurrence_rate