diff --git a/SAM/SamBaseClass.py b/SAM/SamBaseClass.py index af2bee5d..5d061e95 100644 --- a/SAM/SamBaseClass.py +++ b/SAM/SamBaseClass.py @@ -1,8 +1,6 @@ - - from SAM.PySSC import PySSC -import logging, json -import ast +import logging, json, os +from pathlib import Path class SamBaseClass(object): """description of class""" @@ -22,67 +20,116 @@ def main(self): self.ssc = PySSC() self.create_ssc_module() self.data = self.ssc.data_create() - self.varList = self.collect_all_vars_from_json() - self.set_data(self.varList) + + self.samPath = Path(__file__).resolve().parent + #self.samPath = Path("source_data/text_files/") + self.cspModel = "TcslinearFresnel_DSLF" + self.financialModel = "LeveragedPartnershipFlip" + self.weatherFile = 'C:\\SAM/2018.11.11\\solar_resource\\USA_AZ_Tucson_32.116699_-110.932999_psmv3_60_tmy.csv' + self.varListCsp = self.collect_model_variables() + #self.varListCsp = self.collect_all_vars_from_json(samPath + "/models/inputs/" + self.cspModel + ".json") + self.set_data(self.varListCsp) self.module_create_execute('tcslinear_fresnel') + + #self.varListFin = self.collect_all_vars_from_json(samPath + "/models/inputs/" + self.financialModel + ".json") + #self.set_data(self.varListFin) + self.module_create_execute('levpartflip') + self.print_impParams() self.data_free() - def collect_all_vars_from_json(self): - with open(r"D:\Drive\Thesis\Github\DOE_CSP_PROJECT\SAM\models\tcslinear_fresnel.json", "r") as read_file: - ssc_json = json.load(read_file) - all_variables = [] + def collect_model_variables(self): - #ssc_json dictionary has all the data - for model, tabsOrVars in ssc_json.items(): - #Tabs or variables present in the main json - for tabOrVar in tabsOrVars: + json_files = [] + cspPath = self.cspModel + '_inputs.json' + finPath = self.financialModel + '_inputs.json' + json_files.append(Path(self.samPath / "models" / "inputs" / cspPath)) + json_files.append(Path(self.samPath / "models" / "inputs" / finPath)) + + cspValues = self.cspModel + self.financialModel + ".json" + finValues = "Levpartflip_DSLFLeveragedPartnershipFlip.json" + json_values = [] + json_values.append( Path(self.samPath / "defaults" /cspValues)) + json_values.append( Path(self.samPath / "defaults" /finValues)) + variableValues = [] + + i = 0 + for json_file in json_files: + all_variables = [] + with open(json_file, "r") as read_file: + ssc_json = json.load(read_file) + with open(json_values[i], "r") as read_file: + values_json = json.load(read_file) + i = i + 1 + #ssc_json dictionary has all the data + for model, tabsOrVars in ssc_json.items(): + #Tabs or variables present in the main json + for tabOrVar in tabsOrVars: + try: + tabs = tabOrVar['tabs'] + # Iterate over all tabs in the json. + for tab in tabs: + for tabName, sectsOrVars in tab.items(): + for sectOrVar in sectsOrVars: + try: + sects = sectOrVar['sections'] + # Iterate over all sections in the json. + for sect in sects: + for sectName, subSectsOrVars in sect.items(): + for subSectOrVar in subSectsOrVars: + try: + subSect = subSectOrVar['subsections'] + # Iterate over all subsections in the json. + for subSector in subSect: + for subSectName, variables in subSector.items(): + # Add variables in a subsection. + for variable in variables: + all_variables.append(variable) + # Add variables that does not belong to any subsection, but is in a section. + except KeyError: + all_variables.append(subSectOrVar) + # Add variables that does not belong to any section, but is in a tab. + except KeyError: + all_variables.append(sectOrVar) + # Add variables that does not belong to any tab. + except KeyError: + all_variables.append(tabOrVar) + + + for variable in all_variables: + if variable['name'] == 'file_name': + varValue = self.weatherFile + elif variable['name'] == 'gen': + varValue = 0.050000001 + else: + varValue = values_json['defaults'][variable['group']][variable['name']] try: - tabs = tabOrVar['tabs'] - # Iterate over all tabs in the json. - for tab in tabs: - for tabName, sectsOrVars in tab.items(): - for sectOrVar in sectsOrVars: - try: - sects = sectOrVar['sections'] - # Iterate over all sections in the json. - for sect in sects: - for sectName, subSectsOrVars in sect.items(): - for subSectOrVar in subSectsOrVars: - try: - subSect = subSectOrVar['subsections'] - # Iterate over all subsections in the json. - for subSector in subSect: - for subSectName, variables in subSector.items(): - # Add variables in a subsection. - for variable in variables: - all_variables.append(variable) - # Add variables that does not belong to any subsection, but is in a section. - except KeyError: - all_variables.append(subSectOrVar) - # Add variables that does not belong to any section, but is in a tab. - except KeyError: - all_variables.append(sectOrVar) - # Add variables that does not belong to any tab. + variableValues.append({'name': variable['name'], + 'value': varValue, + 'datatype': variable['datatype'], + 'constraint': variable['constraint'] }) except KeyError: - all_variables.append(tabOrVar) - return all_variables + variableValues.append({'name': variable['name'], + 'value': varValue, + 'datatype': variable['datatype'] }) - def set_data(self, variables): - with open(r"D:\Drive\Thesis\Data\Json\samLinearFresnelDirectSteam.json", "r") as read_file: - ssc_json = json.load(read_file) + #variable.valu + return variableValues + def set_data(self, variables): + # Map all the strings present in the json file. stringsInJson = {} added_variables = {} # Increment complete TODOs count for each user. - try: - for ssc_var in variables: + + for ssc_var in variables: + try: #Checking if the variable value is present in the json and if value of the variable is a valid one. - if ("value" in ssc_var and ssc_var["value"] != "#N/A"): + if ("value" in ssc_var and ssc_var["value"] != "#N/A" and ssc_var["value"] != ""): # Add value to the dictionary. @@ -95,17 +142,17 @@ def set_data(self, variables): added_variables[varName] = True elif (ssc_var["datatype"] == "SSC_ARRAY"): - varValue = ast.literal_eval( ssc_var["value"] ) + varValue = ssc_var["value"] #ast.literal_eval( ssc_var["value"] ) self.ssc.data_set_array( self.data, b''+ varName.encode("ascii", "backslashreplace"), varValue ) added_variables[varName] = True elif (ssc_var["datatype"] == "SSC_MATRIX"): - varValue = ast.literal_eval( ssc_var["value"] ) + varValue = ssc_var["value"] #ast.literal_eval( ssc_var["value"] ) self.ssc.data_set_matrix( self.data, b''+ varName.encode("ascii", "backslashreplace"), varValue) added_variables[varName] = True elif (ssc_var["datatype"] == "SSC_NUMBER"): - varValue = ast.literal_eval( ssc_var["value"] ) + varValue = ssc_var["value"] #ast.literal_eval( ssc_var["value"] ) if "constraint" in ssc_var: if (ssc_var["constraint"] == "INTEGER"): self.ssc.data_set_number( self.data, b''+ varName.encode("ascii", "backslashreplace"), int(varValue)) @@ -127,9 +174,11 @@ def set_data(self, variables): raise Exception("Specified variable type for SAM file from the JSON is not found in definitions.") stringsInJson[varName] = varValue - except Exception as error: - self.logger.critical(error) - self.logger.info(stringsInJson) + except Exception as error: + self.logger.critical(error) + print(error) + print(ssc_var) + self.logger.info(stringsInJson) def module_create_execute(self, module): module1 = self.ssc.module_create(b'' + module.encode("ascii", "backslashreplace")) @@ -162,12 +211,40 @@ def data_free(self): self.ssc.data_clear(self.data) def print_impParams(self): + cspOuts = self.cspModel + "_outputs.json" + + output_values = Path(self.samPath / "models" / "outputs" / cspOuts) + with open(output_values, "r") as read_file: + outputs_json = json.load(read_file) + output_vars = [] + for outputs in outputs_json['TcslinearFresnel_LFDS']: + output_vars.append(outputs['Name']) + + outputs = [] + for variable in output_vars: + if variable == 'twet': continue + value = self.ssc.data_get_number(self.data, variable.encode('utf-8'));#bytes(variable, 'utf-8')); + arrayVal = self.ssc.data_get_array(self.data, variable.encode('utf-8')); + outputs.append({'name': variable, + 'value': value, + 'array': arrayVal}) + capacity_factor = self.ssc.data_get_number(self.data, b'capacity_factor'); print ('\nCapacity factor (year 1) = ', capacity_factor) # annual_total_water_use = self.ssc.data_get_number(self.data, b'annual_total_water_use'); # print ('Annual Water Usage = ', annual_total_water_use) annual_energy = self.ssc.data_get_number(self.data, b'annual_energy'); print ('Annual energy (year 1) = ', annual_energy) + + outputs.append({'name': 'capacity_factor', + 'value': capacity_factor}) + + outputs.append({'name': 'annual_energy', + 'value': annual_energy}) + json_outfile = 'sample.json' + with open(json_outfile, 'w') as outfile: + json.dump(outputs, outfile) + #print ('outputs = ', outputs) #Setup logging for the SAM modules diff --git a/SAM/defaults/TcslinearFresnel_DSLFLeveragedPartnershipFlip.json b/SAM/defaults/TcslinearFresnel_DSLFLeveragedPartnershipFlip.json index 9ab7d7e0..6d14e751 100644 --- a/SAM/defaults/TcslinearFresnel_DSLFLeveragedPartnershipFlip.json +++ b/SAM/defaults/TcslinearFresnel_DSLFLeveragedPartnershipFlip.json @@ -279,8 +279,8 @@ "x_b_des": 0.75 }, "Heliostat": { - "csp_lf_sf_washes_per_year": 120, - "csp_lf_sf_water_per_wash": 0.02 + "csp.lf.sf.washes_per_year": 120, + "csp.lf.sf.water_per_wash": 0.02 }, "Powerblock": { "CT": 2, @@ -316,7 +316,9 @@ "startup_time": 0.35 }, "AdjustmentFactors": { - "constant": 4 + "adjust:constant": 4, + "adjust:hourly": "", + "adjust:periods": "" } } } \ No newline at end of file diff --git a/SAM/models/inputs/LeveragedPartnershipFlip_inputs.json b/SAM/models/inputs/LeveragedPartnershipFlip_inputs.json new file mode 100644 index 00000000..c03de70b --- /dev/null +++ b/SAM/models/inputs/LeveragedPartnershipFlip_inputs.json @@ -0,0 +1 @@ +{"LeveragedPartnershipFlip_inputs": [{"tabs": [{"Depreciation": [{"sections": [{"ITC Qualification": [{"name": "depr_itc_sta_macrs_5", "datatype": "SSC_NUMBER", "label": "State itc depreciation 5-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=1"}, {"name": "depr_itc_sta_macrs_15", "datatype": "SSC_NUMBER", "label": "State itc depreciation 15-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_sta_sl_5", "datatype": "SSC_NUMBER", "label": "State itc depreciation 5-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_sta_sl_15", "datatype": "SSC_NUMBER", "label": "State itc depreciation 15-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_sta_sl_20", "datatype": "SSC_NUMBER", "label": "State itc depreciation 20-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_sta_sl_39", "datatype": "SSC_NUMBER", "label": "State itc depreciation 39-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_sta_custom", "datatype": "SSC_NUMBER", "label": "State itc depreciation custom", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_macrs_5", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 5-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=1"}, {"name": "depr_itc_fed_macrs_15", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 15-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_sl_5", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 5-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_sl_15", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 15-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_sl_20", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 20-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_sl_39", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation 39-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_itc_fed_custom", "datatype": "SSC_NUMBER", "label": "Federal itc depreciation custom", "group": "Depreciation", "units": "0/1", "require": "?=0"}]}, {"Bonus Depreciation": [{"name": "depr_bonus_sta", "datatype": "SSC_NUMBER", "label": "State bonus depreciation", "group": "Depreciation", "units": "%", "require": "?=0"}, {"name": "depr_bonus_sta_macrs_5", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 5-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=1"}, {"name": "depr_bonus_sta_macrs_15", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 15-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_sta_sl_5", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 5-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_sta_sl_15", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 15-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_sta_sl_20", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 20-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_sta_sl_39", "datatype": "SSC_NUMBER", "label": "State bonus depreciation 39-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_sta_custom", "datatype": "SSC_NUMBER", "label": "State bonus depreciation custom", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation", "group": "Depreciation", "units": "%", "require": "?=0"}, {"name": "depr_bonus_fed_macrs_5", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 5-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=1"}, {"name": "depr_bonus_fed_macrs_15", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 15-yr MACRS", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed_sl_5", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 5-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed_sl_15", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 15-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed_sl_20", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 20-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed_sl_39", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation 39-yr straight line", "group": "Depreciation", "units": "0/1", "require": "?=0"}, {"name": "depr_bonus_fed_custom", "datatype": "SSC_NUMBER", "label": "Federal bonus depreciation custom", "group": "Depreciation", "units": "0/1", "require": "?=0"}]}, {"Custom": [{"name": "depr_custom_schedule", "datatype": "SSC_ARRAY", "label": "Custom depreciation schedule", "group": "Depreciation", "units": "%", "require": "*"}]}, {"Allocations": [{"name": "depr_alloc_macrs_5_percent", "datatype": "SSC_NUMBER", "label": "5-yr MACRS depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=89"}, {"name": "depr_alloc_macrs_15_percent", "datatype": "SSC_NUMBER", "label": "15-yr MACRS depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=1.5"}, {"name": "depr_alloc_sl_5_percent", "datatype": "SSC_NUMBER", "label": "5-yr straight line depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=0"}, {"name": "depr_alloc_sl_15_percent", "datatype": "SSC_NUMBER", "label": "15-yr straight line depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=3"}, {"name": "depr_alloc_sl_20_percent", "datatype": "SSC_NUMBER", "label": "20-yr straight line depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=3"}, {"name": "depr_alloc_sl_39_percent", "datatype": "SSC_NUMBER", "label": "39-yr straight line depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=0.5"}, {"name": "depr_alloc_custom_percent", "datatype": "SSC_NUMBER", "label": "Custom depreciation federal and state allocation", "group": "Depreciation", "units": "%", "require": "?=0"}]}]}]}, {"Time of Delivery Factors": [{"sections": [{"Time of Delivery (TOD) Factors": [{"name": "system_use_lifetime_output", "datatype": "SSC_NUMBER", "label": "Lifetime hourly system outputs", "group": "TimeOfDelivery", "units": "0/1", "require": "*"}, {"name": "ppa_multiplier_model", "datatype": "SSC_NUMBER", "label": "PPA multiplier model", "group": "TimeOfDelivery", "units": "0/1", "require": "?=0"}, {"name": "dispatch_factors_ts", "datatype": "SSC_ARRAY", "label": "Dispatch payment factor array", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=1"}, {"name": "dispatch_factor1", "datatype": "SSC_NUMBER", "label": "TOD factor for period 1", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor2", "datatype": "SSC_NUMBER", "label": "TOD factor for period 2", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor3", "datatype": "SSC_NUMBER", "label": "TOD factor for period 3", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor4", "datatype": "SSC_NUMBER", "label": "TOD factor for period 4", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor5", "datatype": "SSC_NUMBER", "label": "TOD factor for period 5", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor6", "datatype": "SSC_NUMBER", "label": "TOD factor for period 6", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor7", "datatype": "SSC_NUMBER", "label": "TOD factor for period 7", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor8", "datatype": "SSC_NUMBER", "label": "TOD factor for period 8", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_factor9", "datatype": "SSC_NUMBER", "label": "TOD factor for period 9", "group": "TimeOfDelivery", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_sched_weekday", "datatype": "SSC_MATRIX", "label": "Diurnal weekday TOD periods", "group": "TimeOfDelivery", "units": "1..9", "require": "ppa_multiplier_model=0"}, {"name": "dispatch_sched_weekend", "datatype": "SSC_MATRIX", "label": "Diurnal weekend TOD periods", "group": "TimeOfDelivery", "units": "1..9", "require": "ppa_multiplier_model=0"}]}]}]}, {"Lifetime": [{"sections": [{"System Performance Degradation": [{"name": "degradation", "datatype": "SSC_ARRAY", "label": "Annual energy degradation", "group": "SystemOutput", "require": "*"}]}]}]}, {"Incentives": [{"sections": [{"Production Based Incentive (PBI)": [{"name": "pbi_fed_amount", "datatype": "SSC_ARRAY", "label": "Federal PBI amount", "group": "PaymentIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "pbi_fed_term", "datatype": "SSC_NUMBER", "label": "Federal PBI term", "group": "PaymentIncentives", "units": "years", "require": "?=0"}, {"name": "pbi_fed_escal", "datatype": "SSC_NUMBER", "label": "Federal PBI escalation", "group": "PaymentIncentives", "units": "%", "require": "?=0"}, {"name": "pbi_fed_tax_fed", "datatype": "SSC_NUMBER", "label": "Federal PBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_fed_tax_sta", "datatype": "SSC_NUMBER", "label": "Federal PBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_sta_amount", "datatype": "SSC_ARRAY", "label": "State PBI amount", "group": "PaymentIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "pbi_sta_term", "datatype": "SSC_NUMBER", "label": "State PBI term", "group": "PaymentIncentives", "units": "years", "require": "?=0"}, {"name": "pbi_sta_escal", "datatype": "SSC_NUMBER", "label": "State PBI escalation", "group": "PaymentIncentives", "units": "%", "require": "?=0"}, {"name": "pbi_sta_tax_fed", "datatype": "SSC_NUMBER", "label": "State PBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_sta_tax_sta", "datatype": "SSC_NUMBER", "label": "State PBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_uti_amount", "datatype": "SSC_ARRAY", "label": "Utility PBI amount", "group": "PaymentIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "pbi_uti_term", "datatype": "SSC_NUMBER", "label": "Utility PBI term", "group": "PaymentIncentives", "units": "years", "require": "?=0"}, {"name": "pbi_uti_escal", "datatype": "SSC_NUMBER", "label": "Utility PBI escalation", "group": "PaymentIncentives", "units": "%", "require": "?=0"}, {"name": "pbi_uti_tax_fed", "datatype": "SSC_NUMBER", "label": "Utility PBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_uti_tax_sta", "datatype": "SSC_NUMBER", "label": "Utility PBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_oth_amount", "datatype": "SSC_ARRAY", "label": "Other PBI amount", "group": "PaymentIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "pbi_oth_term", "datatype": "SSC_NUMBER", "label": "Other PBI term", "group": "PaymentIncentives", "units": "years", "require": "?=0"}, {"name": "pbi_oth_escal", "datatype": "SSC_NUMBER", "label": "Other PBI escalation", "group": "PaymentIncentives", "units": "%", "require": "?=0"}, {"name": "pbi_oth_tax_fed", "datatype": "SSC_NUMBER", "label": "Other PBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_oth_tax_sta", "datatype": "SSC_NUMBER", "label": "Other PBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "pbi_fed_for_ds", "datatype": "SSC_NUMBER", "label": "Federal PBI available for debt service", "group": "CashIncentives", "units": "0/1", "require": "?=0"}, {"name": "pbi_sta_for_ds", "datatype": "SSC_NUMBER", "label": "State PBI available for debt service", "group": "CashIncentives", "units": "0/1", "require": "?=0"}, {"name": "pbi_uti_for_ds", "datatype": "SSC_NUMBER", "label": "Utility PBI available for debt service", "group": "CashIncentives", "units": "0/1", "require": "?=0"}, {"name": "pbi_oth_for_ds", "datatype": "SSC_NUMBER", "label": "Other PBI available for debt service", "group": "CashIncentives", "units": "0/1", "require": "?=0"}]}, {"Capacity Based Incentive (CBI)": [{"name": "cbi_fed_amount", "datatype": "SSC_NUMBER", "label": "Federal CBI amount", "group": "PaymentIncentives", "units": "$/Watt", "require": "?=0.0"}, {"name": "cbi_fed_maxvalue", "datatype": "SSC_NUMBER", "label": "Federal CBI maximum", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "cbi_fed_tax_fed", "datatype": "SSC_NUMBER", "label": "Federal CBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_fed_tax_sta", "datatype": "SSC_NUMBER", "label": "Federal CBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_fed_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Federal CBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_fed_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Federal CBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_sta_amount", "datatype": "SSC_NUMBER", "label": "State CBI amount", "group": "PaymentIncentives", "units": "$/Watt", "require": "?=0.0"}, {"name": "cbi_sta_maxvalue", "datatype": "SSC_NUMBER", "label": "State CBI maximum", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "cbi_sta_tax_fed", "datatype": "SSC_NUMBER", "label": "State CBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_sta_tax_sta", "datatype": "SSC_NUMBER", "label": "State CBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_sta_deprbas_fed", "datatype": "SSC_NUMBER", "label": "State CBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_sta_deprbas_sta", "datatype": "SSC_NUMBER", "label": "State CBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_uti_amount", "datatype": "SSC_NUMBER", "label": "Utility CBI amount", "group": "PaymentIncentives", "units": "$/Watt", "require": "?=0.0"}, {"name": "cbi_uti_maxvalue", "datatype": "SSC_NUMBER", "label": "Utility CBI maximum", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "cbi_uti_tax_fed", "datatype": "SSC_NUMBER", "label": "Utility CBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_uti_tax_sta", "datatype": "SSC_NUMBER", "label": "Utility CBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_uti_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Utility CBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_uti_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Utility CBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_oth_amount", "datatype": "SSC_NUMBER", "label": "Other CBI amount", "group": "PaymentIncentives", "units": "$/Watt", "require": "?=0.0"}, {"name": "cbi_oth_maxvalue", "datatype": "SSC_NUMBER", "label": "Other CBI maximum", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "cbi_oth_tax_fed", "datatype": "SSC_NUMBER", "label": "Other CBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_oth_tax_sta", "datatype": "SSC_NUMBER", "label": "Other CBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "cbi_oth_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Other CBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "cbi_oth_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Other CBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}]}, {"Investment Based Incentive (IBI)": [{"name": "ibi_fed_amount", "datatype": "SSC_NUMBER", "label": "Federal amount-based IBI amount", "group": "PaymentIncentives", "units": "$", "require": "?=0"}, {"name": "ibi_fed_amount_tax_fed", "datatype": "SSC_NUMBER", "label": "Federal amount-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_fed_amount_tax_sta", "datatype": "SSC_NUMBER", "label": "Federal amount-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_fed_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Federal amount-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_fed_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Federal amount-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_sta_amount", "datatype": "SSC_NUMBER", "label": "State amount-based IBI amount", "group": "PaymentIncentives", "units": "$", "require": "?=0"}, {"name": "ibi_sta_amount_tax_fed", "datatype": "SSC_NUMBER", "label": "State amount-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_sta_amount_tax_sta", "datatype": "SSC_NUMBER", "label": "State amount-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_sta_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "State amount-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_sta_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "State amount-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_uti_amount", "datatype": "SSC_NUMBER", "label": "Utility amount-based IBI amount", "group": "PaymentIncentives", "units": "$", "require": "?=0"}, {"name": "ibi_uti_amount_tax_fed", "datatype": "SSC_NUMBER", "label": "Utility amount-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_uti_amount_tax_sta", "datatype": "SSC_NUMBER", "label": "Utility amount-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_uti_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Utility amount-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_uti_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Utility amount-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_oth_amount", "datatype": "SSC_NUMBER", "label": "Other amount-based IBI amount", "group": "PaymentIncentives", "units": "$", "require": "?=0"}, {"name": "ibi_oth_amount_tax_fed", "datatype": "SSC_NUMBER", "label": "Other amount-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_oth_amount_tax_sta", "datatype": "SSC_NUMBER", "label": "Other amount-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_oth_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Other amount-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_oth_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Other amount-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_fed_percent", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI percent", "group": "PaymentIncentives", "units": "%", "require": "?=0.0"}, {"name": "ibi_fed_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI maximum value", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "ibi_fed_percent_tax_fed", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_fed_percent_tax_sta", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_fed_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_fed_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Federal percentage-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_sta_percent", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI percent", "group": "PaymentIncentives", "units": "%", "require": "?=0.0"}, {"name": "ibi_sta_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI maximum value", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "ibi_sta_percent_tax_fed", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_sta_percent_tax_sta", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_sta_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_sta_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "State percentage-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_uti_percent", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI percent", "group": "PaymentIncentives", "units": "%", "require": "?=0.0"}, {"name": "ibi_uti_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI maximum value", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "ibi_uti_percent_tax_fed", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_uti_percent_tax_sta", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_uti_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_uti_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Utility percentage-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_oth_percent", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI percent", "group": "PaymentIncentives", "units": "%", "require": "?=0.0"}, {"name": "ibi_oth_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI maximum value", "group": "PaymentIncentives", "units": "$", "require": "?=1e99"}, {"name": "ibi_oth_percent_tax_fed", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI federal taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_oth_percent_tax_sta", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI state taxable", "group": "PaymentIncentives", "units": "0/1", "require": "?=1"}, {"name": "ibi_oth_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI reduces federal depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}, {"name": "ibi_oth_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Other percentage-based IBI reduces state depreciation basis", "group": "PaymentIncentives", "units": "0/1", "require": "?=0"}]}, {"Production Tax Credit": [{"name": "ptc_fed_amount", "datatype": "SSC_ARRAY", "label": "Federal PTC amount", "group": "TaxCreditIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "ptc_fed_term", "datatype": "SSC_NUMBER", "label": "Federal PTC term", "group": "TaxCreditIncentives", "units": "years", "require": "?=10"}, {"name": "ptc_fed_escal", "datatype": "SSC_NUMBER", "label": "Federal PTC escalation", "group": "TaxCreditIncentives", "units": "%/year", "require": "?=0"}, {"name": "ptc_sta_amount", "datatype": "SSC_ARRAY", "label": "State PTC amount", "group": "TaxCreditIncentives", "units": "$/kWh", "require": "?=0"}, {"name": "ptc_sta_term", "datatype": "SSC_NUMBER", "label": "State PTC term", "group": "TaxCreditIncentives", "units": "years", "require": "?=10"}, {"name": "ptc_sta_escal", "datatype": "SSC_NUMBER", "label": "State PTC escalation", "group": "TaxCreditIncentives", "units": "%/year", "require": "?=0"}]}, {"Investment Tax Credit (ITC)": [{"name": "itc_fed_amount", "datatype": "SSC_NUMBER", "label": "Federal amount-based ITC amount", "group": "TaxCreditIncentives", "units": "$", "require": "?=0"}, {"name": "itc_fed_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Federal amount-based ITC reduces federal depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=1"}, {"name": "itc_fed_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Federal amount-based ITC reduces state depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=1"}, {"name": "itc_sta_amount", "datatype": "SSC_NUMBER", "label": "State amount-based ITC amount", "group": "TaxCreditIncentives", "units": "$", "require": "?=0"}, {"name": "itc_sta_amount_deprbas_fed", "datatype": "SSC_NUMBER", "label": "State amount-based ITC reduces federal depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=0"}, {"name": "itc_sta_amount_deprbas_sta", "datatype": "SSC_NUMBER", "label": "State amount-based ITC reduces state depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=0"}, {"name": "itc_fed_percent", "datatype": "SSC_NUMBER", "label": "Federal percentage-based ITC percent", "group": "TaxCreditIncentives", "units": "%", "require": "?=0"}, {"name": "itc_fed_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "Federal percentage-based ITC maximum value", "group": "TaxCreditIncentives", "units": "$", "require": "?=1e99"}, {"name": "itc_fed_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "Federal percentage-based ITC reduces federal depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=1"}, {"name": "itc_fed_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "Federal percentage-based ITC reduces state depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=1"}, {"name": "itc_sta_percent", "datatype": "SSC_NUMBER", "label": "State percentage-based ITC percent", "group": "TaxCreditIncentives", "units": "%", "require": "?=0"}, {"name": "itc_sta_percent_maxvalue", "datatype": "SSC_NUMBER", "label": "State percentage-based ITC maximum Value", "group": "TaxCreditIncentives", "units": "$", "require": "?=1e99"}, {"name": "itc_sta_percent_deprbas_fed", "datatype": "SSC_NUMBER", "label": "State percentage-based ITC reduces federal depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=0"}, {"name": "itc_sta_percent_deprbas_sta", "datatype": "SSC_NUMBER", "label": "State percentage-based ITC reduces state depreciation basis", "group": "TaxCreditIncentives", "units": "0/1", "require": "?=0"}]}]}]}, {"SystemCosts": [{"sections": [{"Total Installed Costs": [{"name": "total_installed_cost", "datatype": "SSC_NUMBER", "label": "Installed cost", "group": "SystemCosts", "units": "$", "require": "*"}]}, {"Operation and Maintenance Costs": [{"name": "om_fixed", "datatype": "SSC_ARRAY", "label": "Fixed O&M annual amount", "group": "SystemCosts", "units": "$/year", "require": "?=0.0"}, {"name": "om_fixed_escal", "datatype": "SSC_NUMBER", "label": "Fixed O&M escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}, {"name": "om_production", "datatype": "SSC_ARRAY", "label": "Production-based O&M amount", "group": "SystemCosts", "units": "$/MWh", "require": "?=0.0"}, {"name": "om_production_escal", "datatype": "SSC_NUMBER", "label": "Production-based O&M escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}, {"name": "om_capacity", "datatype": "SSC_ARRAY", "label": "Capacity-based O&M amount", "group": "SystemCosts", "units": "$/kWcap", "require": "?=0.0"}, {"name": "om_capacity_escal", "datatype": "SSC_NUMBER", "label": "Capacity-based O&M escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}, {"name": "om_fuel_cost", "datatype": "SSC_ARRAY", "label": "Fuel cost", "group": "SystemCosts", "units": "$/MMBtu", "require": "?=0.0"}, {"name": "om_fuel_cost_escal", "datatype": "SSC_NUMBER", "label": "Fuel cost escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}]}]}]}, {"Financial Parameters": [{"sections": [{"Equity Flip Structure": [{"name": "tax_investor_equity_percent", "datatype": "SSC_NUMBER", "label": "Tax investor equity", "group": "IRRTargets", "units": "%", "require": "?=98"}, {"name": "tax_investor_preflip_cash_percent", "datatype": "SSC_NUMBER", "label": "Tax investor pre-flip cash", "group": "IRRTargets", "units": "%", "require": "?=98"}, {"name": "tax_investor_postflip_cash_percent", "datatype": "SSC_NUMBER", "label": "Tax investor post-flip cash", "group": "IRRTargets", "units": "%", "require": "?=15"}, {"name": "tax_investor_preflip_tax_percent", "datatype": "SSC_NUMBER", "label": "Tax investor pre-flip tax benefit", "group": "IRRTargets", "units": "%", "require": "?=98"}, {"name": "tax_investor_postflip_tax_percent", "datatype": "SSC_NUMBER", "label": "Tax investor post-flip tax benefit", "group": "IRRTargets", "units": "%", "require": "?=15"}]}, {"Cost of Acquiring Financing": [{"name": "cost_dev_fee_percent", "datatype": "SSC_NUMBER", "label": "Development fee (% pre-financing cost)", "group": "OtherCapitalCosts", "units": "%", "require": "?=3"}, {"name": "cost_equity_closing", "datatype": "SSC_NUMBER", "label": "Equity closing cost", "group": "OtherCapitalCosts", "units": "$", "require": "?=100000"}, {"name": "cost_other_financing", "datatype": "SSC_NUMBER", "group": "OtherCapitalCosts", "units": "$", "require": "?=150000"}]}, {"ConstructionFinancing": [{"name": "construction_financing_cost", "datatype": "SSC_NUMBER", "label": "Construction financing total", "group": "ConstructionFinancing", "units": "$", "require": "*"}]}, {"Solution Mode": [{"name": "ppa_soln_mode", "datatype": "SSC_NUMBER", "label": "PPA solution mode", "group": "SolutionMode", "units": "0/1", "require": "?=0"}, {"name": "ppa_price_input", "datatype": "SSC_NUMBER", "label": "Initial year PPA price", "group": "SolutionMode", "units": "$/kWh", "require": "?=10"}, {"name": "flip_target_percent", "datatype": "SSC_NUMBER", "label": "After-tax flip/return target", "group": "IRRTargets", "units": "%", "require": "?=11"}, {"name": "flip_target_year", "datatype": "SSC_NUMBER", "label": "Return target year", "group": "IRRTargets", "require": "?=11"}]}, {"Salvage Value": [{"name": "salvage_percentage", "datatype": "SSC_NUMBER", "label": "Net pre-tax cash salvage value", "group": "SalvageValue", "units": "%", "require": "?=10"}]}, {"Reserve Accounts": [{"name": "reserves_interest", "datatype": "SSC_NUMBER", "label": "Interest on reserves", "group": "ReserveAccounts", "units": "%", "require": "?=1.75"}, {"name": "equip1_reserve_cost", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 1 cost", "group": "ReserveAccounts", "units": "$/W", "require": "?=0.25"}, {"name": "equip1_reserve_freq", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 1 frequency", "group": "ReserveAccounts", "units": "years", "require": "?=12"}, {"name": "equip2_reserve_cost", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 2 cost", "group": "ReserveAccounts", "units": "$/W", "require": "?=0"}, {"name": "equip2_reserve_freq", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 2 frequency", "group": "ReserveAccounts", "units": "years", "require": "?=15"}, {"name": "equip3_reserve_cost", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 3 cost", "group": "ReserveAccounts", "units": "$/W", "require": "?=0"}, {"name": "equip3_reserve_freq", "datatype": "SSC_NUMBER", "label": "Major equipment reserve 3 frequency", "group": "ReserveAccounts", "units": "years", "require": "?=20"}, {"name": "equip_reserve_depr_sta", "datatype": "SSC_NUMBER", "label": "Major equipment reserve state depreciation", "group": "Depreciation", "require": "?=0"}, {"name": "equip_reserve_depr_fed", "datatype": "SSC_NUMBER", "label": "Major equipment reserve federal depreciation", "group": "Depreciation", "require": "?=0"}, {"name": "dscr_reserve_months", "datatype": "SSC_NUMBER", "label": "Debt service reserve account", "group": "ProjectTermDebt", "units": "months P&I", "require": "?=6"}, {"name": "months_working_reserve", "datatype": "SSC_NUMBER", "label": "Working capital reserve months of operating costs", "group": "OtherCapitalCosts", "units": "months", "require": "?=6"}, {"name": "months_receivables_reserve", "datatype": "SSC_NUMBER", "label": "Receivables reserve months of PPA revenue", "group": "OtherCapitalCosts", "units": "months", "require": "?=0"}]}, {"Project Term Debt": [{"name": "loan_moratorium", "datatype": "SSC_NUMBER", "label": "Loan moratorium period", "group": "Moratorium", "units": "years", "require": "?=0"}, {"name": "term_tenor", "datatype": "SSC_NUMBER", "label": "Term financing tenor", "group": "ProjectTermDebt", "units": "years", "require": "?=10"}, {"name": "term_int_rate", "datatype": "SSC_NUMBER", "label": "Term financing interest rate", "group": "ProjectTermDebt", "units": "%", "require": "?=8.5"}, {"name": "dscr", "datatype": "SSC_NUMBER", "label": "Debt service coverage ratio", "group": "ProjectTermDebt", "require": "?=1.5"}, {"name": "debt_percent", "datatype": "SSC_NUMBER", "label": "Debt percent", "group": "ProjectTermDebt", "units": "%", "require": "?=50"}, {"name": "debt_option", "datatype": "SSC_NUMBER", "label": "Debt option", "group": "ProjectTermDebt", "units": "0/1", "require": "?=1"}, {"name": "payment_option", "datatype": "SSC_NUMBER", "label": "Debt repayment option", "group": "ProjectTermDebt", "units": "0/1", "require": "?=0"}, {"name": "cost_debt_closing", "datatype": "SSC_NUMBER", "label": "Debt closing cost", "group": "OtherCapitalCosts", "units": "$", "require": "?=250000"}, {"name": "cost_debt_fee", "datatype": "SSC_NUMBER", "label": "Debt closing fee (% of total debt amount)", "group": "OtherCapitalCosts", "units": "%", "require": "?=1.5"}]}, {"Project Tax and Insurance Rates": [{"name": "federal_tax_rate", "datatype": "SSC_ARRAY", "label": "Federal income tax rate", "group": "FinancialParameters", "units": "%", "require": "*"}, {"name": "state_tax_rate", "datatype": "SSC_ARRAY", "label": "State income tax rate", "group": "FinancialParameters", "units": "%", "require": "*"}, {"name": "property_tax_rate", "datatype": "SSC_NUMBER", "label": "Property tax rate", "group": "FinancialParameters", "units": "%", "require": "?=0.0"}, {"name": "prop_tax_cost_assessed_percent", "datatype": "SSC_NUMBER", "label": "Percent of pre-financing costs assessed", "group": "FinancialParameters", "units": "%", "require": "?=95"}, {"name": "prop_tax_assessed_decline", "datatype": "SSC_NUMBER", "label": "Assessed value annual decline", "group": "FinancialParameters", "units": "%", "require": "?=5"}, {"name": "insurance_rate", "datatype": "SSC_NUMBER", "label": "Insurance rate", "group": "FinancialParameters", "units": "%", "require": "?=0.0"}]}, {"Analysis Parameters": [{"name": "analysis_period", "datatype": "SSC_NUMBER", "label": "Analyis period", "group": "FinancialParameters", "units": "years", "require": "?=30"}, {"name": "real_discount_rate", "datatype": "SSC_NUMBER", "label": "Real discount rate", "group": "FinancialParameters", "units": "%", "require": "*"}, {"name": "inflation_rate", "datatype": "SSC_NUMBER", "label": "Inflation rate", "group": "FinancialParameters", "units": "%", "require": "*"}]}]}]}]}, {"name": "om_opt_fuel_1_usage", "datatype": "SSC_NUMBER", "label": "Biomass feedstock usage", "group": "SystemCosts", "units": "unit", "require": "?=0.0"}, {"name": "om_opt_fuel_1_cost", "datatype": "SSC_ARRAY", "label": "Biomass feedstock cost", "group": "SystemCosts", "units": "$/unit", "require": "?=0.0"}, {"name": "om_opt_fuel_1_cost_escal", "datatype": "SSC_NUMBER", "label": "Biomass feedstock cost escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}, {"name": "om_opt_fuel_2_usage", "datatype": "SSC_NUMBER", "label": "Coal feedstock usage", "group": "SystemCosts", "units": "unit", "require": "?=0.0"}, {"name": "om_opt_fuel_2_cost", "datatype": "SSC_ARRAY", "label": "Coal feedstock cost", "group": "SystemCosts", "units": "$/unit", "require": "?=0.0"}, {"name": "om_opt_fuel_2_cost_escal", "datatype": "SSC_NUMBER", "label": "Coal feedstock cost escalation", "group": "SystemCosts", "units": "%/year", "require": "?=0.0"}, {"name": "gen", "datatype": "SSC_ARRAY", "label": "Power generated by renewable resource", "units": "kW", "require": "*"}, {"name": "system_capacity", "datatype": "SSC_NUMBER", "label": "System nameplate capacity", "group": "SystemOutput", "units": "kW", "require": "*"}, {"name": "ppa_soln_tolerance", "datatype": "SSC_NUMBER", "label": "PPA solution tolerance", "group": "SolutionMode", "require": "?=1e-3"}, {"name": "ppa_soln_min", "datatype": "SSC_NUMBER", "label": "PPA solution minimum ppa", "group": "SolutionMode", "units": "cents/kWh", "require": "?=0"}, {"name": "ppa_soln_max", "datatype": "SSC_NUMBER", "label": "PPA solution maximum ppa", "group": "SolutionMode", "units": "cents/kWh", "require": "?=100"}, {"name": "ppa_soln_max_iterations", "datatype": "SSC_NUMBER", "label": "PPA solution maximum number of iterations", "group": "SolutionMode", "require": "?=100"}, {"name": "ppa_escalation", "datatype": "SSC_NUMBER", "label": "PPA escalation", "group": "SolutionMode", "units": "%", "require": "?=0"}, {"name": "depr_stabas_method", "datatype": "SSC_NUMBER", "label": "Method of state depreciation reduction", "group": "Depreciation", "require": "?=0"}, {"name": "depr_fedbas_method", "datatype": "SSC_NUMBER", "label": "Method of federal depreciation reduction", "group": "Depreciation", "require": "?=0"}, {"name": "batt_bank_replacement", "datatype": "SSC_ARRAY", "label": "Battery bank replacements per year", "group": "Battery", "units": "number/year"}, {"name": "batt_replacement_schedule", "datatype": "SSC_ARRAY", "label": "Battery bank replacements per year (user specified)", "group": "Battery", "units": "number/year"}, {"name": "en_batt", "datatype": "SSC_NUMBER", "label": "Enable battery storage model", "group": "Battery", "units": "0/1", "require": "?=0"}, {"name": "batt_replacement_option", "datatype": "SSC_NUMBER", "label": "Enable battery replacement?", "group": "Battery", "units": "0=none,1=capacity based,2=user schedule", "require": "?=0"}, {"name": "battery_per_kWh", "datatype": "SSC_NUMBER", "label": "Battery cost", "group": "Battery", "units": "$/kWh", "require": "?=0.0"}, {"name": "batt_computed_bank_capacity", "datatype": "SSC_NUMBER", "label": "Battery bank capacity", "group": "Battery", "units": "kWh", "require": "?=0.0"}, {"name": "batt_replacement_cost", "datatype": "SSC_NUMBER", "label": "Battery bank replacement cost", "group": "Battery", "units": "$/kWh", "require": "?=0.0"}, {"name": "batt_replacement_cost_escal", "datatype": "SSC_NUMBER", "label": "Battery bank replacement cost escalation", "group": "Battery", "units": "%/year", "require": "?=0.0"}, {"name": "system_use_recapitalization", "datatype": "SSC_NUMBER", "label": "Recapitalization expenses", "group": "Recapitalization", "units": "0/1", "require": "?=0"}]} \ No newline at end of file diff --git a/SAM/models/inputs/TcslinearFresnel_DSLF_inputs.json b/SAM/models/inputs/TcslinearFresnel_DSLF_inputs.json new file mode 100644 index 00000000..f05819ba --- /dev/null +++ b/SAM/models/inputs/TcslinearFresnel_DSLF_inputs.json @@ -0,0 +1 @@ +{"TcslinearFresnel_DSLF_inputs": [{"tabs": [{"Power Cycle": [{"sections": [{"Avaialability and Curtailment": [{"name": "adjust:constant", "datatype": "SSC_NUMBER", "label": "Constant loss adjustment", "group": "AdjustmentFactors", "units": "%", "require": "*"}, {"name": "adjust:hourly", "datatype": "SSC_ARRAY", "label": "Hourly loss adjustments", "group": "AdjustmentFactors", "units": "%", "require": "?"}, {"name": "adjust:periods", "datatype": "SSC_MATRIX", "label": "Period-based loss adjustments", "group": "AdjustmentFactors", "units": "%", "require": "?"}]}, {"Operation": [{"name": "startup_time", "datatype": "SSC_NUMBER", "label": "Time needed for power block startup", "group": "Powerblock", "units": "hr", "require": "*"}, {"name": "startup_frac", "datatype": "SSC_NUMBER", "label": "Fraction of design thermal power needed for startup", "group": "Powerblock", "units": "none", "require": "*"}]}]}]}, {"From weather file?": [{"name": "dnifc", "datatype": "SSC_NUMBER", "label": "Forecast DNI", "group": "Solarfield", "units": "W/m2", "require": "*"}, {"name": "I_bn", "datatype": "SSC_NUMBER", "label": "Beam normal radiation (input kJ/m2-hr)", "group": "Solarfield", "units": "W/m2", "require": "*"}, {"name": "T_db", "datatype": "SSC_NUMBER", "label": "Dry bulb air temperature", "group": "Solarfield", "units": "C", "require": "*"}, {"name": "T_dp", "datatype": "SSC_NUMBER", "label": "The dewpoint temperature", "group": "Solarfield", "units": "C", "require": "*"}, {"name": "P_amb", "datatype": "SSC_NUMBER", "label": "Ambient pressure", "group": "Solarfield", "units": "atm", "require": "*"}, {"name": "V_wind", "datatype": "SSC_NUMBER", "label": "Ambient windspeed", "group": "Solarfield", "units": "m/s", "require": "*"}]}, {"Collector and Receiver ": [{"sections": [{" Boiler Geometry and Optical Performance ": [{"subsections": [{" Solar Position/Collector Incidence Angle Table": [{"name": "b_OpticalTable", "datatype": "SSC_MATRIX", "label": "Values of the optical efficiency table", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "sh_OpticalTable", "datatype": "SSC_MATRIX", "label": "Values of the optical efficiency table", "group": "Solarfield", "units": "none", "require": "*"}]}]}]}, {" Receiver Geometry and Heat loss ": [{"subsections": [{" Evacuated tube heat loss model": [{"name": "D_2", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The inner absorber tube diameter", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "D_3", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The outer absorber tube diameter", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "D_4", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The inner glass envelope diameter", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "D_5", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The outer glass envelope diameter", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "D_p", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The diameter of the absorber flow plug (optional)", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "Rough", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Roughness of the internal surface", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "Flow_type", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The flow type through the absorber", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "AbsorberMaterial", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Absorber material type", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "HCE_FieldFrac", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The fraction of the field occupied by this HCE type (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "alpha_abs", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Absorber absorptance (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "b_eps_HCE1", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "b_eps_HCE2", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "b_eps_HCE3", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "b_eps_HCE4", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "sh_eps_HCE1", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "sh_eps_HCE2", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "sh_eps_HCE3", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "sh_eps_HCE4", "datatype": "SSC_MATRIX", "label": "(temperature) Absorber emittance (eps)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "alpha_env", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Envelope absorptance (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "EPSILON_4", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Inner glass envelope emissivities (Pyrex) (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "Tau_envelope", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Envelope transmittance (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "GlazingIntactIn", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The glazing intact flag {true=0; false=1} (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "AnnulusGas", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Annulus gas type {1=air; 26=Ar; 27=H2} (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "P_a", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Annulus gas pressure (4: # field fracs)", "group": "Solarfield", "units": "torr", "require": "*"}, {"name": "Design_loss", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Receiver heat loss at design (4: # field fracs)", "group": "Solarfield", "units": "W/m", "require": "*"}, {"name": "Shadowing", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Receiver bellows shadowing loss factor (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "Dirt_HCE", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Loss due to dirt on the receiver envelope (4: # field fracs)", "group": "Solarfield", "units": "none", "require": "*"}]}, {" Polynomial fit heat loss model": [{"name": "HL_dT", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Heat loss coefficient - HTF temperature (0,1,2,3,4 order terms)", "group": "Solarfield", "units": "W/m-K^order", "require": "*"}, {"name": "HL_W", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Heat loss coef adj wind velocity (0,1,2,3,4 order terms)", "group": "Solarfield", "units": "1/(m/s)^order", "require": "*"}]}]}]}, {" Receiver Geometry and Heat loss": [{"name": "HLCharType", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Flag indicating the heat loss model type {1=poly.; 2=Forristall}", "group": "Solarfield", "units": "none", "require": "*"}]}, {" Incidence Angle Modifier Coefficients": [{"name": "IAM_T", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Transverse Incident angle modifiers (0,1,2,3,4 order terms)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "IAM_L", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Longitudinal Incident angle modifiers (0,1,2,3,4 order terms)", "group": "Solarfield", "units": "none", "require": "*"}]}, {" Boiler Geometry and Optical Performance": [{"name": "A_aperture", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Reflective aperture area of the collector module", "group": "Solarfield", "units": "m^2", "require": "*"}, {"name": "L_col", "datatype": "SSC_MATRIX", "label": "(boiler, SH) Active length of the superheater section collector module", "group": "Solarfield", "units": "m", "require": "*"}, {"name": "OptCharType", "datatype": "SSC_MATRIX", "label": "(boiler, SH) The optical characterization method", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "TrackingError", "datatype": "SSC_MATRIX", "label": "(boiler, SH) User-defined tracking error derate", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "GeomEffects", "datatype": "SSC_MATRIX", "label": "(boiler, SH) User-defined geometry effects derate", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "rho_mirror_clean", "datatype": "SSC_MATRIX", "label": "(boiler, SH) User-defined clean mirror reflectivity", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "dirt_mirror", "datatype": "SSC_MATRIX", "label": "(boiler, SH) User-defined dirt on mirror derate", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "error", "datatype": "SSC_MATRIX", "label": "(boiler, SH) User-defined general optical error derate", "group": "Solarfield", "units": "none", "require": "*"}]}]}]}, {"Location and Resource ": [{"sections": [{" Weather Data Information": [{"name": "latitude", "datatype": "SSC_NUMBER", "label": "Site latitude resource page", "group": "Solarfield", "units": "deg", "require": "*"}]}]}]}, {"Parasitics": [{"name": "PB_fixed_par", "datatype": "SSC_NUMBER", "label": "fraction of rated gross power consumed at all hours of the year", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "bop_array", "datatype": "SSC_ARRAY", "label": "BOP_parVal, BOP_parPF, BOP_par0, BOP_par1, BOP_par2", "group": "Solarfield", "units": "-", "require": "*"}, {"name": "aux_array", "datatype": "SSC_ARRAY", "label": "Aux_parVal, Aux_parPF, Aux_par0, Aux_par1, Aux_par2", "group": "Solarfield", "units": "-", "require": "*"}, {"name": "Pipe_hl_coef", "datatype": "SSC_NUMBER", "label": "Loss coefficient from the header.. runner pipe.. and non-HCE pipin", "group": "Solarfield", "units": "W/m2-K", "require": "*"}, {"name": "SCA_drives_elec", "datatype": "SSC_NUMBER", "label": "Tracking power.. in Watts per SCA drive", "group": "Solarfield", "units": "W/m2", "require": "*"}]}, {"Solar Field ": [{"sections": [{" Mirror Washing": [{"name": "csp.lf.sf.water_per_wash", "datatype": "SSC_NUMBER", "label": "Water usage per wash", "group": "Heliostat", "units": "L/m2_aper", "require": "*"}, {"name": "csp.lf.sf.washes_per_year", "datatype": "SSC_NUMBER", "label": "Mirror washing frequency", "group": "Heliostat", "require": "*"}]}, {" Field Control": [{"name": "theta_stow", "datatype": "SSC_NUMBER", "label": "stow angle", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "theta_dep", "datatype": "SSC_NUMBER", "label": "deploy angle", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "m_dot_min", "datatype": "SSC_NUMBER", "label": "Minimum loop flow rate", "group": "Solarfield", "units": "kg/s", "require": "*"}, {"name": "T_fp", "datatype": "SSC_NUMBER", "label": "Freeze protection temperature (heat trace activation temperature)", "group": "Solarfield", "units": "C", "require": "*"}, {"name": "V_wind_max", "datatype": "SSC_NUMBER", "label": "Maximum allowable wind velocity before safety stow", "group": "Solarfield", "units": "m/s", "require": "*"}]}, {" Design Point": [{"name": "nLoops", "datatype": "SSC_NUMBER", "label": "Number of loops", "group": "Solarfield", "units": "none", "require": "*"}]}, {" Solar Field Parameters": [{"name": "solarm", "datatype": "SSC_NUMBER", "label": "Solar multiple", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "I_bn_des", "datatype": "SSC_NUMBER", "label": "Design point irradiation value", "group": "Solarfield", "units": "W/m2", "require": "*"}, {"name": "is_oncethru", "datatype": "SSC_NUMBER", "label": "Flag indicating whether flow is once through with superheat", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "is_multgeom", "datatype": "SSC_NUMBER", "label": "Does the superheater have a different geometry from the boiler {1=yes}", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "nModBoil", "datatype": "SSC_NUMBER", "label": "Number of modules in the boiler section", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "nModSH", "datatype": "SSC_NUMBER", "label": "Number of modules in the superheater section", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "eta_pump", "datatype": "SSC_NUMBER", "label": "Feedwater pump efficiency", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "ColAz", "datatype": "SSC_NUMBER", "label": "Collector azimuth angle", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "e_startup", "datatype": "SSC_NUMBER", "label": "Thermal inertia contribution per sq meter of solar field", "group": "Solarfield", "units": "kJ/K-m2", "require": "*"}, {"name": "T_amb_des_sf", "datatype": "SSC_NUMBER", "label": "Design-point ambient temperature", "group": "Solarfield", "units": "C", "require": "*"}]}, {" Steam Conditions at Design": [{"name": "x_b_des", "datatype": "SSC_NUMBER", "label": "Design point boiler outlet steam quality", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fP_hdr_c", "datatype": "SSC_NUMBER", "label": "Average design-point cold header pressure drop fraction", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fP_sf_boil", "datatype": "SSC_NUMBER", "label": "Design-point pressure drop across the solar field boiler fraction", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fP_boil_to_sh", "datatype": "SSC_NUMBER", "label": "Design-point pressure drop between the boiler and superheater frac", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fP_sf_sh", "datatype": "SSC_NUMBER", "label": "Design-point pressure drop across the solar field superheater frac", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fP_hdr_h", "datatype": "SSC_NUMBER", "label": "Average design-point hot header pressure drop fraction", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "P_boil_des", "datatype": "SSC_NUMBER", "label": "Boiler operating pressure @ design", "group": "Powerblock", "units": "bar", "require": "*"}, {"name": "T_hot", "datatype": "SSC_NUMBER", "label": "Hot HTF inlet temperature, from storage tank", "group": "Powerblock", "units": "C", "require": "*"}]}]}]}, {"Power Cycle ": [{"sections": [{" Plant Design ": [{"subsections": [{" Plant Cooling Mode": [{"name": "T_amb_des", "datatype": "SSC_NUMBER", "label": "Reference ambient temperature at design point", "group": "Powerblock", "units": "C", "require": "*"}]}]}]}, {" Plant Cooling Mode": [{"name": "dT_cw_ref", "datatype": "SSC_NUMBER", "label": "Reference condenser cooling water inlet/outlet T diff", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "CT", "datatype": "SSC_NUMBER", "label": "Flag for using dry cooling or wet cooling system", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "T_approach", "datatype": "SSC_NUMBER", "label": "Cooling tower approach temperature", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "T_ITD_des", "datatype": "SSC_NUMBER", "label": "ITD at design for dry system", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "P_cond_ratio", "datatype": "SSC_NUMBER", "label": "Condenser pressure ratio", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "P_cond_min", "datatype": "SSC_NUMBER", "label": "Minimum condenser pressure", "group": "Powerblock", "units": "inHg", "require": "*"}, {"name": "n_pl_inc", "datatype": "SSC_NUMBER", "label": "Number of part-load increments for the heat rejection system", "group": "Powerblock", "units": "none", "require": "*"}]}, {" Dispatch Control": [{"name": "ffrac", "datatype": "SSC_ARRAY", "label": "Fossil dispatch logic - TOU periods", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "F_wc", "datatype": "SSC_ARRAY", "label": "Fraction indicating wet cooling use for hybrid system", "group": "Powerblock", "units": "none", "require": "*"}]}, {" Operation": [{"name": "cycle_max_fraction", "datatype": "SSC_NUMBER", "label": "Maximum turbine over design operation fraction", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "cycle_cutoff_frac", "datatype": "SSC_NUMBER", "label": "Minimum turbine operation fraction before shutdown", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "t_sby", "datatype": "SSC_NUMBER", "label": "Low resource standby period", "group": "Solarfield", "units": "hr", "require": "*"}, {"name": "q_sby_frac", "datatype": "SSC_NUMBER", "label": "Fraction of thermal power required for standby", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "fossil_mode", "datatype": "SSC_NUMBER", "label": "Operation mode for the fossil backup {1=Normal,2=supp,3=toppin}", "group": "Solarfield", "units": "none", "require": "*"}]}, {" Plant Design": [{"name": "LHV_eff", "datatype": "SSC_NUMBER", "label": "Fuel LHV efficiency (0..1)", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "P_turb_des", "datatype": "SSC_NUMBER", "label": "Design-point turbine inlet pressure", "group": "Solarfield", "units": "bar", "require": "*"}, {"name": "q_pb_des", "datatype": "SSC_NUMBER", "label": "Design heat input to the power block", "group": "Solarfield", "units": "MW", "require": "*"}, {"name": "eta_ref", "datatype": "SSC_NUMBER", "label": "Reference conversion efficiency at design condition", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "P_rh_ref", "datatype": "SSC_NUMBER", "label": "Reheater operating pressure at design", "group": "Powerblock", "units": "bar", "require": "*"}, {"name": "rh_frac_ref", "datatype": "SSC_NUMBER", "label": "Reheater flow fraction at design", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "pb_bd_frac", "datatype": "SSC_NUMBER", "label": "Power block blowdown steam fraction ", "group": "Powerblock", "units": "none", "require": "*"}]}]}]}]}, {"name": "file_name", "datatype": "SSC_STRING", "label": "local weather file path", "group": "Weather", "require": "*"}, {"name": "track_mode", "datatype": "SSC_NUMBER", "label": "Tracking mode", "group": "Weather", "require": "*"}, {"name": "tilt", "datatype": "SSC_NUMBER", "label": "Tilt angle of surface/axis", "group": "Weather", "require": "*"}, {"name": "azimuth", "datatype": "SSC_NUMBER", "label": "Azimuth angle of surface/axis", "group": "Weather", "require": "*"}, {"name": "system_capacity", "datatype": "SSC_NUMBER", "label": "Nameplate capacity", "group": "LinearFresnelr", "units": "kW", "require": "*"}, {"name": "weekday_schedule", "datatype": "SSC_MATRIX", "label": "12x24 Time of Use Values for week days", "group": "TouTranslator", "require": "*"}, {"name": "weekend_schedule", "datatype": "SSC_MATRIX", "label": "12x24 Time of Use Values for week end days", "group": "TouTranslator", "require": "*"}, {"name": "tes_hours", "datatype": "SSC_NUMBER", "label": "Equivalent full-load thermal storage hours", "group": "Solarfield", "units": "hr", "require": "*"}, {"name": "q_max_aux", "datatype": "SSC_NUMBER", "label": "Maximum heat rate of the auxiliary heater", "group": "Solarfield", "units": "MW", "require": "*"}, {"name": "PB_pump_coef", "datatype": "SSC_NUMBER", "label": "Pumping power required to move 1kg of HTF through power block flow", "group": "Solarfield", "units": "kW/kg", "require": "*"}, {"name": "is_sh", "datatype": "SSC_NUMBER", "label": "Does the solar field include a superheating section", "group": "Solarfield", "units": "none", "require": "*"}, {"name": "m_dot_htf_ref", "datatype": "SSC_NUMBER", "label": "Reference HTF flow rate at design conditions", "group": "Solarfield", "units": "kg/hr", "require": "*"}, {"name": "m_pb_demand", "datatype": "SSC_NUMBER", "label": "Demand htf flow from the power block", "group": "Solarfield", "units": "kg/hr", "require": "*"}, {"name": "shift", "datatype": "SSC_NUMBER", "label": "Shift in longitude from local standard meridian", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "SolarAz_init", "datatype": "SSC_NUMBER", "label": "Solar azimuth angle", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "SolarZen", "datatype": "SSC_NUMBER", "label": "Solar zenith angle", "group": "Solarfield", "units": "deg", "require": "*"}, {"name": "T_pb_out_init", "datatype": "SSC_NUMBER", "label": "Fluid temperature from the power block", "group": "Solarfield", "units": "C", "require": "*"}, {"name": "T_cold_ref", "datatype": "SSC_NUMBER", "label": "Reference HTF outlet temperature at design", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "pc_mode", "datatype": "SSC_NUMBER", "label": "Cycle part load control, from plant controller", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "m_dot_st", "datatype": "SSC_NUMBER", "label": "HTF mass flow rate", "group": "Powerblock", "units": "kg/hr", "require": "*"}, {"name": "T_wb", "datatype": "SSC_NUMBER", "label": "Ambient wet bulb temperature", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "demand_var", "datatype": "SSC_NUMBER", "label": "Control signal indicating operational mode", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "standby_control", "datatype": "SSC_NUMBER", "label": "Control signal indicating standby mode", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "T_db_pwb", "datatype": "SSC_NUMBER", "label": "Ambient dry bulb temperature", "group": "Powerblock", "units": "C", "require": "*"}, {"name": "P_amb_pwb", "datatype": "SSC_NUMBER", "label": "Ambient pressure", "group": "Powerblock", "units": "atm", "require": "*"}, {"name": "relhum", "datatype": "SSC_NUMBER", "label": "Relative humidity of the ambient air", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "f_recSU", "datatype": "SSC_NUMBER", "label": "Fraction Powerblock can run due to receiver startup", "group": "Powerblock", "units": "none", "require": "*"}, {"name": "dp_b", "datatype": "SSC_NUMBER", "label": "Pressure drop in boiler", "group": "Powerblock", "units": "Pa", "require": "*"}, {"name": "dp_sh", "datatype": "SSC_NUMBER", "label": "Pressure drop in superheater", "group": "Powerblock", "units": "Pa", "require": "*"}, {"name": "dp_rh", "datatype": "SSC_NUMBER", "label": "Pressure drop in reheater", "group": "Powerblock", "units": "Pa", "require": "*"}]} \ No newline at end of file diff --git a/SAM/models/outputs/TcslinearFresnel_DSLF_outputs.json b/SAM/models/outputs/TcslinearFresnel_DSLF_outputs.json new file mode 100644 index 00000000..d2edfa67 --- /dev/null +++ b/SAM/models/outputs/TcslinearFresnel_DSLF_outputs.json @@ -0,0 +1,455 @@ +{ + "TcslinearFresnel_LFDS": [ + { + "Data": "SSC_ARRAY", + "Name": "month", + "Label": "Resource Month", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "hour", + "Label": "Resource Hour of Day", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "solazi", + "Label": "Resource Solar Azimuth", + "Units": "deg", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "solzen", + "Label": "Resource Solar Zenith", + "Units": "deg", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "beam", + "Label": "Resource Beam normal irradiance", + "Units": "W/m2", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "tdry", + "Label": "Resource Dry bulb temperature", + "Units": "C", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "twet", + "Label": "Resource Wet bulb temperature", + "Units": "C", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "wspd", + "Label": "Resource Wind Speed", + "Units": "m/s", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "pres", + "Label": "Resource Pressure", + "Units": "mbar", + "Group": "weather", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "tou_value", + "Label": "Resource Time-of-use value", + "Group": "tou", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "defocus", + "Label": "Field collector focus fraction", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "eta_opt_ave", + "Label": "Field collector optical efficiency", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "eta_thermal", + "Label": "Field thermal efficiency", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "eta_sf", + "Label": "Field efficiency total", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_inc_tot", + "Label": "Field thermal power incident", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_loss_rec", + "Label": "Field thermal power receiver loss", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_loss_piping", + "Label": "Field thermal power header pipe loss", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_loss_sf", + "Label": "Field thermal power loss", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_field_delivered", + "Label": "Field thermal power produced", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot_field", + "Label": "Field steam mass flow rate", + "Units": "kg/hr", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot_b_tot", + "Label": "Field steam mass flow rate - boiler", + "Units": "kg/hr", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot", + "Label": "Field steam mass flow rate - loop", + "Units": "kg/s", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "P_sf_in", + "Label": "Field steam pressure at inlet", + "Units": "bar", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "dP_tot", + "Label": "Field steam pressure loss", + "Units": "bar", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "T_field_in", + "Label": "Field steam temperature at header inlet", + "Units": "C", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "T_loop_out", + "Label": "Field steam temperature at collector outlet", + "Units": "C", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "T_field_out", + "Label": "Field steam temperature at header outlet", + "Units": "C", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "eta", + "Label": "Cycle efficiency (gross)", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_net", + "Label": "Cycle electrical power output (net)", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_cycle_gross", + "Label": "Cycle electrical power output (gross)", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot_to_pb", + "Label": "Cycle steam mass flow rate", + "Units": "kg/hr", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "P_turb_in", + "Label": "Cycle steam pressure at inlet", + "Units": "bar", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "T_pb_in", + "Label": "Cycle steam temperature at inlet", + "Units": "C", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "T_pb_out", + "Label": "Cycle steam temperature at outlet", + "Units": "C", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "E_bal_startup", + "Label": "Cycle thermal energy startup", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_dump", + "Label": "Cycle thermal energy dumped", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_to_pb", + "Label": "Cycle thermal power input", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot_makeup", + "Label": "Cycle cooling water mass flow rate - makeup", + "Units": "kg/hr", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "P_cond", + "Label": "Condenser pressure", + "Units": "Pa", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "f_bays", + "Label": "Condenser fraction of operating bays", + "Units": "none", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_aux_fluid", + "Label": "Fossil thermal power produced", + "Units": "MWt", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "m_dot_aux", + "Label": "Fossil steam mass flow rate", + "Units": "kg/hr", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "q_aux_fuel", + "Label": "Fossil fuel usage", + "Units": "MMBTU", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_dot_pump", + "Label": "Parasitic power solar field pump", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_dot_col", + "Label": "Parasitic power field collector drives", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_dot_bop", + "Label": "Parasitic power generation-dependent load", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_dot_fixed", + "Label": "Parasitic power fixed load", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_dot_aux", + "Label": "Parasitic power auxiliary heater operation", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "W_cool_par", + "Label": "Parasitic power condenser operation", + "Units": "MWe", + "Group": "Outputs", + "Constraint": "LENGTH=8760" + }, + { + "Data": "SSC_ARRAY", + "Name": "monthly_energy", + "Label": "Monthly Energy", + "Units": "kWh", + "Group": "Linear Fresnel", + "Constraint": "LENGTH=12" + }, + { + "Data": "SSC_NUMBER", + "Name": "annual_energy", + "Label": "Annual Energy", + "Units": "kWh", + "Group": "Linear Fresnel" + }, + { + "Data": "SSC_NUMBER", + "Name": "annual_W_cycle_gross", + "Label": "Electrical source - Power cycle gross output", + "Units": "kWh", + "Group": "Linear Fresnel" + }, + { + "Data": "SSC_NUMBER", + "Name": "conversion_factor", + "Label": "Gross to Net Conversion Factor", + "Units": "%", + "Group": "Calculated" + }, + { + "Data": "SSC_NUMBER", + "Name": "capacity_factor", + "Label": "Capacity factor", + "Units": "%" + }, + { + "Data": "SSC_NUMBER", + "Name": "annual_total_water_use", + "Label": "Total Annual Water Usage: cycle + mirror washing", + "Units": "m3", + "Group": "PostProcess" + }, + { + "Data": "SSC_NUMBER", + "Name": "kwh_per_kw", + "Label": "First year kWh/kW", + "Units": "kWh/kW" + }, + { + "Data": "SSC_NUMBER", + "Name": "system_heat_rate", + "Label": "System heat rate", + "Units": "MMBtu/MWh" + }, + { + "Data": "SSC_NUMBER", + "Name": "annual_fuel_usage", + "Label": "Annual fuel usage", + "Units": "kWh" + }, + { + "Data": "SSC_ARRAY", + "Name": "gen", + "Label": "System power generated", + "Units": "kW", + "Group": "Time Series" + } + ] +} \ No newline at end of file diff --git a/utils/samJsonParser.py b/utils/samJsonParser.py index eff8983e..3e5b0e89 100644 --- a/utils/samJsonParser.py +++ b/utils/samJsonParser.py @@ -25,8 +25,8 @@ import os ### variables hard-coded here but should be passed to the class -json_infile = 'samLinearFresnelDirectSteam.json' -model = "tcslinear_fresnel" ### +json_infile = 'LeveragedPartnershipFlip_inputs.json' +model = "LeveragedPartnershipFlip_inputs" ### json_outfile = '{}.json'.format(model) @@ -34,7 +34,7 @@ # otherwise just hard-coded here hierarchy_map = {'Tab':'tabs','Section':'sections','Subsection':'subsections'} recursion_path = ['Tab','Section','Subsection'] -var_attributes = {"Name":'name',"DataType":'datatype','Label':'label','Value':'value', +var_attributes = {"Name":'name',"Data":'datatype','Label':'label','Group':'group', 'Units':'units','Require':'require','Constraints':'constraints'} ### @@ -100,8 +100,8 @@ def __init__(self): def main(self): json_sample = os.path.dirname(os.path.realpath(__file__)) + os.sep + json_infile - with open(json_sample, "r") as read_file: - ssc_json = json.load(read_file) + with open(json_sample, "r", encoding="UTF-8-SIG") as read_file: + ssc_json = json.load(read_file) # initalize json_out dict first_level = {hierarchy_map[recursion_path[0]]:[]}