Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions ssc/cmod_etes_electric_resistance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1100,8 +1100,7 @@ class cm_etes_electric_resistance : public compute_module
ssc_number_t* p_gen = allocate("gen", count);
for (size_t i = 0; i < count; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(hour)); //[kWe]
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(i)); //[kWe]
}
// *****************************************************
// *****************************************************
Expand Down
3 changes: 1 addition & 2 deletions ssc/cmod_etes_ptes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1254,8 +1254,7 @@ class cm_etes_ptes : public compute_module
ssc_number_t* p_gen = allocate("gen", count);
for (size_t i = 0; i < count; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(hour)); //[kWe]
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(i)); //[kWe]
}
// *****************************************************
// *****************************************************
Expand Down
3 changes: 1 addition & 2 deletions ssc/cmod_fresnel_physical.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1812,8 +1812,7 @@ class cm_fresnel_physical : public compute_module
// throw exec_error("trough_physical", "The number of fixed steps for 'm_dot_tes_ch' does not match the length of output data arrays");
for (int i = 0; i < n_steps_fixed; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * haf(hour) * 1.E3); //[kWe]
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * haf(i) * 1.E3); //[kWe]
//p_W_dot_parasitic_tot[i] *= -1.0; //[kWe] Label is total parasitics, so change to a positive value
//p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe]
p_q_dot_defocus_est[i] = (ssc_number_t)(1.0 - p_SCAs_def[i]) * p_q_dot_htf_sf_out[i]; //[MWt]
Expand Down
5 changes: 2 additions & 3 deletions ssc/cmod_fresnel_physical_iph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1703,13 +1703,12 @@ class cm_fresnel_physical_iph : public compute_module
throw exec_error("fresnel_physical", "The number of fixed steps does not match the length of output data arrays3");
for (int i = 0; i < n_steps_fixed; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * haf(hour) * 1.E3); //[kWe]
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * haf(i) * 1.E3); //[kWe]
p_gen[i] = (ssc_number_t)0.0; //[kWt] (no electrical generation for IPH mslf)
p_gen_heat_btu[i] = p_gen_heat[i] / MMBTU_TO_KWh; //[MMBtu/hr]
p_q_dot_defocus_est[i] = (ssc_number_t)(1.0 - p_SCAs_def[i]) * p_q_dot_htf_sf_out[i]; //[MWt]
p_W_dot_parasitic_tot[i] *= -1.0; //[MWe] Label is total parasitics, so change to a positive value
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe] apply availability derate and convert from MWe
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(i) * 1.E3); //[kWe] apply availability derate and convert from MWe
p_load[i] = p_W_dot_par_tot_haf[i];
}

Expand Down
5 changes: 2 additions & 3 deletions ssc/cmod_linear_fresnel_dsg_iph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -629,12 +629,11 @@ class cm_linear_fresnel_dsg_iph : public compute_module

for( size_t i = 0; i < n_steps_fixed; i++ )
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen_heat[i] = p_q_dot_heat_sink[i] * (ssc_number_t)(haf(hour) * 1.E3); //[kWt]
p_gen_heat[i] = p_q_dot_heat_sink[i] * (ssc_number_t)(haf(i) * 1.E3); //[kWt]
p_gen[i] = (ssc_number_t)0.0; //[kWt] (no electrical generation for direct steam linear fresnel IPH)
p_gen_heat_btu[i] = p_gen_heat[i] / MMBTU_TO_KWh; //[MMBtu/hr]
p_W_dot_parasitic_tot[i] *= -1.0; //[kWe] Label is total parasitics, so change to a positive value
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe]
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(i) * 1.E3); //[kWe]
p_load[i] = p_W_dot_par_tot_haf[i];
}

Expand Down
5 changes: 2 additions & 3 deletions ssc/cmod_mspt_iph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2375,12 +2375,11 @@ class cm_mspt_iph : public compute_module

for (size_t i = 0; i < count; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * 1.E3 * haf(hour)); //[kWt]
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * 1.E3 * haf(i)); //[kWt]
p_gen[i] = (ssc_number_t)0.0; //[kWt] (no electrical generation for IPH tower)
p_gen_heat_btu[i] = p_gen_heat[i] / MMBTU_TO_KWh; //[MMBtu/hr]
p_W_dot_parasitic_tot[i] *= -1.0; //[MWe] Label is total parasitics, so change to a positive value
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe] apply availability derate and convert from MWe
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(i) * 1.E3); //[kWe] apply availability derate and convert from MWe
p_load[i] = p_W_dot_par_tot_haf[i];
}

