solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit ab1ff4822efbe0a0b26d56d44ea5c537148a6392
parent be71c93d5ee213a7f15beb949311beb7a6cc76c4
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon, 13 Mar 2017 10:06:55 +0100

Back to a global cos per primary entity.

Diffstat:
Msrc/ssol.h | 2+-
Msrc/ssol_solver.c | 5+----
Msrc/test_ssol_solver4.c | 2+-
Msrc/test_ssol_solver5.c | 2+-
4 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/ssol.h b/src/ssol.h @@ -300,7 +300,7 @@ struct ssol_mc_result { }; struct ssol_mc_global { - struct ssol_mc_result cos_factor; + struct ssol_mc_result cos_factor; /* [0 1] */ struct ssol_mc_result shadowed; /* In W */ struct ssol_mc_result missing; /* In W */ }; diff --git a/src/ssol_solver.c b/src/ssol_solver.c @@ -226,6 +226,7 @@ point_init cos_sun = fabs(d3_dot(pt->N, pt->dir)); pt->weight = scn->sun->dni * sampled_area_proxy * cos_sun; pt->absorptivity_loss = pt->reflectivity_loss = 0; + pt->cos_factor = cos_sun; /* Retrieve the sampled instance and shaded shape */ pt->inst = *htable_instance_find(&scn->instances_samp, &pt->prim.inst_id); @@ -244,10 +245,6 @@ point_init if(pt->sshape->shape->type == SHAPE_PUNCHED) { punched_shape_project_point (pt->sshape->shape, pt->inst->transform, pt->pos, pt->pos, pt->N); - /* Local cos */ - pt->cos_factor = fabs(d3_dot(pt->N, pt->dir)); - } else { - pt->cos_factor = cos_sun; } /* Define the primitive side on which the point lies */ diff --git a/src/test_ssol_solver4.c b/src/test_ssol_solver4.c @@ -167,7 +167,7 @@ main(int argc, char** argv) printf("Cos = %g +/- %g\n", mc_global.cos_factor.E, mc_global.cos_factor.SE); CHECK(eq_eps(mc_global.shadowed.E, 0, 1e-4), 1); CHECK(eq_eps(mc_global.missing.E, 0, 1e-4), 1); - /* Cannot assert anything about mean local cos */ + CHECK(eq_eps(mc_global.cos_factor.E, COS, 1e-4), 1); CHECK(GET_MC_RCV(estimator, target1, SSOL_FRONT, &mc_rcv), RES_OK); printf("Ir(target1) = %g +/- %g\n", mc_rcv.integrated_irradiance.E, mc_rcv.integrated_irradiance.SE); diff --git a/src/test_ssol_solver5.c b/src/test_ssol_solver5.c @@ -155,7 +155,7 @@ main(int argc, char** argv) printf("Cos = %g +/- %g\n", mc_global.cos_factor.E, mc_global.cos_factor.SE); CHECK(eq_eps(mc_global.shadowed.E, 0, 1e-4), 1); CHECK(eq_eps(mc_global.missing.E, 0, 1e-4), 1); - /* Cannot assert anything about mean local cos */ + CHECK(eq_eps(mc_global.cos_factor.E, COS, 1e-4), 1); CHECK(ssol_estimator_get_mc_receiver (estimator, target, SSOL_FRONT, &mc_rcv), RES_OK); printf("Ir(target) = %g +/- %g\n",