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:
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 É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