Expand Down
3 changes: 1 addition & 2 deletions ssc/cmod_tcsmolten_salt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2971,8 +2971,7 @@ class cm_tcsmolten_salt : public compute_module
ssc_number_t* p_gensales_after_avail = allocate("gensales_after_avail", count);
for( size_t i = 0; i < count; i++ )
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(hour)); //[kWe]
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * 1.E3 * haf(i)); //[kWe]
p_gensales_after_avail[i] = max(0.0, p_gen[i]); //[kWe]
}

Expand Down
3 changes: 1 addition & 2 deletions ssc/cmod_trough_physical.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2559,8 +2559,7 @@ class cm_trough_physical : public compute_module
// throw exec_error("trough_physical", "The number of fixed steps for 'm_dot_tes_ch' does not match the length of output data arrays");
for(int i = 0; i < n_steps_fixed; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * haf(hour) * 1.E3); //[kWe]
p_gen[i] = (ssc_number_t)(p_W_dot_net[i] * haf(i) * 1.E3); //[kWe]
//p_W_dot_parasitic_tot[i] *= -1.0; //[kWe] Label is total parasitics, so change to a positive value
//p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe]
p_q_dot_defocus_est[i] = (ssc_number_t)(1.0 - p_SCAs_def[i])*p_q_dot_htf_sf_out[i]; //[MWt]
Expand Down
5 changes: 2 additions & 3 deletions ssc/cmod_trough_physical_iph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2439,12 +2439,11 @@ class cm_trough_physical_iph : public compute_module
double i_elec_cost = std::numeric_limits<double>::quiet_NaN();
for(int i = 0; i < n_steps_fixed; i++)
{
size_t hour = (size_t)ceil(p_time_final_hr[i]);
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * haf(hour) * 1.E3); //[kWt]
p_gen_heat[i] = (ssc_number_t)(p_q_dot_heat_sink[i] * haf(i) * 1.E3); //[kWt]
p_gen[i] = (ssc_number_t)0.0; //[kWt] (no electrical generation for IPH trough)
p_gen_heat_btu[i] = p_gen_heat[i] / MMBTU_TO_KWh; //[MMBtu/hr]
p_W_dot_parasitic_tot[i] *= -1.0; //[kWe] Label is total parasitics, so change to a positive value
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(hour) * 1.E3); //[kWe]
p_W_dot_par_tot_haf[i] = (ssc_number_t)(p_W_dot_parasitic_tot[i] * haf(i) * 1.E3); //[kWe]
p_q_dot_defocus_est[i] = (ssc_number_t)(1.0 - p_SCAs_def[i])*p_q_dot_htf_sf_out[i]; //[MWt]
//p_m_dot_tes_dc[i] = (ssc_number_t)(p_m_dot_tes_dc[i] / 3600.0); //[kg/s] convert from kg/hr
//p_m_dot_tes_ch[i] = (ssc_number_t)(p_m_dot_tes_ch[i] / 3600.0); //[kg/s] convert from kg/hr
Expand Down

This file was deleted.

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions test/ssc_test/cmod_fresnel_physical_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

TEST_F(CmodFresnelPhysicalTest, MSLFDefault) {
std::string file_inputs = SSCDIR;
file_inputs += "/test/input_json/TechnologyModels/fresnel_physical/2025.03.13_develop_branch_MSLF_Single_Owner_cmod_fresnel_physical.json";
file_inputs += "/test/input_json/TechnologyModels/fresnel_physical/2026.02.27_develop_branch_MSLF_Single_Owner_cmod_fresnel_physical.json";
std::string file_outputs = SSCDIR;
file_outputs +="/test/input_json/TechnologyModels/fresnel_physical/2025.03.13_develop_branch_MSLF_Single_Owner_cmod_fresnel_physical_outputs.json";
file_outputs +="/test/input_json/TechnologyModels/fresnel_physical/2026.02.27_develop_branch_MSLF_Single_Owner_cmod_fresnel_physical_outputs.json";
std::vector<std::string> compare_number_variables = { "annual_energy", "q_dot_loss_tes_des" };
std::vector<std::string> compare_array_variables = { "monthly_energy" };

Expand Down