meso-web

Sources of the |Méso|Star> website
git clone git://git.meso-star.fr/meso-web.git
Log | Files | Refs | README | LICENSE

commit 78b7bec47af26067346573fbd602a09b1f96dd4a
parent 561ff13fcee50bbcd99392c27984eb98b4ee5f4c
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed,  6 Jan 2021 11:16:30 +0100

Merge remote-tracking branch 'nastar/feature_stardis' into feature_lfs2fat

Diffstat:
M.gitignore | 1+
Mart/Makefile | 2+-
Mhigh-tune/Makefile | 2+-
Mmeso-menu.sh | 101++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Mmisc/Makefile | 2+-
Mschiff/Makefile | 2+-
Msolstice/Makefile | 2+-
Mstar-engine/Makefile | 2+-
Dstardis/IGBT.png | 2--
Astardis/IR_rendering.jpg | 2++
Mstardis/Makefile | 9++++++---
Astardis/downloads/Stardis-0.11.0-r1-GNU-Linux64.tar.gz | 2++
Astardis/downloads/Stardis-0.11.0-r1-Sources.tar.gz | 2++
Astardis/downloads/Stardis-Starter-Pack-0.0.0.tar.gz | 2++
Astardis/foam.jpg | 2++
Dstardis/foam.png | 2--
Astardis/foam_path.jpg | 2++
Dstardis/green_script.js | 21---------------------
Astardis/heatsink.jpg | 2++
Astardis/heatsinkx50.jpg | 2++
Dstardis/overwiew.md | 67-------------------------------------------------------------------
Mstardis/stardis.html.in | 508++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mstardis/stardis.sh | 178+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Dstardis/syrthes.png | 2--
24 files changed, 613 insertions(+), 306 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -7,6 +7,7 @@ ppart_sw.html kspectrum.html schiff.html stardis.html +stardis-downloads.html about.html high-tune.html starter-pack.html diff --git a/art/Makefile b/art/Makefile @@ -42,7 +42,7 @@ IMG = \ default: all all: ${SRC} ${IMG} - @sh art.sh ${KSPECTRUM-VERSION} ${KDISTRIBUTION-VERSION} ${KARINE-VERSION} + @bash art.sh ${KSPECTRUM-VERSION} ${KDISTRIBUTION-VERSION} ${KARINE-VERSION} clean: rm ${HTML-FILES} downloads/*.sig diff --git a/high-tune/Makefile b/high-tune/Makefile @@ -33,7 +33,7 @@ IMG = \ default: all all: ${SRC} - @sh high-tune.sh ${HTRDR-VERSION} ${HTRDR-STARTER-PACK-VERSION} + @bash high-tune.sh ${HTRDR-VERSION} ${HTRDR-STARTER-PACK-VERSION} publish: rsync -avzr high-tune.html starter-pack.html ${IMG} downloads man ${REMOTE}/high-tune/ diff --git a/meso-menu.sh b/meso-menu.sh @@ -40,6 +40,15 @@ high_tune_man_pages=( "mrumtl 5" ) +stardis_man_pages=( + "stardis 1" + "stardis-input 5" + "stardis-output 5" + "sgreen 1" + "sgreen-input 5" + "sgreen-output 5" +) + print_home_sub_menu() { local root=$1 local name=$2 @@ -141,7 +150,7 @@ print_high_tune_sub_menu() { else echo " <li><a href=${root}high-tune/starter-pack.html>Starter Pack</a></li>" fi - echo " <li><a href=https://gitlab.com/meso-star/htrdr>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/htrdr>Git repository</a></li>" echo ' </ul>' echo ' <div id="info">' echo ' <p>Visit the ' @@ -178,7 +187,7 @@ print_schiff_sub_menu() { done echo ' </ul>' echo ' <ul>' - echo " <li><a href=https://gitlab.com/meso-star/schiff>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/schiff>Git repository</a></li>" echo ' </ul>' echo ' </div>' } @@ -219,7 +228,7 @@ print_solstice_sub_menu() { else echo " <li><a href=${root}solstice/solstice-resources.html>Additional resources</a></li>" fi - echo " <li><a href=https://gitlab.com/meso-star/solstice>Source code repository</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/solstice>Git repository</a></li>" echo ' </ul>' echo ' <div id="info">' echo ' <p>Visit the <a href="https://www.labex-solstice.fr/solstice-software">' @@ -228,6 +237,51 @@ print_solstice_sub_menu() { echo ' </div>' } +print_stardis_sub_menu() { + local root=$1 + local name=$2 + + echo ' <div id=sub-menu>' + echo ' <ul>' + if [ "$name" == "Overview" ]; then + echo ' <li id=cur>Overview</li>' + else + echo " <li><a href=${root}stardis/stardis.html>Overview</a></li>" + fi + echo ' <li>Reference documentation</li>' + echo ' </ul>' + echo ' <ul id=lvl2>' + local i + for((i=0; i < ${#stardis_man_pages[@]}; ++i)); do + local entry=(${stardis_man_pages[$i]}) + if [ "$name" == "${entry[0]}" ]; then + echo " <li id=cur>$name</li>" + else + local link_path="${root}stardis/man/man${entry[1]}/${entry[0]}.${entry[1]}.html" + echo " <li><a href=\"$link_path\">${entry[0]}</a></li>" + fi + done + echo ' </ul>' + echo ' <ul>' + if [ "$name" == "Downloads" ]; then + echo " <li id=cur>Downloads</li>" + else + echo " <li><a href=${root}stardis/stardis-downloads.html>Downloads</a></li>" + fi + + if [ "$name" == "Starter-Pack" ]; then + echo " <li id=cur>Starter Pack</li>" + else + echo " <li><a href=${root}stardis/starter-pack.html>Starter Pack</a></li>" + fi + echo ' <li>Git repositories</li>' + echo ' </ul>' + echo ' <ul id=lvl2>' + echo " <li><a href=https://gitlab.com/meso-star/stardis-solver>Stardis-Solver</a></li>" + echo " <li><a href=https://gitlab.com/meso-star/stardis>Stardis CLI</a></li>" + echo ' </ul>' + echo ' </div>' +} print_star_engine_sub_menu() { local root=$1 @@ -323,6 +377,7 @@ print_header() { fi if [ "$section" == "Stardis" ]; then echo ' <h2>Stardis</h2>' + print_stardis_sub_menu ${root} ${name} else echo " <h2><a href=${root}stardis/stardis.html>Stardis</a></h2>" fi @@ -354,24 +409,43 @@ print_footer() { print_downloads() { prefix=$1 + if [ $# -lt 2 ]; then + windows=1 + linux=1 + else + windows=$([[ $2 == *Windows* ]] && echo 1 || echo 0) + linux=$([[ $2 == *Linux* ]] && echo 1 || echo 0) + fi echo '<table>' echo ' <tr>' echo ' <th>Version</th>' - echo ' <th>GNU/Linux 64-bits</th>' - echo ' <th>Windows 64-bits</th>' + [[ ! "$linux" -eq 0 ]] && echo ' <th>GNU/Linux 64-bits</th>' + [[ ! "$windows" -eq 0 ]] && echo ' <th>Windows 64-bits</th>' echo ' <th>Sources</th>' echo ' </tr>' - local archs=$(find downloads/$prefix_low -regex ".*/$prefix-[0-9]+\.[0-9]+\.[0-9]+-.*tar.gz" | sort -rV ) + local archs=$(find downloads/ -regex ".*/$prefix-[0-9]+.[0-9]+.[0-9]+\(-r[0-9]+\)?-[^\(Sources\)].*tar.gz" | sort -r ) local arch; for arch in $archs; do - local version=$(echo $arch | sed "s/.*${prefix}-\([0-9]\+.[0-9]\+.[0-9]\+\)-.*/\1/g") - local dl_files=( - "downloads/${prefix}-${version}-GNU-Linux64.tar.gz" - "downloads/${prefix}-${version}-Win64.zip" - "downloads/${prefix}-${version}-Sources.zip" - ) + local version=$(echo $arch | sed "s/.*${prefix}-\([0-9]\+\.[0-9]\+\.[0-9]\+\(-r[0-9]\+\)\{0,1\}\)-.*/\1/g") + local dl_files=() + + if [ "$dl_files" == *Sources* ]; then + continue + fi + + if [ ! "$linux" -eq 0 ]; then + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-GNU-Linux64.tar.gz" + fi + if [ ! "$windows" -eq 0 ]; then + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-Win64.zip" + fi + if [ -f "downloads/${prefix}-${version}-Sources.zip" ]; then + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-Sources.zip" + else + dl_files[${#dl_files[@]}]="downloads/${prefix}-${version}-Sources.tar.gz" + fi echo " <tr>" echo " <td>${version}</td>" @@ -432,9 +506,10 @@ convert_man_page() { print_footer >> $output - # Remove hyperlink on csplit, feh and sed commands + # Remove hyperlink on csplit, feh, gnuplot, sed and mpirun commands sed -i 's/<B><A HREF="\.\.\/man1\/csplit\.1\.html">csplit<\/A><\/B>/csplit/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/feh\.1\.html">feh<\/A><\/B>/feh/g' $output + sed -i 's/<B><A HREF="\.\.\/man1\/gnuplot\.1\.html">gnuplot<\/A><\/B>/gnuplot/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/sed\.1\.html">sed<\/A><\/B>/sed/g' $output sed -i 's/<B><A HREF="\.\.\/man1\/mpirun\.1\.html">mpirun<\/A><\/B>/mpirun/g' $output diff --git a/misc/Makefile b/misc/Makefile @@ -19,7 +19,7 @@ SRC = pgp_signatures.html.in about.html.in default: all all: ${SRC} - @sh misc.sh + @bash misc.sh publish: rsync -avz about.html pgp_signatures.html ${REMOTE}/misc/ diff --git a/schiff/Makefile b/schiff/Makefile @@ -23,7 +23,7 @@ IMG = particles.png default: all all: ${SRC} - @sh schiff.sh ${SCHIFF-VERSION} ${SCHIFF-SCRIPTS} + @bash schiff.sh ${SCHIFF-VERSION} ${SCHIFF-SCRIPTS} publish: rsync -avzr schiff.html ${IMG} downloads man ${REMOTE}/schiff/ diff --git a/solstice/Makefile b/solstice/Makefile @@ -27,7 +27,7 @@ SRC = \ default: all all: ${SRC} - @sh solstice.sh ${SOLSTICE-VERSION} ${SOLSTICE-ABG} + @bash solstice.sh ${SOLSTICE-VERSION} ${SOLSTICE-ABG} publish: rsync -avzr \ diff --git a/star-engine/Makefile b/star-engine/Makefile @@ -22,7 +22,7 @@ SRC = star-engine.sh star-engine.html.in default: all all: ${SRC} - @sh star-engine.sh $(STAR-ENGINE-VERSION) $(STAR-ENGINE-README) + @bash star-engine.sh $(STAR-ENGINE-VERSION) $(STAR-ENGINE-README) publish: rsync -avzr \ diff --git a/stardis/IGBT.png b/stardis/IGBT.png @@ -1 +0,0 @@ -#$# git-wad 2c69cb40ba4ab4d0997c3b42f4465cc9491b3c0d488ee8ef9fcc8f3fba09e215 140140 -\ No newline at end of file diff --git a/stardis/IR_rendering.jpg b/stardis/IR_rendering.jpg @@ -0,0 +1 @@ +#$# git-wad 1ec3c95eef834ff5d392e7d572e42af1e70ad720b820342f4c392369740a2fbe 36425 +\ No newline at end of file diff --git a/stardis/Makefile b/stardis/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2019 |Meso|Star> +# Copyright (C) 2017-2020 |Meso|Star> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -13,14 +13,17 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -SRC = stardis.html.in green_script.js +STARDIS-VERSION=0.11.0-r1 +STARDIS-STARTER-PACK-VERSION=0.0.0 + +SRC = stardis.html.in IMG = foam.png IGBT.png syrthes.png .PHONY: all clean default publish default: all all: ${SRC} - @sh stardis.sh + @bash stardis.sh ${STARDIS-VERSION} ${STARDIS-STARTER-PACK-VERSION} clean: rm stardis.html diff --git a/stardis/downloads/Stardis-0.11.0-r1-GNU-Linux64.tar.gz b/stardis/downloads/Stardis-0.11.0-r1-GNU-Linux64.tar.gz @@ -0,0 +1 @@ +#$# git-wad 086eca7f28cb887665f38ef5685fc90fa43f28995142e11b00821720b239e52d 22262363 +\ No newline at end of file diff --git a/stardis/downloads/Stardis-0.11.0-r1-Sources.tar.gz b/stardis/downloads/Stardis-0.11.0-r1-Sources.tar.gz @@ -0,0 +1 @@ +#$# git-wad a97ff32dd4bf88bf157b7fee7b694ddc083794bc68a6d2caa35f6c464e449463 870540 +\ No newline at end of file diff --git a/stardis/downloads/Stardis-Starter-Pack-0.0.0.tar.gz b/stardis/downloads/Stardis-Starter-Pack-0.0.0.tar.gz @@ -0,0 +1 @@ +#$# git-wad 777f0b24e578fd9e1053ec86048a4816a199c24979cc4ebbe48bbf49abbd180c 943467 +\ No newline at end of file diff --git a/stardis/foam.jpg b/stardis/foam.jpg @@ -0,0 +1 @@ +#$# git-wad 46e13f7e67c73e2c127419203c85c5a5ed44673b46d7c5815e1c4ceb95b4c615 160863 +\ No newline at end of file diff --git a/stardis/foam.png b/stardis/foam.png @@ -1 +0,0 @@ -#$# git-wad e55b1199c3b694d7775ddcb1351968abb561d5d432286f86b228acf875c5886e 250278 -\ No newline at end of file diff --git a/stardis/foam_path.jpg b/stardis/foam_path.jpg @@ -0,0 +1 @@ +#$# git-wad 851ff8df36e26e6f0297fc531c1e0e421ff9f7b687cc3337d552689b10ce527c 116763 +\ No newline at end of file diff --git a/stardis/green_script.js b/stardis/green_script.js @@ -1,21 +0,0 @@ - -function Green(Form) { - var p = Number(document.getElementById('P').value); - var t1 = Number(document.getElementById('T_1').value); - var t2 = Number(document.getElementById('T_2').value); - var res = t1*0.001700680272109 + t2*0.998299319727891 - + p*1.71947879151661; - var sig= t1*t1*0.001700680272109 + t2*t2 * 0.998299319727891 - + p*p * 6.00196092927171 - + 2*p*t1*0.002939175670268 + 2*p*t2*1.71653961584634 - - res * res; - var std = Math.sqrt(sig/9997); - document.getElementById('T_res').value= res.toFixed(4); - document.getElementById('T_res_std').value = std.toFixed(4); - return res; -} - -function ClearRes() { - document.getElementById('T_res').value = "?" ; - document.getElementById('T_res_std').value = "?" ; -} diff --git a/stardis/heatsink.jpg b/stardis/heatsink.jpg @@ -0,0 +1 @@ +#$# git-wad e06ed62a5cb4c7119d39fb439d9efc10b380e3a7dcffa63b93158acb57f17e1c 143257 +\ No newline at end of file diff --git a/stardis/heatsinkx50.jpg b/stardis/heatsinkx50.jpg @@ -0,0 +1 @@ +#$# git-wad 5e6d3974a85a7b22211a3d1b136bfec2f1db9a0fd5cbeb4ae09c913c0ac932c2 362946 +\ No newline at end of file diff --git a/stardis/overwiew.md b/stardis/overwiew.md @@ -1,67 +0,0 @@ -# Overview - -Stardis designates both a thermal calculation library and a code application. - -The Stardis platform aims to implement in a code the know-how in terms of -statistical formulation of coupled thermal transfer -(conduction-radiation-convection) in complex geometries. - -This know-how is based both on methodological advances in terms of modeling from -a statistical point of view and reformulation in path space of complex energy -systems (EDStar link) and on techniques developped by the computer graphics -community allowing to process complex geometries (link PBRT, Embree ?) - -Thanks to the skills of Meso-Star engineers and the close collaboration with the -members of the EDStar group, we are now able to develop, distribute and develop -the Stardis platform. - -Beyond the use of Stardis as a thermal calculation code, we address to -researchers, engineers, teachers, students wishing to fully appropriate the -statistical formulation of thermal, from theoretical concepts to computer -implementation. That is why we have chosen to distribute Stardis under a free -license which guarantees the use, study, modification and redistribution of -codes. - -Meso-Star provides a wide range of technical offer like thermal study, -consulting and participating in R&D projects. - -For people specifically interested in Stardis we provide a support and -maintenance service by joining the stardis consortium. - -## Stardis-solver - -Stardis-solver is the C library that implements the Monte-Carlo algorithms. -These statistically explore the space of thermal paths in a 3D or 2D scene. - -Plateforme supporté. Peut être mettre le standard C. - -Stardis-solver don't require some 3D (or 2D) volumic meshing. The medium are -only represented by the boundary meshing. - -Stardis-solver can be integrated in your own data production workflow from CAD -to solver. You can also use the Stardis code (see below) which is our proposal to -interfacing the Stardis-solver. - -## Stardis - -Stardis is a code that allows the use of Stardis-solver library. We propose a -simple interface to load 3D scene where the medium are represented by some STL -files. - -Stardis allows to affect the materials properties (thermal conductivity, density -...) to the medium and configuring the boundary conditions. - -### A straight interface - -## Quick start - -Install from binary... - -## Install from source - -## Licence - -Stardis and Stardis-solver are free software released under the GPLv3+ license: -GNU GPL version 3 or later. You can freely study, modify or extend it. You are -also welcome to redistribute it under certain conditions; refer to the license -for details. diff --git a/stardis/stardis.html.in b/stardis/stardis.html.in @@ -1,214 +1,350 @@ <header> <h1>Stardis <span class=subtitle> - The Monte-Carlo solver for coupled thermal problems + The Monte-Carlo framework for coupled thermal problems </span> </h1> </header> -<p>Stardis computes the <b>propagator</b> (aka the <b>Green function</b>) of -coupled thermal systems under the linear assumption. Here <b>coupled</b> refers -to conductive, convective and radiative transfers, and linear means that each -modeled phenomena is represented using a model that is linear with temperature. -Stardis can deal with complex geometries as well as high-frequency external -solicitations over a very long period of time, relative to the characteristic -time of the system.</p> - -<p>Stardis does not compute temperature fields as a whole. It is designed to -compute specific observables such as temperatures at probe points / dates or -the mean temperature in a specific volume / period of time. In addition to -temperature values, Stardis gives access to an evaluation of the propagator. -The propagator is of great value for thermicist engineers as it gives some -crucial information to analyse heat transfers in the system. It helps engineers -answer questions like <b>"Where from does the heat come at this location?"</b>. -Propagators seamlessly agregate all the provided geometrical and physical -information on the system in an unbiased and very-fast statistical model.</p> - -<p>Stardis' algorithms are based on state-of-the-art Monte-Carlo method applied -to radiative transfer physics (Delatorre [<a href="#1">1</a>]) combined with -conduction's statistical formulation (Kac [<a href="#2">2</a>] and Muller [<a -href="#3">3</a>]). Thanks to recent advances in computer graphics technology -which has already been a game changer in the cinema industry (FX and animated -movies), this theoretical framework can now be practically used on the most -geometrically complex models. While this capability is part of the StarEngine -<a href=https://gitlab.com/meso-star/star-3d>Star3D</a> library, it is -internally powered by <a href=https://software.intel.com/sdvis>Intel® -Rendering Framework</a>: <a href=http://embree.github.io/>Embree</a>.</p> - -<p>Everytime the linear assumption is relevant, this theoretical framework -allows to encompass all the heat transfer mecanisms -(conductive-convective-radiative) in an <b>unified statistical model</b>. Such -models can be solved by a <b>Monte-Carlo approach</b> just by sampling -<b>thermal paths</b>. This can be seen as an extension of Monte-Carlo -algorithms that solve radiative transfer by sampling optical paths. A main -property of this approach is that the resulting algorithms does not rely on a -volume mesh of the system.</p> - -<h2>An example of propagator use</h2> - -<p>Here is an example of practical use of a propagator (Green function), -obtained by using the Stardis solver on a basic IGBT (a power semiconductor -device):</p> +<div class="news"> + <p><b>Stardis ${VERSION} is available</b></p> + <ul> + <li>GNU/Linux: + <a href="downloads/Stardis-${VERSION}-GNU-Linux64.tar.gz">tarball</a> / + <a href="downloads/Stardis-${VERSION}-GNU-Linux64.tar.gz.sig">pgp</a></li> + <li>Sources: + <a href="downloads/Stardis-${VERSION}-Sources.tar.gz">tarball</a> / + <a href="downloads/Stardis-${VERSION}-Sources.tar.gz.sig">pgp</a></li> + </ul> +</div> + +<p>Stardis is a <b>thermal simulation</b> framework for <b>complex 2D and 3D +environment</b>, based on new <b>Monte-Carlo</b> algorithms built from +reformulations of the main heat transfer phenomena: conduction, convection and +radiation. A set of cross-recursive algorithms have then been derived, and +result in the simulation of "<b>thermal paths</b>" that explore space and time +until a boundary condition or an initial condition is found. The key concept +here is that heat transfer phenomena are not considered separately but are +<b>naturally coupled</b> via the cross-recursion of the various Monte-Carlo +algorithms.</p> + +<p>Beyond its use as a regular thermal simulation tool, the Stardis framework +explicitly targets engineers, researcher, teachers or students wishing to +fully appropriate the <b>statistical formulation of heat transfer</b>, from +theoretical concepts to practical implementation. The complete Stardis +framework is thus released under <b><a href="#license">free licenses</a></b> +that guarantee the users the ability to freely use, study, modify or extend +the complete source code according to their needs.</p> + +<p>Despite its specific advantages, Stardis is not meant to fully replace +already well established and highly validated thermal simulation tools. +Instead, it can be seen as an additional tool that can be useful for various +purposes:<p> <ul> - <li> the object of interest is an IGBT,</li> - <li> in this simple setting, the limit conditions of the system are fully - defined by the bottom face tempature, and the environment temperature - (exchange by convection),</li> - <li> the value of interest is the core temperature (semiconductor junction) - in the red-colored region of the IGBT which is also the source of dissipated - power (see figure below),</li> - <li> an estimate of the propagator has been <b>precomputed</b> using the - Stardis Monte-Carlo solver from the 3D description of the model and the - materials' properties (see figure below); the estimate is based on 10,000 - paths and the resulting statistical uncertainty could be reduced by just - sampling additional paths,</li> - <li> on request, the propagator is applied to the user-provided temperatures - and dissipated power; it acts as a <b>super-fast direct model</b> to compute - the value of the core temperature together with its statistical uncertainty - (standard error),</li> - <li> as it carries temporal information, the propagator could be used in - transient computations; in this case the input temperatures and dissipated - power would be temporal data.</li> + <li><b>Probe computation</b>: Stardis will <u>not</u> compute the full + temperature field</b> of a system; instead, it can be used to focus on a + specific spatial/temporal zone of the system.</li> + + <li><b>Reference method</b>: the numerical uncertainty is a unique + feature of stochastic methods. It can be reduced using a reformulation of the + underlying integral for specific problems, and possibly using better suited + sampling techniques. Ultimately, the numerical uncertainty can also be + reduced by increasing the number of statistical samples. Any value of + temperature (or flux) computed by Stardis must agree with the values computed + by other tools, within the uncertainty range (and also within the limits of + validity of the various <a href="#solver">assumptions</a> used to derive + Monte-Carlo algorithms). This can prove very useful in order to validate any + result obtained by any thermal solver in a case when no analytic solution is + available or when a physical intuition is impossible to achieve due to the + complexity of the problem.</li> + + <li><b>Educational purposes</b>: since the various probability sets used by + the underlying Monte-Carlo algorithms solely rely on the physics, thermal + paths naturally explore the spatial and temporal zones of interest in the + system. This can be a drawback in some situations (the paths will have a + hard time exiting a highly conductive solid surrounded by non-conductive + media) but is a major asset for the <a href="#visu">direct visualization</a> + of what contributes to a given result: the main sources of heat, what + transfer modes are dominant, what are the main paths of heat transfer, + <i>etc.</i></li> + + <li><b>Sensitivity analysis</b>: the <a href="#green">Green functions</a> of + the system (estimated and stored during an initial Monte-Carlo computation) + can be reused for subsequent (very fast) post-processing computations. + This makes it possible to + explore the sensitivity of any given result to the variations of a boundary + or initial condition, or internal power source. This technique is only a + small part of a family of so-called "symbolic" Monte-Carlo algorithms that + make possible to achieve the same sensitivity analysis, but for any thermal + parameter (for instance: the conductivity of a given solid, a convective + exchange coefficient or the emissivity of a solid).</li> </ul> -<div class="img" style="width: 50em"> - <a href="IGBT.png"> - <img src="IGBT.png" alt="IGBT"> - </a> - <div class="caption"> - <b>A simple IGBT example.</b> Each point represents the end of a "thermal - path", where it reaches a boundary condition. The colour of the points - indicates the duration (in seconds) of the thermal path, that is the time - it took for heat to escape the system from the source. This example has - been developped in collaboration with - <a href="https://www.epsilon-alcen.com">Epsilon-Alcen</a>. - </div> +<p>The Stardis framework is structured around <b>two main components</b>. The +first one, <a href="#solver">Stardis-Solver</a>, is the core library that +implements the Monte-Carlo algorithms. The second one is the <a +href="#cli">Stardis application</a>, a command line tool that can be seen as a +reference implementation of a complete workflow relying on Stardis-Solver, from +input data describing the system to simulate (geometry, thermal properties, +limit conditions, <i>etc.</i>) to heat transfer simulation and results +post-processing. See below for more information on each of these components.<p> + +<h2 id="solver">Stardis-Solver</h2> + +<div class="img" style="width: 18em"> + <a href="foam_path.jpg"><img src="foam_path.jpg" alt="foam_path"></a> + <div class="caption"> + Example of conductive path sampled by Stardis in a foam geometry: it starts + from the probe position (green point) and after several diffusive steps + reaches a boundary condition (red point). + </div> </div> +<p><a href=https://gitlab.com/meso-star/stardis-solver.git>Stardis-Solver</a> +is the core library of Stardis: it simulates coupled convecto - conducto - +radiative heat transfers by sampling thermal paths that explore space and time +until a boundary condition or an initial condition is found. Note that this +path formulation does not require <b>any volumetric mesh</b>: in addition of +the thermal properties and the limit/boundary conditions, only the geometry +defining the contours of the objects is necessary.</p> + +<p>The Stardis-Solver library is currently used in the two following +projects:<p> + +<ul> + <li><a href="#cli">Stardis application</a> is the reference implementation of a + complete workflow using Stardis-Solver.</li> + <li><a + href="https://www.edf.fr/en/the-edf-group/world-s-largest-power-company/activities/research-and-development/scientific-communities/simulation-softwares?logiciel=10818"> + SYRTHES</a> is the general thermal software developed by &#201;lectricité de + France. +</ul> + +<p>The coupled Monte-Carlo algorithms implemented into Stardis-Solver are based +on the following hypothesis:</p> -<script src="green_script.js"></script> - -<div class=app> -<table> - <tr> - <td> Dissipated power (in W/mm<sup>3</sup>)</td> - <td><input type="number" min=0 step=0.01 id="P" value="" onChange="ClearRes()"></td> - </tr><tr> - <td>Air environment temperature (in K)</td> - <td><input type="number" min=0 step=0.01 id="T_1" value="" onChange="ClearRes()"></td> - </tr><tr> - <td>Bottom temperature (in K)</td> - <td><input type="number" min=0 id="T_2" value="" onChange="ClearRes()"></td> - </tr><tr> - <td></td><td> - <button name="GrBtn" onclick="Green(document.GreenCalc)"> - Apply propagator! - </button> - </td> - </tr><tr> - <td style="font-variant: small-caps;font-weight: bold">Core temperature</td> - <td> - <input type="text" id="T_res" value="?" readonly> +/- - <input type="text" id="T_res_std" value="?" readonly> - </td> - </tr> -</table> +<ul> + <li><b>Conduction</b>: the discretization of thermal heat transfer in solids + introduces the notion of a conductive <b>path length</b> within the + Monte-Carlo algorithm. Solutions obtained using this algorithm are formally + exact at the limit of a null path length. In practice, this path length has + to be adapted, at the individual solid level, so that its value is small + compared to the typical length of the solid.</li> + + <li><b>Convection</b>: fluid media are supposed to be <b>isothermal</b>, even if + their temperature may vary with time. This hypothesis relies on the + assumption of perfectly agitated fluids.</li> + + <li><b>Radiation</b>: local radiative transfer is <b>linearised</b>, i.e. + instead of writing the spectrally integrated net flux as a difference of + temperatures to the power 4, it is assumed of the same form as the convective + flux (as a difference of temperatures, multiplied by a radiative exchange + coefficient). In order to be valid, this representation of radiative + transfer exchanges requires that the temperature at any position and time is + close enough to a known reference temperature.</li> +</ul> + +<p>The remaining of this section describes the main functionalities provided by +Stardis-Solver upon the aforementonned hypothesis.</p> + +<div class="img" style="width: 18em"> + <a href="IR_rendering.jpg"><img src="IR_rendering.jpg" alt="IR_rendering"></a> + <div class="caption"> + Infrared image of a foam geometry. This rendering was performed by + Stardis-Solver without the knowledge of the temperature field. The radiative + paths that begin at the camera will propagate alternately in conductive, + convective and radiative path until reaching a boundary or a limit condition. + We point out that this computation is provided as an example of the <a + href="starter-pack.html">Stardis: Starter Pack</a>. + </div> </div> -<h2>Getting Stardis</h2> +<h3>Probe computation</h3> + +<p>Stardis-Solvers compute the temperature at any given position (spatial and +temporal). The main idea is that thermal paths start from this probe position, +and scatter in space while going back in time, until a (spatial) boundary +condition or a (temporal) initial condition is met. In addition to the value of +temperature, using a Monte-Carlo method makes it possible to compute a <b>numerical +uncertainty</b> (standard deviation of the weight distribution) over each +result.</p> + +<h3>Flux computation</h3> + +<p>Stardis-Solver can compute the flux over any surface (or group of surfaces) +at any time. Alternatively, it can also compute the total energy output from a +solid element where an internal source of power must be taken into account.</p> + +<h3 id="green">Green function</h3> + +<p>The value of temperature computed at a probe position is no more than the +average of the Monte-Carlo weight for every thermal path. In practice: when no +internal power source has to be considered, the weight of any given thermal +path is the temperature of the boundary or initial condition that has been +reached; when internal power sources or imposed fluxes are taken into account, +additional contributions to the weight must be continuously evaluated by the +thermal conduction algorithm, but these contributions are proportional to the +local dissipated power/imposed flux.</p> + +<p>In any case, the position and date at the end of each thermal path (and also +accumulation coefficients) can be stored during a first complete Monte-Carlo +simulation. This information, known as the Green function, can then be used in +(very fast) post-processing to compute all required results for different +boundary and initial conditions (and also different internal power +sources/imposed flux).</p> + +<h3 id="temporal">Temporal dynamics analysis</h3> -<p>Stardis is not a monolithic software, but <b>a solver which can be -integrated</b> in various thermal engineering simulation toolchain for -designing and optimizing. It is available on GNU/Linux and Microsoft Windows 7 -or later. It is licensed under the GPLv3+ license and is thus distributed with -its source code without additional fees. Refer to the <a -href="https://www.gnu.org/licenses/gpl.html">license</a> for details. A -commercial license is also available to users for who the conditions of the -GPLv3+ are too restrictive. +<p>Stardis-Solver can output the end of each path sampled during a Monte-Carlo +computation, including position, elapsed time, and boundary/medium ID. This +not only allows to weight the contribution of each boundary or initial +condition to the result, but also gives the temporal dynamics of these +contributions.</p> -<p>Stardis is closely developed with the <b>physics laboratories</b> behind its -theoretical advances. Both physicists and programmers working on and with -Stardis also do its theoretical and technical support. When you need help, -you are always going to talk to someone that knows what they are doing.</p> +<h3 id="visu">Thermal path visualization</h3> + +<p>Stardis-Solver can store the complete history of a set of thermal paths for +later visualization. In addition to positions and dates, physics data is stored +along thermal paths, such as the type heat transfer phenomeon involved locally, +the accumulated power/flux, etc.</p> + +<h2 id="cli">Stardis CLI tools</h2> + +<p>The stardis framework includes Command Line Interface (CLI) software, namely +<a href="man/man1/stardis.1.html"> +stardis</a> and <a +href="man/man1/sgreen.1.html">sgreen</a>, +to use along with Stardis-Solver. Even if these softwares are intended as +reference implementations, they allow to easily exploit some of the +functionalities of the solver.</p> + +<h3 id="stardis-cli">The stardis CLI</h3> + +<p>The main CLI tool of the stardis framework is <b>stardis</b>. It can be seen +as a limited but easy-to-use front-end to the stardis solver. Depending on the +provided command line arguments, it simulates a thermal system described +through a simple text file and geometry files and produces various types of +output, from simple Monte-Carlo results to infrared images or Green +functions.</p> + +<p>The main limitation that the <b>stardis</b> CLI adds to those of +Stardis-Solver is that property descriptions cannot be time or space dependent: +each region of the system, delimited by a boundary, can have its own set of +properties, but these properties must be constant when stardis-solver allows +properties varying in time and space.</p> + +<h3 id="sgreen-cli">The sgreen CLI</h3> + +<p>The only purpose of <b>sgreen</b> is to post-process binary green-function +files produced by the stardis CLI. It allows to apply a set of values to the +initial and boundary conditions as well as the power and flux sources of the +model to produce the same result a new simulation would produce. The obvious +benefit of using the sgreen post-process instead of a new Monte-Carlo +simulation is the tremendous improvement on computation time.</p> + +<h2>Quick start</h2> + +<p>Download the desired archive of Stardis and verify its integrity against its +<a href=../misc/pgp_signatures.html>PGP signature</a>. Then extract it:</p> + +<pre class="code"> +$ wget https://www.meso-star.com/projects/stardis/downloads/\ +Stardis-${VERSION}-GNU-Linux64.tar.gz +$ wget https://www.meso-star.com/projects/stardis/downloads/\ +Stardis-${VERSION}-GNU-Linux64.tar.gz.sig +$ gpg --verify Stardis-${VERSION}-GNU-Linux64.tar.gz.sig +$ tar xzf Stardis-${VERSION}-GNU-Linux64.tar.gz +</pre> + +<p>Finally, source the provided <code>stardis.profile</code> file to register +the Stardis installation for the current shell priorly to the invocation of the +<code>stardis</code> program.</p> + +<pre class="code"> +$ source ~/Stardis-${VERSION}-GNU-Linux64/etc/stardis.profile +$ stardis -h # Launch stardis +</pre> + +<p>The <b>reference documentation</b> of the Stardis CLI and of its associated +tools and fileformats is located in the <code>share/man</code> sub-directory. +To consult it, simply invoke the <code>man</code> command-line.</p> + +<pre class="code"> +$ man stardis +$ man stardis-input +$ man stardis-output +$ man sgreen +$ man sgreen-input +$ man sgreen-output +</pre> + +<p>Refer to the <a href=starter-pack.html>Stardis: Starter Pack</a> to quickly +run a thermal simulation through the <code>stardis</code> CLI; this archive +provides input data and scripts that are good starting points to begin with the +Stardis framework.</p> + +<h2 id=build>Build from sources</h2> + +<p>The Stardis framework can be built directly from its source trees. Note +that the whole Stardis framework was successfully built on Windows 10 with +Visual Studio Community 2019. However, we only officially support GNU/Linux 64 +bits and the build procedure is thus given for this system only. The simplest +way to build Stardis from its sources is to rely on the <code>stardis</code> +branch of the <a +href="https://gitlab.com/meso-star/star-engine/tree/stardis">Star-Engine</a> +project: it provides CMake scripts that automate the download, the compilation +and the installation of Stardis. This build procedure assumes the following +prerequisites:</p> -<p>Our commercial offer is versatile:</p> <ul> - <li>we provide software developers with a Stardis SDK,</li> - <li>we <a href=#syrthes>assist users</a> in integrating Stardis in their - workflow,</li> - <li>we propose both theoretical and technical training and support,</li> - <li>we develop <a href=#optisol>custom software</a> from / on top of - Stardis,</li> - <li>we have a study service based on the method implemented in Stardis.</li> + <li><a href=https://git-scm.com>git</a> source control as well.</li> + <li><a href=https://gcc.gnu.org>GNU Compiler Collection</a> in version 4.9.2 + or higher.</li> + <li><a href="https://cmake.org">CMake</a> in version 3 or higher.</li> + <li>Optionally, the <a href=http://www.methods.co.nz/asciidoc/>AsciiDoc</a> + tool suite to generate the man pages of the reference documentation.</li> </ul> +<h3>Build</h3> -<p>To get access to Stardis and for more informations on our offer, please <a -href="mailto:contact@meso-star.com">contact us</a>.</p> +<p>Assuming that the aforementioned prerequisites are available, the build +procedure is summed up to:</p> -<h2>Examples of integration and development</h2> +<pre class="code"> +~ $ git clone -b Stardis-${VERSION} \ + https://gitlab.com/meso-star/star-engine.git Stardis-${VERSION} +~ $ mkdir Stardis-${VERSION}/build; cd Stardis-${VERSION}/build +~/Stardis-${VERSION}/build $ cmake ../cmake -DDEPLOY_STARDIS_CLI=ON +~/Stardis-${VERSION}/build $ make +</pre> -<h3 id="syrthes"> EDF R&D - SYRTHES </h3> +<h3>Run</h3> -<div class="img" style="width: 12em"> - <a href="syrthes.png"> - <img src="syrthes.png" alt="SYRTHES"> - </a> - <div class="caption"> - SYRTHES: the thermal software of EDF R&D. - </div> -</div> +<p>By default Stardis is installed in the <code>local</code> subdirectory of +<code>Stardis-${VERSION}</code>. Source the provided +<code>stardis.profile</code> file to register Stardis against the current +shell.</p> -<p>Mainly to address its own numerical simulation needs on thermal transfer, -EDF R&D has been developing and maintaining the SYRTHES software for years. -SYRTHES is dedicated to solve the conductive and radiative transfers in -complex geometries and was designed to be integrated in the EDF software -toolchain (SALOME). Inside SYRTHES, the conductive heat transfer solver is a -finite elements solver and the radiative solver is based on radiosity.</p> - -<p>Meso-Star staff and SYRTHES developers collaborate since 2015 to incorporate -new features into SYRTHES, based on Stardis and its statistical point of view -of the thermal transfers. The purpose is not to substitude new solvers to the -existing ones, but rather to add <b>some complementary features to help -analysing numerical simulations results</b>.</p> - -<h3 id="optisol"> PROMES-CNRS - Star-Therm </h3> - -<div class="img" style="width: 12em"> - <a href="foam.png"> - <img src="foam.png" alt="Foam"> - </a> - <div class="caption"> - Star-Therm: a combined conductive–radiative heat transfer solver for - geometrically complex foams. - </div> -</div> +<pre class="code"> +$ source ~/Stardis-${VERSION}/etc/stardis.profile +$ stardis -h +</pre> -<p>Based on the Stardis solver which solves coupled conductive and radiative -thermal problems, Meso-Star has developped the Star-Therm code for the -PROMES-CNRS laboratory. Star-Therm is designed to deal with the geometric -complexity of <b>metallic or SiC foams</b>. This type of foam is used in the -design of heat exchangers in concentrated solar processes to transfer the -energy of the incoming sunlight radiation to a working fluid.</p> - -<p>The physical model in Star-Therm considers the incoming thermal radiation -in vacuum and its coupling with conduction in an opaque solid. The incoming -solar energy (radiation) is deposited at the surface of the metallic foam, -which allows to determine a boundary temperature. Knowing boundary conditions -and initial conditions, Star-Therm can compute the temperature at any position -within the solid.</p> - -<h2>References</h2> -<div id=1> -[1] Delatorre et al., <i>Monte Carlo advances and concentrated solar -applications</i>, <b>Solar Energy</b>, 2014 -</div> -<div id=2> -[2] Kac, <i>On Distributions of Certain Wiener Functionals</i>. -<b>The Annals of Mathematical Statistics</b>, 1949. -</div> -<div id=3> -[3] Muller, <i>Some continuous Monte-Carlo Methods for the Dirichlet Problem" -</i>, <b>Transactions of the American Mathematical Society</b>, 1956. -</div> +<h3>Package</h3> + +<p>Once built, the Stardis installation can be packaged in an archive that can +then be deployed on compatible systems, <i>i.e.</i> systems whose C library is +compatible with the one available on the system used to build Stardis.</p> + +<pre class="code"> +~/Stardis-${VERSION}/build $ make pkg +~/Stardis-${VERSION}/build $ ls package/Stardis-${VERSION}* # list packages +</pre> + +<h2 id="license">License</h2> + +<p>Stardis is free software released under the GPLv3+ license: GNU GPL version +3 or later. You can freely study, modify or extend it. You are also welcome to +redistribute it under certain conditions; refer to the <a +href="https://www.gnu.org/licenses/gpl.html">license</a> for details.</p> diff --git a/stardis/stardis.sh b/stardis/stardis.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (C) 2017-2019 |Meso|Star> +# Copyright (C) 2017-2020 |Meso|Star> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,12 +19,182 @@ set -e source ../meso-menu.sh +if [ $# -lt 2 ]; then + echo "Usage: $0 VERSION VERSION_PACK" + exit 1 +fi + +if [ ! -f "./downloads/Stardis-$1-GNU-Linux64.tar.gz" ]; then + echo "Cannot find ./downloads/Stardis-$1-GNU-Linux64.tar.gz" + exit 1 +fi + +dir_curr=$(pwd) # Current directory +dir_temp=$(mktemp -d) # Working directory + +################################################################################ +# Sign the package +################################################################################ +tput bold; echo ">>> Stardis packages"; tput sgr0 +archs=$(find "./downloads" -regex "^.*/Stardis-.*[0-9]+\.[0-9]+\.[0-9]+.*tar.gz") + +sign_something=0 +for arch in $archs; do + if [ ! -f $arch.sig ]; then + echo "Sign $arch" + gpg -a -o $arch.sig --detach-sign $arch + sign_something=1 + fi +done + +if [ $sign_something == 0 ]; then + echo "Nothing to do" +fi + +echo "" + +################################################################################ +# Extract the current archive +################################################################################ +cd $dir_temp +arch=Stardis-$1-GNU-Linux64 +cp "$dir_curr/downloads/$arch.tar.gz" . +tar xzf $arch.tar.gz +sdis_spk=Stardis-Starter-Pack-$2 +tar xzf $dir_curr/downloads/$sdis_spk.tar.gz $sdis_spk/README.md +cd $dir_curr + +################################################################################ +# Generate the release notes +################################################################################ +cd $dir_temp +solver_release_notes=$($markdown $arch/share/doc/stardis-solver/README.md \ + | sed '/^<h2>Release notes<\/h2>/,$!d' \ + | sed 1d \ + | sed '/^<h2>License<\/h2>/,$d') +stardis_release_notes=$($markdown $arch/share/doc/stardis/README.md \ + | sed '/^<h2>Release notes<\/h2>/,$!d' \ + | sed 1d \ + | sed '/^<h2>License<\/h2>/,$d') +sgreen_release_notes=$($markdown $arch/share/doc/sgreen/README.md \ + | sed '/^<h2>Release notes<\/h2>/,$!d' \ + | sed 1d \ + | sed '/^<h2>License<\/h2>/,$d') +cd $dir_curr + +################################################################################ +# Generate the overview page +################################################################################ tput bold; echo ">>> Generate the Stardis web pages"; tput sgr0 echo "Write stardis.html" { - print_header Stardis dummy - cat stardis.html.in - print_footer + print_header Stardis Overview; + VERSION=$1 envsubst < stardis.html.in; + print_footer; } > stardis.html +################################################################################ +# Generate the Downloads page +################################################################################ +echo "Write stardis-downloads.html" +{ + print_header Stardis Downloads; + echo '<header><h1>Download Stardis</h1></header>'; + + echo '<p>The proposed archives contain precompiled version of the <a' + echo 'href=https://gitlab.com/meso-star/stardis-solver.git>Stardis-Solver</a>' + echo 'library and of the <a href="./man/man1/stardis.1.html">stardis</a>' + echo 'and <a href="./man/man1/sgreen.1.html">sgreen</a> command line' + echo 'tools. Refer below for their associated release notes. The version of' + echo 'the archive corresponds to the version number of the Stardis-Solver' + echo 'library packaged into the archive.</p>' + + print_downloads Stardis "Linux"; + echo "<h2>Stardis-Solver Library release notes</h2>" + echo $solver_release_notes + echo "<h2>Stardis CLI release notes</h2>" + echo $stardis_release_notes + echo "<h2>Stardis-Green CLI release notes</h2>" + echo $sgreen_release_notes + print_footer; +} > stardis-downloads.html; + +################################################################################ +# Generate the starter pack +################################################################################ +echo "Write starter-pack.html" + +$markdown $dir_temp/$sdis_spk/README.md \ + | sed 's/<pre><code>/<pre class=code>/g' \ + | sed 's/<\/code><\/pre>/\<\/pre\>/g' \ + > $dir_temp/$sdis_spk/README.html + +intro=$(cat $dir_temp/$sdis_spk/README.html \ + | sed 1d \ + | sed '/^<h2>Content<\/h2>/,$d') + +content=$(cat $dir_temp/$sdis_spk/README.html \ + | sed '/^<h2>Content<\/h2>/,$!d' \ + | sed 1d \ + | sed '/^<h2>Copyright notice<\/h2>/,$d') + +license=$(cat $dir_temp/$sdis_spk/README.html \ + | sed '/^<h2>Copyright notice<\/h2>/,$!d' \ + | sed 's/opyright (C)/opyright \&#169;/g') + +{ + print_header Stardis Starter-Pack + + echo "<header>" + echo " <h1>Stardis: Starter Pack</h1>" + echo "</header>" + echo "<div class="news">" + echo " <p><b>Stardis: Starter Pack $2</b></p>" + echo " <ul>" + echo " <li><a href=\"downloads/Stardis-Starter-Pack-$2.tar.gz\">tarball</a> /" + echo " <a href=\"downloads/Stardis-Starter-Pack-$2.tar.gz.sig\">pgp</a></li>" + echo " </ul>" + echo "</div>" + + echo "$intro" + + echo "<h2>Content</h2>" + echo "<div class=\"img\" style=\"padding-top:3em; width: 17em\">" + echo " <a href=\"heatsink.jpg\"><img src=\"heatsink.jpg\" alt=\"heatsink\"></a>" + echo " <a href=\"heatsinkx50.jpg\"><img src=\"heatsinkx50.jpg\" alt=\"heatsinkx50\"></a>" + echo " <a href=\"foam.jpg\"><img src=\"foam.jpg\" alt=\"foam\"></a>" + echo " <div class=\"caption\">" + echo " Geometries of the heatsink, the multiple heatsinks and the foam" + echo " provided by the Starter Pack and used in its examples." + echo " </div>" + echo "</div>" + + echo "$content" + echo "$license" + + print_footer +} > starter-pack.html + +################################################################################ +# Generate the reference documentation +################################################################################ +for((i=0; i<${#stardis_man_pages[@]}; ++i)); do + entry=(${stardis_man_pages[$i]}) + man_name=${entry[0]} + man_num=${entry[1]} + man_path="$dir_temp/$arch/share/man/man${entry[1]}/$man_name.$man_num" + output="man/man${entry[1]}/$man_name.$man_num.html" + convert_man_page Stardis "$man_path" "$output" $1 + + if [ "$man_name" == "stardis" ]; then + # Patch the htpp hyperlink + sed -i 's/<A HREF="\.\.\/man1\/htpp\.1\.html">/<A HREF="..\/..\/..\/high-tune\/man\/man1\/htpp.1.html">/g' $output + fi + if [ "$man_name" == "stardis-output" ]; then + # Patch the htrdr-image hyperlink + sed -i 's/<A HREF="\.\.\/man5\/htrdr-image\.5\.html">/<A HREF="..\/..\/..\/high-tune\/man\/man5\/htrdr-image.5.html">/g' $output + fi + +done + diff --git a/stardis/syrthes.png b/stardis/syrthes.png @@ -1 +0,0 @@ -#$# git-wad 182335e0acb1d96f362b54921b9ae7a617540c6cc66f6803c394b4f72d8ec33b 122112 -\ No newline at end of file