def run_model(self, times=None, weather=None):
self.prepare_inputs(times, weather)<EOL>self.aoi_model()<EOL>self.spectral_model()<EOL>self.effective_irradiance_model()<EOL>self.temp_model()<EOL>self.dc_model()<EOL>self.ac_model()<EOL>self.losses_model()<EOL>return self<EOL>
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.