commit ac40a3432b5d3355958200fae3296e1627c8c88a
parent 4b4fa8ba0ad06e975538d87e1637c7390f640b27
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Wed, 20 May 2026 09:03:19 +0200
Add release notes for release 0.10
Diffstat:
| M | README.md | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------- |
1 file changed, 81 insertions(+), 36 deletions(-)
diff --git a/README.md b/README.md
@@ -3,21 +3,21 @@
The purpose of this program is to compute the total power collected by a
concentrated solar plant, and to evaluate various efficiencies for each primary
reflector: it computes losses due to cosine effect, to shadowing and
-masking, to orientation and surface irregularities, to reflectivity and to
+masking, to orientation and surface irregularities, to reflectivity, and to
atmospheric transmission. The efficiency for each one of these effects is
subsequently computed for each reflector, which provides insightful information
when looking for the optimal design of a concentrated solar plant. Note that
-Solstice relies on Monte-Carlo method, which means that every result is
+Solstice relies on Monte Carlo method, which means that every result is
provided with its numerical accuracy.
-In addition of the aforementioned computations, Solstice can render an image of
+In addition to the computations listed above, Solstice can render an image of
the solar plant, either with a simple ray-caster or with a path-tracing
algorithm that correctly handles the materials of the scene.
Solstice is designed to handle complex solar plants: any number of reflectors
can be specified (planes, conics, cylindro-parabolic, etc.) and positioned in
3D space, with a possibility for 1-axis and 2-axis auto-orientation with
-respect to the sun direction. CAO geometries can be added to the solar plant
+respect to the sun direction. CAD geometries can be added to the solar plant
thanks to the support of the STereo Lithography file format. Multiple materials
can be used, as long as the relevant physical properties are provided (matte,
mirror, dielectric, etc.). Spectral effects are also taken into account: it is
@@ -25,19 +25,24 @@ possible to define the spectral distribution of any physical property,
including the input solar spectrum and the absorption of the atmosphere, at any
spectral resolution.
-Solstice has been developed in the scope of the Solstice project, in
-collaboration with the
-[Laboratory of Excellence Solstice](http://www.labex-solstice.fr) and the
-[PROMES](http://www.promes.cnrs.fr/index.php?page=home-en) laboratory of the
-National Center for Scientific Research ([CNRS](http://www.cnrs.fr/index.php)).
-Refer to the Solstice man pages for more informations on the provided
-functionalities.
+Solstice was developed as part of the Solstice project, in collaboration with
+the [Laboratory of Excellence Solstice](http://www.labex-solstice.fr) and the
+[PROMES](http://www.promes.cnrs.fr/) laboratory of the National Center for
+Scientific Research ([CNRS](http://www.cnrs.fr)). Starting in 2026, a new
+development effort funded by [Ademe](https://www.ademe.fr/) is ongoing.
+
+Refer to the solstice(1) man pages for more information on the available
+features.
## How to build
-This program relies on the [CMake](http://www.cmake.org) and the
-[RCMake](https://gitlab.com/vaplv/rcmake/) packages to build.
-It also depends on the
+This program, as part of the Solstice app, can be built on any POSIX system.
+
+Note that you will most likely want to build the entire Solstice app rather than
+this program alone. If so, a good starting point is the
+[start-build](https://gitlab.com/meso-star/star-build) build system.
+
+This program depends on the
[LibYAML](http://pyyaml.org/wiki/LibYAML),
[RSys](https://gitlab.com/vaplv/rsys/),
[Solstice-Anim](https://gitlab.com/meso-star/solstice-anim/),
@@ -45,26 +50,66 @@ It also depends on the
[Star-3DUT](https://gitlab.com/meso-star/star-3dut/),
[Star-SP](https://gitlab.com/meso-star/star-sp/) and
[Star-STL](https://gitlab.com/meso-star/star-stm/) libraries.
-The documentation is written in
-[AsciiDoc](http://www.methods.co.nz/asciidoc/) text format and relies on its
-tool suite to generate HTML and/or ROFF man pages. If the AsciiDoc tools cannot
-be found, the documentation will not be built.
-
-First ensure that CMake is installed on your system. Then install the RCMake
-package as well as the aforementioned prerequisites. Finally generate the
-project from the `cmake/CMakeLists.txt` file by appending to the
-`CMAKE_PREFIX_PATH` variable the install directories of its dependencies. The
-resulting project can be edited, built, tested and installed as any CMake
-project. Refer to the [CMake](https://cmake.org/documentation) for further
-informations on CMake.
+
+First ensure that the make utility and a compiler that implements the OpenMP 1.2
+specification are installed on your system. Then install the above
+prerequisites. Finally, edit the config.mk file to meet your needs and build
+the project by running:
+
+ make clean install
## Release notes
+### Version 0.10
+
+#### Raise the minimum required versions of companion libs
+
+solstice-anim minimum version is now 0.3, while solstice-solver minimum version
+is now 0.10.
+
+#### Replace CMake with a POSIX Makefile
+
+The build procedure is now written in POSIX make and can be configured via
+the config.mk file. A pkg-config file is also provided to link the
+library as an external dependency.
+
+Compared to the CMake alternative, this Makefile adds support for static
+libraries and an uninstall target. It also enables compiler and linker
+flags for various hardening features, improving the security and
+robustness of generated binaries. More broadly, the motivation for this
+rewrite is to rely on a well-established standard with a simple feature
+set, available on all UNIX systems - reducing portability concerns and
+maintenance burden while remaining significantly lighter.
+
+#### Proof-reading and editing manual pages
+
+Write the man pages directly in mdoc's roff macros, instead of using the
+asciidoc markup language as a source for man pages.
+Unlike writing manuals with man's roff macros, and even more so with
+asciidoc, mdoc macros take care of layout, font handling and all the other
+typesetting details which, by construction, guarantee the consistency of
+all manuals without leaving the responsibility to the individual author.
+This also facilitates translation into other formats and documentation
+tools. These are the main reasons for writing manual pages with mdoc
+macros.
+A complete re-reading of the manual pages was carried out during the
+translation into mdoc, with several corrections and rewrites to make the
+manual clearer.
+
+#### Raise the minimum required version of dependencies
+
+Minimum required versions:
+- Rsys = 0.15
+- Star-3DUT = 0.4
+- Star-SP = 0.15
+- Star-STL = 0.7
+- libYAML = 0.2
+
### Version 0.9.1
-- Sets the CMake minimum version to 3.1: since CMake 3.20, version 2.8 has
- become obsolete.
-- Sets the required version of Star-SampPling to 0.12. This version fixes
+- Raise the minimum required CMake version to 3.1, as version 2.8 has been
+ deprecated since CMake 3.20.
+- Raise the minimum required Star-SampPling to 0.12. This version fixes
compilation errors with gcc 11 but introduces API breaks.
### Version 0.9
@@ -93,10 +138,10 @@ attribute of the receiver file format controls which flux densities to output
for each triangle of a receiver. Its value can be:
- `NONE`: no per-triangle flux density is computed, i.e. no receiver map is
- output for the receiver. It was the comportment of the previous version of
+ output for the receiver. It was the behaviour of the previous version of
Solstice when the `per_primitive` flag was undefined or was set to 0.
- `INCOMING`: output the estimate of the per-triangle incoming flux density.
- It was the comportment of the previous version of Solstice when the
+ It was the behaviour of the previous version of Solstice when the
`per_primitive` flag was set to 1.
- `ABSORBED`: output the estimate of the per-triangle absorbed flux density.
- `INCOMING_AND_ABSORBED`: output both the estimates of incoming and absorbed
@@ -133,7 +178,7 @@ for each triangle of a receiver. Its value can be:
losses.
- Rename the pillbox `aperture` parameter in `theta_max`.
- Fix the distribution of the pillbox sun: the pdf was wrong and its angular
- parameter was internally used as an angular diameter while it is a angular
+ parameter was internally used as an angular diameter while it is an angular
radius.
- Fix the solver for non parallel sun: the angle between the principal sun
direction and the sampled direction was not correctly taken into account
@@ -164,7 +209,7 @@ radiative random walks bounce on many surfaces.
### Version 0.3
-- Fix several issues in the output results. Refer to the Solsice-Solver 0.3
+- Fix several issues in the output results. Refer to the Solstice-Solver 0.3
release notes for more informations.
- Add the `--version` option.
- Update the man pages to fix some issues and improve the output documentation.
@@ -174,14 +219,14 @@ radiative random walks bounce on many surfaces.
- Update the solstice-input file format. The anchor and entity name cannot
contain spaces or tabulations anymore.
- Fix the reported sun directions in the solstice-output. For each submitted
- sun direction, solstice correctly output its Cartesian coordinates but always
+ sun direction, solstice correctly outputs its Cartesian coordinates but always
wrote the azimuthal and elevation angles of the first direction.
- Update the solstice-output map page: add the missing `<efficiency>` grammar
rule and fix the definition of the `<map-side-data>` grammar rule.
### Version 0.2.2
-- Fix how the AsciiDoc tool suite is looking for on Windows; it was never found
+- Fix how the AsciiDoc tool suite is searched for on Windows; it was never found
and consequently the documentation was not generated.
### Version 0.2.1
@@ -207,7 +252,7 @@ radiative random walks bounce on many surfaces.
## License
-Copyright (C) 2018, 2019, 2021 |Meso|Star> (<contact@meso-star.com>).
+Copyright (C) 2018-2026 |Meso|Star> (<contact@meso-star.com>).
Copyright (C) 2016-2018 CNRS.
Solstice is free software released under the GPL v3+ license: GNU GPL version 3