pvfactors.engine.PVEngine

class pvfactors.engine.PVEngine(pvarray, vf_calculator=None, irradiance_model=None, fast_mode_pvrow_index=None, fast_mode_segment_index=None)[source]

Class putting all of the calculations together into simple workflows.

__init__(pvarray, vf_calculator=None, irradiance_model=None, fast_mode_pvrow_index=None, fast_mode_segment_index=None)[source]

Create pv engine class, and initialize timeseries parameters.

Parameters
  • pvarray (BasePVArray (or child) object) – The initialized PV array object that will be used for calculations

  • vf_calculator (vf calculator object, optional) – Calculator that will be used to calculate the view factor matrices, will use VFCalculator if None (Default = None)

  • irradiance_model (irradiance model object, optional) – The irradiance model that will be applied to the PV array, will use HybridPerezOrdered if None (Default = None)

  • fast_mode_pvrow_index (int, optional) – If a pvrow index is passed, then the PVEngine fast mode will be activated and the engine calculation will be done only for the back surface of the pvrow with the corresponding index (Default = None)

  • fast_mode_segment_index (int, optional) – If a segment index is passed, then the PVEngine fast mode will calculate back surface irradiance only for the selected segment of the selected back surface (Default = None)

Methods

__init__(pvarray[, vf_calculator, ...])

Create pv engine class, and initialize timeseries parameters.

fit(timestamps, DNI, DHI, solar_zenith, ...)

Fit the timeseries data to the engine.

run_fast_mode([fn_build_report, ...])

Run all simulation timesteps using the fast mode for the back surface of a PV row, and assuming that the incident irradiance on all other surfaces is known (all but back surfaces).

run_full_mode([fn_build_report])

Run all simulation timesteps using the full mode, which calculates the equilibrium of reflections in the system, and returns a report that will be built by the function passed by the user.

with_rho_initialization(pvarray, ...[, ...])

Before creating the PV engine object, update the front and back reflectivity scalars using the faoi functions, if those values weren't passed originally