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 55dfefbb3da4c763960946467649e387ad1477c7
parent 07eb25f6f5431ef072610cd589284db05a81a7eb
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 18 Nov 2016 12:31:34 +0100

Check that there is a sun in the input document

Diffstat:
Msrc/solstice_parser.c | 6++++++
Msrc/test_solstice_parser2.c | 4+++-
Msrc/yaml/test_ok_0.yaml | 8+++++++-
Msrc/yaml/test_ok_1.yaml | 7+++++++
Msrc/yaml/test_ok_2.yaml | 5+++++
5 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/solstice_parser.c b/src/solstice_parser.c @@ -2749,6 +2749,12 @@ solstice_parser_load(struct solstice_parser* parser) if(res != RES_OK) goto error; } + if(!parser->sun_key) { + log_err(parser, root, "%s: no sun definition in the document.\n"); + res = RES_BAD_ARG; + goto error; + } + exit: if(doc_is_init) yaml_document_delete(&doc); return res; diff --git a/src/test_solstice_parser2.c b/src/test_solstice_parser2.c @@ -48,7 +48,6 @@ main(int argc, char** argv) fprintf(stream, "- geometry: &sphere\n"); fprintf(stream, " - sphere: { radius: 1 }\n"); fprintf(stream, " material: { matte: { reflectivity: 1 } }\n"); - fprintf(stream, "\n"); fprintf(stream, "- entity:\n"); fprintf(stream, " name: lvl0\n"); fprintf(stream, " geometry: *sphere\n"); @@ -65,6 +64,9 @@ main(int argc, char** argv) fprintf(stream, " children:\n"); fprintf(stream, " - name: lvl2\n"); fprintf(stream, " geometry: *sphere\n"); + fprintf(stream, "- sun:\n"); + fprintf(stream, " dni: 1\n"); + fprintf(stream, " spectrum: [ { wavelength: 1, data: 1} ]\n"); rewind(stream); CHECK(solstice_parser_setup(parser, NULL, stream), RES_OK); diff --git a/src/yaml/test_ok_0.yaml b/src/yaml/test_ok_0.yaml @@ -1,3 +1,4 @@ +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: "entity" transform: @@ -8,6 +9,7 @@ material: { matte: { reflectivity: 1 } } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: "entity" transform: { translation: [ 1, 2, 0 ] } @@ -18,6 +20,7 @@ cuboid: { size: [1, 2, 3] } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: "entity" geometry: @@ -33,7 +36,7 @@ geometry: - material: *lambertian cuboid: { size: [1, 2, 3] } - +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } --- - material: &front { matte: { reflectivity: 1 } } - material: &back { matte: { reflectivity: 0.5 } } @@ -41,8 +44,10 @@ - cuboid: { size: [1, 2, 3] } material: { front: *front, back: *back } - entity: { name: "hop", geometry: *cuboid } +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } --- - material: &lambertian { matte: { reflectivity: 1 } } +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: hop geometry: &cuboid @@ -50,3 +55,4 @@ material: front: *lambertian back: *lambertian + diff --git a/src/yaml/test_ok_1.yaml b/src/yaml/test_ok_1.yaml @@ -1,3 +1,5 @@ +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } + - material: &mirror mirror: reflectivity: 1 @@ -17,6 +19,8 @@ translation: [0, 1, 2] rotation: [0, 0, 0] --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } + - material: &mirror mirror: reflectivity: 1 @@ -32,18 +36,21 @@ name: "entity" geometry: *cylinder --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: entity geometry: - material: { mirror: { reflectivity: 0.314, roughness: 0.5 } } cylinder: { height: 10.12, radius: 0.32 } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: entity geometry: - material: { mirror: { reflectivity: 0, roughness: 0.5 } } cylinder: { height: 1, radius: 1 } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: entity geometry: diff --git a/src/yaml/test_ok_2.yaml b/src/yaml/test_ok_2.yaml @@ -1,15 +1,18 @@ +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: 1 geometry: - material: { matte: { reflectivity: 1 } } stl: { path: path toward } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: 1a geometry: - material: { matte: { reflectivity: 1 } } obj: { path: "my_path" } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: test geometry: @@ -17,6 +20,7 @@ obj: { path: "path/path/path" } transform: { translation: [1, 2, 3] } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: test geometry: @@ -24,6 +28,7 @@ obj: { path: "path/path/path" } transform: { rotation: [0, 0, 0] } --- +- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] } - entity: name: hop geometry: