The Solstice Absolute Beginner's Guide is designed to introduce enough concepts and functionalities that you will be able to autonomously use the Solstice program. The tutorial itself is provided in a pdf file while the Solstice resources on which it relies - i.e. input files - are available in a separate archive.
Solstice Post-Process is a collection of command-line tools that post-process the outputs of Solstice. These programs illustrate how the raw-results of Solstice can be processed with respect to the user needs.
The provided tools are provided as it, without additional support. They are free software written in standard C, without external dependency, and released under the GPLv3+ license. You can thus easily study, modify or extend them according to your needs. You are also welcome to redistribute them under certain conditions; refer to the license for details.
To use these tools, download the provided archive and verify its integrity
against its PGP signature. This archive
contains the sources of the program and a GNU/Makefile to simplify the build
process on GNU/Linux and on Windows through MinGW. Extract it and run
build the programs. Note that even though this archive targets GNU-compliant
systems, the provided sources can be compiled by any C compiler that supports
the C99 standard.
$ tar xzvf Solstice-PP-Sources-0.3.1.tar.gz $ cd Solstice-PP-Sources $ make
A description of each generated tools is given in the following sections.
solppraw program reads the Solstice outputs from a file or
the standard input whether a filename is provided as an argument or not,
respectively. For each simulated sun direction, it formats the raw results in a
human readable text file, simplifying the analysis of the results.
The following example invokes Solstice to simulate two sun directions and
write the results in the
output file that is then post-processed
$ solstice -D45,70:50,75 -R rcvs.yaml -o output input.yaml $ solppraw output Writing `45-70-raw-results.txt' Writing `50-75-raw-results.txt'
Note that one can directly pipe the results of
solppraw without any intermediary
$ solstice -D45,70:50,75 -R rcvs.yaml input.yaml | solppraw Writing `45-70-raw-results.txt' Writing `50-75-raw-results.txt'
solmaps command line takes as input the results of a
regular Solstice simulation. These data are read from a file or from standard
input whether a filename is provided as an argument or not, respectively.
solmaps extracts the maps of incoming flux computed by Solstice
for the receivers whose
per_primitive flag is enabled (see solstice-receiver(5) for more
informations). Each map is then saved in a specific VTK
The following example pipes
to save the maps of the receivers
target_b computed by solstice for each provided sun
$ solstice -n10000 -D45,70:50,75 -R rcvs.yaml input.yaml | solmaps Writing `45-70-target_a.vtk' Writing `45-70-target_b.vtk' Writing `50-75-target_a.vtk' Writing `50-75-target_b.vtk'
solpaths tool reads the radiative paths dumped by Solstice
when it is invoked with the
-p option. The radiative paths are read
from a file or from the standard input, whether a filename is provided as an
argument or not, respectively. For each simulated sun direction, it generates a
file of the radiative paths that can be then visualized in Paraview.
The following example illustrates how
solpaths is piped with
solstice to generate two VTK files, one per simulated sun
$ solstice -n100 -D45,70:50,75 -R rcvs.yaml -p default input.yaml | solpaths Writing `45-70-paths.vtk' Writing `50-75-paths.vtk'
solpp program takes two input files: the geometry of a
solar plant output by Solstice when it is invoked with the
option, and the results of a legacy Solstice simulation. For each simulated sun
direction, it writes three files. The first one, is a
file that maps to the
meshes of the primary geometries (i.e. the reflectors) their associated
simulation results; for instance their respective cosine factor or the amount
of flux that reaches a receiver and comes from them. The second output file,
is another VTK file that stores the geometry of the receivers and their
simulation results as their incoming flux or their efficiency. Finally, the third
file is an OBJ file
that stores the meshes of the miscellaneous geometries, i.e. the geometries
that are neither receivers nor primary geometries. These files can then be
visualised and analysed in Paraview.
In the following example,
solstice is invoked to simulate two
sun directions on the solar plant described in the
file. We then rerun
solstice with the
-g option to
export the geometry of this solar plant with respect to the aforementioned sun
directions. We finally invoke
solpp to post-process the previous
outputs saved in the
$ solstice -D45,70:50,75 -R rcvs.yaml -o simul input.yaml $ solstice -D45,70:50,75 -g format=obj -o geom input.yaml $ solpp geom simul Writing `45-70-primaries.vtk' Writing `45-70-receivers.vtk' Writing `45-70-miscellaneous.obj' Writing `50-75-primaries.vtk' Writing `50-75-receivers.vtk' Writing `50-75-miscellaneous.obj'
- Fix VTK files generated by
solpp: data were written as double while the type notified in the VTK file was float.
- Handle the update of the file formats introduced by Solstice 0.8.1.
- Add the
solmapspost-processing tool that extracts the maps of flux from the result of a solstice simulation. Each map is then saved in a specific VTK file.
- Fix the parsing of the per-receiver and per-primary results: the "back-side" estimations were not parsed.
- Handle the update of the file formats introduced by Solstice 0.6