stardis-spk

Scripts and datasets for running Stardis simulations
git clone git://git.meso-star.fr/stardis-spk.git
Log | Files | Refs | README | LICENSE

commit db0ef919c86d4bc698877badb66d88e1b8dc6de4
parent 2c04730b3b4976b210f7607f39c67bc77c830438
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu,  9 Apr 2026 10:56:11 +0200

Wraps the README text in 72 columns

This matches the convention of plain text e-mails. It can therefore be
sent as a publication announcement e-mail without being reformatted.

Diffstat:
MREADME.md | 302++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
1 file changed, 167 insertions(+), 135 deletions(-)

diff --git a/README.md b/README.md @@ -1,61 +1,73 @@ # Stardis: Starter Pack -The Stardis: Starter Pack is a collection of input data sets ready for use with -`stardis`, over a few examples. It also provides GNU Bash scripts that make easier -the invocation of the `stardis` program. It gives an overview of the required -input data and the features of `stardis`. +The Stardis: Starter Pack is a collection of input data sets ready for +use with `stardis`, over a few examples. +It also provides GNU Bash scripts that make easier the invocation of the +`stardis` program. +It gives an overview of the required input data and the features of +`stardis`. ## Quick start -Assuming that `stardis` is correctly installed and registered against your -current GNU Bash shell, simply run the GNU bash script of the example that you -want to run. For instance: +Assuming that `stardis` is correctly installed and registered against +your current GNU Bash shell, simply run the GNU bash script of the +example that you want to run. +For instance: ~/Stardis-StarterPack $ cd heatsink ~/Stardis-StarterPack/heatsink $ bash run_medium_computation.sh -On script invocation, `stardis` is ran according to the data of the example and -the simulation parameters defined in the `USER PARAMETERS` section of the -script. Each example and its launching script is explained hereafter. +On script invocation, `stardis` is ran according to the data of the +example and the simulation parameters defined in the `USER PARAMETERS` +section of the script. +Each example and its launching script is explained hereafter. ## Content ### The cube -This example is simply a cube of solid with a constant source term in the whole -volume. Only thermal conduction is considered in this example. The interest of -this example is to be able to compare with an unstationary analytical solution. +This example is simply a cube of solid with a constant source term in +the whole volume. +Only thermal conduction is considered in this example. +The interest of this example is to be able to compare with an +unstationary analytical solution. -The 3 provided bash scripts illustrate 3 main features of Stardis: the *probe -computation*, the *visualization of thermal paths* and the *Green function -evaluation*. +The 3 provided bash scripts illustrate 3 main features of Stardis: the +*probe computation*, the *visualization of thermal paths* and the *Green +function evaluation*. #### Geometric data and physical properties -The geometric data are described in ASCII STL format. The cube is provided in -the `solid.stl` file. If you visualize the stl file with a software like -`paraview` or `meshlab`, you can see that the cube is described by a basic -triangulation. Stardis does not require a fine meshing: the computation is not -based on any geometrical meshing; the STL file must only describe the boundary -of a solid. +The geometric data are described in ASCII STL format. +The cube is provided in the `solid.stl` file. +If you visualize the stl file with a software like `paraview` or +`meshlab`, you can see that the cube is described by a basic +triangulation. +Stardis does not require a fine meshing: the computation is not based on +any geometrical meshing; the STL file must only describe the boundary of +a solid. You can see three other STL files: `left_bc.stl`, `right_bc.stl` and -`center_bc.stl`. These files are required to attach boundary conditions to -the geometry. We note an important constraint in the CAD process: the triangles -in these boundary STL files which coincide with the triangles in the solid STL -files must be *rigorously* the same. This *conformal mesh* constraint is also -required for adjacent solids that share a common interface. - -Finally you can have a look at the `model.txt` file which is the `stardis` input -data file. In this file we *connect*: - -- physical properties (thermal conductivity, thermal capacity, ...) to the - geometrical data (here `solid.stl` only); - -- boundary conditions to the geometrical data. You can see here a fixed - temperature (Dirichlet boundary condition) is applied to the boundaries - represented by `right_bc.stl` and `left_bc.stl`, and a null flux condition is - applied to the boundaries represented by `center_bc.stl` (adiabatic boundaries). +`center_bc.stl`. +These files are required to attach boundary conditions to the geometry. +We note an important constraint in the CAD process: the triangles in +these boundary STL files which coincide with the triangles in the solid +STL files must be *rigorously* the same. +This *conformal mesh* constraint is also required for adjacent solids +that share a common interface. + +Finally you can have a look at the `model.txt` file which is the +`stardis` input data file. +In this file we *connect*: + +- physical properties (thermal conductivity, thermal capacity, ...) to + the geometrical data (here `solid.stl` only); + +- boundary conditions to the geometrical data. + You can see here a fixed temperature (Dirichlet boundary condition) is + applied to the boundaries represented by `right_bc.stl` and + `left_bc.stl`, and a null flux condition is applied to the boundaries + represented by `center_bc.stl` (adiabatic boundaries). You can refer to the [stardis-input](https://www.meso-star.com/projects/stardis/man/man5/stardis-input.5.html) @@ -63,138 +75,158 @@ man page to read this file and modify it as you wish. #### Probe computation -The script `run_probe_computation.sh` invokes the `stardis` program in order to -compute the temperature at the center of the cube for different values of time. -The results will be recorded in a file and plotted with gnuplot (provided it has -been installed), in order to compare results obtained by `stardis` to the -analytical solution stored in the `analytical_T.txt` file. +The script `run_probe_computation.sh` invokes the `stardis` program in +order to compute the temperature at the center of the cube for different +values of time. +The results will be recorded in a file and plotted with gnuplot +(provided it has been installed), in order to compare results obtained +by `stardis` to the analytical solution stored in the `analytical_T.txt` +file. -Assuming the current shell directory is `~/Stardis-StarterPack/cube` and that -the `stardis` program is registered against the current shell, you can run the -script using the following command: +Assuming the current shell directory is `~/Stardis-StarterPack/cube` and +that the `stardis` program is registered against the current shell, you +can run the script using the following command: ~/Stardis-StardisPack/cube $ bash ./run_probe_computation.sh You can also simply invoke the `stardis` program in order to compute the -temperature at the center of the cube at steady state, by using the following -command: +temperature at the center of the cube at steady state, by using the +following command: ~/Stardis-StarterPack/cube $ stardis -M model.txt -p 0.5,0.5,0.5 -e Please refer to the [stardis](https://www.meso-star.com/projects/stardis/man/man1/stardis.1.html) -man page for an explanation about command-line options. The Bash script can be -edited and modified. For instance, in section `USER PARAMETERS`, the number of -Monte-Carlo samples or the value of the probe time can be changed. +man page for an explanation about command-line options. +The Bash script can be edited and modified. +For instance, in section `USER PARAMETERS`, the number of Monte-Carlo +samples or the value of the probe time can be changed. #### Dump some "thermal paths" The script `run_dump_paths.sh` invokes `stardis` twice: -- first to dump the scene in the **vtk** format. This feature is useful for - checking the integrity of the geometrical data. For instance if the STL files - provide a non-conformal triangle mesh, some errors will be mentioned in the - vtk file. +- first to dump the scene in the **vtk** format. + This feature is useful for checking the integrity of the geometrical + data. + For instance if the STL files provide a non-conformal triangle mesh, + some errors will be mentioned in the vtk file. - to produce some "thermal paths", starting from the probe position and time. - Visualising these paths provides useful information about the boundary or - initial conditions that are involved for the computation of the probe - temperature, as well as their relative importance. This example is simple but - yet allows the visualization of thermal paths in a complex geometry where - radiative, convective and conductive heat transfers are coupled. + Visualising these paths provides useful information about the boundary + or initial conditions that are involved for the computation of the + probe temperature, as well as their relative importance. + This example is simple but yet allows the visualization of thermal + paths in a complex geometry where radiative, convective and conductive + heat transfers are coupled. -You can modify the number of paths or the probe position by editing the script. +You can modify the number of paths or the probe position by editing the +script. #### Green function evaluation -The last script `run_green_evaluation.sh` shows how to estimate the Green -function with `stardis` and how to use it with the `sgreen` program. On first -invocation, the script runs `stardis` to evaluate the Green function by -generating the required number of thermal paths and store some data (the end -position of each path) in a binary file. This Green function is evaluated -for the probe position defined in the `USER PARAMETERS SECTION`. - -This Green function is independent of the value of the sources (values of -boundary and initial conditions, as well as the volumetric source term). If you -launch the script again, the +The last script `run_green_evaluation.sh` shows how to estimate the +Green function with `stardis` and how to use it with the `sgreen` +program. +On first invocation, the script runs `stardis` to evaluate the Green +function by generating the required number of thermal paths and store +some data (the end position of each path) in a binary file. +This Green function is evaluated for the probe position defined in the +`USER PARAMETERS SECTION`. + +This Green function is independent of the value of the sources (values +of boundary and initial conditions, as well as the volumetric source +term). +If you launch the script again, the [sgreen](https://www.meso-star.com/projects/stardis/man/man1/sgreen.1.html) -program will process the Green function to compute the probe temperature, for -the current values of sources (no matter whether they have been modified or -not); in order to modify the values of the sources, the following line should -be modified in the script: - - SOURCES_AND_BOUNDARIES="CUBE.VP=12 LTEMP.T=290 RTEMP.T=310 ADIA.F=5.2" - -with `CUBE.VP` the value of the volumetric source term (in W/m^3); `LTEMP.T` -and `RTEMP.T` the values of the temperature on the left (`LTEMP`) and right -(`RTEMP`) boundaries respectively (in K); and `ADIA.F` the value of the heat flux -density imposed to the boundary `ADIA` (in W/m^2). The names of the sources (here -`CUBE`, `RTEMP`, `LTEMP` and `ADIA`) are simply the names used in the `model.txt` -file. +program will process the Green function to compute the probe +temperature, for the current values of sources (no matter whether they +have been modified or not); in order to modify the values of the +sources, the following line should be modified in the script: + + SOURCES_AND_BOUNDARIES="CUBE.VP=12 LTEMP.T=290 RTEMP.T=310 ADIA.F=5.2" + +with `CUBE.VP` the value of the volumetric source term (in W/m^3); +`LTEMP.T` and `RTEMP.T` the values of the temperature on the left +(`LTEMP`) and right (`RTEMP`) boundaries respectively (in K); and +`ADIA.F` the value of the heat flux density imposed to the boundary +`ADIA` (in W/m^2). +The names of the sources (here `CUBE`, `RTEMP`, `LTEMP` and `ADIA`) are +simply the names used in the `model.txt` file. Please note that `ADIA` being a boundary of type flux (defined by the -`F_BOUNDARY_FOR_SOLID` keyword in the `model.txt` file) the corresponding source -value is named `ADIA.F` and not `ADIA.T` as for boundaries of type temperature. +`F_BOUNDARY_FOR_SOLID` keyword in the `model.txt` file) the +corresponding source value is named `ADIA.F` and not `ADIA.T` as for +boundaries of type temperature. ### The heatsink -This example is more complex than the previous one. It represents an electronic -chip with its heatsink. As mentioned in the `model.txt` file, the model is -composed of three media: the heasink, the chip that produces heat and an -interface material between the heatsink and the chip. +This example is more complex than the previous one. +It represents an electronic chip with its heatsink. +As mentioned in the `model.txt` file, the model is composed of three +media: the heasink, the chip that produces heat and an interface +material between the heatsink and the chip. -The `run_medium_computation.sh` script launches `stardis` to compute the mean -temperature in the *chip* at steady state. It will also create the geometry in -vtk format. +The `run_medium_computation.sh` script launches `stardis` to compute the +mean temperature in the *chip* at steady state. +It will also create the geometry in vtk format. -The `run_medium_computation_multiple.sh` script does the same computation for -the model described in file `model_multiple.txt`. While this is an assembly of -50 similar electronic devices, the computation time will not be 50 times -greater: it will be of the same order of magnitude. +The `run_medium_computation_multiple.sh` script does the same +computation for the model described in file `model_multiple.txt`. +While this is an assembly of 50 similar electronic devices, the +computation time will not be 50 times greater: it will be of the same +order of magnitude. ### The porous medium -In this example, we show an original feature: infrared rendering. `stardis` is -able to render a scene in infrared without prior knowledge of the temperature -field. - -The `run_IR_rendering.sh` script provides an example to launch `stardis` in -rendering mode. The scene is an idealized porous medium above a reflective -plane. Some parameters can be modified in the `USER PARAMETERS` section, such as -the resolution of the image and the number of samples per pixel. For each pixel -of the image, the luminance is computed by Monte-Carlo and the number of -realizations is the specified number of samples per pixel. Computing a -high-definition image with little statistical noise can therefore take a long -time (many hours). The values of the parameters provided in the script -should result in a computation time of about a dozen minutes on a recent -low-end desktop computer. - -More information about the rendering is provided in the `stardis` man page (such -as the parameters associated with the point of view). - -Acknowledgement to Cyril Caliot who designed the porous model for the Optisol -project (ANR-11-SEED-0009, PROMES-CNRS, CIRIMAT, SICAT, LTN). This model -represents an ideal metallic or SiC foam. This type of foam is used in the -design of heat exchangers in concentrated solar processes in order to transfer -incoming solar radiation energy to a working fluid. +In this example, we show an original feature: infrared rendering. +`stardis` is able to render a scene in infrared without prior knowledge +of the temperature field. + +The `run_IR_rendering.sh` script provides an example to launch `stardis` +in rendering mode. +The scene is an idealized porous medium above a reflective plane. +Some parameters can be modified in the `USER PARAMETERS` section, such +as the resolution of the image and the number of samples per pixel. +For each pixel of the image, the luminance is computed by Monte-Carlo +and the number of realizations is the specified number of samples per +pixel. +Computing a high-definition image with little statistical noise can +therefore take a long time (many hours). +The values of the parameters provided in the script should result in a +computation time of about a dozen minutes on a recent low-end desktop +computer. + +More information about the rendering is provided in the `stardis` man +page (such as the parameters associated with the point of view). + +Acknowledgement to Cyril Caliot who designed the porous model for the +Optisol project (ANR-11-SEED-0009, PROMES-CNRS, CIRIMAT, SICAT, LTN). +This model represents an ideal metallic or SiC foam. +This type of foam is used in the design of heat exchangers in +concentrated solar processes in order to transfer incoming solar +radiation energy to a working fluid. ### The city -This last example shows the ability to deal with geometrical small-scale details -in a larger scene. The scene is a pseudo-realistic city composed of buildings -with geometrical details like glazing (~ 24 mm width), internal insulation and -balconies. - -An infrared rendering of this scene illustrates typical thermal bridges in -a building, at floor-wall junctions and balcony-floor junctions. And for -didactic reasons, there is no insulation of the roof. - -The rendering is obtained at steady state with a known external air temperature -of 0°C and a known internal air temperature of 20°C (which is a simple model for -a perfect heating system). The temperature field is unknown at any position in -the buildings and in the ground. The temperature is set at 13°C at a depth of -5 meters. We have also added a "lake" (modeled as a reflecting solid) in front -of the buildings to get some specular reflection. +This last example shows the ability to deal with geometrical small-scale +details in a larger scene. +The scene is a pseudo-realistic city composed of buildings with +geometrical details like glazing (~ 24 mm width), internal insulation +and balconies. + +An infrared rendering of this scene illustrates typical thermal bridges +in a building, at floor-wall junctions and balcony-floor junctions. +And for didactic reasons, there is no insulation of the roof. + +The rendering is obtained at steady state with a known external air +temperature of 0°C and a known internal air temperature of 20°C (which +is a simple model for a perfect heating system). +The temperature field is unknown at any position in the buildings and in +the ground. +The temperature is set at 13°C at a depth of 5 meters. +We have also added a "lake" (modeled as a reflecting solid) in front of +the buildings to get some specular reflection. As for the previous example, the `run_IR_rendering.sh` script provides an example to launch `stardis` in rendering mode and some parameters can be