docs: def get_recurrence(self, config):
          '''
          Calculates the recurrence model for the given settings as
          an instance of the openquake.hmtk.models.IncrementalMFD
  
          :param dict config:
              Configuration settings of the magnitude frequency distribution.
          '''
          model = MFD_MAP[config['Model_Name']]()
          model.setUp(config)
          model.get_mmax(config, self.msr, self.rake, self.area)
          model.mmax = model.mmax + (self.msr_sigma * model.mmax_sigma)
          # As the Anderson & Luco arbitrary model requires the input of the
          # displacement to length ratio
  
          if 'AndersonLucoAreaMmax' in config['Model_Name']:
              if not self.disp_length_ratio:
                  # If not defined then default to 1.25E-5
                  self.disp_length_ratio = 1.25E-5
              min_mag, bin_width, occur_rates = model.get_mfd(
                  self.slip,
                  self.area, self.shear_modulus, self.disp_length_ratio)
  
          else:
              min_mag, bin_width, occur_rates = model.get_mfd(self.slip,
                                                              self.area,
                                                              self.shear_modulus)
  
          self.recurrence = IncrementalMFD(min_mag, bin_width, occur_rates)
          self.magnitudes = min_mag + np.cumsum(
              bin_width *
              np.ones(len(occur_rates), dtype=float)) - bin_width
          self.max_mag = np.max(self.magnitudes)