code: def run_model(self, times=None, weather=None):
          
  
          self.prepare_inputs(times, weather)
          self.aoi_model()
          self.spectral_model()
          self.effective_irradiance_model()
          self.temp_model()
          self.dc_model()
          self.ac_model()
          self.losses_model()
  
          return self
docs: Run the model.
  
          Parameters
          ----------
          times : None or DatetimeIndex, default None
              Times at which to evaluate the model. Can be None if
              attribute `times` is already set.
          weather : None or DataFrame, default None
              If None, assumes air temperature is 20 C, wind speed is 0
              m/s and irradiation calculated from clear sky data. Column
              names must be 'wind_speed', 'temp_air', 'dni', 'ghi', 'dhi'.
              Do not pass incomplete irradiation data. Use method
              :py:meth:`~pvlib.modelchain.ModelChain.complete_irradiance`
              instead.
  
          Returns
          -------
          self
  
          Assigns attributes: times, solar_position, airmass, irradiance,
          total_irrad, effective_irradiance, weather, temps, aoi,
          aoi_modifier, spectral_modifier, dc, ac, losses.