commit 85b10c59a9966c29b1ac538f10826cb50e4bfaad
parent 9413ef8d9f92662c0932eeb5d7010836295b1323
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Wed, 13 Sep 2017 09:38:03 +0200
Add new outputs for receivers.
Incoming and absorbed fluxes are now fully described (flux, flux without
material loss, flux without atmospheric loss, materials loss, atmosphere loss).
Diffstat:
11 files changed, 180 insertions(+), 124 deletions(-)
diff --git a/doc/solstice-output.5.txt b/doc/solstice-output.5.txt
@@ -89,8 +89,8 @@ _______
<#samples> ::= INTEGER # in [0, INF)
<#failed> ::= INTEGER # in [0, INF)
-<global> ::= <potential-irradiance>
- <absorbed-irradiance>
+<global> ::= <potential-flux>
+ <absorbed-flux>
<cos-factor>
<shadow-loss>
<missing-loss>
@@ -112,8 +112,10 @@ _______
<front> ::= <side>
<back> ::= <side>
-<side> ::= "<absorbed-irradiance> <irradiance>
- <materials-loss> <atmospheric-loss>
+<side> ::= "<incoming-flux> <in-if-no-mat-loss> <in-if-no-atm-loss>
+ <in-mat-loss> <in-atm-loss>
+ <absorbed-flux> <abs-if-no-mat-loss> <abs-if-no-atm-loss>
+ <abs-mat-loss> <abs-atm-loss>
<efficiency>"
-------------------------------------
@@ -139,8 +141,10 @@ _______
<rcvXprim-front> ::= <rcvXprim-side>
<rcvXprim-back> ::= <rcvXprim-side>
-<rcvXprim-side> ::= "<absorbed-irradiance> <irradiance>
- <materials-loss> <atmospheric-loss>"
+<rcvXprim-side> ::= "<incoming-flux> <in-if-no-mat-loss> <in-if-no-atm-loss>
+ <in-mat-loss> <in-atm-loss>
+ <absorbed-flux> <abs-if-no-mat-loss> <abs-if-no-atm-loss>
+ <abs-mat-loss> <abs-atm-loss>"
-------------------------------------
@@ -160,15 +164,23 @@ _______
<azimuth> ::= REAL # Degrees in [0, 360[
<elevation> ::= REAL # Degrees in [0, 90]
-<potential-irradiance>::= <estimate>
-<absorbed-irradiance> ::= <estimate>
-<atmospheric-loss> ::= <estimate>
-<cos-factor> ::= <estimate>
-<irradiance> ::= <estimate>
-<missing-loss> ::= <estimate>
-<materials-loss> ::= <estimate>
-<shadow-loss> ::= <estimate>
-<efficiency> ::= <estimate>
+<incoming-flux> ::= <estimate>
+<in-if-no-mat-loss> ::= <estimate>
+<in-if-no-atm-loss> ::= <estimate>
+<in-mat-loss> ::= <estimate>
+<in-atm-loss> ::= <estimate>
+<absorbed-flux> ::= <estimate>
+<abs-if-no-mat-loss> ::= <estimate>
+<abs-if-no-atm-loss> ::= <estimate>
+<abs-mat-loss> ::= <estimate>
+<abs-atm-loss> ::= <estimate>
+<cos-factor> ::= <estimate>
+<incoming-flux> ::= <estimate>
+<missing-loss> ::= <estimate>
+<materials-loss> ::= <estimate>
+<atmospheric-loss> ::= <estimate>
+<shadow-loss> ::= <estimate>
+<efficiency> ::= <estimate>
<estimate> ::= <expected-value> <standard-error>
<expected-value> ::= REAL
@@ -200,27 +212,31 @@ the exact number of lines being part of the headers. Currently this number is
7. Each global result is a pair of real numbers: the expected value and its
standard error. The global results are, in this order:
-- *potential-irradiance*: maximum irradiance that all the primary
- geometries could intercept if properly oriented;
-- *absorbed-irradiance*: absorbed part of the irradiance reaching any
- receiver geometry. At most equal to potential irradiance;
-- *cos-factor*: fraction of incoming irradiance not intercepted by the
- primary geometries due to their orientation;
-- *shadow-loss*: irradiance lost before reaching primary geometries due to the
- shadow of another geometry;
-- *missing-loss*: irradiance that reaches a primary geometry, but not
- absorbed by a receiver; this irradiance could have been blocked along its
- path, can have missed the receivers, or can have reach a receiver but
- without being absorbed;
-- *materials-loss*: additional irradiance that could have been absorbed
- by receivers if no absorption had occurred on non-receivers material until then;
-- *atmospheric-loss*: irradiance that could have been absorbed by
- receivers if atmospheric extinction had not been taken into account.
+- *potential-flux*: maximum flux that all the primary
+ geometries could intercept if properly oriented and flat-shaped;
+- *absorbed-flux*: absorbed part of the flux reaching any
+ receiver geometry. At most equal to the potential flux;
+- *cos-factor*: cos of the angle between the sun direction and the normal of
+ the primary surfaces (average cos over all primary geometries);
+- *shadow-loss*: flux intercepted by another geometry before reaching a
+ primary geometry.
+- *missing-loss*: part of the flux that reaches a primary geometry, follows a
+ radiative path, but is not absorbed; this flux could have bounced on geometries,
+ including receivers, but without being absorbed;
+- *materials-loss*: total flux absorbed by non-receivers along radiative paths;
+ includes both surface and volume absorption;
+- *atmospheric-loss*: total flux extinction by the atmosphere along radiative paths.
+
+This results can be used to check conservation of energy:
+
+potential-flux * cos-factor and (absorbed-flux + shadow-loss +
+missing-loss + materials-loss + atmospheric-loss)
+should be equal whithin their respective uncertainty ranges.
Per receiver results
~~~~~~~~~~~~~~~~~~~~
-After the global results, the output includes various per-receiver lines, one
+Following global results, the output includes various per-receiver lines, one
line per receiver, the exact number of lines being part of the headers. Each
line contains the following data:
@@ -236,13 +252,21 @@ The estimates of the *front* and *back* sides are listed bellow. Note that
each of the following estimates is actually a pair of real numbers: the
expected value and its standard error.
-- *absorbed-irradiance*: irradiance absorbed by the receiver side;
-- *irradiance*: irradiance that reaches the receiver side;
-- *materials-loss*: irradiance that could have been absorbed by the
- receiver side if no absorption had occurred on non-receivers material until then;
-- *atmospheric-loss*: irradiance that could have been absorbed by the
- receiver side if atmospheric extinction had not been taken into account;
-- *efficiency*: fraction of incoming irradiance absorbed by the receiver side.
+- *incoming-flux*: flux that reaches the receiver side;
+- *in-if-no-mat-loss*: incoming-flux if
+ absorption on non-receivers is not taken into account;
+- *in-if-no-atm-loss*: incoming-flux if
+ atmospheric extinction is not taken into account;
+- *in-mat-loss*: in-if-no-mat-loss - incoming-flux;
+- *in-atm-loss*: in-if-no-atm-loss - incoming-flux;
+- *absorbed-flux*: flux absorbed by the receiver side;
+- *abs-if-no-mat-loss*: absorbed-flux if
+ absorption by non-receivers is not taken into account;
+- *abs-if-no-atm-loss*: absorbed-flux if
+ atmospheric extinction is not taken into account;
+- *abs-mat-loss*: abs-if-no-mat-loss - absorbed-flux;
+- *abs-atm-loss*: abs-if-no-atm-loss - absorbed-flux;
+- *efficiency*: fraction of the potential flux absorbed by this receiver side.
Both *front* and *back* side estimates are output, even if the receiver has
only a single receiving side. In this case, the results of the non-receiving
@@ -251,7 +275,7 @@ side are meaningless (invalid -1 value).
Per primary results
~~~~~~~~~~~~~~~~~~~
-After the per-receiver results, the output includes various per-primary result
+Following the per-receiver results, the output includes various per-primary result
lines, one line per primary geometry, the exact number of lines being part of
the headers. Each line contains:
@@ -262,15 +286,15 @@ the headers. Each line contains:
- *area*: area of the primary geometry;
- *#sample*: number of Monte-Carlo experiments sampled on the primary
geometry;
-- *cos-factor*: expected value and standard error of the fraction of incoming
- irradiance not intercepted by the primary geometry due to its orientation;
-- *shadow-loss*: expected value and standard error of the irradiance lost
- before reaching the primary geometry due to the shadow of another geometry.
+- *cos-factor*: cos of the angle between the sun direction and the normal of
+ the primary surface (average cos on the primary geometry);
+- *shadow-loss*: flux intercepted by another geometry before reaching the
+ primary geometry of interest.
Per receiver and per primary results
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-After the per-primary results, the output includes various result lines, each
+Following the per-primary results, the output includes various result lines, each
describing the contribution of a primary geometry to a given receiver. The
total number of such lines is the number of receivers times the number of
primary geometries. Each line contains:
@@ -284,16 +308,20 @@ The estimated values of *rcvXprim-front* and *rcvXprim-back* are listed
bellow. Each of these estimates is actually a pair of real numbers: the
expected value and its standard error.
-- *absorbed-irradiance*: irradiance absorbed by the receiver side coming
- from the primary geometry;
-- *irradiance*: irradiance reaching the receiver side coming from the primary
- geometry;
-- *materials-loss*: irradiance that could have been absorbed by the
- receiver side coming from the primary geometry if no absorption had occurred
- on non-receivers material until then;
-- *atmospheric-loss*: irradiance that could have been absorbed by
- the receiver side coming from the primary geometry if atmospheric
- extinction had not been taken into account.
+- *incoming-flux*: flux that reaches the receiver side;
+- *in-if-no-mat-loss*: incoming-flux if
+ absorption on non-receivers is not taken into account;
+- *in-if-no-atm-loss*: incoming-flux if
+ atmospheric extinction is not taken into account;
+- *in-mat-loss*: in-if-no-mat-loss - incoming-flux;
+- *in-atm-loss*: in-if-no-atm-loss - incoming-flux;
+- *absorbed-flux*: flux absorbed by the receiver side;
+- *abs-if-no-mat-loss*: absorbed-flux if
+ absorption by non-receivers is not taken into account;
+- *abs-if-no-atm-loss*: absorbed-flux if
+ atmospheric extinction is not taken into account;
+- *abs-mat-loss*: abs-if-no-mat-loss - absorbed-flux;
+- *abs-atm-loss*: abs-if-no-atm-loss - absorbed-flux;
Both front and back side estimates are output, even if the receiver has only a
single receiving side. In this case, the results of the non-receiving side are
@@ -303,13 +331,13 @@ Receiver map
~~~~~~~~~~~~
A receiver defined in the submitted *solstice-receiver*(5) file, can have a
-per-primitive irradiance estimate if its *per_primitive* flag is active. In
+per-primitive incoming-flux estimate if its *per_primitive* flag is active. In
this case, *solstice*(1) generates a *receiver-map* that is actually an ASCII
VTK file [2] that stores the triangular mesh of the receiver and, for each
-triangle, the estimate of its associated irradiance. The "definition" of the
+triangle, the estimate of its associated incoming-flux. The "definition" of the
receiver map is thus controlled by the discretisation of the receiver's shape,
as described in the *solstice-input*(5) file. Note that to obtain a good
-estimate of the per-triangle irradiance, one have to ensure that the number
+estimate of the per-triangle incoming-flux, one have to ensure that the number
of per-triangle experiments is sufficient regarding the targeted accuracy.
Since only a small fraction of the overall sampled radiative paths reach a
given triangle, the total number of experiments required through the *-n*
@@ -317,9 +345,9 @@ option of *solstice*(1) should be increased significantly, as 1 or 2 order of
magnitude.
If only the front or the back side of the receiver is active, then only one set
-of per triangle irradiance estimate is written. If the *side* attribute of
-the receiver is set to *FRONT_AND_BACK*, the irradiance estimate for the
-front facing triangles are written before to the estimate of the back facing
+of per triangle incoming-flux estimate is written. If the *side* attribute of
+the receiver is set to *FRONT_AND_BACK*, the incoming-flux estimates for the
+front facing triangles are written before the estimates of the back facing
ones. The following grammar gives a brief description of the formatting of a
*VTK-RECEIVER-MAP*. Please refer to the VTK format specification [2] for more
informations on the VTK file format.
@@ -352,8 +380,8 @@ VTK-RECEIVER-MAP ::= # vtk DataFile Version 2.0
<map-side-data> ::= SCALARS <side-name> float 2
LOOKUP_TABLE default
- <irradiance>
- [ <irradiance> ... ]
+ <incoming-flux>
+ [ <incoming-flux> ... ]
<map-side-name> ::= Front_faces | Back_faces
diff --git a/src/solstice_solve.c b/src/solstice_solve.c
@@ -102,16 +102,30 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator)
SSOL(instance_get_area(inst, &area));
fprintf(solstice->output,
"%s %u %g "
+ "%g %g %g %g %g %g %g %g %g %g %g %g "
"%g %g %g %g %g %g %g %g %g %g "
+ "%g %g %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.absorbed_flux.E, front.absorbed_flux.SE,
front.incoming_flux.E, front.incoming_flux.SE,
+ front.incoming_if_no_field_loss.E, front.incoming_if_no_field_loss.SE,
+ front.incoming_if_no_atm_loss.E, front.incoming_if_no_atm_loss.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,
+ front.absorbed_flux.E, front.absorbed_flux.SE,
+ front.absorbed_if_no_field_loss.E, front.absorbed_if_no_field_loss.SE,
+ front.absorbed_if_no_atm_loss.E, front.absorbed_if_no_atm_loss.SE,
front.absorbed_lost_in_field.E, front.absorbed_lost_in_field.SE,
front.absorbed_lost_in_atmosphere.E, front.absorbed_lost_in_atmosphere.SE,
f_eff_E, f_eff_SE,
- back.absorbed_flux.E, back.absorbed_flux.SE,
back.incoming_flux.E, back.incoming_flux.SE,
+ back.incoming_if_no_field_loss.E, back.incoming_if_no_field_loss.SE,
+ back.incoming_if_no_atm_loss.E, back.incoming_if_no_atm_loss.SE,
+ back.incoming_lost_in_field.E, back.incoming_lost_in_field.SE,
+ back.incoming_lost_in_atmosphere.E, back.incoming_lost_in_atmosphere.SE,
+ back.absorbed_flux.E, back.absorbed_flux.SE,
+ back.absorbed_if_no_field_loss.E, back.absorbed_if_no_field_loss.SE,
+ back.absorbed_if_no_atm_loss.E, back.absorbed_if_no_atm_loss.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);
@@ -176,15 +190,29 @@ write_mc_global(struct solstice* solstice, struct ssol_estimator* estimator)
}
fprintf(solstice->output,
"%u %u "
+ "%g %g %g %g %g %g %g %g %g %g %g %g "
"%g %g %g %g %g %g %g %g "
+ "%g %g %g %g %g %g %g %g %g %g %g %g "
"%g %g %g %g %g %g %g %g\n",
(unsigned) rcv_id, (unsigned) prim_id,
- front.absorbed_flux.E, front.absorbed_flux.SE,
front.incoming_flux.E, front.incoming_flux.SE,
+ front.incoming_if_no_field_loss.E, front.incoming_if_no_field_loss.SE,
+ front.incoming_if_no_atm_loss.E, front.incoming_if_no_atm_loss.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,
+ front.absorbed_flux.E, front.absorbed_flux.SE,
+ front.absorbed_if_no_field_loss.E, front.absorbed_if_no_field_loss.SE,
+ front.absorbed_if_no_atm_loss.E, front.absorbed_if_no_atm_loss.SE,
front.absorbed_lost_in_field.E, front.absorbed_lost_in_field.SE,
front.absorbed_lost_in_atmosphere.E, front.absorbed_lost_in_atmosphere.SE,
- back.absorbed_flux.E, back.absorbed_flux.SE,
back.incoming_flux.E, back.incoming_flux.SE,
+ back.incoming_if_no_field_loss.E, back.incoming_if_no_field_loss.SE,
+ back.incoming_if_no_atm_loss.E, back.incoming_if_no_atm_loss.SE,
+ back.incoming_lost_in_field.E, back.incoming_lost_in_field.SE,
+ back.incoming_lost_in_atmosphere.E, back.incoming_lost_in_atmosphere.SE,
+ back.absorbed_flux.E, back.absorbed_flux.SE,
+ back.absorbed_if_no_field_loss.E, back.absorbed_if_no_field_loss.SE,
+ back.absorbed_if_no_atm_loss.E, back.absorbed_if_no_atm_loss.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);
diff --git a/yaml/beam_down.ref b/yaml/beam_down.ref
@@ -7,23 +7,23 @@
0 0
0 0
0 0
-tower.secondary.hyperbol 10 421.957 0 0 465.46 0.0057839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-tower.receptor 14 25 465.46 0.0057839 465.46 0.0057839 0 0 0 0 0.93084 1.15668e-05 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+tower.secondary.hyperbol 10 421.957 465.46 0.0057839 465.46 0.0057839 465.46 0.0057839 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+tower.receptor 14 25 465.46 0.0057839 465.46 0.0057839 465.46 0.0057839 0 0 0 0 465.46 0.0057839 465.46 0.0057839 465.46 0.0057839 0 0 0 0 0.93084 1.15668e-05 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
heliostat4.temp-heliostat150.pivot.reflector 6 100.009 19915 0.931616 2.47038e-05 0 0
heliostat5.temp-heliostat150.pivot.reflector 30 100.009 20068 0.929594 2.509e-05 0 0
heliostat3.temp-heliostat150.pivot.reflector 22 100.009 19919 0.931716 2.47979e-05 0 0
heliostat2.temp-heliostat150.pivot.reflector 26 100.009 20054 0.93164 2.4549e-05 0 0
heliostat1.temp-heliostat150.pivot.reflector 34 100.009 20044 0.929616 2.5199e-05 0 0
-10 6 0 0 92.7742 0.588324 0 0 0 0 0 0 0 0 0 0 0 0
-10 30 0 0 93.2842 0.588736 0 0 0 0 0 0 0 0 0 0 0 0
-10 22 0 0 92.8029 0.588432 0 0 0 0 0 0 0 0 0 0 0 0
-10 26 0 0 93.4242 0.589876 0 0 0 0 0 0 0 0 0 0 0 0
-10 34 0 0 93.1748 0.588486 0 0 0 0 0 0 0 0 0 0 0 0
-14 6 92.7742 0.588324 92.7742 0.588324 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 30 93.2842 0.588736 93.2842 0.588736 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 22 92.8029 0.588432 92.8029 0.588432 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 26 93.4242 0.589876 93.4242 0.589876 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 34 93.1748 0.588486 93.1748 0.588486 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
+10 6 92.7742 0.588324 92.7742 0.588324 92.7742 0.588324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 30 93.2842 0.588736 93.2842 0.588736 93.2842 0.588736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 22 92.8029 0.588432 92.8029 0.588432 92.8029 0.588432 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 26 93.4242 0.589876 93.4242 0.589876 93.4242 0.589876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 34 93.1748 0.588486 93.1748 0.588486 93.1748 0.588486 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+14 6 92.7742 0.588324 92.7742 0.588324 92.7742 0.588324 0 0 0 0 92.7742 0.588324 92.7742 0.588324 92.7742 0.588324 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 30 93.2842 0.588736 93.2842 0.588736 93.2842 0.588736 0 0 0 0 93.2842 0.588736 93.2842 0.588736 93.2842 0.588736 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 22 92.8029 0.588432 92.8029 0.588432 92.8029 0.588432 0 0 0 0 92.8029 0.588432 92.8029 0.588432 92.8029 0.588432 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 26 93.4242 0.589876 93.4242 0.589876 93.4242 0.589876 0 0 0 0 93.4242 0.589876 93.4242 0.589876 93.4242 0.589876 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 34 93.1748 0.588486 93.1748 0.588486 93.1748 0.588486 0 0 0 0 93.1748 0.588486 93.1748 0.588486 93.1748 0.588486 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
#--- Sun direction: 50 50 (-0.413176 -0.492404 -0.766044)
7 2 5 100000 0
500.043 0
@@ -33,20 +33,20 @@ heliostat1.temp-heliostat150.pivot.reflector 34 100.009 20044 0.929616 2.5199e
245.21 0.615008
19.1054 0.268227
0 0
-tower.secondary.hyperbol 10 421.957 0 0 400.167 0.0352796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-tower.receptor 14 25 135.852 0.602426 135.852 0.602426 0 0 0 0 0.271681 0.00120475 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+tower.secondary.hyperbol 10 421.957 400.167 0.0352796 400.167 0.0352796 400.167 0.0352796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+tower.receptor 14 25 135.852 0.602426 135.852 0.602426 135.852 0.602426 0 0 0 0 135.852 0.602426 135.852 0.602426 135.852 0.602426 0 0 0 0 0.271681 0.00120475 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
heliostat4.temp-heliostat150.pivot.reflector 6 100.009 20095 0.785227 4.21758e-05 0 0
heliostat5.temp-heliostat150.pivot.reflector 30 100.009 20027 0.769756 4.33957e-05 0 0
heliostat3.temp-heliostat150.pivot.reflector 22 100.009 19777 0.799897 4.08915e-05 0 0
heliostat2.temp-heliostat150.pivot.reflector 26 100.009 19976 0.815845 3.92572e-05 0 0
heliostat1.temp-heliostat150.pivot.reflector 34 100.009 20125 0.830515 3.78765e-05 0 0
-10 6 0 0 78.903 0.497568 0 0 0 0 0 0 0 0 0 0 0 0
-10 30 0 0 77.0867 0.487147 0 0 0 0 0 0 0 0 0 0 0 0
-10 22 0 0 79.1052 0.503835 0 0 0 0 0 0 0 0 0 0 0 0
-10 26 0 0 81.4942 0.515816 0 0 0 0 0 0 0 0 0 0 0 0
-10 34 0 0 83.5784 0.526554 0 0 0 0 0 0 0 0 0 0 0 0
-14 6 22.1799 0.286704 22.1799 0.286704 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 30 18.6614 0.26147 18.6614 0.26147 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 22 25.3271 0.308097 25.3271 0.308097 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 26 31.6777 0.345324 31.6777 0.345324 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
-14 34 38.0063 0.378737 38.0063 0.378737 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1
+10 6 78.903 0.497568 78.903 0.497568 78.903 0.497568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 30 77.0867 0.487147 77.0867 0.487147 77.0867 0.487147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 22 79.1052 0.503835 79.1052 0.503835 79.1052 0.503835 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 26 81.4942 0.515816 81.4942 0.515816 81.4942 0.515816 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+10 34 83.5784 0.526554 83.5784 0.526554 83.5784 0.526554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+14 6 22.1799 0.286704 22.1799 0.286704 22.1799 0.286704 0 0 0 0 22.1799 0.286704 22.1799 0.286704 22.1799 0.286704 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 30 18.6614 0.26147 18.6614 0.26147 18.6614 0.26147 0 0 0 0 18.6614 0.26147 18.6614 0.26147 18.6614 0.26147 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 22 25.3271 0.308097 25.3271 0.308097 25.3271 0.308097 0 0 0 0 25.3271 0.308097 25.3271 0.308097 25.3271 0.308097 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 26 31.6777 0.345324 31.6777 0.345324 31.6777 0.345324 0 0 0 0 31.6777 0.345324 31.6777 0.345324 31.6777 0.345324 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+14 34 38.0063 0.378737 38.0063 0.378737 38.0063 0.378737 0 0 0 0 38.0063 0.378737 38.0063 0.378737 38.0063 0.378737 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
diff --git a/yaml/test01.ref b/yaml/test01.ref
@@ -7,6 +7,6 @@
1 0
0 0
0 0
-square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 1 0 0 0 0 0 0 0
+square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
reflector 6 1 10000 1 0 0 0
-2 6 -1 -1 -1 -1 -1 -1 -1 -1 0 0 1 0 0 0 0 0
+2 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test02.ref b/yaml/test02.ref
@@ -1,12 +1,12 @@
#--- Sun direction: 0 90 (-6.12323e-17 -0 -1)
7 1 1 10000 0
100 0
-0.91 0.0949589
+0.96 0.0975082
1 0
0 0
-99.09 0.0949589
+99.04 0.0975082
0 0
0 0
-square_receiver 2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0.91 0.0949589 0.91 0.0949589 0 0 0 0 0.0091 0.000949589
+square_receiver 2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0.96 0.0975082 0.96 0.0975082 0.96 0.0975082 0 0 0 0 0.96 0.0975082 0.96 0.0975082 0.96 0.0975082 0 0 0 0 0.0096 0.000975082
reflector 6 100 10000 1 0 0 0
-2 6 -1 -1 -1 -1 -1 -1 -1 -1 0.91 0.0949589 0.91 0.0949589 0 0 0 0
+2 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0.96 0.0975082 0.96 0.0975082 0.96 0.0975082 0 0 0 0 0.96 0.0975082 0.96 0.0975082 0.96 0.0975082 0 0 0 0
diff --git a/yaml/test03.ref b/yaml/test03.ref
@@ -2,11 +2,11 @@
7 1 1 10000 0
1 0
0 0
-0.707107 2.44511e-09
+0.707107 0
0 0
-0.707107 2.44511e-09
+0.707107 0
0 0
0 0
-square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0.707107 2.44511e-09 0 0 0 0 0 0
-reflector 6 1 10000 0.707107 2.44511e-09 0 0
-2 6 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0.707107 2.44511e-09 0 0 0 0
+square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0.707107 0 0.707107 0 0.707107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+reflector 6 1 10000 0.707107 0 0 0
+2 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0.707107 0 0.707107 0 0.707107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test04.ref b/yaml/test04.ref
@@ -2,11 +2,11 @@
7 1 1 10000 0
1 0
0 0
-0.707107 2.44511e-09
+0.707107 0
0 0
-0.707107 2.44511e-09
+0.707107 0
0 0
0 0
-square_receiver 2 100 0 0 0 0 0 0 0 0 0 0 0 0 0.707107 2.44511e-09 0 0 0 0 0 0
-reflector 6 1 10000 0.707107 2.44511e-09 0 0
-2 6 0 0 0 0 0 0 0 0 0 0 0.707107 2.44511e-09 0 0 0 0
+square_receiver 2 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.707107 0 0.707107 0 0.707107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+reflector 6 1 10000 0.707107 0 0 0
+2 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.707107 0 0.707107 0 0.707107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test05.ref b/yaml/test05.ref
@@ -7,6 +7,6 @@
1 0
0 0
0 0
-spherical_receiver 2 50.2403 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 1 0 0 0 0 0 0 0
+spherical_receiver 2 50.2403 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
reflector 6 1 10000 1 0 0 0
-2 6 -1 -1 -1 -1 -1 -1 -1 -1 0 0 1 0 0 0 0 0
+2 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test06.ref b/yaml/test06.ref
@@ -2,11 +2,11 @@
7 1 1 10000 0
111.97 0
0 0
-0.896777 0.000575378
+0.896295 0.000571234
0 0
-100 2.33602e-08
+100 0
0 0
0 0
-reflector.ground.pivot.small_square 10 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 100 2.33602e-08 0 0 0 0 0 0
-reflector.ground.pivot.parabol 6 111.97 10000 0.896777 0.000575378 0 0
-10 6 -1 -1 -1 -1 -1 -1 -1 -1 0 0 100 2.33602e-08 0 0 0 0
+reflector.ground.pivot.small_square 10 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 100 0 100 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+reflector.ground.pivot.parabol 6 111.97 10000 0.896295 0.000571234 0 0
+10 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 100 0 100 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test07.ref b/yaml/test07.ref
@@ -2,11 +2,11 @@
7 1 1 10000 0
56.3501 0
0 0
-0.66742 0.00232559
+0.670118 0.00232673
0 0
-28.093 5.04637e-08
+28.093 4.0179e-08
0 0
0 0
-square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 28.0902 0.00280916 0 0 0 0 0 0
-reflector 6 56.3501 10000 0.66742 0.00232559 0 0
-2 6 -1 -1 -1 -1 -1 -1 -1 -1 0 0 28.0902 0.00280916 0 0 0 0
+square_receiver 2 100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 28.093 4.0179e-08 28.093 4.0179e-08 28.093 4.0179e-08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+reflector 6 56.3501 10000 0.670118 0.00232673 0 0
+2 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 28.093 4.0179e-08 28.093 4.0179e-08 28.093 4.0179e-08 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff --git a/yaml/test08.ref b/yaml/test08.ref
@@ -2,11 +2,11 @@
7 1 1 10000 0
85.5109 0
0 0
-0.918392 0.000433033
+0.917875 0.000431307
0 0
-78.4137 0
+78.4137 2.52319e-08
0 0
0 0
-reflector.pivot.small_square 6 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 78.4137 0 0 0 0 0 0 0
-reflector.pivot.parabol 2 85.5109 10000 0.918392 0.000433033 0 0
-6 2 -1 -1 -1 -1 -1 -1 -1 -1 0 0 78.4137 0 0 0 0 0
+reflector.pivot.small_square 6 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 78.4137 2.52319e-08 78.4137 2.52319e-08 78.4137 2.52319e-08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+reflector.pivot.parabol 2 85.5109 10000 0.917875 0.000431307 0 0
+6 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 78.4137 2.52319e-08 78.4137 2.52319e-08 78.4137 2.52319e-08 0 0 0 0 0 0 0 0 0 0 0 0 0 0