Skip to content

Commit 02c2fa6

Browse files
committed
continue to clean up cmod
1 parent 0f1d835 commit 02c2fa6

File tree

2 files changed

+26
-58
lines changed

2 files changed

+26
-58
lines changed

samples/reactor/reactor.json

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66
"hot_htf_code" : 17,
77
"ud_hot_htf_props" : [ [ 0, 0, 0, 0, 0, 0, 0 ] ],
88

9+
"cycle_spec_cost" : 1040,
10+
"epc_cost_perc_of_direct" : 13,
11+
"epc_cost_per_watt" : 0,
12+
"epc_cost_fixed" : 0,
13+
"land_cost_perc_of_direct" : 0,
14+
"land_cost_per_watt" : 0,
15+
"land_cost_fixed" : 0,
916

1017
"is_dispatch" : 0,
1118
"csp_financial_model" : 1,
@@ -86,31 +93,14 @@
8693
"dispatch_tod_factors" : [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
8794
"start_day_of_year" : 3.3350458750827492e-317,
8895
"ppa_price_input" : [ 0.095000000000000001 ],
89-
"tower_fixed_cost" : 3000000,
90-
"tower_exp" : 0.011299999999999999,
91-
"rec_ref_cost" : 103000000,
92-
"rec_ref_area" : 1571,
93-
"rec_cost_exp" : 0.69999999999999996,
94-
"site_spec_cost" : 16,
95-
"heliostat_spec_cost" : 127,
96-
"plant_spec_cost" : 1040,
96+
9797
"bop_spec_cost" : 290,
9898
"tes_spec_cost" : 22,
9999
"land_spec_cost" : 10000,
100100
"contingency_rate" : 7,
101101
"sales_tax_rate" : 5,
102102
"sales_tax_frac" : 80,
103-
"cost_sf_fixed" : 0,
104-
"fossil_spec_cost" : 0,
105-
"csp.pt.cost.epc.per_acre" : 0,
106-
"csp.pt.cost.epc.percent" : 13,
107-
"csp.pt.cost.epc.per_watt" : 0,
108-
"csp.pt.cost.epc.fixed" : 0,
109-
"csp.pt.cost.plm.percent" : 0,
110-
"csp.pt.cost.plm.per_watt" : 0,
111-
"csp.pt.cost.plm.fixed" : 0,
112-
"csp.pt.sf.fixed_land_area" : 45,
113-
"csp.pt.sf.land_overhead_factor" : 1,
103+
114104
"const_per_interest_rate1" : 6.5,
115105
"const_per_interest_rate2" : 0,
116106
"const_per_interest_rate3" : 0,
@@ -184,14 +174,13 @@
184174
"prop_tax_assessed_decline" : 0,
185175
"real_discount_rate" : 6.4000000000000004,
186176
"insurance_rate" : 0.5,
187-
"system_capacity" : 101663.44246977226,
188177
"om_fixed" : [ 0 ],
189178
"om_fixed_escal" : 0,
190179
"om_production" : [ 3.5 ],
191180
"om_production_escal" : 0,
192181
"om_capacity" : [ 66 ],
193182
"om_capacity_escal" : 0,
194-
"land_area" : 2079.2855194841195,
183+
195184
"om_land_lease" : [ 0 ],
196185
"om_land_lease_escal" : 0,
197186
"reserves_interest" : 1.75,
@@ -370,17 +359,14 @@
370359
"pbi_uti_for_ds" : 0,
371360
"pbi_oth_for_ds" : 0,
372361
"loan_moratorium" : 0,
373-
"total_installed_cost" : 662392400.38561392,
374362
"salvage_percentage" : 0,
375-
"construction_financing_cost" : 49679430.028921045,
376363
"depr_stabas_method" : 1,
377364
"depr_fedbas_method" : 1,
378365
"cp_capacity_payment_esc" : 0,
379366
"cp_capacity_payment_type" : 0,
380367
"cp_capacity_payment_amount" : [ 0 ],
381368
"cp_capacity_credit_percent" : [ 0 ],
382-
"cp_system_nameplate" : 101.66344246977226,
383-
"cp_battery_nameplate" : 0,
369+
384370
"grid_curtailment_price" : [ 0 ],
385371
"grid_curtailment_price_esc" : 0,
386372
"batt_salvage_percentage" : 0,

ssc/cmod_reactor_tes_power.cpp

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,6 @@ static var_info _cm_vtab_reactor_tes_power[] = {
102102
{ SSC_INPUT, SSC_NUMBER, "cycle_cutoff_frac", "Minimum turbine operation fraction before shutdown", "", "", "Power Cycle", "*", "", ""},
103103
{ SSC_INPUT, SSC_NUMBER, "q_sby_frac", "Fraction of thermal power required for standby", "", "", "Power Cycle", "*", "", ""},
104104

105-
// Optional cycle design parameters potentially useful for analysis
106-
{ SSC_INPUT, SSC_NUMBER, "is_calc_pb_pump_coef", "False (default): use input pb_pump_coef, True: calc pb_pump_coef to achieve W_dot_pb_pump_target", "", "", "Tower and Receiver", "?=0", "", "SIMULATION_PARAMETER" },
107-
{ SSC_INPUT, SSC_NUMBER, "W_dot_pb_pump_target", "Target HTF pumping power loss through cycle primary heat exchanger", "MWe", "", "Tower and Receiver", "is_calc_pb_pump_coef=1", "", "SIMULATION_PARAMETER" },
108-
109105
// Steam Rankine cycle
110106
{ SSC_INPUT, SSC_NUMBER, "dT_cw_ref", "Reference condenser cooling water inlet/outlet temperature difference", "C", "", "Rankine Cycle", "pc_config=0", "", ""},
111107
{ SSC_INPUT, SSC_NUMBER, "T_amb_des", "Reference ambient temperature at design point", "C", "", "Rankine Cycle", "pc_config=0", "", ""},
@@ -204,20 +200,18 @@ static var_info _cm_vtab_reactor_tes_power[] = {
204200

205201
// Costs
206202
{ SSC_INPUT, SSC_NUMBER, "reactor_spec_cost", "Reactor specific cost", "$/kWt", "", "System Costs", "*", "", "" },
207-
{ SSC_INPUT, SSC_NUMBER, "plant_spec_cost", "Power cycle specific cost", "$/kWe", "", "System Costs", "*", "", "" },
208-
{ SSC_INPUT, SSC_NUMBER, "bop_spec_cost", "BOS specific cost", "$/kWe", "", "System Costs", "*", "", "" },
203+
{ SSC_INPUT, SSC_NUMBER, "cycle_spec_cost", "Power cycle specific cost", "$/kWe", "", "System Costs", "*", "", "" },
209204
{ SSC_INPUT, SSC_NUMBER, "tes_spec_cost", "Thermal energy storage cost", "$/kWht", "", "System Costs", "*", "", "" },
205+
{ SSC_INPUT, SSC_NUMBER, "bop_spec_cost", "BOS specific cost", "$/kWe", "", "System Costs", "*", "", "" },
210206
{ SSC_INPUT, SSC_NUMBER, "contingency_rate", "Contingency for cost overrun", "%", "", "System Costs", "*", "", "" },
211207
{ SSC_INPUT, SSC_NUMBER, "sales_tax_rate", "Sales tax rate", "%", "", "Financial Parameters", "*", "", "" },
212208
{ SSC_INPUT, SSC_NUMBER, "sales_tax_frac", "Percent of cost to which sales tax applies", "%", "", "System Costs", "*", "", "" },
213-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.epc.percent", "EPC cost percent of direct", "%", "", "System Costs", "*", "", "" },
214-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.epc.per_watt", "EPC cost per watt", "$/W", "", "System Costs", "*", "", "" },
215-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.epc.fixed", "EPC fixed", "$", "", "System Costs", "*", "", "" },
216-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.plm.percent", "PLM cost percent of direct", "%", "", "System Costs", "*", "", "" },
217-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.plm.per_watt", "PLM cost per watt", "$/W", "", "System Costs", "*", "", "" },
218-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.cost.plm.fixed", "PLM fixed", "$", "", "System Costs", "*", "", "" },
219-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.sf.fixed_land_area", "Fixed land area", "acre", "", "Heliostat Field", "*", "", "" },
220-
{ SSC_INPUT, SSC_NUMBER, "csp.pt.sf.land_overhead_factor", "Land overhead factor", "", "", "Heliostat Field", "*", "", "" },
209+
{ SSC_INPUT, SSC_NUMBER, "epc_cost_perc_of_direct", "EPC cost percent of direct", "%", "", "System Costs", "*", "", "" },
210+
{ SSC_INPUT, SSC_NUMBER, "epc_cost_per_watt", "EPC cost per watt", "$/W", "", "System Costs", "*", "", "" },
211+
{ SSC_INPUT, SSC_NUMBER, "epc_cost_fixed", "EPC fixed", "$", "", "System Costs", "*", "", "" },
212+
{ SSC_INPUT, SSC_NUMBER, "land_cost_perc_of_direct", "Land cost percent of direct", "%", "", "System Costs", "*", "", "" },
213+
{ SSC_INPUT, SSC_NUMBER, "land_cost_per_watt", "Land cost per watt", "$/W", "", "System Costs", "*", "", "" },
214+
{ SSC_INPUT, SSC_NUMBER, "land_cost_fixed", "Land fixed", "$", "", "System Costs", "*", "", "" },
221215

222216
// Construction financing inputs/outputs (SSC variable table from cmod_cb_construction_financing)
223217
{ SSC_INPUT, SSC_NUMBER, "const_per_interest_rate1", "Interest rate, loan 1", "%", "", "Financial Parameters", "*", "", ""},
@@ -569,15 +563,6 @@ class cm_reactor_tes_power : public compute_module
569563
// Steam Rankine and User Defined power cycle classes
570564
C_pc_Rankine_indirect_224 rankine_pc;
571565

572-
573-
// Set pb_pump_coef logic for cycle
574-
bool is_calc_pb_pump_coef = as_boolean("is_calc_pb_pump_coef");
575-
double W_dot_htf_pump_target = std::numeric_limits<double>::quiet_NaN();
576-
if (is_calc_pb_pump_coef) {
577-
W_dot_htf_pump_target = as_double("W_dot_pb_pump_target"); //[MWe]
578-
}
579-
580-
581566
// Check power block type
582567
int pb_tech_type = as_integer("pc_config");
583568
if (pb_tech_type == 0 || pb_tech_type == 1) // Rankine or User Defined
@@ -596,9 +581,6 @@ class cm_reactor_tes_power : public compute_module
596581
pc->m_pc_fl = as_integer("hot_htf_code"); // power cycle HTF is same as receiver HTF
597582
pc->m_pc_fl_props = as_matrix("ud_hot_htf_props");
598583

599-
pc->m_is_calc_htf_pump_coef = is_calc_pb_pump_coef;
600-
pc->m_W_dot_htf_pump_target = W_dot_htf_pump_target; //[MWe]
601-
602584
// Check initialization variables
603585
pc->m_operating_mode_initial = C_csp_power_cycle::OFF;
604586
if (is_assigned("pc_op_mode_initial")) {
@@ -1190,17 +1172,17 @@ class cm_reactor_tes_power : public compute_module
11901172
double Q_storage = as_double("P_ref") / as_double("design_eff") * as_double("tshours");
11911173
double tes_spec_cost = as_double("tes_spec_cost");
11921174

1193-
double power_cycle_spec_cost = as_double("plant_spec_cost");
1175+
double power_cycle_spec_cost = as_double("cycle_spec_cost");
11941176
double bop_spec_cost = as_double("bop_spec_cost");
11951177

11961178
double contingency_rate = as_double("contingency_rate");
11971179

1198-
double EPC_land_perc_direct_cost = as_double("csp.pt.cost.epc.percent");
1199-
double EPC_land_per_power_cost = as_double("csp.pt.cost.epc.per_watt");
1200-
double EPC_land_fixed_cost = as_double("csp.pt.cost.epc.fixed");
1201-
double total_land_perc_direct_cost = as_double("csp.pt.cost.plm.percent");
1202-
double total_land_per_power_cost = as_double("csp.pt.cost.plm.per_watt");
1203-
double total_land_fixed_cost = as_double("csp.pt.cost.plm.fixed");
1180+
double EPC_land_perc_direct_cost = as_double("epc_cost_perc_of_direct");
1181+
double EPC_land_per_power_cost = as_double("epc_cost_per_watt");
1182+
double EPC_land_fixed_cost = as_double("epc_cost_fixed");
1183+
double total_land_perc_direct_cost = as_double("land_cost_perc_of_direct");
1184+
double total_land_per_power_cost = as_double("land_cost_per_watt");
1185+
double total_land_fixed_cost = as_double("land_cost_fixed");
12041186
double sales_tax_basis = as_double("sales_tax_frac");
12051187
double sales_tax_rate = as_double("sales_tax_rate");
12061188

0 commit comments

Comments
 (0)