public static CompiledOutputData run(GISData gis, GUIData gui) { PVSAMV1Settings pvss = GISAdapter.getSettings(gis); float arraypower = pvss.modules_per_string * pvss.strings_in_parallel * pvss.module_model.getRatedPower(); DatasheetInverterSettings inverter = new DatasheetInverterSettings("default", arraypower * 1.15f); pvss.inverter_model = inverter; PVSAMV1Output pvo = (PVSAMV1Output)ModuleRunner.runModule(pvss); UtilityRateSettings urs = GUIAdapter.getUtilityRateSettings(gui); urs.setValuesFromPriorOutput(pvo); UtilityRateOutput uro = (UtilityRateOutput)ModuleRunner.runModule(urs); SizeAndCostSettings sc = GUIAdapter.getSizeAndCostSettings(gui); sc.setValuesFromPriorOutput(pvo); CashLoanSettings cls = GUIAdapter.getCashLoanSettings(gui); cls.setValuesFromPriorOutput(sc, uro); CashLoanOutput clo = (CashLoanOutput)ModuleRunner.runModule(cls); return(new CompiledOutputData(pvo, uro, clo, sc)); }
public void setValuesFromPriorOutput(PVSAMV1Output smo) { ac_rating = smo.inv_ac_rating; dc_rating = smo.sys_dc_rating * 1000; direct_cost = dc_rating * (pv_cost_per_watt_dc + other_system_cost_per_watt_dc + installation_cost_per_watt_dc + installer_overhead_per_watt_dc) + ac_rating * inv_cost_per_watt_ac; float sales_tax = (direct_cost) * (sales_tax_rate / 100f) * (sales_tax_cost_basis_as_pct / 100f); indirect_cost = sales_tax + dc_rating * (permitting_env_cost_per_watt_dc + engineering_cost_per_watt_dc + grid_intercon_cost_per_watt_dc + land_cost_per_watt_dc); if (use_overall_cost_per_watt_dc > 0) { direct_cost *= overall_cost_per_watt_dc / cost_per_watt_dc; indirect_cost *= overall_cost_per_watt_dc / cost_per_watt_dc; } }
public void setValuesFromPriorOutput(PVSAMV1Output s) { e_with_system = s.getHourlyElectricityProuction(); }