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 64f9fcb8ac92e59bf46fb13ef46dc2cd19bb79ee
parent 5f167696cca446c2ec7a30818eed888a38c36d15
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Tue, 17 Nov 2020 14:56:48 +0100

Begin a full rewrite of the main stardis page

Diffstat:
Mstardis/Makefile | 4+++-
Mstardis/stardis.html.in | 462+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Mstardis/stardis.sh | 11++++++++---
3 files changed, 285 insertions(+), 192 deletions(-)

diff --git a/stardis/Makefile b/stardis/Makefile @@ -13,6 +13,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +STARDIS-VERSION=0.10.1 + SRC = stardis.html.in green_script.js IMG = foam.png IGBT.png syrthes.png @@ -20,7 +22,7 @@ IMG = foam.png IGBT.png syrthes.png default: all all: ${SRC} - @sh stardis.sh + @sh stardis.sh ${STARDIS-VERSION} clean: rm stardis.html diff --git a/stardis/stardis.html.in b/stardis/stardis.html.in @@ -1,214 +1,300 @@ <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>Windows: + <a href="downloads/Stardis-${VERSION}-Win64.zip">zip</a> / + <a href="downloads/Stardis-${VERSION}-Win64.zip.sig">pgp</a></li> + </ul> + <ul> + <li>Sources: + <a href="downloads/Stardis-${VERSION}-Sources.zip">zip</a> / + <a href="downloads/Stardis-${VERSION}-Sources.zip.sig">pgp</a></li> + </ul> +</div> + +<p>Stardis is a <b>thermal simulation</b> framework for <b>complex 2D and 3D +geometries</b>, that relies on new <b>Monte-Carlo</b> algorithms built from +reformulations of the main heat transfer phenomena: conduction, convection and +radiation. A serie 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 +<b>fully appropriate</b> the statistical formulation of heat transfer, from +theoretical concepts to practical implementation. The complete Stardis +framework is thus released under <b><a href="#license">free licenses</a></b> +that guarantees the users the aibility to freely use, study, modify or extend +the complete source code according to their needs.</p> + +<p>Despite its specific advantages, Stardis framework is not meant to fully +replace already well established and highly validated thermal simulation tools. +Instead, it can be seen as a 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> aspect: 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) simulations. This makes 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 conductiviy 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> -</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> -<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> -</div> +<p><a href=https://gitlab.com/meso-star/stardis-solver.git>Stardis-Solver</a> +is the Monte-Carlo solver that 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> -<h2>Getting Stardis</h2> +<p>The Stardis-Solver library is currently used in the two following +projects:<p> -<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. +<ul> + <li><a href="#cli">Stardis CLI</a>: 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>: the general thermal software developed by &#201;lectricité de + France. +</ul> -<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> +<p>The coupled Monte-Carlo algorithms implemented into Stardis-Solver are based +on the following hypothesis:</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><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 for a given geometric configuration so that its value is small + compared to the smallest typical length of a 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 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> -<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> +<h3>Probe computation</h3> -<h2>Examples of integration and development</h2> +<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 possible to compute a <b>numerical +uncertainty</b> (standard deviation of the weight distribution) over each +result.</p> -<h3 id="syrthes"> EDF R&D - SYRTHES </h3> +<h3>Flux computation</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>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 a internal source of power must be taken into account.</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> +<h3 id="green">Green function</h3> -<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> +<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 sources have 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). Note that when using the Green function, only boundary +and initial conditions (as well as internal power sources) can be modified: in +particular, the geometry, thermal properties and exchange coefficients have to +remain identical.</p> + +<h3 id="visu">Thermal path visualization</h3> + +<p>Stardis-Solver can store the complete spatial and temporal position along a +set of thermal paths, for latter visualization. In addition of their position +and, each thermal path vertex register additional data as the type of thermal +phenomena it simulates, the accumulated power/flux along the path, etc.</p> + +<h2 id="cli">Stardis</h2> + +<p>TODO</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. For +instance on a GNU/Linux system:</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>On Windows, open a command prompt into the Stardis bin directory and invoke +the <code>stardis.exe</code> executable. You can alternatively register its +directory into the <code>path</code> environment variable to expose the Stardis +application to the system, allowing its invocation from any directory.</p> + +<pre class="code"> +C:\Users\Meso-Star\Stardis-${VERSION}-Win64\bin>stardis -h +</pre> + +<p>On GNU/Linux, 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 +fileformats is located in the <code>share/man</code> sub-directory for troff +man pages and in <code>share/doc/stardis/html</code> for its html version. To +consult it, browse the html files or, on GNU/Linux system, simply invoke the +<code>man</code> command-line.</p> + +<pre class="code"> +$ man stardis +$ man stardis-input +$ man stardis-output +</pre> + +<h2>Build from sources</h2> + +<p>You can alternatively build the Stardis framework from its source trees. A +simply way 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> + +<ul> + <li><a href=https://git-scm.com>git</a> source control as well.</li> + <li>A C/C++ compiler like <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>Assuming that the aforementioned prerequisites are available, the build +procedure is summed up to:</p> + +<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>Run</h3> + +<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> + +<pre class="code"> +$ source ~/Stardis-${VERSION}/etc/stardis.profile +$ stardis -h +</pre> + +<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, +are compatibles with the ones 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-Solver and Stardis are free software released under the GPLv3+ +license: GNU GPL version 3 or later. You can freely study, modify or extend +them. 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 @@ -19,12 +19,17 @@ set -e source ../meso-menu.sh +if [ $# -lt 1 ]; then + echo "Usage: $0 VERSION" + exit 1 +fi + 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 dummy; + VERSION=$1 envsubst < stardis.html.in; + print_footer; } > stardis.html