solstice

Compute collected power and efficiencies of a solar plant
git clone git://git.meso-star.com/solstice.git
Log | Files | Refs | README | LICENSE

commit c6af689f7cfb72cfad2f455b77af9d50ac17330c
parent e11af8070d6571adf95e7d122df554a8c0fb41c9
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Thu,  7 Sep 2017 14:31:05 +0200

Rename things according to new field names in solver API.

Diffstat:
Msrc/solstice_solve.c | 58+++++++++++++++++++++++++++++-----------------------------
Msrc/test_solstice_simulation.c | 52++++++++++++++++++++++++----------------------------
2 files changed, 53 insertions(+), 57 deletions(-)

diff --git a/src/solstice_solve.c b/src/solstice_solve.c @@ -55,12 +55,12 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator) #define PRINT_MC_GLOBAL(Name) \ fprintf(solstice->output, "%g %g\n", mc_global.Name.E, mc_global.Name.SE) fprintf(solstice->output, "%g %g\n", potential, 0.); - PRINT_MC_GLOBAL(absorbed); + PRINT_MC_GLOBAL(absorbed_by_receivers); PRINT_MC_GLOBAL(cos_factor); PRINT_MC_GLOBAL(shadowed); PRINT_MC_GLOBAL(missing); - PRINT_MC_GLOBAL(reflectivity); - PRINT_MC_GLOBAL(atmosphere); + PRINT_MC_GLOBAL(other_absorbed); + PRINT_MC_GLOBAL(absorbed_by_atmosphere); #undef PRINT_MC_GLOBAL /* Receivers' data */ @@ -80,21 +80,21 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator) switch(rcv->side) { case SRCVL_FRONT: SSOL(estimator_get_mc_receiver(estimator, inst, SSOL_FRONT, &front)); - f_eff_E = front.integrated_absorbed_irradiance.E * irradiance_factor; - f_eff_SE = front.integrated_absorbed_irradiance.SE * irradiance_factor; + f_eff_E = front.absorbed_flux.E * irradiance_factor; + f_eff_SE = front.absorbed_flux.SE * irradiance_factor; break; case SRCVL_BACK: SSOL(estimator_get_mc_receiver(estimator, inst, SSOL_BACK, &back)); - b_eff_E = back.integrated_absorbed_irradiance.E * irradiance_factor; - b_eff_SE = back.integrated_absorbed_irradiance.SE * irradiance_factor; + b_eff_E = back.absorbed_flux.E * irradiance_factor; + b_eff_SE = back.absorbed_flux.SE * irradiance_factor; break; case SRCVL_FRONT_AND_BACK: SSOL(estimator_get_mc_receiver(estimator, inst, SSOL_FRONT, &front)); SSOL(estimator_get_mc_receiver(estimator, inst, SSOL_BACK, &back)); - f_eff_E = front.integrated_absorbed_irradiance.E * irradiance_factor; - f_eff_SE = front.integrated_absorbed_irradiance.SE * irradiance_factor; - b_eff_E = back.integrated_absorbed_irradiance.E * irradiance_factor; - b_eff_SE = back.integrated_absorbed_irradiance.SE * irradiance_factor; + f_eff_E = front.absorbed_flux.E * irradiance_factor; + f_eff_SE = front.absorbed_flux.SE * irradiance_factor; + b_eff_E = back.absorbed_flux.E * irradiance_factor; + b_eff_SE = back.absorbed_flux.SE * irradiance_factor; break; default: FATAL("Unreachable code.\n"); break; } @@ -105,15 +105,15 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator) "%g %g %g %g %g %g %g %g %g %g " "%g %g %g %g %g %g %g %g %g %g\n", str_cget(name), (unsigned)id, area, - front.integrated_absorbed_irradiance.E, front.integrated_absorbed_irradiance.SE, - front.integrated_irradiance.E, front.integrated_irradiance.SE, - front.reflectivity_loss.E, front.reflectivity_loss.SE, - front.absorptivity_loss.E, front.absorptivity_loss.SE, + front.absorbed_flux.E, front.absorbed_flux.SE, + front.incoming_flux.E, front.incoming_flux.SE, + front.incoming_lost_in_field.E, front.incoming_lost_in_field.SE, + front.incoming_lost_in_atmosphere.E, front.incoming_lost_in_atmosphere.SE, f_eff_E, f_eff_SE, - back.integrated_absorbed_irradiance.E, back.integrated_absorbed_irradiance.SE, - back.integrated_irradiance.E, back.integrated_irradiance.SE, - back.reflectivity_loss.E, back.reflectivity_loss.SE, - back.absorptivity_loss.E, back.absorptivity_loss.SE, + back.absorbed_flux.E, back.absorbed_flux.SE, + back.incoming_flux.E, back.incoming_flux.SE, + back.absorbed_lost_in_field.E, back.absorbed_lost_in_field.SE, + back.absorbed_lost_in_atmosphere.E, back.absorbed_lost_in_atmosphere.SE, b_eff_E, b_eff_SE); } @@ -179,14 +179,14 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator) "%g %g %g %g %g %g %g %g " "%g %g %g %g %g %g %g %g\n", (unsigned) rcv_id, (unsigned) prim_id, - front.integrated_absorbed_irradiance.E, front.integrated_absorbed_irradiance.SE, - front.integrated_irradiance.E, front.integrated_irradiance.SE, - front.reflectivity_loss.E, front.reflectivity_loss.SE, - front.absorptivity_loss.E, front.absorptivity_loss.SE, - back.integrated_absorbed_irradiance.E, back.integrated_absorbed_irradiance.SE, - back.integrated_irradiance.E, back.integrated_irradiance.SE, - back.reflectivity_loss.E, back.reflectivity_loss.SE, - back.absorptivity_loss.E, back.absorptivity_loss.SE); + front.absorbed_flux.E, front.absorbed_flux.SE, + front.incoming_flux.E, front.incoming_flux.SE, + front.incoming_lost_in_field.E, front.incoming_lost_in_field.SE, + front.incoming_lost_in_atmosphere.E, front.incoming_lost_in_atmosphere.SE, + back.absorbed_flux.E, back.absorbed_flux.SE, + back.incoming_flux.E, back.incoming_flux.SE, + back.absorbed_lost_in_field.E, back.absorbed_lost_in_field.SE, + back.absorbed_lost_in_atmosphere.E, back.absorbed_lost_in_atmosphere.SE); htable_primary_iterator_next(&p_it); } htable_receiver_iterator_next(&r_it); @@ -244,8 +244,8 @@ dump_mc_shape struct ssol_mc_primitive mc_prim; SSOL(mc_shape_get_mc_primitive(mc_shape, itri, &mc_prim)); fprintf(solstice->output, "%g %g\n", - mc_prim.integrated_irradiance.E, - mc_prim.integrated_irradiance.SE); + mc_prim.incoming_flux.E, + mc_prim.incoming_flux.SE); } } diff --git a/src/test_solstice_simulation.c b/src/test_solstice_simulation.c @@ -51,15 +51,15 @@ enum global_result_type { enum receiver_result_type { FIRST_RECEIVER_RESULT, - FRONT_INTEGRATED_ABSORBED_IRRADIANCE = FIRST_RECEIVER_RESULT, - FRONT_INTEGRATED_IRRADIANCE, - FRONT_REFLECTIVITY_LOSS, - FRONT_ABSORPTIVITY_LOSS, + FRONT_ABSORBED_FLUX = FIRST_RECEIVER_RESULT, + FRONT_INCOMING_FLUX, + FRONT_ABSORBED_FIELD_GAIN, + FRONT_ABSORBED_ATM_GAIN, FRONT_EFFICIENCY, - BACK_INTEGRATED_ABSORBED_IRRADIANCE, - BACK_INTEGRATED_IRRADIANCE, - BACK_REFLECTIVITY_LOSS, - BACK_ABSORPTIVITY_LOSS, + BACK_ABSORBED_FLUX, + BACK_INCOMING_FLUX, + BACK_ABSORBED_FIELD_GAIN, + BACK_ABSORBED_ATM_GAIN, BACK_EFFICIENCY, RECEIVER_RESULTS_COUNT__ }; @@ -266,17 +266,15 @@ read_recv(FILE* file, char name[], double E[], double SE[]) "%lg %lg %lg %lg %lg %lg %lg %lg %lg %lg " "%lg %lg %lg %lg %lg %lg %lg %lg %lg %lg", name, /* ID, area */ - &E[FRONT_INTEGRATED_ABSORBED_IRRADIANCE], - &SE[FRONT_INTEGRATED_ABSORBED_IRRADIANCE], - &E[FRONT_INTEGRATED_IRRADIANCE], &SE[FRONT_INTEGRATED_IRRADIANCE], - &E[FRONT_REFLECTIVITY_LOSS], &SE[FRONT_REFLECTIVITY_LOSS], - &E[FRONT_ABSORPTIVITY_LOSS], &SE[FRONT_ABSORPTIVITY_LOSS], + &E[FRONT_ABSORBED_FLUX], &SE[FRONT_ABSORBED_FLUX], + &E[FRONT_INCOMING_FLUX], &SE[FRONT_INCOMING_FLUX], + &E[FRONT_ABSORBED_FIELD_GAIN], &SE[FRONT_ABSORBED_FIELD_GAIN], + &E[FRONT_ABSORBED_ATM_GAIN], &SE[FRONT_ABSORBED_ATM_GAIN], &E[FRONT_EFFICIENCY], &SE[FRONT_EFFICIENCY], - &E[BACK_INTEGRATED_ABSORBED_IRRADIANCE], - &SE[BACK_INTEGRATED_ABSORBED_IRRADIANCE], - &E[BACK_INTEGRATED_IRRADIANCE], &SE[BACK_INTEGRATED_IRRADIANCE], - &E[BACK_REFLECTIVITY_LOSS], &SE[BACK_REFLECTIVITY_LOSS], - &E[BACK_ABSORPTIVITY_LOSS], &SE[BACK_ABSORPTIVITY_LOSS], + &E[BACK_ABSORBED_FLUX], &SE[BACK_ABSORBED_FLUX], + &E[BACK_INCOMING_FLUX], &SE[BACK_INCOMING_FLUX], + &E[BACK_ABSORBED_FIELD_GAIN], &SE[BACK_ABSORBED_FIELD_GAIN], + &E[BACK_ABSORBED_ATM_GAIN], &SE[BACK_ABSORBED_ATM_GAIN], &E[BACK_EFFICIENCY], &SE[BACK_EFFICIENCY]), 2 * RECEIVER_RESULTS_COUNT__ + 1); } @@ -330,16 +328,14 @@ read_recvXprim "%lg %lg %lg %lg %lg %lg %lg %lg " "%lg %lg %lg %lg %lg %lg %lg %lg", rcv_id, prim_id, - &E[FRONT_INTEGRATED_ABSORBED_IRRADIANCE], - &SE[FRONT_INTEGRATED_ABSORBED_IRRADIANCE], - &E[FRONT_INTEGRATED_IRRADIANCE], &SE[FRONT_INTEGRATED_IRRADIANCE], - &E[FRONT_REFLECTIVITY_LOSS], &SE[FRONT_REFLECTIVITY_LOSS], - &E[FRONT_ABSORPTIVITY_LOSS], &SE[FRONT_ABSORPTIVITY_LOSS], - &E[BACK_INTEGRATED_ABSORBED_IRRADIANCE], - &SE[BACK_INTEGRATED_ABSORBED_IRRADIANCE], - &E[BACK_INTEGRATED_IRRADIANCE], &SE[BACK_INTEGRATED_IRRADIANCE], - &E[BACK_REFLECTIVITY_LOSS], &SE[BACK_REFLECTIVITY_LOSS], - &E[BACK_ABSORPTIVITY_LOSS], &SE[BACK_ABSORPTIVITY_LOSS]), + &E[FRONT_ABSORBED_FLUX], &SE[FRONT_ABSORBED_FLUX], + &E[FRONT_INCOMING_FLUX], &SE[FRONT_INCOMING_FLUX], + &E[FRONT_ABSORBED_FIELD_GAIN], &SE[FRONT_ABSORBED_FIELD_GAIN], + &E[FRONT_ABSORBED_ATM_GAIN], &SE[FRONT_ABSORBED_ATM_GAIN], + &E[BACK_ABSORBED_FLUX], &SE[BACK_ABSORBED_FLUX], + &E[BACK_INCOMING_FLUX], &SE[BACK_INCOMING_FLUX], + &E[BACK_ABSORBED_FIELD_GAIN], &SE[BACK_ABSORBED_FIELD_GAIN], + &E[BACK_ABSORBED_ATM_GAIN], &SE[BACK_ABSORBED_ATM_GAIN]), 2 * (RECEIVER_RESULTS_COUNT__ - 2 /* efficiencies not read */) + 2); }